Dashboard: tell the projects apart by colour, and narrow the board to one project #575
No reviewers
Labels
No labels
agent-ready
bug
contract
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
needs-input
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/iw-cli!575
Loading…
Reference in a new issue
No description provided.
Delete branch "dashboard-control-plane"
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?
Slice 11 — Tell the projects apart (
dashboard-control-plane)Goal. Michal reads an act on the board and knows which project it is in without reading the card, and narrows the board to one project when he wants to work that project down.
Fit test. On his own server at
localhost:9876, he works the board down and acts only from what it shows: nothing he knows about is missing, nothing foreign is present, and "which project is this act in?" is answered by looking.Fit: passed — called by Michal on his own board on 2026-09-16.
Slices 01–10 of this effort were already shipped and merged; this PR carries slice 11 only.
What ships
ProjectColour, 18 hues × 3 shades), so it is the same on every page, after a restart and tomorrow. Only the two derived numbers reach the page.Unresolvedstays grey; a worktree with no nameable project gets no colour./?project=<name>), and the board re-reads that address every 5 s, so the choice survives the refresh.Where the agents arelane follows the same choice. There the agent's state colours the card and the project is a coloured chip inside it — the mirror of an act card.Close review
Seven review skills (style, testing, security, scala3, composition, architecture, api): 0 critical. Nine findings fixed in
bb84c347, among them one shared rule for the colour-to-CSS attributes and one for narrowing, a length bound on?project=, escaping and empty-value tests on the route, and a temp-directory leak in a server test. Full report:project-management/efforts/dashboard-control-plane/slices/11-tell-the-projects-apart/review-slice-2026-09-16.md.The security review confirmed the card's invariant: nothing a worktree controls reaches a
styleorclassattribute.Lessons and follow-ups
.claude/hooks/build-tool-traps.sh(wired in.claude/settings.json), verified firing in a live session:N/Nsummary counts build tasks, not tests.Parked (flushed to the effort map)
presentation/viewsmeans — pure decision logic is accreting beside the HTML.domainvspresentation).Known red, not from this branch
test/start.bats— "the tmux session does not carry iw's internal plumbing" fails onIW_HOME. This is #556, which fails at baseline. Every unit test passes.🤖 Generated with Claude Code
https://claude.ai/code/session_019YzFVVxfMSRMHwR7qfFRxP