Atlas conversation focus — a long thread says it was cut

The detail route reads a thread's newest 200 messages; the Messages header says when older ones were not loaded.

1 Oct 2026 · branch p10-core-surfaces-atlas-message-cap · captured against propflow-stage · at 0bce81c0cd3

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 · A 205-message test thread, focused in Atlas (after the two critique rounds)

A synthetic thread on the sandbox TEST building, seeded with 205 messages for this capture and deleted after it. The route asks the data layer for the newest 200 only, so the oldest five are never read. The table starts at message 6, which is what the header says: the newest ones are shown and the older ones were not loaded.

The two critique rounds

Critique round 1 (first capture): the header read Messages — newest 200 shown, older ones not loaded with a count badge of 200. Two problems. The number appeared twice. Worse, the badge is documented as the block's TRUE size (FocusBlock.count: "so paginated/truncated blocks still show the true relation cardinality"), and here it claimed 200 for a 205-message thread. That is a real defect this PR introduced, so it was fixed in code: a block whose list was cut now marks its count as a lower bound and the badge reads 200+.

Critique round 2 (this capture): with the badge carrying the number, the title says what the list is, once: Messages — newest only, older ones not loaded · 200+. Plain staff wording, no internal names, and the first row (message 6) agrees with it. No further change.

Asserted in the captured DOM — Messages — newest only, older ones not loaded · 200+ · Fixture reply 204 of 205 · Fixture message 205 of 205. The header and the 200+ badge are asserted after the lazy detail fetch rendered; message 205 is present, so the block shows the NEWEST page, not the oldest.

A 205-message test thread, focused in Atlas (after the two critique rounds)
PropFlow Docs