Problem
The cockpit's "Live worker progress" panel renders one flat row per (role, task) event stream. A single task (e.g. #88) spreads across orchestrator/implementer/reviewer rows interleaved with other tasks, so following one piece of work top-to-bottom is hard. Task numbers are plain text — no way to jump to the issue or its PR.
Proposal
- Group by task number: one group per task (e.g. a header row or collapsible section per task), with the task's workers (orchestrator, implementer, reviewer×lens) as rows underneath, newest task first. Normalize the current task-id variants (
88, issue-88, issue-70-worker-inspector) into one group key.
- Links: the task header links to the GitHub issue; if an open or merged PR references the issue (cockpit already fetches PR data for the "Open PRs" panel), link that too, with its state (open/merged) shown.
- Sortable columns: clicking a column header (Role, Task, Model, Phase, Lens, Updated) sorts the table by that column, toggling asc/desc. Client-side only, small inline script — same pattern as the existing theme-toggle/module-filter scripts, no external JS (self-contained-HTML constraint must hold).
Constraints: keep the single-renderer seam — all changes in cockpit.sh's HTML generation (+ inline script), so serve mode inherits them for free; fixtures mode (cockpit.test.sh) must still work offline.
Acceptance criteria
- Rows are grouped per task with a linked issue (and PR when one exists).
- Every column is sortable asc/desc in the browser, in both static-file and serve mode.
- Existing tests pass; no external JS/CSS added.
🤖 Generated with Claude Code
https://claude.ai/code/session_014Gu82LWNkdzhrDFSQ7EZmB
Problem
The cockpit's "Live worker progress" panel renders one flat row per (role, task) event stream. A single task (e.g. #88) spreads across orchestrator/implementer/reviewer rows interleaved with other tasks, so following one piece of work top-to-bottom is hard. Task numbers are plain text — no way to jump to the issue or its PR.
Proposal
88,issue-88,issue-70-worker-inspector) into one group key.Constraints: keep the single-renderer seam — all changes in
cockpit.sh's HTML generation (+ inline script), so serve mode inherits them for free; fixtures mode (cockpit.test.sh) must still work offline.Acceptance criteria
🤖 Generated with Claude Code
https://claude.ai/code/session_014Gu82LWNkdzhrDFSQ7EZmB