FEAT: display session names in terminal and web Sessions - #64
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Short terminal rows can omit session status because the optional directory is inserted before the fallback status.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
Adds local Codex session-name lookup and displays names in terminal and web session views.
Changes:
- Added cached name-index reading with rename refresh.
- Updated terminal/web session rendering and accessibility labels.
- Added tests, documentation, and rebuilt web assets.
| File | Description |
|---|---|
internal/codex/session_names.go |
Reads and sanitizes session names. |
internal/codex/live_usage.go |
Propagates names into live snapshots. |
internal/ui/monitor.go |
Displays names in terminal telemetry. |
internal/ui/model.go |
Tracks names through monitor state. |
web/src/Sessions.svelte |
Displays names in session rows/details. |
web/src/state.svelte.ts |
Adds the session name type. |
internal/web/state.go |
Projects sanitized names to web clients. |
internal/codex/session_names_test.go |
Tests rename/index behavior. |
internal/ui/monitor_name_test.go |
Tests terminal name rendering. |
web/tests/browser.spec.ts |
Tests named-session web flows. |
README.md |
Documents named-session display. |
internal/web/dist/index.html |
References rebuilt assets. |
internal/web/dist/assets/index-BZfqFWbz.js |
Contains rebuilt web bundle. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Attention pills omit the valid named-session label . because directory fallback filtering is applied to names.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
Resolved since last review (1)
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.

Session rows were identified only by an abbreviated session ID and directory, making named Codex sessions harder to recognise. Named sessions now show short session ID // name in the left telemetry box border, with their directory inside the box beneath model information when space permits. Unnamed sessions retain the existing ID/directory title.
The web interface uses the same local names in selectable session headings, keeps the directory inside the panel, and identifies named sessions on full detail. This is available in read-only and writable browser modes.
Attention pills use the matching session ID and name (directory fallback), retaining the ID when terminal pills compress. Highlighted row status labels are clickable links to that session's native detail in both terminal and browser interfaces.
Names are read from Codex's local session index, cached until the file changes, and refreshed after renames. This works without shared-daemon mode. Display text is sanitised, and unavailable name metadata does not fail token polling. Session status and token/model metrics retain priority in short rows.
Validation: the Codex and terminal test suites passed, with targeted tests for name lookup, renames, index replacement, row sizing and directory placement. The existing English presentation snapshot passes. Local binary rebuilt and README updated.
Web validation: Svelte/type/format checks and production build passed, plus all 41 browser tests, including named-session display, pill identity, clickable status navigation, full detail, responsive navigation and safe text rendering. All Go packages pass. Embedded assets and local binary rebuilt.