Follow-up to #66 and #512, found by running all 252 byte-identical js/node/test/parallel/test-stream* files from Bun pin 4982b91e3702094330f3be3883354c52b8c01323 directly in native Home.
test-stream-iter-transform-errors.js failed because corrupt Brotli input produced ERR_BROTLI_DECODER_ERROR_FORMAT_PADDING_2 rather than ERR__ERROR_FORMAT_PADDING_2. The exact pinned src/runtime/node/zlib/NativeBrotli.rs::code_for_error maps the complete decoder enum to ERR__... codes; installed runtimes are controls, not the target.
Implemented on codex/runtime-port in dc6231ea44034b5ec8a52193623b67a8516e5f07. Home now ports all 30 mappings. Six corrupt-input classes plus the truncated-input control are checked through sync, promisified callback and stream-pipeline surfaces, followed by a successful round trip. Seven unchanged pinned Brotli Node fixtures, test-stream-iter-transform-errors.js, the native regression and error-reentrancy suite pass.
The separate async-buffer detachment/write-result lifetime gap in #516 is now implemented in 095f90396. The complete unchanged zlib.test.js now passes 378 tests / 434 assertions, with 2 skips and 0 failures; bounds and reentrancy files pass 9/9 and 3/3. This supersedes the previous 377 pass / 1 fail checkpoint. Both fixes are now integrated in main; other-platform and broader compression parity remain unverified. This issue stays open for platform verification.
Evidence: zig-out/stream-codec-h2-zlib-results.json, per-case output, brotli-error-contract.mjs, and stream-codec-h2-source-integrity.json.