Repository navigation
test(reactions): provide stable emoji media for icon rendering - #2279
Merged
Merged
Conversation
serve successful fixture images and await decode before raster and hover checks so failed-image retries cannot reflow the pointer target. Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz>
kalvinnchau
marked this pull request as ready for review
November 3, 2026 18:07
wesbillman
reviewed
Nov 3, 2026
wesbillman
left a comment
Collaborator
There was a problem hiding this comment.
🤖 Carl, an automated reviewer, commenting via Wes's GitHub account.
No blockers. This uses the same stub-and-decode pattern as reaction previews center above each emoji bubble in the same file. That removes the failed-image reflow that cancels the resting-hover timer, and every geometry, screenshot and tooltip assertion stays intact. Comment-only review: approval is left to a human.
wesbillman
approved these changes
Nov 3, 2026
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 <drouleau@squareup.com> Co-authored-by: Codex <noreply@openai.com> # 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
…#2279) The icon-rendering journey leaves custom emoji media unstubbed. Vite returns HTML for those image URLs, so failed-image retries reflow the message under a stationary pointer and cancel the tooltip's resting-hover timer. Serve successful SVG media using the neighboring geometry test's fixture pattern and wait for the custom reaction image to decode before measuring. This changes only the affected test (+10 lines). Every existing fractional-pixel, geometry, screenshot and tooltip assertion remains. No production changes or browser cases added/removed. Image failure/recovery remains covered separately in `emoji.spec.mjs`. Evidence from failed main [run 41677024060](https://github.com/block/buzz-app/actions/runs/41677024060): all icon/pixel checks passed; only the tooltip assertion failed. A Linux native-event probe with CPU throttling reproduced the same failure (1 of 3 iterations). It recorded the pointer leaving Add reaction for a paragraph during failed-image retry, then re-entering without a mousemove, leaving no tooltip timer. The repaired case passed all five iterations under the same probe (38.2s). Validation: - Affected journey passed twice per engine on macOS (4/4, 24.3s). - `bin/pnpm test:browser tests/browser/reactions-polish.spec.mjs --project chromium --project webkit --no-deps --workers=1 --grep "add-reaction icon stays still"` - Final committed head `9b3326af8e069bd69385da9c4d9943927d6fc57f` passed both engines (2/2, 16.1s). - Commit/push hooks and diff checks passed; only affected tests run locally. Hosted CI supplies broad validation. Independent peon review found no actionable issues. Hosted run [41685392137](https://github.com/block/buzz-app/actions/runs/41685392137) passed all automatic checks at this exact head, including both browser repetition lanes. No merge authorized. The separately diagnosed rejected-Join ordering repair is block#2278. Signed-off-by: Kalvin Chau <kalvin@block.xyz> Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The icon-rendering journey leaves custom emoji media unstubbed. Vite returns HTML for those image URLs, so failed-image retries reflow the message under a stationary pointer and cancel the tooltip's resting-hover timer. Serve successful SVG media using the neighboring geometry test's fixture pattern and wait for the custom reaction image to decode before measuring.
This changes only the affected test (+10 lines). Every existing fractional-pixel, geometry, screenshot and tooltip assertion remains. No production changes or browser cases added/removed. Image failure/recovery remains covered separately in
emoji.spec.mjs.Evidence from failed main run 41677024060: all icon/pixel checks passed; only the tooltip assertion failed. A Linux native-event probe with CPU throttling reproduced the same failure (1 of 3 iterations). It recorded the pointer leaving Add reaction for a paragraph during failed-image retry, then re-entering without a mousemove, leaving no tooltip timer. The repaired case passed all five iterations under the same probe (38.2s).
Validation:
bin/pnpm test:browser tests/browser/reactions-polish.spec.mjs --project chromium --project webkit --no-deps --workers=1 --grep "add-reaction icon stays still"9b3326af8e069bd69385da9c4d9943927d6fc57fpassed both engines (2/2, 16.1s).Independent peon review found no actionable issues. Hosted run 41685392137 passed all automatic checks at this exact head, including both browser repetition lanes. No merge authorized. The separately diagnosed rejected-Join ordering repair is #2278.