Found during control-mode QA (ADR-0012).
Symptom
Single-Ctrl-C exit relabels the sidebar row live (e.g. claude → zsh). A rapid double-Ctrl-C exiting a running command leaves the row on the intermediate command name until the next terminal action (keystroke, focus, etc.) triggers a refresh.
Root cause (likely)
The live relabel rides on tmux %window-renamed / %window-pane-changed notifications → tree.refresh(). A double-Ctrl-C burst appears to fire the rename before tmux settles on the final pane command, so the refresh lands on the intermediate name and no further notification arrives to correct it.
What was tried (and reverted — did NOT fix)
e041576 trailing terminal refresh so a mid-refresh rename is not missed → reverted in b608972
d756692 debounce window-rename refresh so a Ctrl-C burst lands on settled name → reverted in 3591143
Both added complexity without fixing it, so they were backed out. Left as a minor edge case.
Notes
Cosmetic only — the row self-corrects on the next terminal interaction. Filing to track; low priority. If revisited, instrument the real %window-renamed timing via a raw tmux -C harness against the live -L deck socket and read ground-truth notification order before attempting another fix (per the QA process lesson).
Found during control-mode QA (ADR-0012).
Symptom
Single-Ctrl-C exit relabels the sidebar row live (e.g.
claude→zsh). A rapid double-Ctrl-C exiting a running command leaves the row on the intermediate command name until the next terminal action (keystroke, focus, etc.) triggers a refresh.Root cause (likely)
The live relabel rides on tmux
%window-renamed/%window-pane-changednotifications →tree.refresh(). A double-Ctrl-C burst appears to fire the rename before tmux settles on the final pane command, so the refresh lands on the intermediate name and no further notification arrives to correct it.What was tried (and reverted — did NOT fix)
e041576trailing terminal refresh so a mid-refresh rename is not missed → reverted inb608972d756692debounce window-rename refresh so a Ctrl-C burst lands on settled name → reverted in3591143Both added complexity without fixing it, so they were backed out. Left as a minor edge case.
Notes
Cosmetic only — the row self-corrects on the next terminal interaction. Filing to track; low priority. If revisited, instrument the real
%window-renamedtiming via a rawtmux -Charness against the live-L decksocket and read ground-truth notification order before attempting another fix (per the QA process lesson).