Skip to content

test(unread): prevent startup catch-up in receipt reserve journey - #2274

Merged
wesbillman merged 1 commit into
mainfrom
fix/receipt-reserve-ci
Nov 3, 2026
Merged

wesbillman merged 1 commit into
mainfrom
fix/receipt-reserve-ci

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

The receipt reserve journey can let startup focus earn the real 300 ms bottom catch-up before it records its individual receipt. The failed WebKit trace already contains activity:Alpha = 1700000119, so the unread owner correctly skips the redundant message frontier and the test times out before applying pressure.

Move the existing holdReadingFocus call before initial navigation. It now prevents automatic catch-up during startup and reload. Product code, pressure volume, publication checks, durable reserve assertions, and reload assertions are unchanged. No browser cases added or removed; this existing case covers real app reading, IndexedDB persistence, and reload.

Validation:

  • Failed main: 10900108b4b18919eb50f687c6731cb827ef5297, run 41676688487, WebKit job 126059918324. Shard: 69 passed, 1 failed; 543.9 s wall, 1031.2 s summed execution. Failing case: 29.8 s; slowest case: 38.2 s.
  • macOS WebKit at the failed SHA: unmodified case passed once (33.9 s). A diagnostic variant explicitly waited for bottom catch-up before the original observation and reproduced the same missing-frontier failure (16.7 s).
  • With the repair, a temporary diagnostic advanced the browser clock by 1 second after open; the entire affected case passed in Chromium (47.8 s) and WebKit (35.8 s). Diagnostic code is excluded from this PR. These local runs are not hosted timing comparisons.
  • Final head 497d3015b6ba4d59789ef7dc6400478c04eff836: affected case passed twice in WebKit (34.1/34.4 s) and twice in Chromium with an isolated output directory (43.8/44.4 s). Command: bin/pnpm test:browser tests/browser/unread.spec.mjs --project chromium --no-deps --workers=1 --grep "a viewport receipt survives" --repeat-each=2 --output <isolated-directory>; preceding WebKit selection used the same case filter and repeat count.
  • An overlapping reviewer invocation initially deleted a Chromium repetition's trace output during teardown, producing ENOENT for trace/ZIP files after its assertions completed. That failed run is excluded from passing evidence; the isolated Chromium repetitions passed afterward.
  • Only the affected test ran locally. Hosted CI 41681273087 passed at the final head; CI required completed successfully at 2026-11-03 17:22:03 UTC. All 23 browser journey shards and changed-journey repetition jobs in both engines passed. Independent review approved with no findings; minimalness, elegance, and correctness each scored 10/10.

Draft; no human/native acceptance observed. Native behavior is unchanged.

hold reading focus before initial navigation so bottom dwell cannot replace the individual receipt before pressure is applied.

Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: Kalvin Chau <[email protected]>
@kalvinnchau
kalvinnchau marked this pull request as ready for review November 3, 2026 18:07
@kalvinnchau
kalvinnchau requested a review from a team as a code owner November 3, 2026 18:07

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Carl, an automated reviewer, commenting via Wes's GitHub account.

No blockers. holdReadingFocus is an init script (tests/browser/reading.mjs:4), so calling it before open covers startup as well as reload. That matches the existing startup hold at unread.spec.mjs:132. Nothing between open and reload relies on focus reading, because the isolated read and the Beta pressure both go through reading.observe. Comment-only review: approval is left to a human.

