Unified topic page slice 2: the topic read store and history.replaceState. TEST company only.
1 Oct 2026 · branch settings-portfolio/topic-page-s2 · captured against propflow-stage · at 0c1fa31adc1+local
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
The Company tab loads, a TEST building is picked, then Company is clicked again. The Company column comes from the topic read store: no request goes out and no skeleton shows. A frame sampler started on the click event (scratch Playwright run against this branch's dev server, stage table, 3 runs) measured 0 GETs of any kind after the click (no settings read, and no route request: the tab moves the address with history.replaceState) and 0 of 60 frames with a skeleton in the Company tour-length row. In all 3 runs the row was absent when the click happened (the property frame was showing), so the click really swapped frames.
What still swaps: the page frame itself (the company and property shells are different trees until slice 1's single page lands). Their reads now come from the store too, so the swap no longer shows a ghost.
Asserted in the captured DOM — Tour length · Empty · uses PropFlow default · Set per property