feat: kernel roadmap wave — bits4, policy v4, Pear/Bare compatibility

- protocol/booter: bits4 handshake, proc surfaces, boot policy v4, telemetry v4
- coreutils: nohup + ensure-man-pages; seed-man-pages fixes for extra pages
- kernel-runner: no static node:module (Pear); bare-module createRequire
- docs: handbook, reference, ADR, compatibility matrix, verify scripts
This commit is contained in:
Raven Scott
2026-04-04 02:51:33 -04:00
parent d775fb0628
commit f8a0dad897
190 changed files with 2717 additions and 1822 deletions
+2 -2
View File
@@ -10,9 +10,9 @@ Shared **wire format and constants** for the Bare operating system monorepo: Hyp
| `topicKey()` | 32-byte topic for `swarm.join()` |
| `BLOCK_SIZE`, `MBR_MAGIC` | 512-byte MBR, magic `BIOS` at offset 0 |
| `buildMbr` / `parseMbr` | Pack/unpack primary + optional failover Hyperdrive keys |
| `setupSeedChannel` | Wire Protomux messages 06 for RAM block reads, gossip bitfield, manifest path **search**, **RPC** (incl. `bare_os.capabilities` with **`bits`/`bits2`/`bits3`**, `bare_os.replication_status`, `bare_os.replication_queue`, `bare_os.capability_attestation`, `bare_os.mbr_layout`, `bare_os.manifest_hints`, `bare_os.peer_health`, `bare_os.staging_slot`, `bare_os.snapshot_hints`, `bare_os.peer_firewall_stats`, `bare_os.gossip`), and `drive.replicate` |
| `setupSeedChannel` | Wire Protomux messages 06 for RAM block reads, gossip bitfield, manifest path **search**, **RPC** (incl. `bare_os.capabilities` with **`bits`/`bits2`/`bits3`/`bits4`**, `bare_os.replication_status`, `bare_os.replication_queue`, `bare_os.capability_attestation`, `bare_os.mbr_layout`, `bare_os.manifest_hints`, `bare_os.peer_health`, `bare_os.staging_slot`, `bare_os.snapshot_hints`, `bare_os.peer_firewall_stats`, `bare_os.gossip`), and `drive.replicate` |
Subpath exports: `bare-os-protocol/constants.js`, `bare-os-protocol/messages` (compact-encoding schemas), `bare-os-protocol/kernel-feature-bits.js` (documented booter capability words **`STOCK_V1`** / **`STOCK_V2`** / **`STOCK_V3`**; surfaced in **`/proc/bare_os_features`** and **`/proc/bare_os/`**), `bare-os-protocol/protocol-meta.js` (**`BARE_OS_PROTOCOL_PACKAGE_VERSION`** for the seed handshake).
Subpath exports: `bare-os-protocol/constants.js`, `bare-os-protocol/messages` (compact-encoding schemas), `bare-os-protocol/kernel-feature-bits.js` (documented booter capability words **`STOCK_V1`** / **`STOCK_V2`** / **`STOCK_V3`** / **`STOCK_V4`**; surfaced in **`/proc/bare_os_features`** and **`/proc/bare_os/`**), `bare-os-protocol/protocol-meta.js` (**`BARE_OS_PROTOCOL_PACKAGE_VERSION`** for the seed handshake).
## Consumers
+14 -1
View File
@@ -80,5 +80,18 @@ export {
BARE_OS_FEATURE3_DELEGATE_CONCURRENCY,
BARE_OS_FEATURE3_SHELL_LOCAL_DECLARE,
BARE_OS_FEATURE3_HOST_CAPABILITY_PROBE,
BARE_OS_FEATURE3_CI_SCHEMA_EXAMPLES
BARE_OS_FEATURE3_CI_SCHEMA_EXAMPLES,
BARE_OS_KERNEL_FEATURES_STOCK_V4,
BARE_OS_FEATURE4_OFFLINE_LKG_BOOT,
BARE_OS_FEATURE4_NET_SUMMARY_PROC,
BARE_OS_FEATURE4_BOOT_POLICY_V4,
BARE_OS_FEATURE4_TELEMETRY_SCHEMA_V4,
BARE_OS_FEATURE4_KERNEL_EXT_REGISTRY_V2,
BARE_OS_FEATURE4_CONTRACT_TESTS_WAVE3,
BARE_OS_FEATURE4_HOST_STORAGE_PROC,
BARE_OS_FEATURE4_IPC_SESSION_AUDIT,
BARE_OS_FEATURE4_INITD_CONDITION_DIRECTORY,
BARE_OS_FEATURE4_DELEGATE_FAIRNESS_METRICS,
BARE_OS_FEATURE4_BIN_WORKER_ACTIVE,
BARE_OS_FEATURE4_SUBPROCESS_JOB_SURFACE
} from './lib/kernel-feature-bits.js'
+3 -1
View File
@@ -5,7 +5,8 @@ import {
BARE_OS_KERNEL_FEATURE_BITS_DOC,
BARE_OS_KERNEL_FEATURES_STOCK_V1,
BARE_OS_KERNEL_FEATURES_STOCK_V2,
BARE_OS_KERNEL_FEATURES_STOCK_V3
BARE_OS_KERNEL_FEATURES_STOCK_V3,
BARE_OS_KERNEL_FEATURES_STOCK_V4
} from './kernel-feature-bits.js'
import { BARE_OS_PROTOCOL_PACKAGE_VERSION } from './protocol-meta.js'
import {
@@ -157,6 +158,7 @@ export function setupSeedChannel(mux, localRAM, replicateDrive, opts = {}) {
bits: BARE_OS_KERNEL_FEATURES_STOCK_V1 >>> 0,
bits2: BARE_OS_KERNEL_FEATURES_STOCK_V2 >>> 0,
bits3: BARE_OS_KERNEL_FEATURES_STOCK_V3 >>> 0,
bits4: BARE_OS_KERNEL_FEATURES_STOCK_V4 >>> 0,
protocolPackageVersion: BARE_OS_PROTOCOL_PACKAGE_VERSION,
role: 'seeder',
protocol: PROTOCOL_NAME
@@ -4,7 +4,7 @@
*/
/** Protocol document version for this bitmask file (bump when bit semantics or governance changes). */
export const BARE_OS_KERNEL_FEATURE_BITS_DOC = 5
export const BARE_OS_KERNEL_FEATURE_BITS_DOC = 6
/**
* Second capability word (bits 031, always use `>>> 0` when masking).
@@ -172,6 +172,60 @@ export const BARE_OS_KERNEL_FEATURES_STOCK_V3 =
BARE_OS_FEATURE3_HOST_CAPABILITY_PROBE |
BARE_OS_FEATURE3_CI_SCHEMA_EXAMPLES
/**
* Fourth capability word (bits 031, use `>>> 0`). Wave 4 — ADR 001.
*/
/** Word4 bit 0: Offline last-known-good boot (`BARE_OS_OFFLINE_LKG_BOOT` + `BARE_OS_LKG_SYSTEM_KEY_HEX`). */
export const BARE_OS_FEATURE4_OFFLINE_LKG_BOOT = 1 << 0
/** Word4 bit 1: `/proc/bare_os/net_summary.json` rollup. */
export const BARE_OS_FEATURE4_NET_SUMMARY_PROC = 1 << 1
/** Word4 bit 2: Boot policy v4 (`requireFeatureBits4`, `denyExecLineBuiltins`, `allowedCtxMethods`). */
export const BARE_OS_FEATURE4_BOOT_POLICY_V4 = 1 << 2
/** Word4 bit 3: Lifecycle / telemetry NDJSON schema v4. */
export const BARE_OS_FEATURE4_TELEMETRY_SCHEMA_V4 = 1 << 3
/** Word4 bit 4: Kernel extension registry schema v2 (`semver`, `capabilities` on records). */
export const BARE_OS_FEATURE4_KERNEL_EXT_REGISTRY_V2 = 1 << 4
/** Word4 bit 5: Roadmap contract tests (`verify-kernel-roadmap-wave3.mjs`). */
export const BARE_OS_FEATURE4_CONTRACT_TESTS_WAVE3 = 1 << 5
/** Word4 bit 6: Host storage hints merged into `/proc/bare_os/bootstrap` (`BARE_OS_HOST_STORAGE_JSON`). */
export const BARE_OS_FEATURE4_HOST_STORAGE_PROC = 1 << 6
/** Word4 bit 7: IPC FIFO audit (`BARE_OS_IPC_AUDIT`). */
export const BARE_OS_FEATURE4_IPC_SESSION_AUDIT = 1 << 7
/** Word4 bit 8: Initd `ConditionPathIsDirectory=` / `AssertPathIsDirectory=`. */
export const BARE_OS_FEATURE4_INITD_CONDITION_DIRECTORY = 1 << 8
/** Word4 bit 9: Delegate inflight + rate-bucket snapshot in `metrics_live` / `bareOsReadDelegateFairnessSnapshot`. */
export const BARE_OS_FEATURE4_DELEGATE_FAIRNESS_METRICS = 1 << 9
/** Word4 bit 10: Heavy `/bin` commands may use bare-worker when `BARE_OS_BIN_WORKER_OFFLOAD`. */
export const BARE_OS_FEATURE4_BIN_WORKER_ACTIVE = 1 << 10
/** Word4 bit 11: Subprocess bridge job list (`BARE_OS_SUBPROCESS_BRIDGE_JOBS_JSON`, `ctx.bareOsReadSubprocessBridgeJobs`). */
export const BARE_OS_FEATURE4_SUBPROCESS_JOB_SURFACE = 1 << 11
/** Stock booter fourth word (wave 4 roadmap). */
export const BARE_OS_KERNEL_FEATURES_STOCK_V4 =
BARE_OS_FEATURE4_OFFLINE_LKG_BOOT |
BARE_OS_FEATURE4_NET_SUMMARY_PROC |
BARE_OS_FEATURE4_BOOT_POLICY_V4 |
BARE_OS_FEATURE4_TELEMETRY_SCHEMA_V4 |
BARE_OS_FEATURE4_KERNEL_EXT_REGISTRY_V2 |
BARE_OS_FEATURE4_CONTRACT_TESTS_WAVE3 |
BARE_OS_FEATURE4_HOST_STORAGE_PROC |
BARE_OS_FEATURE4_IPC_SESSION_AUDIT |
BARE_OS_FEATURE4_INITD_CONDITION_DIRECTORY |
BARE_OS_FEATURE4_DELEGATE_FAIRNESS_METRICS |
BARE_OS_FEATURE4_BIN_WORKER_ACTIVE |
BARE_OS_FEATURE4_SUBPROCESS_JOB_SURFACE
/** Bit 0: IPC fan-out / pub-sub style channels (booter `bareOsIpc`). */
export const BARE_OS_FEATURE_IPC_FANOUT = 1 << 0