@wesbillman
wesbillman merged commit 47e5903 into main Nov 3, 2026
41 checks passed
@wesbillman
wesbillman deleted the fix/receipt-reserve-ci branch November 3, 2026 18:52
dr0uleau added a commit that referenced this pull request Nov 3, 2026
* commit '05fba2455':
  feat(agents): show each session's system prompt and dividers in activity (#1855)
  feat(bestie): hourly check-ins from your Bestie (#2037)
  Authorize local apps to use Buzz MCP tools (#2211)
  feat(bestie): choose the private channels Bestie can read (#2036)
  Polish message actions, spacing, and membership notices (#2258)
  test(unread): prevent startup catch-up in receipt reserve journey (#2274)
  test(search): wait for rejected join clearance to settle (#2278)
  test(reactions): provide stable emoji media for icon rendering (#2279)
  feat(profiles): reserve profile room for an open channel's roster (#2269)

Signed-off-by: Daniel Rouleau <[email protected]>
Co-authored-by: Codex <[email protected]>

# Conflicts:
#	src/bundled/codex/runtime.ts
ljknight added a commit to ljknight/buzz-app that referenced this pull request Nov 3, 2026
…ection

* origin/main: (39 commits)
  Authorize local apps to use Buzz MCP tools (block#2211)
  feat(bestie): choose the private channels Bestie can read (block#2036)
  Polish message actions, spacing, and membership notices (block#2258)
  test(unread): prevent startup catch-up in receipt reserve journey (block#2274)
  test(search): wait for rejected join clearance to settle (block#2278)
  test(reactions): provide stable emoji media for icon rendering (block#2279)
  feat(profiles): reserve profile room for an open channel's roster (block#2269)
  feat(host): harden byte lifecycle and add protected image upload (block#2199)
  Updated onboarding (block#2183)
  perf(relay): read each signed roster once in large channels (block#2244)
  AIDA-2346: Keep spoilers hidden in reminder previews (block#2261)
  fix: AIDA-2371 Keep sidebar selection pill aligned during resize (block#2182)
  fix(relay): skip background rereads of profiles a read found absent (block#2147)
  fix: prevent startup logo selection (block#1823)
  fix(agents): send sign-in evidence with agent Git credentials (block#2240)
  perf(mentions): stop scanning every member on each mention keystroke (block#2246)
  fix(attachments): send image dimensions so previews don't shift (block#2262)
  feat(shortcuts): add Slack-style hotkeys (block#2170)
  perf(plugins): share host request clients across calls (block#2243)
  fix(identity): keep federated sessions and agent grants in one keychain item (block#2225)
  ...

# Conflicts:
#	src/features/messages/ThreadPanel.tsx
arividar pushed a commit to minniai/minni-buzz-app that referenced this pull request Nov 4, 2026
…ock#2274)

The receipt reserve journey can let startup focus earn the real 300 ms
bottom catch-up before it records its individual receipt. The failed
WebKit trace already contains `activity:Alpha = 1700000119`, so the
unread owner correctly skips the redundant message frontier and the test
times out before applying pressure.

Move the existing `holdReadingFocus` call before initial navigation. It
now prevents automatic catch-up during startup and reload. Product code,
pressure volume, publication checks, durable reserve assertions, and
reload assertions are unchanged. No browser cases added or removed; this
existing case covers real app reading, IndexedDB persistence, and
reload.

Validation:

- Failed main: `10900108b4b18919eb50f687c6731cb827ef5297`, [run
41676688487](https://github.com/block/buzz-app/actions/runs/41676688487),
WebKit job 126059918324. Shard: 69 passed, 1 failed; 543.9 s wall,
1031.2 s summed execution. Failing case: 29.8 s; slowest case: 38.2 s.
- macOS WebKit at the failed SHA: unmodified case passed once (33.9 s).
A diagnostic variant explicitly waited for bottom catch-up before the
original observation and reproduced the same missing-frontier failure
(16.7 s).
- With the repair, a temporary diagnostic advanced the browser clock by
1 second after open; the entire affected case passed in Chromium (47.8
s) and WebKit (35.8 s). Diagnostic code is excluded from this PR. These
local runs are not hosted timing comparisons.
- Final head `497d3015b6ba4d59789ef7dc6400478c04eff836`: affected case
passed twice in WebKit (34.1/34.4 s) and twice in Chromium with an
isolated output directory (43.8/44.4 s). Command: `bin/pnpm test:browser
tests/browser/unread.spec.mjs --project chromium --no-deps --workers=1
--grep "a viewport receipt survives" --repeat-each=2 --output
<isolated-directory>`; preceding WebKit selection used the same case
filter and repeat count.
- An overlapping reviewer invocation initially deleted a Chromium
repetition's trace output during teardown, producing ENOENT for
trace/ZIP files after its assertions completed. That failed run is
excluded from passing evidence; the isolated Chromium repetitions passed
afterward.
- Only the affected test ran locally. [Hosted CI
41681273087](https://github.com/block/buzz-app/actions/runs/41681273087)
passed at the final head; `CI required` completed successfully at
2026-11-03 17:22:03 UTC. All 23 browser journey shards and
changed-journey repetition jobs in both engines passed. Independent
review approved with no findings; minimalness, elegance, and correctness
each scored 10/10.

Draft; no human/native acceptance observed. Native behavior is
unchanged.

Signed-off-by: Kalvin Chau <[email protected]>
Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants