Metadata
| Status | done |
|---|---|
| Assigned | agent-700 |
| Agent identity | f51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e |
| Created | 2026-04-27T15:09:22.748740828+00:00 |
| Started | 2026-04-27T15:10:20.397141886+00:00 |
| Completed | 2026-04-27T15:29:23.920754771+00:00 |
| Tags | eval-scheduled |
Description
Description
User reports: 'the text is all green... a bit annoying. maybe we could encourage something smart for the coloration'.
The chat / Log view currently renders with too much green (likely user text, agent responses, attachments, all bleeding together). Want a smarter color scheme that uses color SEMANTICALLY rather than uniformly.
Proposed coloration
| Content kind | Color | Note |
|---|---|---|
| User input | default / bright cyan | the human's voice |
| Agent text response | default (no color) | normal terminal text — the most prominent content |
| Tool call (the call itself) | dim cyan / dark gray | wg's existing ⌁ prefix style |
| Tool result body | default (text) with dim border | output is data, should be readable |
| Tool error / failure | red | jumps out |
| Thinking blocks (when shown) | italic dim | de-emphasized |
| System notes (info, warnings) | yellow / orange | distinct from regular content |
| Attachments | subtle gray (NOT green) | metadata, not content |
| Status indicators (idle/active/error) | green/yellow/red on the BORDER or gutter, NOT in text | per chat-tab states task |
The key principle: default text reads as default — color is for structure/role, not for showing 'this is text'. Today most chat content is colored, which makes the colors meaningless.
Implementation guidance
- Find every
Color::Greenuse in src/tui/viz_viewer/render.rs that's applied to BULK text (not status icons / borders / accents). Replace with default or a more semantic choice. - Centralize chat color constants in one place (e.g.
src/tui/viz_viewer/chat_palette.rs) so future changes are one-edit. - Test by opening wg tui and reading a real chat — should feel like a normal terminal conversation, with color as gentle structure, not a wash.
Out of scope
- Markdown rendering / syntax highlighting in chat (separate, bigger task)
- Per-user theming (separate)
- Light vs dark color theme (separate; today the [tui] color_theme = 'dark' is the only setting)
Validation
- Failing test first: test_chat_render_uses_no_color_for_default_text — synthetic chat with assistant text, render to a buffer, assert the response text spans use default Color (no fg color set), only headers/role-prefixes use color
-
grep test:
grep -c 'Color::Green' src/tui/viz_viewer/render.rscount drops by majority (today many; after, only true status indicators) - Implementation makes tests pass
- cargo build + cargo test pass with no regressions
- Manual smoke: open wg tui, scroll a real chat, verify it 'reads like a normal terminal' — color as structure, not as a wash
Depends on
Required by
- (none)
Log
- 2026-04-27T15:09:22.742929530+00:00 Task paused
- 2026-04-27T15:09:22.783996168+00:00 Task published
- 2026-04-27T15:10:18.734016591+00:00 Lightweight assignment: agent=Careful Programmer (f5143935), exec_mode=full, context_scope=task, reason=Careful Programmer is best match: role=Programmer for UI/TUI implementation, Careful tradeoff suited for visual verification work, proven track record (0.72 score, 111 completed tasks).
- 2026-04-27T15:10:20.397148879+00:00 Spawned by coordinator --executor claude --model opus
- 2026-04-27T15:10:33.485173612+00:00 Starting work: investigating render.rs for Color::Green usage
- 2026-04-27T15:12:44.986169365+00:00 Reviewing chat-rendering call sites: lines 3546 (attachment indicator), 3982 (pending attachment), 4332 (ToolResult bulk text), 4457 (Outgoing arrow), 4616 (INFO badge), 4719 (Chat compaction header). Will create chat_palette.rs and replace bulk-text greens with semantic constants.
- 2026-04-27T15:28:08.597430677+00:00 Implementation complete. cargo build + cargo test pass with 2910/2911 (1 pre-existing failure: provenance_full_lifecycle_all_ops_recorded, confirmed unrelated by reverting my changes via git stash). Replaced bulk-text Color::Green at 5 chat/log sites; centralized chat colors in src/tui/viz_viewer/chat_palette.rs; failing test test_chat_render_uses_no_color_for_default_text now passes.
- 2026-04-27T15:29:03.008606767+00:00 Committed: 0fa81ade9 — pushed to remote
- 2026-04-27T15:29:23.923806302+00:00 Task pending eval (agent reported done; awaiting `.evaluate-*` to score)
- 2026-04-27T15:29:42.183582366+00:00 PendingEval → Done (evaluator passed; downstream unblocks)