Repository navigation
Make main green for 0.1.122: tests caught up with the product, the Linux-only box off Windows - #3281
Conversation
…nd the Linux-only box off Windows Every OS: - electron/updater.test.mjs: ensureCloudAccount's onState now also tells the included pages (#3266); the test's world gets the same stub as includedX. - scripts/docker-image.test.ts: the Cloud home's tools layer installs a pinned pnpm (the bot box commit). Count it as a heavy layer beneath the app files, read every `rm -rf` of a step (apt's lists come first), and key the engines' install, not pnpm's, on ENGINES_CACHE_TAG. - server/cloud-send-move.e2e.test.ts: a send of some items never carries chats, and Bring is gone (S4), so nothing put Kai's and Lux's lines on My Cloud before the strip. Use an older app's whole Send everything, which carried them, and say so. Windows: - server/bot-box/*: the box runs only on a Linux Cloud home (detect.ts: not-linux elsewhere). Its gates are unix sockets Windows refuses at a file path (EACCES) and its plan is bubblewrap argv over POSIX paths, so those suites skip on win32; "off" and the plain wrap tests still run there. - server/workspace-backup.test.ts: on Windows the box folder holds only the filter (no unix socket), and is still checked to be left out. - scripts/testing/cloud-send-fixture.ts: Windows' kill("SIGTERM") ends the team server without its shutdown, so the session registry stays open and every member's session is dropped as after a crash. Stop it over IPC there and run its own SIGTERM shutdown (as acp-shutdown.e2e does). Fixes all six cloud-team.e2e failures, which cascaded from the relaunch. - .gitattributes: shared/app-frame/app-host.html is LF everywhere, so its hash line matches its body on a Windows checkout. - published-pages, gen-app-fixtures: paths compared with the platform's separator; app-docs: the 0o600 check skips Windows like the other mode checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
… is the home folder's drive On Windows "/" is the current drive's root: on CI that is D:\ (the checkout), a separate data drive from the home folder's C:\, which may be shared whole by design (#3254). The test now names the root of the drive the home folder is on, which is "/" on macOS and Linux, and C:\ for the test's home on Windows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… as the prompt quotes it - scripts/testing/vitest-shard-weights.json: refreshed from the Windows logs of runs 39684923366 and 39684885971 (update-shard-weights.mjs). Last refreshed Oct 12, it missed one-home (215 s), routine-recovery (168 s), cloud-computer-auto-sleep (106 s) and 140 more e2e files; all of them landed in shard 4, whose Linux job ran into its 30-minute cap and was cancelled on main (39684885971, 39687280672). With these weights, the Linux test seconds per shard come to 1133/1085/1090/1159, where they were 942/958/1000/1566. - server/cloud-team.e2e.test.ts: the prompt names a memory file the way workspace.ts quotes it (JSON.stringify), so on Windows its backslashes come doubled; the test looks for the quoted path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Release 0.1.122's CI run (39684923366, on
087f01f31) failed on every OS. Every failure was a test that hadn't caught up with the product, a Linux-only suite running on Windows, or an overloaded shard. This PR changes no product code.Every OS
electron/updater.test.mjsensureCloudAccount'sonStatealso tellsincludedPages(#3266). The vm world the test builds had noincludedPages, so it threw a ReferenceError. It now gets the same stub asincludedX.scripts/docker-image.test.tspnpm@10.33.0(bot box commit), and cleans up after it in the same step. The test now counts 3 heavy installs for cloud-home (still beneath the app files), reads everyrm -rfin a step (apt's lists come first), and checksENGINES_CACHE_TAGon the engines' install, not on pnpm's. Mutation-checked: removing pnpm's cleanup fails the cache test.server/cloud-send-move.e2e.test.tskeys) never carries chats (withChats = !keys && …), and S4 deleted Bring. So nothing put Kai's and Lux's lines on My Cloud before the sender strip, and My Cloud held no rows at all. The test now uses an older app's whole Send everything, which did carry them, and asserts that it did. The whole file passes locally (5/5).Windows only
server/bot-box/{plan,bridge,broker,egress-gate,harness-gate}.test.tsdetect.tsreturnsnot-linuxanywhere else). Its gates listen on unix sockets, which Windows refuses at a file path (EACCES). Its plan is bubblewrap argv over POSIX paths. The suite isdescribe.skipIf(win32), with the reason in a comment.server/bot-box/box.test.ts,broker-mcp.test.tslend/ the two broker tests skip. "off" (what Windows actually gets) and the plain wrap tests still run there.afterEachno longer removes a folder that was never made.server/workspace-backup.test.tsbox/folder holds only the seccomp filter, with no live socket, and the test still checks the folder is left out of the backup.server/cloud-team.e2e.test.ts(7th, seen once the relaunch worked)workspace.tsquotes it (JSON.stringify), so on Windows its backslashes come doubled. The test now looks for the quoted path.server/cloud-team.e2e.test.ts(6)kill("SIGTERM")ends the team server without running its shutdown.sessions.json.openstays behind, so the next start drops every email session as it would after a crash (by design). All 6 failures followed from that relaunch.scripts/testing/cloud-send-fixture.tsnow stops the team server over IPC on Windows, and the server runs its own SIGTERM shutdown (the same approach asacp-shutdown.e2e.test.ts). Checked on macOS both ways: forcing the IPC path passes 7/7, and hard-killing gives exactly the 6 CI failures.shared/app-frame/host-page.test.ts.gitattributesapp-host.htmlis now pinnedeol=lf. A CRLF checkout broke both the byte-for-byte compare with the build script's output and the hash on its first line.electron/shared-drives.node-test.mjs(from #3254/#3272, after the release)D:\(the checkout), a separate data drive from the home folder'sC:\, which may be shared whole by design. The "system disk" assertion now uses the root of the home folder's drive.server/routes/published-pages.test.tsjoin), so the expected value isjoin("/vm/bot-1", "site").scripts/gen-app-fixtures.test.ts/.server/app-docs.test.tsShards
scripts/testing/vitest-shard-weights.jsonwas last refreshed on Oct 12. It had no entry forone-home.e2e(215 s),routine-recovery.e2e(168 s),cloud-computer-auto-sleep.e2e(106 s) or 140 other e2e files, and every one of them landed in shard 4. That shard's Linux job hit its 30-minute cap and was cancelled on main (39684885971, 39687280672), as well as on this branch's first dispatch. I regenerated the file withupdate-shard-weights.mjs --run 39684923366 --run 39684885971. Using this PR's Linux per-file times, the test seconds per shard are now 1133/1085/1090/1159, down from 942/958/1000/1566. No timeout was raised.No ratchets touched (
server/index.ts,electron/main.mjsunchanged), no locale files.Local (macOS): the touched files plus
team-move.e2egive 20 files / 143 tests passing (the Linux self-check skips), plus typecheck, lint and the ci-scope tests.🤖 Generated with Claude Code
Summary by CodeRabbit