Skip to content

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

Open
alx-xo wants to merge 1 commit into
speakeasy-api:mainfrom
alx-xo:alexm/66-custom-session-names
Open

feat(sessions): add persistent display names#72
alx-xo wants to merge 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

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 from aa3b033 to 26b1971 Compare September 1, 2026 00:25
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 26b1971 to 6507339 Compare September 1, 2026 00:29
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