Skip to content

VFS: Make the main shell package-backed - #1306

Open
brandonpayton wants to merge 2 commits into
mainfrom
fix/package-backed-main-vfs
Open

VFS: Make the main shell package-backed#1306
brandonpayton wants to merge 2 commits into
mainfrom
fix/package-backed-main-vfs

Conversation

@brandonpayton

Copy link
Copy Markdown
Member

Why

The main browser shell still enters through the Homebrew bootstrap and
bottle-composition path. That makes a normal virtual file system (VFS)
product depend on a second package authority instead of Kandelo's package
resolver.

Moving the product to declared package outputs gives the root browser image
one reproducible dependency closure and makes missing inputs fail at the
owning package boundary.

What changed

  • Compose the main shell from declared resolver outputs only.
  • Treat the rootfs and eager programs as direct inputs while preserving
    checked lazy identities for utilities and application bundles.
  • Keep the package manifest, role contract, source-rootfs capacity, and lazy
    state synchronized.
  • Reject ambient build authority and advance the shell package revision.
  • Document the new package-backed product and the remaining historical
    Homebrew publication path.

This PR does not remove all Homebrew compatibility or publication
infrastructure. In particular, the current Pages workflow still needs to be
migrated or retired before this pending package revision can be published.

Validation

  • bash scripts/dev-shell.sh bash packages/registry/shell/test-build-shell.sh
  • bash scripts/dev-shell.sh npx vitest run tests/package-system/source-rootfs-shell-bridge.test.ts tests/package-system/build-input-import-closure.test.ts
    (32 tests passed)
  • program-index-check and program-index-context-check
  • git diff --check origin/main..HEAD

Not run

The full resolver source build was not run because the complete declared
package closure has not been built and admitted. No production shell archive
or Pages deployment was produced.

The canonical browser shell still enters through the Homebrew bootstrap
and bottle-composition path. That makes a normal virtual file system
(VFS) product depend on a second package authority instead of the
repository package resolver that owns the rest of the build.

Compose the shell only from declared resolver outputs. The rootfs and
eager programs are direct inputs, while utilities and application bundles
retain checked lazy identities. Keep the package manifest and the
role-specific dependency contract synchronized, reject ambient build
authority, and preserve the source rootfs capacity and lazy-state
contracts.

This changes the shell product bytes and advances its package revision.
It does not remove the separate Homebrew compatibility and publication
infrastructure.

Source-commit: 707c4901cf24f2d7421a740b39792e75f4da71f7
Shell revision 27 replaces the Homebrew flat-lazy source recipe with a
composition of declared package outputs. Existing reference documentation
still described the ABI 42 bottle selection, bootstrap, and mirror as the
current canonical source path.

Document the revision-27 package and VFS contracts, its pending publication
state, and the remaining Pages migration. Retain the ABI 42 material as
explicit historical and compatibility context rather than presenting its
release workflow as current behavior.
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