Overlord logo
Overlord

The Agentic Ticket

Each Overlord project is a kanban board where tickets are shared context around a goal — like a feature — and objectives inside each ticket are the prompts agents actually run.

1

Write an objective

Start a ticket with an idea, a question, or a scoped ask. The objective is the prompt the agent will execute.

2

Launch the agent with context

Pick an agent and click Run. Overlord opens your terminal and launches the objective with context from previous objectives on that ticket.

3

Structured delivery back to the ticket

Agents report progress, file-change rationales, artifacts, and delivery summaries, which serve as context for future objectives.

4

Queue future objectives

Add future objectives to the same ticket and run them sequentially, with each step inheriting context from the last.

Overlord1:1098

Slack notifications for ticket activity

Overlord · 1:1098

Build the user notification preferences UI in Settings → Notifications. Let users opt in/out of categories (mentions, deliveries, blocking questions) and choose a delivery channel (Slack DM via the org bot, or shared channel). Persist preferences in `user_notification_preferences`.

Add notification filtering and quiet hours. Users should be able to mute notifications by project, by ticket priority, and during a daily quiet-hours window in their local timezone.

End-to-end tests for the notification flow: simulate a ticket lifecycle (attach → ask → deliver → status_change) and assert the correct sequence of Slack messages is posted, that retries fire on 5xx, and that user preferences correctly suppress unsubscribed categories.

Activity

Delivereddeliver5/17/2026, 10:42:00 PM

Shipped the Slack webhook edge function for notification delivery.

The function drains notification_delivery_queue, formats Block Kit payloads for status_change, deliver, mention, and question events, and posts to the org webhook URL. Transient 5xx responses retry with exponential backoff (3 attempts, capped at 30s). Delivery failures are recorded on the queue row without blocking ticket writes.

Updateexecute5/17/2026, 10:20:00 PM

Implemented supabase/functions/slack-notify/index.ts with queue polling, Block Kit formatting, and retry wrapper. Wired the function to read org webhook URLs from organization_integrations and mark rows delivered or failed after each attempt.

Updateexecute5/17/2026, 9:55:00 PM

Claude Code attached via local runner for objective Slack webhook edge function. Loaded schema from the prior delivery, org integration settings, and acceptance criteria.

U
Follow-up5/15/2026, 10:30:00 AM

Schema looks good — please implement the Slack edge function next. Use Block Kit for the message body and make sure 5xx retries never block the ticket write path.

Delivereddeliver5/14/2026, 5:01:00 PM

Delivered the notification event schema and migration.

Added notification_events to record status_change, deliver, mention, and question activity, plus notification_delivery_queue as a lightweight worker table with retry metadata. Regenerated TypeScript types and added RLS policies scoped by organization.

Updateexecute5/14/2026, 4:52:00 PM

Drafted migration for notification_events and notification_delivery_queue with enums for event category and delivery status. Added indexes on (organization_id, created_at) and a partial index for pending queue rows. Running yarn generate to refresh types.

Updateexecute5/14/2026, 4:45:00 PM

Claude Code attached via local runner for objective Notification event schema + migration. Reviewed existing ticket event types and acceptance criteria for per-user opt-out and non-blocking Slack failures.

File Changes

Agent-readable detail

A ticket is the durable container. Each objective is one agent prompt with its own lifecycle: attach, execute, update, ask, deliver. Later objectives inherit shared context, prior file changes, and discussion from earlier steps. You can also write future objectives into a ticket and let them auto-advance sequentially when each delivery completes.