- Hand the desk a task directlyNew POST /api/tasks route + dashboard form. Operators no longer have to log a fake signal first when they already know what the desk should do โ type a title, summary, optional goal, pick output type and priority, optionally set a due date or assign to a teammate. Becomes the fifth direct operator โ desk channel after approve/regenerate (rev 11), operator notes (rev 14), priority/due (rev 21/22), and inline body edit (rev 23).
- Task tags + tagging symmetry across signals/tasks/artifacts/memoryNew task.tags JSONB column + PUT /api/tasks/:id/tags route. Every active-work card now mounts inline tag chips with the same lowercase-hyphen normalisation, 8-tag cap, and Plus / X UX as artifact tags (rev 15) and memory tags (rev 21). Closes the symmetry across all four core entities โ a governance-first desk should let you label work as well as signal.
- Email companion to task due remindersRev 23 made due dates push-loud via Slack + outbound. Rev 24 adds the email channel for solo founders and operators who don't live in Slack. The 4h-before-due sweep now also emails the assignee (when assigned + Resend is configured); the activity log records exactly which channels fired (Slack + email + outbound).
- Visual polish โ focus rings, hover details, pill rowForm fields gain a subtle 2px brand-color outline on focus for keyboard accessibility. Collapsed `<details>` elements (used in the task-create form's optional goal field) brighten on hover. Pill rows continue to wrap cleanly with the rev-23 row-gap.