Metadata
| Status | done |
|---|---|
| Assigned | agent-1004 |
| Agent identity | f51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e |
| Model | claude:sonnet |
| Created | 2026-04-28T22:50:58.157820893+00:00 |
| Started | 2026-04-28T22:58:53.026558994+00:00 |
| Completed | 2026-04-28T23:39:14.902918248+00:00 |
| Tags | fix,html,viz, eval-scheduled |
| Eval score | 0.89 |
| └ blocking impact | 0.85 |
| └ completeness | 0.95 |
| └ constraint fidelity | 0.85 |
| └ coordination overhead | 0.90 |
| └ correctness | 0.95 |
| └ downstream usability | 0.85 |
| └ efficiency | 0.75 |
| └ intent fidelity | 0.90 |
| └ style adherence | 0.90 |
Description
Description
User feedback: current HTML graph viz is bad. Don't rebuild as SVG. Instead, render the existing wg viz ASCII output verbatim in a monospace font and add clickability + a side inspector. The user has prior ASCII rendering work in ~/graphwork.github.io (asciinema-style) to reference.
User quote: 'we can just render the ascii art with the right font! we already have the ascii cinema work in ~/graphwork.github.io'
User quote (earlier): 'the graph viz is so so so so so bad. could we have wg viz? like the cli type one. and mirror all the clickability in the ui so that all the logs and evaluations and details can be seen? by clicking and getting some expanded window or side inspector that shows us? nothing crazy. simple design. but high impact.'
Spec — minimal
Render
- Run
wg viz(programmatic API, not subprocess if a library entry exists; otherwise subprocess is fine) and capture its output - Embed the output inside a
<pre>element with appropriate monospace font + line-height. Reference~/graphwork.github.iofor the font + styling treatment they used for the ascii cinema work — pick the same font stack and tab/whitespace handling for consistency - ANSI color codes from
wg viz(if it produces them) → translate to inline<span style=color:...>so status colors come through. If it produces plain ASCII, that's fine too — render plain.
Clickability
- Parse the ASCII output to find task identifiers (kebab-case strings that match known task ids in the graph). Wrap each one in a clickable span with a data-task-id attribute.
- Click a task id → side panel slides in from the right (responsive: below on narrow screens) populated with:
- Title, status, executor, model, agent
- Description (markdown rendered as already done elsewhere)
- Log entries (truncated reasonably)
- Eval scores / FLIP scores / dimension breakdown if present
- Dependency task ids as clickable links that update the panel
- Plain vanilla JS. No framework. No fetch (write all task data inline as JSON in index.html, OR per-task JSON files alongside the html — implementer picks).
Constraints
- Output stays static + rsync-friendly. Open in any browser, no server.
- Existing per-task pages from html-graph-view can stay as deeplink targets — the side panel is a faster inline alternative, not a replacement.
- The ASCII text itself must be selectable (so users can copy task ids out of the rendering).
Reference
~/graphwork.github.io— the user's prior ascii-cinema work. Read its CSS and any embedded ascii rendering for the font/styling treatment.wg viz --help— confirm what flags produce the layered output the user wants visible.
Validation
-
Live smoke: run
wg html --alland visually confirm: - The graph area renders the SAME ASCII layout thatwg vizproduces in the terminal (not a redrawn SVG) - Monospace font, characters align cleanly into the dependency layers - Status colors visible (ifwg vizproduces ANSI codes that the renderer translates) - Task ids are clickable; clicking opens a side panel with task details - Clicking a dependency link inside the panel updates the panel (not a navigation) - Side panel shows description, logs, eval scores when present - The ASCII is text-selectable for copy-paste -
Visual treatment matches the spirit of
~/graphwork.github.io(same monospace stack) - cargo build + cargo test pass
- Permanent smoke scenario added with this task id in owners
- cargo install --path . was run before claiming done
Depends on
Required by
- (none)
Log
- 2026-04-28T22:50:58.149014229+00:00 Task paused
- 2026-04-28T22:52:27.991848205+00:00 Task published
- 2026-04-28T22:58:53.026565787+00:00 Spawned by coordinator --executor claude --model sonnet
- 2026-04-28T22:59:01.923238666+00:00 Starting work: checking codebase structure and reference materials
- 2026-04-28T23:04:11.893961446+00:00 Planning implementation: subprocess for ASCII viz, inline JSON, side panel with vanilla JS
- 2026-04-28T23:12:51.593375965+00:00 cargo install running in background...
- 2026-04-28T23:25:37.386804521+00:00 Tests pass (except pre-existing failures). Installing binary and running live smoke test.
- 2026-04-28T23:29:02.483335727+00:00 Committed 536efbf72 and pushed to remote
- 2026-04-28T23:29:46.874357558+00:00 Validated: ASCII viz matches wg viz output, monospace JetBrains Mono font, 155 clickable task IDs, side panel present, log entries in JS, 379 tasks with eval scores, all HTML integration tests pass
- 2026-04-28T23:38:57.955319456+00:00 Merged with origin/main (wg-html-add --since filter). Committed ce34ad926 and pushed.
- 2026-04-28T23:39:07.192213102+00:00 Validated: smoke PASS, 11 HTML tests pass, cargo install done, ready to mark done
- 2026-04-28T23:39:14.902921314+00:00 Task pending eval (agent reported done; awaiting `.evaluate-*` to score)
- 2026-04-28T23:41:07.224987780+00:00 PendingEval → Done (evaluator passed; downstream unblocks)