feat: complete 20-track kernel roadmap (P2P ops, POSIX, HRPC, CI, docs)

- Add optional Holepunch clone lag gate (holepunch-freshness-gate.json,
  verify-holepunch-clone-freshness.mjs) and wire into pretest/docs.
- Extend stock ctx.bareOsHrpcRequest with disk.os replication routes;
  bump hrpc_allowlist_sketch proc to schema 2 with stockRoutes list.
- Security posture: blindRelayAudit; hyper_multisig_trust_pointer schema 2
  + vault multisig continuity env; login/unlock audit hook.
- Syscalls schema 9 alignment (JSON schema, compatibility matrix, conformance
  matrix clock_gettime); boot budget telemetry schema 2 in metrics_live.
- Coreutils hostname -s/--short man/options; rebuild kernel bins/man.
- POSIX + P2P dashboard section in docs/README; handbook/DOCUMENTATION/
  release-checklist/OTA/KERNEL_CONTRACT/PEAR-RUN and related reference updates.
- verify-boot-policy-extension-signer-pins: scan kernel init fragments.

Note: vendor drift section removed from kernel/lib/bare/README.md (intentional).
This commit is contained in:
Raven Scott
2026-04-05 14:17:20 -04:00
parent c15e8fa5be
commit 8bde745191
87 changed files with 7385 additions and 6725 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ async function start(ctx) {
There is **no `argv`** at the kernel layer—the sessions command line is whatever the **interactive user** types after boot, handled through **`ctx.readLine`** and **`ctx.execLine`**.
**Source of truth:** The file committed as [`kernel/init.js`](../kernel/init.js) is the concatenation of sorted [`kernel/lib/boot/`](../kernel/lib/boot/) fragments and [`kernel/lib/init/init-main.js`](../kernel/lib/init/init-main.js). Run **`npm run bundle:kernel`** after edits; use **`npm run verify:init-bundle`** or full pretest to confirm the bundle matches. Never edit `init.js` directly—changes would be overwritten and CI will fail.
**Source of truth:** The file committed as [`kernel/init.js`](../kernel/init.js) is the concatenation of sorted [`kernel/lib/boot/`](../kernel/lib/boot/) fragments, sorted [`kernel/lib/init/fragments/`](../kernel/lib/init/fragments/) (boot policy and `kernel.ext.d` loader), and [`kernel/lib/init/init-main.js`](../kernel/lib/init/init-main.js). Run **`npm run bundle:kernel`** after edits; use **`npm run verify:init-bundle`** or full pretest to confirm the bundle matches. Never edit `init.js` directly—changes would be overwritten and CI will fail. Layout: [`kernel/lib/init/STRUCTURE.md`](../kernel/lib/init/STRUCTURE.md).
---
+1 -1
View File
@@ -70,7 +70,7 @@ Items **1100** map to the first approved plan (boot graph, journal, safe mode
## Optional Wasm kernel bridge
**`ctx.bareOsWasmKernelCompile`** / **`ctx.bareOsWasmKernelInstantiate`** (see **`packages/bare-os-booter/lib/bare-os-wasm-kernel.js`**) compile or instantiate a **bounded** Wasm module when **`BARE_OS_WASM_KERNEL=1`**. The booter applies **`maxBytes`**, **memory page caps**, and a **wall-clock instantiate timeout**; syscall-shaped imports (**`bare_os_pathconf`**, **`bare_os_wall_time_ms32`**, **`bare_os_umask_get`**, optional **`bare_os_monotonic_ms`** when **`BARE_OS_WASM_KERNEL_MONOTONIC_MS`**) are only constructed when **`BARE_OS_WASM_KERNEL_SYSCALL`** is enabled and the corresponding **`ctx`** hooks exist. Treat Wasm as **untrusted**: keep modules small, gate on env, and never pass secrets into guest linear memory without a separate review.
**`ctx.bareOsWasmKernelCompile`** / **`ctx.bareOsWasmKernelInstantiate`** (see **`packages/bare-os-booter/lib/bare-os-wasm-kernel.js`**) compile or instantiate a **bounded** Wasm module when **`BARE_OS_WASM_KERNEL=1`**. The booter applies **`maxBytes`**, **memory page caps**, and a **wall-clock instantiate timeout**; syscall-shaped imports (**`bare_os_pathconf`**, **`bare_os_wall_time_ms32`**, **`bare_os_umask_get`**, optional **`bare_os_monotonic_ms`** when **`BARE_OS_WASM_KERNEL_MONOTONIC_MS`**) are only constructed when **`BARE_OS_WASM_KERNEL_SYSCALL`** is enabled and the corresponding **`ctx`** hooks exist. **Parity note:** the full **`posixXsh.namesCsv`** surface ( **`clock_gettime`**, **`nanosleep`**, socket bridge ops, …) lives on **`ctx.bareOsSyscall`** in JS — it is **not** exported into the Wasm import object because those paths are async or bridge-heavy. Wasm guests should call back into JS/host shims when they need syscall parity beyond the **sync** clock / umask / pathconf imports. Treat Wasm as **untrusted**: keep modules small, gate on env, and never pass secrets into guest linear memory without a separate review.
## See also