Repository navigation
test: scope row menu placement checks to active section rows - #2493
Merged
Merged
Conversation
select exact sidebar section keys and exclude held inert exit copies from placement assertions while preserving menu and focus coverage. Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz> Signed-off-by: Kalvin Chau <[email protected]>
wpfleger96
approved these changes
Nov 4, 2026
kalvinnchau
marked this pull request as ready for review
November 4, 2026 22:23
delkc
added a commit
that referenced
this pull request
Nov 4, 2026
Bring in the sidebar test selector fix from #2493 without changing the /leave implementation. Co-authored-by: Buzzsaw <a760f3ee1dc0daf403313e35766d0d983a8898aaa9ca95a034727165c63a8680@claysworld.communities.buzz.xyz> Signed-off-by: Clay Delk <[email protected]>
johnmatthewtennant
added a commit
that referenced
this pull request
Nov 4, 2026
* origin/main: (38 commits) fix(browser): load scheme-less address input over https, falling back to http (#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) feat(identity): decide a missing backup choice from community membership (#2378) Offer Builderlab decisions in FI builds (#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) fix: exclude muted channels from sidebar unread scroll indicators (#2335) fix(claude-code): open long Claude transcripts a page at a time (#2428) feat(solo): share chats as view only (#2375) ...
damienrj
added a commit
to damienrj/buzz-app
that referenced
this pull request
Nov 4, 2026
…-clone-auth-ab8b97 * origin/main: fix(browser): load scheme-less address input over https, falling back to http (block#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (block#2486) fix(test): observe coordination transition events (block#2297) fix(profiles): keep the next view's profile reads through a shrink (block#2395) fix(channels): show Add and Send message errors above the Manage members list (block#2421) fix(threads): keep reply hooks off agent activity bubbles (block#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (block#2425) test: scope row menu placement checks to active section rows (block#2493) feat(relay): detach channel windows to a point in history (block#2042) Signed-off-by: damienrj <[email protected]>
wpfleger96
added a commit
that referenced
this pull request
Nov 4, 2026
…-nip-fi * origin/main: fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) # Conflicts: # src/app/IdentitySettings.test.tsx # src/app/IdentitySettings.tsx # src/app/Settings.tsx
wpfleger96
added a commit
that referenced
this pull request
Nov 4, 2026
…r-load-perf * origin/main: (31 commits) test: fix invitation and coordination checks on main (#2517) perf(search): name searched people from the profile search response (#2353) Use the merge queue for pull requests that require it (#2452) fix(browser): load scheme-less address input over https, falling back to http (#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) feat(identity): decide a missing backup choice from community membership (#2378) Offer Builderlab decisions in FI builds (#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) ...
michaelneale
added a commit
that referenced
this pull request
Nov 4, 2026
* origin/main: (31 commits) test: fix invitation and coordination checks on main (#2517) perf(search): name searched people from the profile search response (#2353) Use the merge queue for pull requests that require it (#2452) fix(browser): load scheme-less address input over https, falling back to http (#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) feat(identity): decide a missing backup choice from community membership (#2378) Offer Builderlab decisions in FI builds (#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) ... Signed-off-by: Michael Neale <[email protected]>
cheng-block
added a commit
to cheng-block/buzz-app
that referenced
this pull request
Nov 5, 2026
…punctuation * upstream/main: (78 commits) fix(plugins): read Square HTTPS sources with the Block SSH agent (block#2465) feat(plugins): let agents request plugin changes for owner review (block#2280) fix(messages): keep the hover toolbar while its menu is open (block#2439) feat(workflows): suggest channel members for @ in Send Message text (block#2309) AIDA-2344: Exclude muted channels from Dock (block#2313) feat(search): add slack-style message search operators on desktop (block#2463) test: fix invitation and coordination checks on main (block#2517) perf(search): name searched people from the profile search response (block#2353) Use the merge queue for pull requests that require it (block#2452) fix(browser): load scheme-less address input over https, falling back to http (block#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (block#2486) fix(test): observe coordination transition events (block#2297) fix(profiles): keep the next view's profile reads through a shrink (block#2395) fix(channels): show Add and Send message errors above the Manage members list (block#2421) fix(threads): keep reply hooks off agent activity bubbles (block#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (block#2425) test: scope row menu placement checks to active section rows (block#2493) feat(relay): detach channel windows to a point in history (block#2042) feat(identity): decide a missing backup choice from community membership (block#2378) Offer Builderlab decisions in FI builds (block#2227) ... Signed-off-by: Cheng Peng <[email protected]> # Conflicts: # docs/buzz-help.md
kazemek21
added a commit
that referenced
this pull request
Nov 5, 2026
## TL;DR Keep the “New messages” divider fixed during a channel visit, even as reading advances unread state or the timeline temporarily remounts. Capture one verified entry boundary rather than deriving it from the moving unread cursor. Fixes NEXUS-4082. ## How The existing message-visit owner records loaded row IDs, verified history completeness, the read-intent revision, and read evidence before the timeline mounts. Unresolved attention stays uncertain; later synchronization cannot redefine entry. The timeline captures one unread message ID and keeps it under that visit token. It checks evidence in chronological order only through that first unread row. Messages received during loading or an inline seek cannot become the entry boundary. If the entry boundary cannot be proved, omit the divider rather than guess. Read eligibility, focus requirements, membership checks, settled-reading dwell, and read-state writes remain with their existing owners. No new focus handoff or force-read operation is included. Normal guest-channel opening focus and Search Buzz dismissal belong to the human-owned [#2140](#2140); this PR neither implements nor depends on that change. ## Verification Snapshot `8219ae795` includes the merged [selector repair #2493](#2493). Blox passed root typecheck, touched-file Biome, design checks, and 830 tests across 16 complete affected files. All 58 browser cases passed in Chromium and WebKit across the complete `new-message-boundary`, `history-loading`, `activity-groups`, `activity-lifecycle`, and `navigation-row-menu` files, without skips or retries. All 39 selected source hashes match the uploaded snapshot and committed files; downloaded artifact digests match the receipt. The box was deleted. Current-head hosted CI is pending. The six later-row ordering cases failed before this repair, while six earlier-row controls passed. All 12 now pass: later unresolved evidence cannot suppress an earlier proven unread boundary. Unresolved or changed evidence at or before that boundary still prevents choosing it. The retained divider scope adds three browser scenarios (six engine cases), removing none. Browser-only coverage exercises real virtualizer geometry, keyboard scrolling, selection/copy, and signed delivery through the broker/store. The saved-offset regression previously failed with 32px drift in both engines; the original `<4px` tolerance is unchanged. The mounted ordering matrix stays in React Testing Library. No browser cases were added or removed by this repair. The remount fixture toggles timeline presentation under `MessageManagement`; it does not drive the real `ConversationTab` → `ChannelBody` inline-seek route. That wiring was source-traced only. Native WebView and live multi-device behavior remain unproven. Earlier opening-focus scope was withdrawn: its ten mounted cases and two width-based browser journeys (four engine cases) were removed, with `ChannelsPage.tsx` and `channel-permissions.spec.mjs` restored to base. Those cases covered the withdrawn focus behavior, not this divider. No replacement focus proof is claimed. Historical synthetic screenshots at `993af5f` (not current-head native verification). Before the boundary.  After the boundary.  After channel revisit, with grouped messages.  Narrow, dark view with larger text.  ## Limits The divider stays absent for the whole visit when history was incomplete or unverified at entry, even if older rows load later. It may also be absent if entry membership or evidence at or before the first unread row cannot be proved. Read-intent changes or changed evidence needed to locate the boundary before capture conservatively omit it. Uncertainty in a later row no longer suppresses an earlier proven unread boundary. A visible read/unread transition cannot exclude older unread messages, and delayed rows cannot establish entry membership. A read change in another channel while entry awaits evidence can also suppress the divider for this visit. Entry reconciliation can clear a prior message-force marker and advance the same global revision. The public API does not expose a target-specific entry set or mutation cause. This PR retains that conservative guard; focused tests preserve the omission and verify the affected messages remain unread. The original live #announcements unread report remains unproved. Private screenshots did not establish its channel role or focus state and are not published. This divider-only change claims no confirmed fix for that incident. Native WebView was not exercised. ## Coordination Based on main, including the merged held-reader resize and fixture repairs. Keeps the existing unread/relay owners and does not expand their APIs. The opening-focus overlap was removed rather than creating a competing owner or an ordering dependency on #2140. — Generated with Codex (gpt-6.1-sol) on behalf of kylez. Signed-off-by: Kyle Zemek <[email protected]> Co-authored-by: Codex <[email protected]>
dr0uleau
added a commit
that referenced
this pull request
Nov 5, 2026
## Why The Solo owner journey reaches the 120-second test deadline on [hosted Linux WebKit](https://github.com/block/buzz-app/actions/runs/41915404658/job/126874187269). Its last enabled-state assertion gets only 653 ms of its 10-second budget. ## What Separate access saves and reloads from confirmation checks for joined viewers and existing Public chats. Keep every assertion and all four theme/layout presentations. Keep both engines, timeouts, and zero retries. ## How Each scenario gets fresh keys, relay state, storage, and a browser context. Worker builds remain shared. The save case checks eight signed edits. The confirmation case checks that cancellation sends no publications. Browser layout, focus, reload, and production broker wiring remain covered. No cases move to a lower layer. ## Risk Only one browser test file changes: +33/-4 lines. Production code stays unchanged. The file gains one case per engine and one fixture setup per engine. ## Testing On macOS arm64 Blox, run `bin/pnpm test:browser tests/browser/solo-public-access.spec.mjs --project chromium --project webkit --no-deps --workers=2`. | Evidence | Base `f51ecb16b` | Head `3232b3d80` | | --- | ---: | ---: | | Cases passed | 6 | 8 | | Elapsed time | 1.0 min | 61.94 s | | Sum of case durations | 113.4 s | 114.0 s | | Slowest case | 39.5 s | 23.6 s | | Worker build setup | 2.60 / 2.87 s | 2.46 / 2.64 s | The two owner cases take 21.9 / 16.3 s in Chromium and 23.6 / 15.2 s in WebKit. Temporarily remove the retained-access warning from `ChannelGeneralAccess`: the moved confirmation assertion fails in both engines with the missing warning. Restore the source byte for byte; the clean head passes all eight cases. Independent agent review finds no blockers. `sq agents review "origin/main...HEAD"` rejects the range before review starts because routine dispatch does not support custom ranges. Local hooks and formatting pass. CI discovery confirms that every functional case remains selected exactly once. The broader integration run has one local setup failure; its focused rerun passes. The full rerun has the same setup failure (exit 11); its cause remains open. [Hosted Linux validation](https://github.com/block/buzz-app/actions/runs/41920447002) passes the Solo file. The WebKit shard passes all 70 cases in 420.0 s, with 770.1 s of summed execution. The Solo file takes 128.6 s in total; its owner cases take 47.4 and 37.3 s. Ten repeated runs pass all 40 cases in each engine, without retries. Chromium takes 549.5 s elapsed / 1018.0 s summed execution; its slowest case takes 37.0 s. WebKit takes 1011.4 s elapsed / 1916.3 s summed execution; its slowest case takes 74.7 s. These runs establish bounded evidence on this head, not absence of all flakes. The base includes [the navigation test fix](#2493). At rebased head `0b5bd598f`, all eight focused cases pass on macOS arm64 Blox in 61.85 s. The test diff matches the reviewed commit byte for byte. All hosted checks pass on rebased head `0b5bd598f`. The local integration setup failure remains open; hosted integration passes on the earlier snapshot. The author waives the human test for this test-only PR. Agent review and both-engine validation are complete. No native app or real-account flow runs. No Keychain prompt occurs. buzz-review-completed Generated with Codex Signed-off-by: Daniel Rouleau <[email protected]> Co-authored-by: Codex <[email protected]>
ravarora2
added a commit
that referenced
this pull request
Nov 5, 2026
## Why People cannot delete workflows created by agents they own, leaving obsolete scheduled automation outside their control. Fixes [AIDA-2393](https://linear.app/squareup/issue/AIDA-2393). ## What Allow a verified agent owner to delete the agent’s workflow using the human’s signing identity, including with the channel’s Guest role. Editing, enabling and running remain author-only. Find agent-authored workflows under **Owner → All channel workflows**. ## How Reuse cryptographically verified ownership through the UI, command validation and the final check before publication. Both signing hosts admit only canonical workflow deletes; the relay authorizes ownership. Keep uncertain deletions visible and recoverable without automatic replay. Refresh permissions on profile, access and session changes. Report confirmation-time refusal through the existing error surfaces, retain the editor draft, and explain disabled Delete actions accessibly. The read-only browser journey checks the menu, explanation and keyboard focus behavior. No browser cases were added or removed. ## Risk This changes a destructive permission boundary. **Do not merge or ship until the target relay is confirmed to include [block/buzz#7735](block/buzz#7735 Older relays may accept deletion without stopping scheduled execution. The deployed SHA remains unverified. Removing profile ownership proof revokes app permission but does not clear the relay’s first-write-wins owner record. Guest deletion was confirmed against a local relay; the reviewer also independently verified WebSocket deletion and restart cleanup, then [withdrew the channel-gate finding](#2281 (comment)). This does not establish channel-scoped-token compatibility. ## Testing At the prior published head `3928a5686`, all 41 executed hosted checks passed, including **CI required**; Windows native validation and the unselected browser flake lane were skipped. Main’s [#2493](#2493) fixed the independent sidebar test failure. Rebased onto main `b62173845` at `6d323d1a4`; all four feature patches are unchanged. Local TypeScript, 122 workflow regression tests, 16 browser-host broker tests, and 72 Chromium/WebKit browser checks passed. The initial concurrent unit run hit two editor-test timeouts; the complete five-file serial rerun passed with unchanged assertions and limits. No test cases, retries or timeouts were removed or relaxed. Design, Clippy and machine push-policy checks passed. The broad affected-unit pre-push lane remains excluded under the author’s earlier instruction; no full local unit pass is claimed. The first hosted attempt failed before tests in ten jobs because pnpm release downloads returned HTTP 504. All ten failure logs confirm that cause. After the run finished, a failed-jobs rerun was accepted and attempt 2 is in progress; the rebased head is not yet hosted-green. Earlier real-session checks against local relay `d44031f41` confirmed owner deletion, unrelated-user rejection, fresh definition removal and scheduled execution stopping. These checks do not verify the production deployment. ## Before merge - Confirm the target relay contains #7735. - Obtain human native-app acceptance: delete a disposable own-agent workflow through **All channel workflows**, reload and confirm removal; verify an unrelated agent’s workflow stays protected. Human acceptance is unconfirmed. The existing PR ready state is preserved; this description does not attest merge readiness. Generated with Codex --------- Signed-off-by: Ravneet Arora <[email protected]> Co-authored-by: BuzzPRReviewAssistant1 <a581a7e8115222acdc32ffb14bfce55d48c24478d98e155f8eba126b69b83c7b@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 row-menu lifetime journey fails in Chromium and WebKit after the new Team sidebar section: the descendant-summary filter matches Team as well as Starred, so the placement assertion sees both the active Starred row and the deliberately retained inert Work exit copy. This repeats on newer main
ccf922bd503961341d761eab7b84f393f3ef615c.Select the exact Work/Starred section keys and reuse the existing active-row selector for all placement assertions, including the return to Work. Preserve the held exit animation, portal closure, inertness, focus recovery and menu resurrection assertions. One test file; no product changes, cases added/removed, timeout changes or retries.
Validation: the affected case failed before and passed after in both engines locally on macOS. Final commit
0fae6538b47c430ff9bad88f1bc2e8af976b5152passed 1/1 per engine usingbin/pnpm test:browser --project chromium --project webkit --no-deps --workers=1 navigation-row-menu.spec.mjs --grep "does not resurrect"(15.6 s total). Mandatory hooks passed; broader validation is delegated to hosted CI. The production frontend/broker fixture uses disposable identity/state and modeled upstream; native and real-relay behavior were not exercised. Human acceptance has not been observed.Original failure: https://github.com/block/buzz-app/actions/runs/41913145972 (main
6997a5844a9c7bb62084dfbf949bb0aba2e260dc). Both trace DOMs show one active row and one inert, aria-hidden exit copy.Hosted result: https://github.com/block/buzz-app/actions/runs/41917945627 passed at
0fae6538b47c430ff9bad88f1bc2e8af976b5152; CI required succeeded at 2026-11-04 21:50:55 UTC. All 23 browser journey shards passed, including the affected Chromium shard (131/131) and WebKit shard (81/81). Affected-case hosted repetitions passed 10/10 per engine. Independent agent review found no actionable defects. The PR remains draft; human acceptance has not been observed.