Skip to content

feat(sessions): add persistent display names - #72

Merged
alx-xo merged 1 commit into
speakeasy-api:mainfrom
alx-xo:alexm/66-custom-session-names
Sep 2, 2026
Merged

feat(sessions): add persistent display names#72
alx-xo merged 1 commit into
speakeasy-api:mainfrom
alx-xo:alexm/66-custom-session-names

Conversation

@alx-xo

@alx-xo alx-xo commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Goal

Kit generates session titles from the earliest useful user message, which is not always memorable once a workspace has many durable sessions. This adds an optional persistent display name while preserving the generated title as the fallback.

What changed

CLI

  • kit sessions shows the custom name when set, otherwise the generated title.
  • kit sessions rename <session-id> "OAuth token bug" sets or replaces a name.
  • kit sessions rename <session-id> --clear restores the generated title.
  • --root works on both listing and rename commands.

TUI

  • /sessions keeps the existing selection and resume flow.
  • R opens an inline rename field; submitting an empty value asks before clearing.
  • Saving keeps the picker open, preserves the selected row, and refreshes its name.
  • The picker footer documents select, resume, rename, and cancel controls.

Persistence and compatibility

  • Names live in an atomic workspace-scoped sidecar, separate from the append-only transcript and mutation lock.
  • Renaming never changes the immutable session ID, transcript, generated title, or preview.
  • Missing or malformed optional metadata falls back to the generated title without hiding the session.
  • Names are trimmed, limited to 100 Unicode characters, and reject terminal/bidi controls.
  • CLI, TUI, and ACP session listings use the same custom-name-first fallback behavior.

Verification

  • Storage tests cover set, replace, clear, malformed metadata, active sessions, workspace isolation, and concurrent writes.
  • CLI integration tests exercise listing and both supported --root positions.
  • TUI tests cover editing, clear confirmation, selection preservation, paste handling, and rendering.
  • cargo +1.94.0 fmt --all -- --check
  • cargo +1.94.0 clippy --all-targets --all-features -- -D warnings
  • cargo +1.94.0 test --all-targets --all-features

Closes #66

@alx-xo
alx-xo force-pushed the alexm/66-custom-session-names branch 4 times, most recently from b289993 to 6b5ceb6 Compare September 1, 2026 16:24

@kit-code-agent kit-code-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the persistent session display-name changes. Findings are attached inline.

Comment thread src/tui/app.rs
Comment thread src/session.rs Outdated
Comment thread src/tui/mod.rs
Comment thread src/session.rs Outdated
Comment thread src/session.rs
@alx-xo
alx-xo force-pushed the alexm/66-custom-session-names branch from 6b5ceb6 to f3dbc98 Compare September 1, 2026 21:11

@kit-code-agent kit-code-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found two TUI regressions affecting rename feedback and tiny-layout visibility.

Comment thread src/tui/mod.rs Outdated
Comment thread src/tui/ui.rs Outdated
@alx-xo
alx-xo force-pushed the alexm/66-custom-session-names branch from f3dbc98 to 6e771ee Compare September 2, 2026 19:02

@kit-code-agent kit-code-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found three regressions affecting transcript validation and memory use, plus TUI rename paste handling.

Comment thread src/session.rs Outdated
Comment thread src/session.rs Outdated
Comment thread src/tui/app.rs
@alx-xo
alx-xo force-pushed the alexm/66-custom-session-names branch from 6e771ee to 73c2d07 Compare September 2, 2026 19:43

@kit-code-agent kit-code-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The three previous findings are addressed. One remaining TUI paste edge case is attached inline.

Comment thread src/tui/app.rs
Store custom names in atomic workspace-scoped sidecars so renaming active sessions does not rewrite or lock transcripts.

Refs speakeasy-api#66
@alx-xo
alx-xo force-pushed the alexm/66-custom-session-names branch from 73c2d07 to f3c5d36 Compare September 2, 2026 19:55

@kit-code-agent kit-code-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found. The changes look good to merge.

@alx-xo
alx-xo merged commit 66ffb8d into speakeasy-api:main Sep 2, 2026
3 checks passed
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.

feat(sessions): support custom display names

1 participant