Skip to content

Test that browser nonzero exits do not alter guest stderr - #875

Closed
brandonpayton wants to merge 1 commit into
mainfrom
fix/browser-nonzero-exit-stderr
Closed

Test that browser nonzero exits do not alter guest stderr#875
brandonpayton wants to merge 1 commit into
mainfrom
fix/browser-nonzero-exit-stderr

Conversation

@brandonpayton

@brandonpayton brandonpayton commented Jul 11, 2026

Copy link
Copy Markdown
Member

What #907 already landed

#907 landed the browser runtime behavior that keeps host diagnostics out of guest stderr when a process exits nonzero.

What remains here

This PR keeps one Chromium regression. It resolves the maintained nonzero-exit fixture through resolveBinary, runs it in the browser, and checks that the real guest stderr is unchanged.

What I removed

I removed the duplicate runtime implementation and all #889 ancestry. The rewritten branch is one test-only commit directly on current main.

ABI and package artifacts

There is no ABI change. No package recipe, package revision, VFS image, or published artifact changes.

Validation

Run through scripts/dev-shell.sh:

  • host TypeScript typecheck: passed
  • browser asset check: passed (92 imports resolved)
  • focused Chromium regression: passed
  • Chromium wait-lifecycle controls for wasm32 and wasm64: 2 passed
  • full non-slow Chromium suite after preparing browser assets: 34 passed, 4 skipped
  • ./run.sh browser: built the browser images and started Vite successfully; /pages/kandelo/ loaded in Chromium and the running shell demo was visually checked
  • full host Vitest attempt: 1,322 passed, 42 skipped, 2 expected failures; three package-contract files failed because local Cargo archiving returned status 255

Not run locally: the Firefox/WebKit cross-browser smoke. The PR CI run is the authoritative full-suite check.

@brandonpayton

Copy link
Copy Markdown
Member Author

CI note: the failing test-gate-prepare did not reach this PRs Playwright regression. The separate Browser demo smoke workflow passed. Fetch-only materialization rejected four ABI-16 composite packages because the durable release index.toml currently points at older keys (lamp 9f777974, node-vfs 5ca2294d, shell 2f4b693f, wordpress 6c52e8a5) while current main computes the newer #863-promoted keys (64104909, 7618c9c6, f7dccdb9, 76133d30). Both generations of archives are present in the release; the index was updated later than the newer assets. I am leaving this host-only patch unchanged and will rerun the gate after #867 publishes the ABI-18 baseline.

@brandonpayton

Copy link
Copy Markdown
Member Author

Rewrite record: before removing the stale #889 ancestry, this PR pointed at ed3f2afae64d260d906f7d712b21d8eb558998a8. I am reconstructing its unique Chromium regression directly on current main; the runtime change is already on main through #907.

@brandonpayton
brandonpayton changed the base branch from fix/teardown-reclaim-readiness to main July 13, 2026 17:48
@brandonpayton
brandonpayton force-pushed the fix/browser-nonzero-exit-stderr branch from ed3f2af to 545048b Compare July 13, 2026 17:48
@brandonpayton brandonpayton changed the title Preserve guest stderr on normal browser exits Test that browser nonzero exits do not alter guest stderr Jul 13, 2026
@brandonpayton

Copy link
Copy Markdown
Member Author

Closing this focused source PR because #934 now carries the unique Chromium nonzero-exit stderr regression at exact green head 260d75d5adc31b327f5591229dbfbb287d395fd6. The runtime change already on main through #907 was deliberately excluded. The full staging and browser gates passed. This is not a claim that this branch was merged verbatim.

@brandonpayton
brandonpayton deleted the fix/browser-nonzero-exit-stderr branch July 14, 2026 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant