fix(release): allow Chromium sandbox in prerelease E2E - #7090
Conversation
nettee
left a comment
There was a problem hiding this comment.
I reviewed both changed ranges. The prerelease E2E job now conditionally relaxes Ubuntu 24.04's AppArmor user-namespace restriction only when the sysctl is available, preserving Chromium's real sandbox and failing fast if the required write is rejected. The topology test pins the step before E2E and guards against --no-sandbox.
Verification: pnpm --filter @open-design/e2e test tests/packaged-smoke-workflow.test.ts (70 passed, 1 skipped), actionlint -color .github/workflows/release-prerelease.yml, pnpm guard, pnpm typecheck, and git diff --check.
Nice, focused fix—thanks for documenting the security intent and keeping the production browser flags untouched.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.
nettee
left a comment
There was a problem hiding this comment.
I reviewed all four changed files, including the srcDoc probe cancellation/restart paths and the prerelease E2E workflow's conditional AppArmor sysctl step. Verification: pnpm --filter @open-design/web exec vitest run tests/components/FileViewer.test.tsx (275 passed), pnpm --filter @open-design/e2e test tests/packaged-smoke-workflow.test.ts (70 passed, 1 skipped), actionlint, pnpm guard, pnpm typecheck, web typecheck, and git diff --check; the live PR checks are green as well.
This is a focused fix that preserves Chromium's real sandbox and closes stale timer races; thanks for pairing the lifecycle changes with regression coverage.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.












































Why
The release team hit repeated prerelease failures after the browser-clone coverage began launching the installed Chromium directly from the daemon. GitHub's Ubuntu 24.04 runners restrict unprivileged user namespaces through AppArmor, so Chromium exited with
No usable sandbox!before the E2E assertion could exercise the product.This blocked otherwise healthy
release/v0.20.0builds and caused the Feishu release card to report a packaging failure. The runner should permit Chromium's real sandbox for this test instead of weakening production browser flags with--no-sandbox.What users will see
Prerelease builds can complete their daemon browser E2E gate and continue to macOS/Windows packaging on GitHub-hosted Ubuntu runners. Product and packaged-runtime behavior is unchanged.
Surface area
apps/weborapps/desktop(including Electron menu bar)odsubcommand or flag, newtools-dev/tools-packflag, or newOD_*env var/api/*endpoint, new SSE event, or changed shape inpackages/contractsskills/,design-systems/,design-templates/, orcraft/, or change to the skills protocolTRANSLATIONS.mdfor the locale workflow)package.json(dependenciesordevDependencies); workspace-packagepackage.jsonfiles are out of scope. Include a paragraph on what we get vs. what bytes we ship (seeCONTRIBUTING.md→ Code style)Screenshots
Not applicable; this only changes the ephemeral prerelease E2E runner.
Bug fix verification
e2e/tests/packaged-smoke-workflow.test.ts--no-sandboxand pins the sysctl step before E2E execution.Validation
pnpm --filter @open-design/e2e test tests/packaged-smoke-workflow.test.ts— 70 passed, 1 skippedpnpm guardpnpm typecheckgit diff origin/main...HEAD --checkOpen Design Prerelease 0.20.0-prerelease.8fromrelease/v0.20.0at commit57b4b9650304bee39066b1374a7bdc121b4e82bb