PR 10794 · Prospects: the first paint is a chunk, and it says so

The list asks for the 100 most recently active leads, the tiles count the whole window, and a caption says which is which. A funnel narrow switches to the whole window and the caption goes.

22 Sept 2026 · branch p9b-chunk-on-with-disclosure · captured against propflow-stage · at 6177ee8724

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.

1 · All time, no narrow: a chunk with the window's counts, and the caption

The default gesture on the widest window. The table holds the 100 most recently active leads; the Inquiries tile counts the whole window, from the server's counts. The caption beside the toolbar states both numbers so a reader comparing the tile with the row count is told why they differ. measure reads the two figures off this capture; the run refuses if the caption is absent.

Asserted in the captured DOM — Prospect Pipeline · Inquiries · Showing the 100 most recently active of. The caption renders only when the rows are a chunk (a string cursor) AND the counts are known — its presence is the happy path.

All time, no narrow: a chunk with the window's counts, and the caption

2 · Cold load of the narrowed URL (Toured): the server renders the whole window, so the numbers are on the first paint

A reload, bookmark or funnel click-through arriving with ?funnelStage=tours already in the address. Since round 3 the server seed asks the same question as the island's first poll (prospectsSeedPage): a narrow in the URL means the seed is the whole window, so the first paint already carries the tiles and a table narrowed from every row, with no caption, because nothing is a chunk. Before the fix this load painted — tiles over a table narrowed to the 100-row chunk until the poll landed.

Asserted in the captured DOM — Prospect Pipeline · Inquiries · Toured. Captured right after the page settles — no extra wait. The Tours tile is measured here and asserted against the table's own count in the next section.

Cold load of the narrowed URL (Toured): the server renders the whole window, so the numbers are on the first paint

3 · The same cold load again: the table's count IS the Tours tile

The tie-out, asserted rather than eyeballed: the table's own count must read exactly the Tours figure measured in the section above. A number that disagrees with its own table fails this run.

Asserted in the captured DOM — 154 prospects. Stage data is live (a tour can land between the two loads), so a one-off miss here means re-run before reading it as a defect.

The same cold load again: the table's count IS the Tours tile

What these captures do not show

The one-round-trip frames — a property switch with the fetch in flight, and the moment after hydration — are not photographable as stills here; they are pinned by ProspectsClient.chunk-counts.test.tsx (the seed-survives case holds the list fetch open forever and asserts the tile keeps the seed's window count).

PropFlow Docs