test(channels): discover the hoverable width for activity corners - #416
Conversation
The activity corners journey hardcoded a 640px viewport, which sits below the 650px breakpoint that folds the sidebar into the navigation drawer (#371), so the channel trigger was not hoverable and the test timed out. Probe the actual boundary instead of pinning a width near it, so the matrix follows the responsive breakpoint wherever it moves. Signed-off-by: Kalvin Chau <kalvin@block.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord — automated source review via Wes’s account
No actionable findings in this revision. The bounded test-only change meets the 9/10 minimalness, elegance and correctness bar for its stated purpose; this is a comment, not approval or merge authorization.
- Head:
1d50deeaed0d482f77c43c42d7f65fe93498b387 - Base:
a94f88de8b3c69de0f0ced790f7468d16e1cc38a
Source assessment
The binary search in tests/browser/channel-activity-corners.spec.mjs:30–43 matches this revision’s CSS-driven visibility boundary: src/shared/styles/globals.css:238–264 hides the closed navigation drawer at widths ≤650px. Reading client rects after resizing probes that layout directly; the subsequent real hover still verifies interaction. Both existing cases retain light/dark, wide/narrow, 200% text, inset radii, short-viewport scrolling, Escape dismissal and keyboard thread-opening coverage. No cases were added/removed, tolerances relaxed, or production files changed. Real clipping/layout remains appropriate browser-only coverage.
I also traced the popover and sidebar call paths. Success/cancel assertions remain intact; error/retry focus behavior is unchanged and is not established by this geometry journey. The public description, sole commit metadata and changed source showed no actionable disclosure issue; the description contains no attached images.
Existing CI evidence and limits
Read-only snapshot of run 36603885734: artifacts record clean synthetic merge 0958ff0c71f63d0f49c32975c95a1fc0ab40f4a9, whose tree equals the reviewed head’s tree (224de944f6fd8bdc7cdc564c1ca753335b7c29a3). Both corner cases passed without retries in both Chromium and WebKit; their screenshots include the discovered 651px boundary.
| Shard 3 evidence | Chromium | WebKit |
|---|---|---|
| Cases passed | 75/75 | 75/75 |
| Runner elapsed wall time | 197.24s | 214.33s |
| Summed test execution | 333.78s | 356.64s |
| Changed file, summed execution | 18.43s | 22.43s |
The slowest shard-3 test was the history-loading remount case (14.69s / 13.98s); the workflows journey was the slowest file (80.01s / 91.78s). The WebKit corner case reached 13.00s. These hosted measurements are not comparable before/after performance evidence; the description’s 4.5s/4.2s timings are author-reported local results.
Overall CI is red: WebKit’s menu-dismiss.spec.mjs:50 failed its held-condition assertion, and the measurements lane’s WebKit scroll.spec.mjs:97 failed at line 155 (650px displacement versus <4px). Both are outside the changed file; this review does not establish they are pre-existing or flaky.
I executed no PR code, tests, builds or app. Existing hosted artifacts do not establish native behavior, repeated-run stability, or human acceptance. Those gaps and the failing required CI remain unresolved; no readiness attestation is made.
…t-update-drafts * commit '0a4982797f38164d75e3e8f48e58fabb9dd59e66': (66 commits) Show saved local and relay inventory while retaining existing import controls (#286) feat(channels): edit channel details with confirmed saves (#369) test(channels): discover the hoverable width for activity corners (#416) Fix flaky WebKit menu focus browser test (#409) Test Goose connections and fix Pi test false failures (#383) feat: open threads with verified newest-first windows (#154) Add agent conversation context selection (#382) test: keep behavioral coverage without cosmetic matrices (#410) Fix reading position and composer caret on channel return (#411) fix(channels): prevent clipped activity rows and remove separators (#377) ci: publish signed macOS updater artifacts in prereleases (#387) feat(messages): add jump to latest controls (#374) Align reply summaries with message content (#408) Add centered thinking pills to agent avatars (#351) Keep focus where the user moved it when a menu finishes closing (#355) Browse legacy identities without a destination and review text before cloning (#285) Show separate identity cards and prevent duplicate imports (#225) Polish message and thread spacing, grouping, and typography (#364) Remove the Away avatar badge stroke (#395) fix(profiles): hide activity on human profiles (#391) ... Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
…redesign * origin/main: Show saved local and relay inventory while retaining existing import controls (#286) feat(channels): edit channel details with confirmed saves (#369) test(channels): discover the hoverable width for activity corners (#416) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
* origin/main: (25 commits) Show saved local and relay inventory while retaining existing import controls (#286) feat(channels): edit channel details with confirmed saves (#369) test(channels): discover the hoverable width for activity corners (#416) Fix flaky WebKit menu focus browser test (#409) Test Goose connections and fix Pi test false failures (#383) feat: open threads with verified newest-first windows (#154) Add agent conversation context selection (#382) test: keep behavioral coverage without cosmetic matrices (#410) Fix reading position and composer caret on channel return (#411) fix(channels): prevent clipped activity rows and remove separators (#377) ci: publish signed macOS updater artifacts in prereleases (#387) feat(messages): add jump to latest controls (#374) Align reply summaries with message content (#408) Add centered thinking pills to agent avatars (#351) Keep focus where the user moved it when a menu finishes closing (#355) Browse legacy identities without a destination and review text before cloning (#285) Show separate identity cards and prevent duplicate imports (#225) Polish message and thread spacing, grouping, and typography (#364) Remove the Away avatar badge stroke (#395) fix(profiles): hide activity on human profiles (#391) ... Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/bundled/agents/AgentsPage.test.tsx # src/bundled/agents/AgentsPage.tsx
Summary
alpha.hover()timed out on main.Browser cases
Validation
playwright test --project chromium --grep "channel activity corners": both single-row and multiple-row variants pass locally (4.5s / 4.2s), previously timing out at 10s on main.Follows the review checklist. Agent testing exercised the changed behavior (the journey run above); human testing is available via
pnpm test:browser --project chromium --grep 'channel activity corners'. Addbuzz-review-completedonce reviewed.