dashboard: status pill vocabulary — Planning · Executing · Waiting · Reviewing · Done · Error · Abandoned (with reason hover) #963
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Blocks
Depends on
#965 dashboard: subagent tree (rail) + swimlane (timeline) for parallel agent runs
charles/claude-hooks
#950 cursor-sdk-adapter: visibility parity + cancel-race fix + stall watchdog
charles/claude-hooks
Reference
charles/claude-hooks#963
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator I want a single status vocabulary used everywhere a task / agent has a state — board card, drawer, monitor row, history list — that distinguishes "Waiting on permission" from "Executing" and surfaces the reason on hover, so I can triage stalls at a glance.
Context
Today stalled tasks all show "running" regardless of cause. Cursor 3, Devin, and the Claude Code Agent Monitor all separate "Waiting" from "Executing" — and operators uniformly cite this as the single biggest legibility win.
Acceptance criteria
TaskUiStatustype in@claude-hooks/shared:"planning" | "executing" | "waiting" | "reviewing" | "done" | "error" | "abandoned".ui_statusfrom existingtask_history.status+ the latestsystemevent subtype + outstanding approval gates. New SSE events (e.g.cursor_status_*from #950, futureapproval-requested) feed in.<StatusPill status reason>component: lucide icon + label + optional pulsing dot forexecuting. On hover, renderreason("Awaiting approval to write.env", "blocked on dependency #834", "compaction in progress").prefers-reduced-motion(no pulse).Out of scope
Dependencies
systemevents for status transitions need to be surfaced before the UI can readui_status.References
🤖 Auto-assigned to dev (heuristic: area:dashboard + body 1749 bytes (≤ 2 KB) — code role). Reply
/unassignto reroute.🧹 janitor: closing — PR#981 was merged with a
Closes #963keyword but this issue was not auto-closed.