Skip to content

feat(webui): session-list detail row with TUI full-mode info#944

Merged
edwin-zvs merged 3 commits into
mainfrom
webui-list-details
Jul 23, 2026
Merged

feat(webui): session-list detail row with TUI full-mode info#944
edwin-zvs merged 3 commits into
mainfrom
webui-list-details

Conversation

@edwin-zvs

Copy link
Copy Markdown
Contributor

Summary

Brings the TUI full-view's per-session info to the web UI session list, always on (no compact/full switch on the web):

  • Each row gains a muted detail line under the title: model·effort, a context-window mini-gauge with percentage (continuous fill — finer than the TUI's 4-cell bar, same information), activity (live busy Xs timer while running, Xm ago since the last chat message otherwise — same restart-proof semantics as the TUI via last_message_at, falling back to last_event_at), and lifetime tokens. Cost stays excluded, matching the TUI decision.
  • Absent data is omitted; sessions reporting nothing fall back to their directory basename. On narrow sidebars the tokens segment shrinks away first, mirroring the TUI's drop order.
  • The busy/age text refreshes on the existing status-glyph ticker (SESSION_STATUS_FRAME_MS), so timers count up between daemon events without re-rendering rows.
  • Structurally, each list item becomes a title-row + detail column. Two traps dodged: plain flex-wrap pushed the harness label onto the next line instead of truncating long names, and the page already has a generic .row { flex-direction: column } rule — hence the .title-row class.
  • Spec 0106 updated: the web list shows the same detail line with the same omission/fallback rules, always on.

webui session list details

(Live capture from a seeded isolated daemon: shell sessions ticking busy Xs, claude/codex/smith rows showing model, gauge, age; tokens shrink away at this narrow width per the drop order.)

Testing

  • Verified live in Chrome against a seeded daemon (hot-served worktree assets): layout, truncation behavior, ticking busy timers, no console errors.
  • cargo test --workspace green (1764 passed), including the web_smoke e2e against the rebuilt binary with embedded assets.

🤖 Generated with Claude Code

The web session list now shows the same per-session detail the TUI's
full view does — model·effort, a context-window gauge with percentage,
activity (live busy timer while running, age since the last chat message
otherwise), and lifetime tokens — always on; the web list has no
compact/full switch. Absent data is omitted, message-less sessions fall
back to their directory, and cost stays excluded (spec 0106 updated).

Rows restructure into a title-row + detail column (a plain flex-wrap
would push the harness label off the title line instead of truncating
the name; the wrapper dodges the page's generic .row column rule). The
busy/age text refreshes on the existing status-glyph ticker so timers
count up between events.
@edwin-zvs
edwin-zvs merged commit 436205c into main Jul 23, 2026
1 check passed
@edwin-zvs
edwin-zvs deleted the webui-list-details branch July 23, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant