- Bump bareOsCtxApiVersion to 1.48.0; sync CHANGELOG, compatibility matrix, syscalls.example.json, ctx d.ts, generated ctx-client helper - POSIX: getconf _SC_NPROCESSORS_ONLN; shell set -o pipefail + BARE_OS_PIPESTATUS; posix_utilities schema v2 + JSON Schema; generated dashboard refresh - Host/subprocess: bare-subprocess then Node child_process spawn; optional backend on ctx.bareOsTrySpawnHostSubprocess; bin-worker WASM wall budget - VFS: BARE_OS_VFS_SYSTEM_IMAGE_WRITE for system image writes + warm-cache eviction path; guest /.bare/account EACCES test; environ TOKEN redaction test - Docs: corestore snapshot non-goal in package-bare-os-booter; PEAR-RUN links → docs/PEAR-RUN.md; POSIX pretest matrix in scripts/README + dev guide; environment appendix (PIPESTATUS, WASM_MS, system image write) - Seeder: keep kernel/ mirror in sync after bundle + coreutils builds Verified: npm test -w bare-os-booter, npm run pretest
bare-os-bare-libs
Builds trusted IIFE bundles from bare-module-manifest.json entries marked "bundle": true. npm run build runs prebuild: ../../scripts/generate-bare-module-manifest-data.mjs, which refreshes bare-module-manifest.data.mjs for Pear before esbuild. Output:
kernel/lib/bare/bundles/<ctxKey>.jskernel/lib/bare/manifest.json(paths for the booter drive merge)- Mirrored under
packages/bare-os-seeder/kernel/lib/bare/for seeder parity
Documentation: Developer guide ch.12 — Bare modules · Kernel tree — lib/bare · docs/README — catalog.
Run from repo root:
npm run build -w bare-os-bare-libs
The booter loads these only when BARE_OS_BARE_MODULES is enabled and BARE_OS_BARE_DRIVE_BUNDLES is not disabled; see the developer guide.
Manifest rows may include optional tier (core default when omitted) and risk (low / medium / high) so distributors can filter bundles without reading upstream READMEs. The catalog sync scripts preserve unknown fields when merging from docs/bare-holepunch-catalog.json.
Bundle health, markers, and upstream closure
docs/audit/bundle-health.json— per-bundle byte sizes; regenerated bynpm run build -w bare-os-bare-libs. When a bundle’s size moves by more than roughly 10%, add a dated one-line note under Bundle health log below (or in the same PR description) so reviewers can tell intentional catalog bumps from accidents.scripts/verify-bundle-health.mjs— CI compares committed JSON to on-disk bundle sizes.scripts/verify-bundle-markers.mjs+docs/audit/bundle-marker-allowlist.json— gateTODO/NOT_IMPLEMENTEDsubstrings inside vendored IIFEs; shrink the allowlist when upgrading Holepunch packages removes markers.scripts/verify-bundle-throws.mjs+docs/audit/bundle-throw-allowlist.json— same forthrow new Error("not implemented")phrasing.
Scope split: verify-runtime-no-incomplete-markers.mjs applies to first-party kernel/boot/booter sources; verify-bundle-markers.mjs / verify-bundle-throws.mjs apply only to kernel/lib/bare/bundles/*.js. Upstream HTTP helpers may still expose 501 Not Implemented behavior under sanitized method names—that is not the same as an unfinished Bare OS syscall surface (those use documented ENOTSUP in the booter).
See docs/audit/PLACEHOLDER_BASELINE.md § P3 for policy: first-party kernel code stays marker-free via verify-runtime-no-incomplete-markers.mjs; bundle gaps close through version bumps, post-processing (rare), or allowlist shrink. Full table: developer-guide ch.8 — CI marker scope.
Bundle health log
| Date (UTC) | Note |
|---|---|
| Append a row when a bundle size change ≥ ~10% is intentional (catalog version, esbuild flags, or new upstream files). |