put the previewed browser tab in the url

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 11:56:45 +00:00
co-authored by Claude Opus 5
parent 6c47cbeb74
commit 374140d3a6
7 changed files with 124 additions and 61 deletions
+12 -1
View File
@@ -667,7 +667,18 @@ All the same bug: an app guessing "am I being closed?" from an unmount, or payin
walk the sweep instead of leaving the mailbox. `EMAIL_FOLDER` stays a global for now: it is read in
one component and is view state rather than selection. Putting it in `?folder=` is a real but
separate item.
Remaining here: Music, Browser. **Chat detail (`chat:selected-session`) is chat-owned —
**Browser is done** — `/browser/:tabId`, `BROWSER_SELECTED_TAB` deleted from its three readers.
The audit had this one filed under "probably leave as selection", on the grounds that a CDP target
id dies with the browser session so a durable URL is dubious. That is an argument about
*bookmarking*, and bookmarking is the least of what the URL was buying: the id lived in an onClick
closure, three components shared a global, and a tab row could not be cmd-clicked. The staleness
the audit worried about is real and is now handled where it shows — the preview tells "no tab open"
from "that tab is no longer attached" by checking the polled target list, which both panels read
from one React Query key, so it costs no extra request. Two defects fell out on the way: the row's
Focus and Close buttons were nested inside the row `<button>` (invalid HTML, held together by two
`stopPropagation` calls — they are siblings of the anchor now), and "Set up in Integrations" was a
raw `<a href>` that reloaded the whole SPA.
Remaining here: Music. **Chat detail (`chat:selected-session`) is chat-owned —
leave it; it is written up in `COMMS/`.**
### 5.9 The context has grown an app-config section — _(found 2026-08-07)_