Repository navigation
fix(tui): close task tabs without trapping or replacing their chat - #1897
Merged
Merged
Conversation
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.
Problem and reproduction
With a conversation containing an active task-belt run:
Reproduced in the actual terminal application using the built-in demo conversation with an active plan, on base
a6b4f97d8. The original referenced screenshot was unavailable in the retrieved conversation; the diagnosis comes from live interaction and failing regression tests.Root cause and fix
The strip remembers its rendered list, including a synthetic
#worktab sharing its owner’s transcript. Conversation dismissal records that synthetic key, but run-tab generation ignores the dismissal. Conversation close fallback also accepts the synthetic entry as another conversation.Keep run views out of remembered conversation normalization and close fallback. Dismiss a run view independently, honor its dismissal on subsequent frames, and restore it when its task is explicitly opened again.
ctrl+won a selected run tab closes that view; the owning chat and work remain available. The manual documents this behavior.Validation
make pr-readypasses, including build, vet, manual/law checks, and all eight touched TUI test shards.make buildpasses.TAB LIFECYCLE OK; recorded main and auxiliary calls all used OpenRouterdeepseek/deepseek-v4.1-flashwith HTTP 200.The live terminal recording and before/after captures are preserved locally. Direct PR attachment upload is unavailable through the installed tools, so media is not attached; no evidence files are committed.