ReviewOS

home-lang/home

Port Bun shell instance output and binary IO semantics

#81
Closed chris opened this 9 days ago ·
9 days ago

Tracks the focused Bun parity slice under #66.

Scope:

  • activate js/bun/shell/bunshell-instance.test.ts in the native Home corpus runner
  • support isolated $.Shell() environments
  • support .text(), .json(), .lines(), .bytes(), .arrayBuffer(), and .blob() consumers
  • support Blob/Buffer/Uint8Array/Response stdin interpolation
  • support writable typed-array stdout targets and reject non-writable targets
  • match Bun non-strict typed-array equality while preserving strict prototype checks
  • add a dedicated native regression and run the full shell corpus/full home_test gate
9 days ago

Implemented and pushed in 28ed0ef0bf6f81fea065550e446e5a78e969b14f (feat(test): port bun shell instance io).

Verification so far:

  • exact bunshell-instance.test.ts: 16 passed, 0 failed, 0 unsupported, 0 todo
  • full js/bun/shell directory: 342 passed, 0 failed, 0 unsupported, 5 todo (down from 6 TODOs)
  • repository build: passed
  • git diff --check: passed

The global home_test gate reached all 1,055 tests but the host was under concurrent compiler load: its processes were SIGKILLed under memory pressure, followed by repeated CorpusHarnessInstallFailed allocation failures. This is not a shell assertion regression; leaving this issue open until a contention-free full-gate run completes.

9 days ago

Gate evidence after #87 / 024c983:

  • canonical home_test package run reached 1,056 pass / 1 skip / 3 fail out of 1,060;
  • the new nested test.only pin passed;
  • executable discovery also repaired the prior shell-hang subprocess failure;
  • remaining failures were one existing pipeline source-rewrite assertion plus two CorpusHarnessInstallFailed errors late in the run while unrelated jobs drove free disk to ~210 MB.

The dedicated Home build and exact upstream file both pass. Keeping this issue open for the full contention-free gate.

9 days ago

Gate update after #88 / 496160c:

./pantry/.bin/zig build test -Dfilter=home_test --summary failures

  • 1,059 pass
  • 1 skip
  • 1 fail
  • 1,061 total

The new exact expect-assertions.test.ts pin passes in this gate. The only remaining failure is the pre-existing bootstrap runner mirrors Bun shell pipeline stack corpus prepared-source assertion at packages/home_test/src/corpus_runner.zig:59668 (expected rewritten createTestBuilder import). This supersedes the prior 1,056 pass / 3 fail evidence.

9 days ago

The full-gate blocker discovered after #88 is resolved in #89 / d37a98a. Exact pipeline_stack.test.ts is 63/63 and the complete ./pantry/.bin/zig build test -Dfilter=home_test --summary failures gate exits successfully with zero failures. Pushed on main at 36690c7.

9 days ago

Another native TODO is removed in #90 / 4524ded: Bun.Transpiler tsconfig lifetime/JSX configuration now runs 3/3 from the unmodified current Bun fixture. The complete home_test gate passes with zero failures after activation.

9 days ago

Removed another native TODO in #91 / e2377b8. Bun.Transpiler REPL mode now runs the unmodified 36-case upstream fixture with 36 passed, including top-level this, await, object literals, and persistent vm declarations. The complete home_test gate passes with zero failures.

9 days ago

Removed the stale plugin drive-namespace TODO in #92 / 2c244cf. Exact upstream fixture: 1/1; complete home_test gate: zero failures.

9 days ago

Spawn/runtime parity follow-up #93 is complete on main in 1e5491c590e2163b1e3adf6711be4226259c2aac. Home now applies an absolute native spawnSync timeout while draining pipes, reports Bun-compatible timeout/signal results, executes compound nested eval programs for real, and passes the two isolation fixtures at 3/3 and 4/4. Full home_test gate: zero failures.

9 days ago

S3 follow-up #94 is complete on main in d52bc116c3716e7f731e2a650b8b5f4ac1b8324f: dynamically sized ListObjectsV2 option encoding, instance/static S3Client.list(), and reserved-character presign coverage. Exact fixture is 5/5; full home_test gate is green.

9 days ago

S3 HTTP endpoint follow-up #95 is complete on main in 3a850e7494ea4f9432465a623c31606fc0f433fa: local S3Client.file() reads, plain-HTTP endpoint preservation, and Bun-compatible UnknownError translation. Exact fixture 1/1; full home_test gate green.

9 days ago

S3 requester-pays compatibility is complete in f6703de20 via #96.

Exact copied fixture result: 10 passed, 0 failed, 0 todo, 0 unsupported. Permanent regression coverage now runs that fixture from home_test, and the full Home gate passes.

9 days ago

S3 storage-class compatibility is complete in 42028172c via #97.

Exact copied fixture result: 9 passed, 0 failed, 0 todo, 0 unsupported. Permanent regression coverage now runs that fixture from home_test, and the full Home gate passes.

9 days ago

S3 ListObjectsV2 compatibility is complete in dd63b2218 via #98.

Exact copied fixture result: 35 passed, 0 failed, 0 unsupported; only the fixture’s credential-gated live-R2 suite is skipped/TODO. Permanent regression coverage and the full Home gate pass.

9 days ago

Bun S3 umbrella local semantics are active in 75aa6fd7a via #99.

Exact copied fixture result: 8 passed, 0 failed, 0 unsupported; only four credential/service-gated R2/MinIO/Docker suites remain TODO. The exact storage-class fixture remains 9/9 and the full Home gate passes.

9 days ago

S3 stream cancellation/GC coverage is now active via 6a93bfbe4: exact copied fixture 1/1 passed, no TODO/unsupported results, permanent regression added, and the full Home test gate remains green. Focused tracker #100 is complete.

9 days ago

Activated Bun.markdown callback rendering in f51d3e8cf: copied fixture 37/37 passed, with no TODO or unsupported results. The port includes inline/block callbacks, nested list and task metadata, tables, entity decoding, parser options, and buffer-lifetime safety. Full Home gate remains green; #101 is complete.

9 days ago

Activated Bun.markdown React rendering in 0b5c7bd42: copied fixture 68/68 passed, no TODO or unsupported results. This adds React element ASTs, component overrides, nested Markdown structures, and renderToString parity; the full Home gate remains green. #102 is complete.

9 days ago

Bun.markdown edge hardening is complete via #103 and 7d8d25ec3: byte-identical fixture 79/79 passed, no failures/TODOs/unsupported cases, permanent regression added, and the complete home_test gate passes. This includes real spawned stress coverage for bracket, image/link, inline-HTML, autolink, emphasis, reference, and table-width adversarial inputs.

9 days ago

GFM Markdown parity is complete via #104 and 93ef0a562: byte-identical fixture 62/62 passed, no failures/TODOs/unsupported cases, prior Markdown fixtures still green, permanent regression added, and the complete home_test gate passes. This covers table interruption/alignment/width rules, safe tag filtering, URL/email autolinks, strikethrough, fenced blocks, and heading delimiter precedence.

9 days ago

Closing the original focused scope as fully verified.

Current authoritative evidence:

  • byte-identical js/bun/shell/bunshell-instance.test.ts: 16 passed, 0 failed/TODO/unsupported
  • adjacent bunshell-file.test.ts: 1 passed
  • prior complete js/bun/shell directory: 342 passed, 0 failed/unsupported, 5 upstream TODOs
  • current complete home_test: 1,134 total, 1 skipped, 0 failed

Implementation remains on main in 28ed0ef, and the later contention-free gates documented above resolved the only reason this issue remained open.

Sign in to comment on this issue.