Skip to main content

max / goingson

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>
Author: Max Johnson <me@maxj.phd> · 2026-07-15 00:16 UTC
Signed with PGP, not checked
Commit: 67690474cf7fe8f8e192177f3ddb2015cbe45db4
Parent: 98c2e47
29 files changed, +1079 insertions, -21 deletions
M Cargo.lock +2
@@ -2755,6 +2755,7 @@
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,6 +6372,7 @@
6371 6372 "futures-core",
6372 6373 "pin-project-lite",
6373 6374 "tokio",
6375 + "tokio-util",
6374 6376 ]
6375 6377
6376 6378 [[package]]
@@ -90,6 +90,10 @@
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,