feat(tui,webui): columnize the session-list detail line#945
Merged
Conversation
The full-view detail line was a left-packed, variable-content text run: no field started at the same x on any two rows, omission made position meaningless, everything shared one muted style, and long-lived busy sessions ballooned into '2579m57s'. Restructure it for vertical scanning (spec 0106 updated): - Shared columns: identity (model·effort, or the session's directory) left-aligned and capped, context gauge at a fixed slot, activity and tokens right-anchored at the row edge. TUI column widths are computed across the whole list each frame so nothing shifts while scrolling; the web list uses fixed cell widths with a drag-wider sidebar revealing more columns. - Empty cells hold a dim placeholder instead of collapsing, so a column's position always means the same field. - Style hierarchy: values one step brighter than unit suffixes and placeholders; live busy time in the running color. - Bounded labels: busy time goes coarse past an hour (TUI) / always single-unit (web's narrower column); the gauge clamps at 100% when a harness reports usage above its inferred window. - Narrow panes drop whole columns right-to-left (tokens, activity, identity - gauge last), identically on every row; the web detail row gets a hover tooltip carrying everything including dropped columns.
Review feedback: gauge leads the detail line (highest-priority scan signal), activity and tokens follow in shared columns, and the model/identity cell right-anchors at the row edge — stacking directly under the title row's harness label so the two 'what's running this' facts read as one group, with the most variable-width field where a ragged left edge cannot disturb column alignment.
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.
Summary
Follow-up to the full-view feedback: with real fleet data the detail line read poorly — no field started at the same x on any two rows (variable-width model names + omission), everything shared one muted style, and long-lived busy sessions ballooned into
busy 2579m57s. This columnizes the line on both clients (spec 0106 updated):─) so a column's position always means the same field.busy 43h… TUI keeps4m12sprecision below); the web's narrower column uses single-unit busy throughout. The gauge clamps at 100% when a harness reports usage above its inferred window (the146%in the report).TUI
web UI
Both captured live from a seeded daemon with deliberately varied data: long/short model ids, sessions missing context or model, shells with only busy timers.
Testing
cargo test --workspacegreen (1765 passed) includingweb_smokeagainst the rebuilt binary.🤖 Generated with Claude Code