docs: reconcile ui.md with shipped reality + TASTE.md scar ledger#49
Merged
Conversation
A taste audit of the sessions view found the view itself clean -- every element earns its keep (round-3 inline-metrics-to-hover held, the round-9 rail is one gutter, the compaction node is grey not amber) -- but ui.md over-claiming its own rules: - Type scale said "11/12/13px only" while the code runs a coherent 9-10px micro-tier for badges/labels/tags (17 uses: .cat-badge, .klabel, .tcompact-label, .sum-tag) plus a 16px header wordmark. The rule now names the real closed set; a fourth text size is drift, not a decision. - "One accent ... nothing else gets color" omitted purple, which marks notable-event folds (subagent/skill/MCP). The rule now names it. A bible stricter than the good code mis-teaches: the next contributor "fixes" the deliberate 10px chips up to 11px, or adds a fifth color believing four is blessed. TASTE.md is a new scar ledger at the repo root -- five design rejections with their reasoning (inline-metrics -> hover, rewound -> superseded, three-grammars -> one-rail, hard-border -> wash, and this reconciliation), rescued from the 20KB session-tab doc and commit messages so they stop being re-litigated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
lroolle
added a commit
that referenced
this pull request
Jul 22, 2026
#50) A pure tool-call assistant turn -- the agent acted without narrating -- rendered a content-free "tools..." in the sessions rail, dead exactly when the agent was doing the work. It now names what it did in the conversation folds' own vocabulary: Bash, Read, skill ccx, mcp github, Task -- deduped and capped at three with a +N remainder. A thinking-only turn reads "thinking...", a genuinely empty one "(no text)". The rail should narrate the agent's actions; that is the whole point of the trace. turnToolLabel in src/ui.ts; two dom-stub tests pin the single-tool and multi-tool-capped cases. CHANGELOG 0.20.0 also records the ui.md/TASTE.md reconciliation merged in #49 -- 0.19.0 was the last npm release, so this is the release unit that ships both. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A taste audit of the sessions view (requested: cut costume, record scars). The finding, honestly: the view is not costume -- it is the most disciplined surface in the repo, already corrected across 11 design rounds. Per-element every item earns its keep (rail = one gutter, epoch rows gated to multi-model, error rollup is a row not a panel, per-turn metrics live in hover, compaction node grey-not-amber). The requests view is clean too -- every chip in summarizePair is gated and purposeful.
The real defect was one level up: ui.md, the bible every contributor reads before touching UI, lied about its own rules.
Changes (docs only, no code)
Why it matters
A rule stricter than the good code mis-teaches: the next contributor pulls the deliberate 10px chips up to 11px, or adds a fifth color believing four is blessed. Making the contract true pays every future UI change.
No source touched; the whole diff is two docs.
🤖 Generated with Claude Code