ReviewOS

home-lang/home

Resolve experimental React dependencies in the native installer

#559
Closed chris opened this 10 days ago ·
10 days ago

Context

While admitting unchanged pinned bake/dev/request-cookies.test.ts under #555, both React-backed cases stop during the harness's unchanged dependency setup before Bake or request.cookies executes.

Pinned Bun source: 4982b91e3702094330f3be3883354c52b8c01323.

Exact reproduction

HOME_NATIVE_VM=1 HOME_CORPUS_FULL_VM=1 ../../../zig-out/bin/home-debug test test/bake/dev/request-cookies.test.ts --timeout 30000

Home's native bun i --linker=hoisted react@experimental react-dom@experimental react-server-dom-bun react-refresh@experimental resolves and extracts the requested roots, then fails twice with:

error: No version matching "0.0.0-experimental-2dc7da79-20260828" found for specifier "scheduler" (but package exists)
error: scheduler@0.0.0-experimental-2dc7da79-20260828 failed to resolve

Result: 0 passed, 2 failed. Without the strict native environment, the compiler wrapper instead delegates the Bun command to Pantry, which rejects --linker=hoisted; that is a separate fallback-surface symptom, not the strict native blocker.

Scope

  • Verify the exact scheduler version against registry metadata selected for the experimental React dist tag.
  • Port the missing native installer behavior in exact-version/dist-tag dependency resolution without weakening the upstream harness command.
  • Add focused package-manager coverage for the reproduced dependency graph.
  • Rerun unchanged request-cookies.test.ts to reach the next functional boundary or 2/2.
  • Keep #555 and #66 updated with exact results.

Acceptance criteria

  • The unchanged React installation command completes through Home's native installer with hoisted linking.
  • The requested experimental dependency graph installs the exact transitive versions declared by the selected packages.
  • Existing native installer and home_rt tests remain green.
  • The unchanged Bake file runs past dependency setup; any later independent Bake/cookies failure gets its own linked issue.

Tracked by #555 and #66.

10 days ago

Fixed and pushed to main in 58abeaad685f8ed2fdab3781c7521323674c3251 (fix(runtime): refresh missing cached package versions).

Home now checks whether a cached npm manifest actually satisfies the requested exact version, range, or dist tag before treating that manifest as authoritative. A missing selector forces an unconditional metadata download so a stale ETag cannot return 304 and repeat a false not-found result.

Verified:

  • unchanged strict native experimental React add command completes without --no-cache;
  • exact scheduler@0.0.0-experimental-2dc7da79-20260828 is installed;
  • JSC-enabled home_rt: 1,813 passed, 19 skipped, 0 failed;
  • JSC-enabled and disabled debug builds pass;
  • Pickier passes on the changed Zig file.

The unchanged Bake cookie file advanced beyond dependency resolution and exposed independent text-lockfile issue #560, followed by resolver issue #561. Closing this issue as complete.

Sign in to comment on this issue.