Created
Jul 02, 16:52
Started
Jul 02, 16:55
Completed
Jul 02, 17:47
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
stage-change-status-badge
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/stage-change-status-badge
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Two changes to the heartbeat Status/Task cell. (1) BULLET: in the hb-satline (the status-badge + action-count row), put a bullet separator between them, e.g. 'DONE · 1 action'. (2) STAGE-CHANGE BADGE: when a span corresponds to a task STAGE CHANGE, the status badge should show the STAGE THE TASK CHANGED TO (styled as that stage's board badge/color) instead of the generic DONE. DETECTION: cross-reference TaskEvent (app/models/task_event.rb — append-only stage spine; fields task_slug, from_stage, to_stage, kind [transition|intent], occurred_at; indexed on task_slug+occurred_at). For a span (AtomicEvent) that has a task_slug and window opened_at..closed_at, find a kind='transition' TaskEvent for that task_slug whose occurred_at falls in the window; if found, the badge = the LAST such to_stage, humanized + colored with the STAGE's board badge styling (reuse the existing stage badge helper/colors the /tasks + /deployments board use — find it, e.g. a Task stage color/label helper). Load transitions in BULK for the visible spans' task_slugs (group by task_slug, no N+1) in heartbeat_controller#show + #all_spans, pass to heartbeat_span_status_meta (or a new helper) which returns the stage badge when a transition matches, else the current open/done badge. Preview on 3001 for the operator before handoff (leave the stack up). See project_task_event_timeline_2026_06_22, project_opsd_learning_layer.
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
No task feedback has been recorded yet.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
SMALL
Dev
SMALL
Actual
XL
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.