The complete pass
v0.next is not a patchwork release. It's one coherent product pass across history navigation, usage transparency, and long-session performance. Four issues, one milestone, one quality bar.
The bar: ship the smallest thing that fully solves one user problem. Then the next. No dangling threads when tying them off is cheap. Tests, docs, and polish are part of "done", not optional extras. When a real fix is within reach, don't ship a workaround.
The work
Why these four, and why together
Each has its own shipping contract, but they share a story:
Evidence summary
Current-state citations live in each sub-issue. High-level snapshot:
- Token usage:
internal/parser/types.go:63-78, internal/parser/session.go:42-52, internal/web/templates.go:470-488 — session-level aggregate only, per-message usage thrown away during parse.
- Load-earlier navigation:
internal/web/templates.go:617, internal/web/templates.go:5487-5506, internal/web/server.go:303 — hash handler has no branch for hidden ranges.
- Render path:
internal/web/server.go:283, internal/web/templates.go:547-562 — full parse + full render on every request; progressive loading is CSS-hide, not real lazy render.
- Timeline rail: doesn't exist today.
internal/web/templates.go:317-327 is the outline sidebar, not a time axis.
Prior art for the token work: ccusage. Table-only CLI, no per-turn breakdown, no web UI, several accuracy bugs around sidechains and streaming partials (#913, #938, #934, #933, #935). ccx's tree model and web UI are the natural leapfrog surface.
Ships when
Milestone ships when #2, #3, #4 are green. #5 can slip to v0.next+1 without holding the release.
Every sub-issue ships with:
- Tests covering the new logic (not I/O plumbing)
- CHANGELOG entry
- README / screenshot update where UX-visible
- No dangling
?all=1 workaround where a real fix exists
Not in this milestone
- Real-time live-tail cost during active sessions (needs streaming parse — separate issue)
- Session replay / playback animation
- MCP server mode
- Full-text cross-session search index
- Any auth / multi-user mode
We are not boiling the ocean. We are finishing a release.
The complete pass
v0.nextis not a patchwork release. It's one coherent product pass across history navigation, usage transparency, and long-session performance. Four issues, one milestone, one quality bar.The bar: ship the smallest thing that fully solves one user problem. Then the next. No dangling threads when tying them off is cheap. Tests, docs, and polish are part of "done", not optional extras. When a real fix is within reach, don't ship a workaround.
The work
load-earliersections auto-expands — P1 afternoon fixWhy these four, and why together
Each has its own shipping contract, but they share a story:
Evidence summary
Current-state citations live in each sub-issue. High-level snapshot:
internal/parser/types.go:63-78,internal/parser/session.go:42-52,internal/web/templates.go:470-488— session-level aggregate only, per-message usage thrown away during parse.internal/web/templates.go:617,internal/web/templates.go:5487-5506,internal/web/server.go:303— hash handler has no branch for hidden ranges.internal/web/server.go:283,internal/web/templates.go:547-562— full parse + full render on every request; progressive loading is CSS-hide, not real lazy render.internal/web/templates.go:317-327is the outline sidebar, not a time axis.Prior art for the token work: ccusage. Table-only CLI, no per-turn breakdown, no web UI, several accuracy bugs around sidechains and streaming partials (#913, #938, #934, #933, #935). ccx's tree model and web UI are the natural leapfrog surface.
Ships when
Milestone ships when #2, #3, #4 are green. #5 can slip to v0.next+1 without holding the release.
Every sub-issue ships with:
?all=1workaround where a real fix existsNot in this milestone
We are not boiling the ocean. We are finishing a release.