Repository navigation
fix(next): four webview tests that are red at the tip follow the product again (status glyphs, table widths, warm New Tab, folder cut) - #22519
teamleaderleo wants to merge 5 commits into
Conversation
3207401 dropped the talk bubble from the Codex-like set (a wait is now the set's one dot in the attention tint) and 301bd27 redrew the static waiting glyph as that dot. The test still expected the bubble: the Codex order, the waiting grey, and the bubble's 2x edge probes. Expect the dot for a wait, check done's blue and the wait's tint by state (both dots share one shape, so they must differ in color), keep the error red apart from the permission grey, and probe the dot's top and left edges at 2x. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cross a reload 452cce0 moved table column widths from the page's localStorage to the host (cmux.markdown.setTableWidths, sent back as the config's tableWidths). The gallery's mock markdown host had neither, so with a host client the page sent its widths nowhere and a reload laid the table out at natural widths: markdown-table-obsidian "the width stays across a reload" got 90 px off. The gallery host now answers setTableWidths and returns the saved value as tableWidths, keeping it in the frame's sessionStorage as the app keeps it in the file's extended attribute. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cards became the unset New Tab template in 9215b25 and shows three chat cards, sessions first. The fixture listed three sessions, so the device chat the host pushes after the handshake never had a card and the four warm openings failed on "Older device chat". The fixture now has two sessions, so the third card is the device chat and the test still checks that every warm opening paints the final list, device chat included, on its first frame. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nux fonts too The 340 px step caps the folder button at 128 px. The mid-folder fixture, "atlas-checkout", draws a 124 px button in Noto Sans (system-ui on Linux CI), so it never cut there and the 340 px test has failed on Linux since #20791 added it. It went unseen until #22197 and #22205 made CI run the webview tests again. The fixture is now "atlas-api-checkout": past the cap and inside the 341 px pane with room both ways in either system font. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW:
Agents: |
|
Bead |
|
Found 25 test failures on Blacksmith runners: Failures
...and 15 more test failures. View all on Blacksmith: run 39427681107, run 39418074751
|
…ng value too, like the app Review follow-up on #22519: FilePageProvider+TableWidths.swift treats a missing value as a forget; the mock now does the same instead of storing the string "undefined". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review (subagent, correctness first): SHIP at 960b872 The subagent reviewed 0142fbf and checked each claim against its cited commit. The talk-bubble removal (3207401, 301bd27), table widths in the xattr (452cce0), the Cards default with recent: 3 (9215b25) and the 128 px folder cap at 340 px all hold. It found no assertion weakened: the waiting/done dot pair must now match exactly (stricter than before), the warm open must still paint exactly one state containing the late device chat, and the strip's 340/341 pair is unchanged. 960b872 applies its one suggestion: the mock host now forgets a width on a missing value as well as null ( |
|
|
|
Unlabelled, because #22513 (combined web reds) covers status-glyphs and new-tab-warm-first-frame. CI also passes composer-location-strip without this PR's fixture change; it only fails under big-red's fonts. One part here still matters. #22513's gallery-host fix for markdown-table-obsidian keeps the widths in localStorage, and on #22513 that test still fails in chromium (job 118627855019: Received 90). This PR's version uses the frame's sessionStorage and treats a missing value as a forget, and it passes in both engines in CI (job 118612540136) and on big-red. If #22513 takes the sessionStorage version, this PR can close. |
|
Closing: #22513 covers status-glyphs, new-tab-warm-first-frame and the gallery host's table widths. The obsidian CI failure there was a reload racing the width write, fixed in #22513 by waiting for the write. composer-location-strip passes in CI's fonts, so its fixture change isn't needed to unblock anything. |
Summary
Four webview browser tests fail at the
feat-cmux-nexttip, soweb / react-apps-checkis red on every PR that toucheswebviews/. In every case the product was changed on purpose or is right, and the test, its fixture or the gallery's stand-in host had fallen behind. Each commit fixes one:waitingglyph as a filled circle. The test still expected the bubble. It now expects["idle","dot","shieldLine","dot","info"]. Colors are checked by state position, so done stays Codex blue and the wait's tint must differ from done's. The wait and done dots must now match in shape exactly. The @2x edge probes now check the circle's edges.cmux.markdown.setTableWidthsand the config'stableWidths. The gallery's mock markdown host (src/gallery/frame/pages.ts) implemented neither, so a reload lost the width. The mock now stores widths per path in the frame's sessionStorage and returns them in the config, the way the app's xattr store does. The test is unchanged.mid-folderfixture,atlas-checkout, measured 124 px in Linux Chromium's Noto Sans, so it never got cut. It fails at the commit that added the test (CmuxNext: composer location strip lines up with the prompt; middle-cut folder, icon-only computer when narrow #20791), and CI only started running it again after ci(web): lint and budget gates no longer skip the webview and sidecar tests #22197 and ci: feat-cmux-next pushes run the web checks and cmux-next checks again #22205. The fixture is nowatlas-api-checkout(102.7 px of text in Noto Sans). That cuts at 340 px and shows whole at 341 px in any font from about 17% narrower to 19% wider.No skips, no loosened tolerances, no product code changes beyond the gallery's dev-only mock host.
Not in this PR, because other open PRs cover them:
import.meta.hottype errors: webviews: table keys test runs as on the Mac; vp check formatting and type errors fixed #22490.Testing
On big-red, with
CMUX_BROWSER_TESTS=1 bun testinwebviews/and real Chromium. Each test failed at e9c6f20 and passes at 0142fbf:bun run check:status-glyphs.vp fmt --checkandvp lintpass on the changed files.Observed / Not run
Observed: the before and after results above.
Not run: the WebKit cases, because WebKit isn't installed on big-red. CI runs them. No Mac run.
Risk
Not UI: test expectations and fixtures, plus the gallery's dev-only stand-in markdown host. Nothing the app ships changes.
Changelog
None (tests only).
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes four webview browser tests that were red at the
feat-cmux-nexttip, soweb / react-apps-checknow passes on PRs touchingwebviews/. Product behavior is unchanged; only test expectations, fixtures, and the gallery's dev-only mock markdown host are updated.cmux.markdown.setTableWidthsand returns saved widths astableWidths(kept in the frame's sessionStorage, forgotten on a null value like the app), so a reload keeps column widths.mid-folderfixture is nowatlas-api-checkout, which crosses the 128 px folder cap at 340 px in both Linux Noto Sans and macOS SF Pro.No skips, no loosened tolerances, and no shipped code changes.
Written for commit 960b872. Summary will update on new commits.