Skip to content

test(browser): wait for link hit-testing after thread close - #2792

Merged
kalvinnchau merged 1 commit into
mainfrom
fix/ci-buzz-link-preview-42211679272
Nov 6, 2026
Merged

kalvinnchau merged 1 commit into
mainfrom
fix/ci-buzz-link-preview-42211679272

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

After closing a linked thread, the Buzz-links browser journey can attempt hover while the timeline is still re-measuring. In main CI run 42211679272, Playwright first reported a transient header interception, then retried by scrolling 52px. Hover returned while Virtua disabled pointer events, and the message preview never appeared.

Wait through rendering updates and geometry quiescence after thread close, then use the existing raw-pointer hoverRow helper. The helper now waits until the target's centre actually hit-tests before moving, avoiding locator-driven scroll retries. All preview and navigation assertions remain. No production code changes; no browser cases added or removed. The browser is necessary to exercise real layout, native hit-testing, virtualized scroll suppression and pointer hover.

Validation:

  • Affected journey passed in Chromium and WebKit on macOS against the actual app and production broker with modeled upstream and disposable identities. Command: bin/pnpm test:browser --project chromium --project webkit --no-deps --workers=1 tests/browser/buzz-links.spec.mjs --grep "Buzz channel and message links render".
  • Local WebKit execution: unchanged fd21dba4 6.4s; final patch on 3bcf1c4bb 7.0s. These single samples are functional evidence, not a performance conclusion. Two-engine final run: 24.0s total including setup. No full suite run manually.
  • Independent agent review: no findings, minimalness/elegance/correctness 9/9/9. Biome clean. Hosted CI run 42217234172 succeeded on 29ab2377c: 58 successful jobs, 2 skipped, all 23 journey shards and all 22 browser repetition lanes green. The affected case passed 10/10 per engine; regular WebKit shard 81/81.
  • The unchanged hosted WebKit7 retry passed the affected case in 26.4s, 81/81 in the shard. That establishes intermittency, not proof of the proposed repair. The separate missing PageNavigation.passThrough fixture was repaired by merged test(channels): complete the context navigation fixture #2783 and is inherited from main.

Limits: a later re-measure can still happen after the final hit-test check or pointer move; the existing preview assertion continues to catch that. Local Linux reproduction was unavailable because Docker Desktop requires organization sign-in. The original hosted failure was not reproduced locally. Native and human acceptance were not observed. The PR remains draft. Hosted Linux checks passed; the residual late-layout window is not claimed eliminated.

settle deferred timeline measurements before pointer entry and check the
target centre before moving without locator-driven scroll retries.
preserve preview assertions and document the remaining late-layout window.

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 6, 2026 15:42
@kalvinnchau
kalvinnchau requested a review from a team as a code owner November 6, 2026 15:42

@wpfleger96 wpfleger96 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

🤖 polling elementFromPoint at the target's centre is the right signal here: it waits out both the header covering the link and Virtua's pointer-events hold, and hoverRow never scrolls, so the retry that restarted the hold is gone. nonblocking: the description still says "The PR remains draft" but it's ready for review

@kalvinnchau
kalvinnchau merged commit a58e604 into main Nov 6, 2026
63 checks passed
@kalvinnchau
kalvinnchau deleted the fix/ci-buzz-link-preview-42211679272 branch November 6, 2026 16:12
wpfleger96 added a commit that referenced this pull request Nov 6, 2026
…leanup

