feat(webui): session-list detail row with TUI full-mode info#944
Merged
Conversation
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.
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
Brings the TUI full-view's per-session info to the web UI session list, always on (no compact/full switch on the web):
busy Xstimer while running,Xm agosince the last chat message otherwise — same restart-proof semantics as the TUI vialast_message_at, falling back tolast_event_at), and lifetime tokens. Cost stays excluded, matching the TUI decision.SESSION_STATUS_FRAME_MS), so timers count up between daemon events without re-rendering rows.flex-wrappushed 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-rowclass.(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
cargo test --workspacegreen (1764 passed), including theweb_smokee2e against the rebuilt binary with embedded assets.🤖 Generated with Claude Code