ReviewOS

home-lang/home

Complete Bake production failure diagnostics and termination

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

The unchanged pinned Bun test/bake/dev/production.test.ts reaches 6 pass / 2 fail under Home. A React SSG render exception prints generated bake:/ frames but the build process does not terminate within the 5s test timeout or map the source location back to pages/index.tsx. A server-component useState violation returns only error: native build failed: BuildFailed, dropping the specific resolver diagnostic expected by the corpus. Preserve production build logs/source maps on failure and ensure failed SSG builds exit promptly.\n\nParent: #555\nUmbrella: #66\nPinned Bun SHA: 4982b91e3702094330f3be3883354c52b8c01323

9 days ago

Implemented and pushed in 385c854e6.

This completes both production failure paths from the unchanged Bun corpus:

  • native build --app failures now print the bundler diagnostic log before returning the error, preserving the exact server-component diagnostic (including source location)
  • Bake route rendering no longer spins forever when a framework reports a fatal render error but leaves its aggregate promise pending; once the VM reports a new unhandled error or the event loop has no remaining work, the build terminates with exit code 1
  • the native production command now propagates the JSC failure after flushing the VM error

The original SSG hang also reproduces with the pinned upstream Bun binary at 4982b91e3702094330f3be3883354c52b8c01323; Home now handles that controller edge case without a wall-clock timeout.

Verification:

  • unchanged test/bake/dev/production.test.ts: 8 passed, 0 failed (61 assertions)
  • unchanged test/bake/dev/react-spa.test.ts: 6 passed, 0 failed
  • zig build test-bake-production -Denable_jsc=true: passed
  • zig build test-bake-development -Denable_jsc=true: passed
  • filtered home_rt: 1,815 passed, 19 skipped, 0 failed
  • Pickier on both changed files: passed
  • debug builds with JSC enabled and disabled: passed; JSC-enabled binary restored afterward
9 days ago

Completed the native Bake corpus checkpoint in ccecdcf9b, with 1,185 Git-verified evidence artifacts.

  • All 24 unchanged pinned Bake files: 177 passing cases, zero failures, zero skips, two original upstream TODOs. Native Home and the independent validator exit zero; source membership, exact identities, terminal counters and complete streams validate.
  • Genuine base/React native locks replace the empty cache placeholder. Home's frozen installs preserve both lockfiles byte-for-byte; a manifest mismatch is rejected without changing its lock.
  • The suite's outer capture budget derives from its 24 distinct sources. Original assertions, fixtures, workloads and per-test deadlines remain unchanged.
  • Native test dispatch retains a spawned fixture's requested working directory; the unchanged deinitialization child passes nine tests.
  • Production source providers retrieve actual stored map JSON, restoring original React source lines in errors. The expanded production control verifies the original line and file location; this follows the behavior tracked in #563.
  • --changed dependency graphs compare canonical file identities, handling Git/caller path aliases without changing execution/report paths. The full coordinator controls, including an explicit symlink case, pass with 29 complete journals. Development/HMR and production controls pass.
  • Fresh 157-file regression: 396 passing cases, 142 passing process checks, zero failures. Its 37 case skips and three file skips retain zero pass credit. Validator, ABI, lint, formatting and the 12,996-entry corpus integrity checks pass.

The initial full run's 175 pass / 2 fail / 2 TODO and intermediate control failures remain in the evidence history. Committed raw Git blobs were independently decompressed and hash-checked against the manifest, including exact committed implementation hashes.

This completes #902's native runner/execution tranche. #901 retains optimized native execution and platform gates; #564 retains the Linux Bake TODO coverage. The two upstream TODOs, all-platform verification and the full #66 Bun feature/test-suite objective remain open.

Sign in to comment on this issue.