* origin/main:
  test(mentions): serve the mentions fixture as a build so cold loads fit (#2776)
  test(browser): let a late publication land after its page closed (#2565)
  test(relay): wait for the verified owner before a guest edits an agent (#2413)
  test: wait for the companion default width measurement (#2750)
  test(browser): preserve conversation scroll while revealing actions (#2715)
  test(browser): wait for link hit-testing after thread close (#2792)
  perf(messages): skip micromark for plain prose bodies (#2780)
  perf(inbox): load the emoji name table on first use (#2774)
  perf(messages): cut main-thread work while a busy channel is open (#2729)
  Refine agent Attention cards, watch details, and status controls (#2717)
  fix(bestie): remove a Bestie from its agent card on any device (#2720)
  feat(agents): preview Builderlab agent card links with Add to Buzz (#2719)
tlongwell-block added a commit that referenced this pull request Nov 6, 2026
Co-authored-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Co-authored-by: Tyler Longwell <[email protected]>
Signed-off-by: Tyler Longwell <[email protected]>

* origin/main:
  test(messages): wait for the row measurement frame before thread catch-up dwell (#2837)
  Keep agent coordination history readable after work finishes (#2454)
  test(mentions): serve the mentions fixture as a build so cold loads fit (#2776)
  test(browser): let a late publication land after its page closed (#2565)
  test(relay): wait for the verified owner before a guest edits an agent (#2413)
  test: wait for the companion default width measurement (#2750)
  test(browser): preserve conversation scroll while revealing actions (#2715)
  test(browser): wait for link hit-testing after thread close (#2792)
  perf(messages): skip micromark for plain prose bodies (#2780)
  perf(inbox): load the emoji name table on first use (#2774)
  perf(messages): cut main-thread work while a busy channel is open (#2729)
  Refine agent Attention cards, watch details, and status controls (#2717)
  fix(bestie): remove a Bestie from its agent card on any device (#2720)
  feat(agents): preview Builderlab agent card links with Add to Buzz (#2719)
  Restore macOS Cmd-W window closing when no tab handles it (#2443)
  Make agent transcripts quieter and link finished replies to activity (#2424)
johnmatthewtennant added a commit that referenced this pull request Nov 6, 2026
…ve-enter

* origin/main: (21 commits)
  Make drafts and sent part of Messages (#2728)
  fix(canvas): render every Canvas within the save limit (#2839)
  test(messages): wait for the row measurement frame before thread catch-up dwell (#2837)
  Keep agent coordination history readable after work finishes (#2454)
  test(mentions): serve the mentions fixture as a build so cold loads fit (#2776)
  test(browser): let a late publication land after its page closed (#2565)
  test(relay): wait for the verified owner before a guest edits an agent (#2413)
  test: wait for the companion default width measurement (#2750)
  test(browser): preserve conversation scroll while revealing actions (#2715)
  test(browser): wait for link hit-testing after thread close (#2792)
  perf(messages): skip micromark for plain prose bodies (#2780)
  perf(inbox): load the emoji name table on first use (#2774)
  perf(messages): cut main-thread work while a busy channel is open (#2729)
  Refine agent Attention cards, watch details, and status controls (#2717)
  fix(bestie): remove a Bestie from its agent card on any device (#2720)
  feat(agents): preview Builderlab agent card links with Add to Buzz (#2719)
  Restore macOS Cmd-W window closing when no tab handles it (#2443)
  Make agent transcripts quieter and link finished replies to activity (#2424)
  fix(channels): wrap unread conversation stepping around the sidebar (#2682)
  fix(navigation): let bare buzz:// open Buzz without a broken-link notice (#2718)
  ...
ravarora2 added a commit that referenced this pull request Nov 6, 2026
Co-authored-by: BuzzPRReviewAssistant1 <a581a7e8115222acdc32ffb14bfce55d48c24478d98e155f8eba126b69b83c7b@buzz.block.builderlab.xyz>

* origin/main: (71 commits)
  test(activity): scope preview assertions to the request row (#2843)
  perf(search): fold people names once across palette keystrokes (#2570)
  fix(github): keep PR watches running when localStorage is full (#2699)
  Make drafts and sent part of Messages (#2728)
  fix(canvas): render every Canvas within the save limit (#2839)
  test(messages): wait for the row measurement frame before thread catch-up dwell (#2837)
  Keep agent coordination history readable after work finishes (#2454)
  test(mentions): serve the mentions fixture as a build so cold loads fit (#2776)
  test(browser): let a late publication land after its page closed (#2565)
  test(relay): wait for the verified owner before a guest edits an agent (#2413)
  test: wait for the companion default width measurement (#2750)
  test(browser): preserve conversation scroll while revealing actions (#2715)
  test(browser): wait for link hit-testing after thread close (#2792)
  perf(messages): skip micromark for plain prose bodies (#2780)
  perf(inbox): load the emoji name table on first use (#2774)
  perf(messages): cut main-thread work while a busy channel is open (#2729)
  Refine agent Attention cards, watch details, and status controls (#2717)
  fix(bestie): remove a Bestie from its agent card on any device (#2720)
  feat(agents): preview Builderlab agent card links with Add to Buzz (#2719)
  Restore macOS Cmd-W window closing when no tab handles it (#2443)
  ...

Signed-off-by: Ravneet Arora <[email protected]>
cheng-block added a commit to cheng-block/buzz-app that referenced this pull request Nov 6, 2026
…ime-hint

* upstream/main: (26 commits)
  Make drafts and sent part of Messages (block#2728)
  fix(canvas): render every Canvas within the save limit (block#2839)
  test(messages): wait for the row measurement frame before thread catch-up dwell (block#2837)
  Keep agent coordination history readable after work finishes (block#2454)
  test(mentions): serve the mentions fixture as a build so cold loads fit (block#2776)
  test(browser): let a late publication land after its page closed (block#2565)
  test(relay): wait for the verified owner before a guest edits an agent (block#2413)
  test: wait for the companion default width measurement (block#2750)
  test(browser): preserve conversation scroll while revealing actions (block#2715)
  test(browser): wait for link hit-testing after thread close (block#2792)
  perf(messages): skip micromark for plain prose bodies (block#2780)
  perf(inbox): load the emoji name table on first use (block#2774)
  perf(messages): cut main-thread work while a busy channel is open (block#2729)
  Refine agent Attention cards, watch details, and status controls (block#2717)
  fix(bestie): remove a Bestie from its agent card on any device (block#2720)
  feat(agents): preview Builderlab agent card links with Add to Buzz (block#2719)
  Restore macOS Cmd-W window closing when no tab handles it (block#2443)
  Make agent transcripts quieter and link finished replies to activity (block#2424)
  fix(channels): wrap unread conversation stepping around the sidebar (block#2682)
  fix(navigation): let bare buzz:// open Buzz without a broken-link notice (block#2718)
  ...

Signed-off-by: Cheng Peng <[email protected]>
Co-authored-by: Cursor <[email protected]>
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