52bac070cefb53e5efbc598f78a7285ae7da0455
`label ?? override ?? route` made a typed tab name permanent. That is right for navigation — you named the window to find it again — and wrong the moment you rename the conversation itself: the tab kept the old name, and kept it across reloads, because the stale one is in sessionStorage. The rename looked like it had failed. Both are deliberate acts, so the newer wins. The hard part is telling a rename from ordinary navigation: from the outside, "same conversation, new title" and "different conversation, different title" are the same event — a changed override. Clearing the tab name on any change would have wiped it every time you clicked a chat. So the override now carries the id of the thing it names. Same id with a new title is a rename and drops the tab name; a new id is navigation and leaves it alone. The alternative was to have the panel clear the label directly, which needs a QueryClient dragged across the workspace boundary the bridge exists to avoid — the shell owns the tab name, so the shell decides when to drop it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
42 MiB
Languages
TypeScript
90.9%
Shell
4.7%
JavaScript
4.1%
CSS
0.2%
HTML
0.1%