- Custom workflow statuses: per-project configurable status definitions
replacing the fixed task_status enum. Each project defines its own
workflow with drag-to-reorder, color coding, and category mapping.
- Gantt/timeline view: full project roadmap with task bars, dependency
arrows, milestone diamonds, zoom levels (day/week/month), and drag
to reschedule.
- Natural-language quick-add: NLP parser extracts dates, priorities,
projects, labels, and recurrence from free text. Floating bar with
'n' shortcut and live parsed preview.
- Automation rules: no-code trigger-action system per project. Triggers
on status change, task creation, due date approaching. Actions set
status/priority, add labels, create notifications.
- Notification center: in-app bell icon with unread badge, slide-out
panel, real-time SSE updates, mark read/all read. Replaces raw
activity feed dropdown.
Schema: adds status_definitions, automation_rules, notifications tables.
Migrations: 0007, 0008, 0009. 41 NLP parser tests pass.
Same fix as the agent schema commit — zod 3.25 (resolved by ^3.25.0)
requires z.record() to take both key and value schemas. The single-arg
form is v4 syntax.
Fixed 15 remaining call sites across canvas, project, report, common,
webhook, habit, task, note, and milestone schemas. Pure type-only fix —
runtime behavior identical.
zod 3.25 (the version resolved by ^3.25.0) requires z.record() to take
both a key and a value schema. The single-arg form z.record(z.unknown())
is zod v4 syntax, which trips next build's typecheck.
Four call sites in packages/shared/src/schemas/agent.ts were written in
v4 form (lines 39, 41, 73, 74). This is a pure type-only fix — runtime
behavior is identical.