Uh oh!
There was an error while loading. Please reload this page.
feat: generate session titles automatically (#1063) - #1199
Conversation
d1b1fbb to
557b262Compare
Astro-Han
left a comment
There was a problem hiding this comment.
The overall direction is sound, and the conditional storage write correctly protects persisted manual renames. The focused tests also cover asynchronous startup after the first persisted message, fallback behavior, and the storage-level rename race. I found two reliability issues to address and one terminal-title consistency issue.
Local focused verification: 454 passed, 1 skipped; the affected workspace builds also passed. The PR currently conflicts with the latest main.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
557b262 to
430d842CompareUh oh!
There was an error while loading. Please reload this page.
Summary
Closes#1063
Automatically gives new Desktop and CLI TUI conversations concise, model-generated titles without delaying or affecting the main response. Generation failures degrade to the first meaningful line of the user’s message, while manual renames always take precedence.
Beyond the issue scope, the TUI terminal title now follows the active session as
Title (Maka), including generated titles, manual renames, and resumed sessions.The canonical default session name was also consolidated to prevent Desktop, Runtime, Storage, and CLI behavior from drifting apart.
Existing conversations are intentionally not backfilled. Non-default historical names are preserved conservatively instead of risking replacement of user-created titles.
Verification
Automated test suites:
@maka/core: 1,073 passed@maka/storage: 352 passed, 1 skipped@maka/runtime: 2,122 passed, 5 skipped@maka/cli: 579 passed@maka/desktop: 2,697 passedManual verification:
New Chatto the generated title./sessionsdisplays generated titles.Review focus
Title generation starts only for a new, untouched session. The final write is conditional, so a delayed model response cannot overwrite a manual rename or emit a false UI refresh.
The feature uses the session’s selected connection and model, but does not inherit the conversation’s thinking level or add title-generation content to chat history.