Files
Bohan-J 0854a436dd feat(issue-status): per-workspace custom issue status catalog (MUL-4809)
Customizable issue statuses over 5 immutable machine Categories
(backlog | todo | in_progress | done | cancelled). Category is the only machine
semantics; name/icon/color are human-facing.

- issue_status catalog (no FKs) + issue.status_id, seeded with the 7 built-ins;
  migrations 265-274, each concurrent index in its own single-statement file.
  DeleteWorkspace sweeps the catalog (registered in the deletion manifest).
- Every write path (create / update / batch / Autopilot / onboarding) resolves
  through the catalog inside the write transaction under
  LockWorkspaceForStatusWrite, double-writing status_id + the legacy token from
  the same row, in one workspace/status -> duplicate -> issue lock order.
- Read side carries status_id / status_detail; list, open_only and Table support
  status_id, status_ids[] and status_category, each with the status_id IS NULL
  compat arm so pre-backfill rows are never hidden.
- Settings -> Statuses UI, catalog-driven picker, filters and Table grouping.
- Category-driven machine logic (run trigger, stage barrier, inbox dismiss,
  stuck-issue reset) and Autopilot task-driven run finalization behind the
  default-off FF_AUTOPILOT_TASK_DRIVEN_RUNS two-phase gate.

Replayed linearly on main; squashed from the reviewed feature history.

Co-authored-by: multica-agent <github@multica.ai>
2026-08-08 11:44:46 +08:00
..