You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feature]: Allow /rename while a turn is running #427
stop task
→ rename
→ lose/interfere with ongoing work
Neither is necessary for a metadata-only operation.
This should be a small UX improvement, but it matters because session naming often happens when the user suddenly gets a clearer idea of what the session has become.
The waiting itself can break that flow or make the user forget the title.
Core goal:
/rename should behave like harmless metadata editing, not like a runtime operation.
Thanks for the report — this is accepted as a feature request, and the /rename restriction while a turn is running is confirmed as current behavior.
Triage action: moved out of needs-triage and labelled enhancement + tui. It is in the candidate pool for a good first issue task once the change is scoped.
What we need from you to scope it (please reply with these three points):
Should /rename while a turn is running only rename the session title, or should it also be allowed to change the turn's working title in the transcript?
If a rename happens mid-turn, should the running turn's output be re-titled as well, or only subsequent turns?
Is there a case where you would expect /rename to be rejected even while a turn is running (for example, during an active tool call)?
We will reply within 48 hours. Note that contribution policy is moving from invitation-only to application-based; if you want to implement this yourself, a fork PR does not require collaborator access — open an issue describing the scope first so we can confirm it is not already being worked on.
Claiming this one if nobody has it — I have a local implementation and can answer your three scoping questions from the code:
Session title only. There is no separate working-title field on the turn, so a rename writes session metadata (cliService.updateSession({id, title})) and nothing else.
Neither. Already projected output is not re-titled, and later turns are unaffected — a metadata write does not rewrite the transcript projection.
No case needs rejection while a turn is genuinely running, including during an active tool call. I would keep two existing rejections: side conversations (rename stays out of SIDE_MODE_COMMANDS) and "no current session".
The patch keeps the three gates consistent, so the command does not become clickable-but-throwing: commands/catalog.ts (drop runAvailability: 'idle' for /rename only), controller/chat-controller.ts (drop assertNoActiveTurn('renaming a session'); archive/restore keeps its own), controller/product/feature-flow.ts (onRename no longer takes the live-navigation rejection; /sessions, /new and archive keep theirs).
One behavior change worth your review: updateState() cleared error unconditionally, so a mid-turn rename dropped the failure banner the running turn was showing — and /retry reads that same error to offer a resend. It now clears only when no in-process run is active.
Verified locally: tui-chat-controller, commands/catalog, command-flow, feature-flow, tui-keybindings, session-manager → 195 passed; tsc -p tsconfig.standalone.json clean. Not verified: Linux/macOS and a manual TUI session against a live model.
Also worth knowing before this is picked up: while a turn is stopping (cancelling/retiringTurnId/runtimeStopping), isAvailableWhileStopping admits only help/quit/stop, so /rename is refused there. I read "while a turn is running" as the normal-running case and left that window alone — say the word if you want it opened too.
Activity
hetaoBackend commentedon Oct 13, 2026
Thanks for the report — this is accepted as a feature request, and the
/renamerestriction while a turn is running is confirmed as current behavior.Triage action: moved out of
needs-triageand labelledenhancement+tui. It is in the candidate pool for agood first issuetask once the change is scoped.What we need from you to scope it (please reply with these three points):
/renamewhile a turn is running only rename the session title, or should it also be allowed to change the turn's working title in the transcript?/renameto be rejected even while a turn is running (for example, during an active tool call)?We will reply within 48 hours. Note that contribution policy is moving from invitation-only to application-based; if you want to implement this yourself, a fork PR does not require collaborator access — open an issue describing the scope first so we can confirm it is not already being worked on.
joshua-zyy commentedon Oct 14, 2026
Claiming this one if nobody has it — I have a local implementation and can answer your three scoping questions from the code:
cliService.updateSession({id, title})) and nothing else.SIDE_MODE_COMMANDS) and "no current session".The patch keeps the three gates consistent, so the command does not become clickable-but-throwing:
commands/catalog.ts(droprunAvailability: 'idle'for/renameonly),controller/chat-controller.ts(dropassertNoActiveTurn('renaming a session'); archive/restore keeps its own),controller/product/feature-flow.ts(onRenameno longer takes the live-navigation rejection;/sessions,/newand archive keep theirs).One behavior change worth your review:
updateState()clearederrorunconditionally, so a mid-turn rename dropped the failure banner the running turn was showing — and/retryreads that same error to offer a resend. It now clears only when no in-process run is active.Verified locally:
tui-chat-controller,commands/catalog,command-flow,feature-flow,tui-keybindings,session-manager→ 195 passed;tsc -p tsconfig.standalone.jsonclean. Not verified: Linux/macOS and a manual TUI session against a live model.Also worth knowing before this is picked up: while a turn is stopping (
cancelling/retiringTurnId/runtimeStopping),isAvailableWhileStoppingadmits only help/quit/stop, so/renameis refused there. I read "while a turn is running" as the normal-running case and left that window alone — say the word if you want it opened too.