Add task status tokens with at-a-glance commit indicator
Introduce a general status-token abstraction on tasks: a typed marker
(kind + reference) whose colour-mapped state drives an at-a-glance dot
on the task row. The first kind is `commit` — a repo-qualified
`<repo>@<shortsha>` reference that is Pending (amber) until pushed and
Complete (green) once pushed; a task with no tokens stays neutral. At
most one token per task is primary (the one that resolved it).
New `task_status_tokens` table (deterministic UUID v5 ids in
(task_id, kind, reference) for idempotent, sync-safe upserts), wired
through core model, repository, sync changelog/whitelist/order, and
backup/restore. go-mcp `complete_task`/`update_task` commit args record
commit-kind tokens; a `status_tokens` projection is exposed.
Frontend: a colour dot on rows that have tokens, and a commits manager
modal (add a ref, toggle pushed, toggle primary, remove) reachable from
the dot or a Commits button in Manage Subtasks.
- Co-Authored-By
- Claude Opus 4.8 (1M context) <noreply@anthropic.com>
29 files changed,
+1079 insertions,
-21 deletions
| 2755 |
2755 |
|
"serde_json",
|
| 2756 |
2756 |
|
"thiserror 2.0.18",
|
| 2757 |
2757 |
|
"tokio",
|
|
2758 |
+ |
"tokio-stream",
|
| 2758 |
2759 |
|
"tower",
|
| 2759 |
2760 |
|
"tower-http",
|
| 2760 |
2761 |
|
"tracing",
|
| 6371 |
6372 |
|
"futures-core",
|
| 6372 |
6373 |
|
"pin-project-lite",
|
| 6373 |
6374 |
|
"tokio",
|
|
6375 |
+ |
"tokio-util",
|
| 6374 |
6376 |
|
]
|
| 6375 |
6377 |
|
|
| 6376 |
6378 |
|
[[package]]
|
| 90 |
90 |
|
$crate::commands::toggle_subtask,
|
| 91 |
91 |
|
$crate::commands::update_subtask,
|
| 92 |
92 |
|
$crate::commands::delete_subtask,
|
|
93 |
+ |
// Status tokens (e.g. linked commits)
|
|
94 |
+ |
$crate::commands::list_task_status_tokens,
|
|
95 |
+ |
$crate::commands::record_task_status_token,
|
|
96 |
+ |
$crate::commands::delete_task_status_token,
|
| 93 |
97 |
|
// Milestones
|
| 94 |
98 |
|
$crate::commands::list_milestones,
|
| 95 |
99 |
|
$crate::commands::create_milestone,
|