feat(booter): OpenMetrics proc export, protomux wire JSON, audit batch API, and doc sync

Expose /proc/bare_os/metrics.prom (kernel counter OpenMetrics) and
/proc/bare_os/protomux.json (alias registry snapshot). Extend VFS routing,
readdir, pseudo watch, and bare_os_proc_index to schema 8; restore flat
/proc entries for syscalls and process_table with sort order matching
tests. Add ctx.bareOsAuditLogAppendBatch and bump BARE_OS_CTX_API_VERSION
to 1.30.0 with d.ts and compatibility-matrix updates.
Harden swarm peer ban backoff with jitter on the exponential window.
Refresh conformance matrix, environment appendix, booter package doc, and
handbook chapters for proc paths, param expansion V3, vault at rest, and
baretop snapshot keys. Align baretop-snapshot with bareOsReadBareTopSnapshot.
This commit is contained in:
Raven Scott
2026-04-04 19:23:06 -04:00
parent b458c6031d
commit 0d7b27bea8
73 changed files with 4103 additions and 571 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ This document classifies incomplete surfaces as of the kernel hardening pass. It
## P3 — Vendored `kernel/lib/bare/bundles/*.js`
Upstream-generated IIFEs may contain `TODO` comments, `NOT_IMPLEMENTED` helpers, and abstract stream throws. These are **not** first-party kernel policy; they are rebuilt from `bare-os-bare-libs` and mirrored under `packages/bare-os-seeder/kernel/`. Closure strategy: upstream version bumps, selective excludes, or post-process policy documented in `kernel/lib/bare/README.md`.
Upstream-generated IIFEs may contain `TODO` comments, `NOT_IMPLEMENTED` helpers, and abstract stream throws. These are **not** first-party kernel policy; they are rebuilt from `bare-os-bare-libs` and mirrored under `packages/bare-os-seeder/kernel/`. **Inventory:** committed **`docs/audit/bundle-health.json`** (per-bundle bytes, regenerated by **`npm run build -w bare-os-bare-libs`**). **Marker gate:** **`scripts/verify-bundle-markers.mjs`** + **`docs/audit/bundle-marker-allowlist.json`**. Closure strategy: upstream version bumps, allowlist shrink, or bundle post-processing — see **`kernel/lib/bare/README.md`**.
## Subsystem matrix
+805
View File
@@ -0,0 +1,805 @@
{
"schemaVersion": 1,
"generatedAt": "2026-04-04T23:22:39.311Z",
"normativeManifest": "packages/bare-os-booter/lib/bare-module-manifest.json",
"buildTool": "packages/bare-os-bare-libs/build.mjs",
"bundles": [
{
"ctxKey": "b4a",
"package": "b4a",
"path": "/lib/bare/bundles/b4a.js",
"bytes": 7344
},
{
"ctxKey": "bareAbort",
"package": "bare-abort",
"path": "/lib/bare/bundles/bareAbort.js",
"bytes": 3123
},
{
"ctxKey": "bareAbortController",
"package": "bare-abort-controller",
"path": "/lib/bare/bundles/bareAbortController.js",
"bytes": 15272
},
{
"ctxKey": "bareAddonResolve",
"package": "bare-addon-resolve",
"path": "/lib/bare/bundles/bareAddonResolve.js",
"bytes": 52115
},
{
"ctxKey": "bareAnsiEscapes",
"package": "bare-ansi-escapes",
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"bytes": 4998
},
{
"ctxKey": "bareApk",
"package": "bare-apk",
"path": "/lib/bare/bundles/bareApk.js",
"bytes": 48863
},
{
"ctxKey": "bareAppKit",
"package": "bare-app-kit",
"path": "/lib/bare/bundles/bareAppKit.js",
"bytes": 16749
},
{
"ctxKey": "bareAssert",
"package": "bare-assert",
"path": "/lib/bare/bundles/bareAssert.js",
"bytes": 43033
},
{
"ctxKey": "bareAsyncHooks",
"package": "bare-async-hooks",
"path": "/lib/bare/bundles/bareAsyncHooks.js",
"bytes": 3454
},
{
"ctxKey": "bareAtomics",
"package": "bare-atomics",
"path": "/lib/bare/bundles/bareAtomics.js",
"bytes": 6204
},
{
"ctxKey": "bareBluetoothApple",
"package": "bare-bluetooth-apple",
"path": "/lib/bare/bundles/bareBluetoothApple.js",
"bytes": 120514
},
{
"ctxKey": "bareBmp",
"package": "bare-bmp",
"path": "/lib/bare/bundles/bareBmp.js",
"bytes": 3531
},
{
"ctxKey": "bareBoot",
"package": "bare-boot",
"path": "/lib/bare/bundles/bareBoot.js",
"bytes": 192340
},
{
"ctxKey": "bareBuffer",
"package": "bare-buffer",
"path": "/lib/bare/bundles/bareBuffer.js",
"bytes": 41033
},
{
"ctxKey": "bareBundle",
"package": "bare-bundle",
"path": "/lib/bare/bundles/bareBundle.js",
"bytes": 18311
},
{
"ctxKey": "bareBundleCompile",
"package": "bare-bundle-compile",
"path": "/lib/bare/bundles/bareBundleCompile.js",
"bytes": 6913
},
{
"ctxKey": "bareBundleEvaluate",
"package": "bare-bundle-evaluate",
"path": "/lib/bare/bundles/bareBundleEvaluate.js",
"bytes": 63875
},
{
"ctxKey": "bareBundleId",
"package": "bare-bundle-id",
"path": "/lib/bare/bundles/bareBundleId.js",
"bytes": 181802
},
{
"ctxKey": "bareChannel",
"package": "bare-channel",
"path": "/lib/bare/bundles/bareChannel.js",
"bytes": 285213
},
{
"ctxKey": "bareConsole",
"package": "bare-console",
"path": "/lib/bare/bundles/bareConsole.js",
"bytes": 51730
},
{
"ctxKey": "bareCov",
"package": "bare-cov",
"path": "/lib/bare/bundles/bareCov.js",
"bytes": 418231
},
{
"ctxKey": "bareCrypto",
"package": "bare-crypto",
"path": "/lib/bare/bundles/bareCrypto.js",
"bytes": 181380
},
{
"ctxKey": "bareDaemon",
"package": "bare-daemon",
"path": "/lib/bare/bundles/bareDaemon.js",
"bytes": 56272
},
{
"ctxKey": "bareDebugLog",
"package": "bare-debug-log",
"path": "/lib/bare/bundles/bareDebugLog.js",
"bytes": 8693
},
{
"ctxKey": "bareDelta",
"package": "bare-delta",
"path": "/lib/bare/bundles/bareDelta.js",
"bytes": 9619
},
{
"ctxKey": "bareDev",
"package": "bare-dev",
"path": "/lib/bare/bundles/bareDev.js",
"bytes": 2203777
},
{
"ctxKey": "bareDgram",
"package": "bare-dgram",
"path": "/lib/bare/bundles/bareDgram.js",
"bytes": 156005
},
{
"ctxKey": "bareDiagnosticsChannel",
"package": "bare-diagnostics-channel",
"path": "/lib/bare/bundles/bareDiagnosticsChannel.js",
"bytes": 6504
},
{
"ctxKey": "bareDns",
"package": "bare-dns",
"path": "/lib/bare/bundles/bareDns.js",
"bytes": 4718
},
{
"ctxKey": "bareEncoding",
"package": "bare-encoding",
"path": "/lib/bare/bundles/bareEncoding.js",
"bytes": 9318
},
{
"ctxKey": "bareEnv",
"package": "bare-env",
"path": "/lib/bare/bundles/bareEnv.js",
"bytes": 9270
},
{
"ctxKey": "bareEvents",
"package": "bare-events",
"path": "/lib/bare/bundles/bareEvents.js",
"bytes": 13072
},
{
"ctxKey": "bareExif",
"package": "bare-exif",
"path": "/lib/bare/bundles/bareExif.js",
"bytes": 6722
},
{
"ctxKey": "bareFfmpeg",
"package": "bare-ffmpeg",
"path": "/lib/bare/bundles/bareFfmpeg.js",
"bytes": 85075
},
{
"ctxKey": "bareFfmpegEncodings",
"package": "bare-ffmpeg-encodings",
"path": "/lib/bare/bundles/bareFfmpegEncodings.js",
"bytes": 93617
},
{
"ctxKey": "bareFileLogger",
"package": "bare-file-logger",
"path": "/lib/bare/bundles/bareFileLogger.js",
"bytes": 262251
},
{
"ctxKey": "bareFormat",
"package": "bare-format",
"path": "/lib/bare/bundles/bareFormat.js",
"bytes": 44595
},
{
"ctxKey": "bareFormData",
"package": "bare-form-data",
"path": "/lib/bare/bundles/bareFormData.js",
"bytes": 119682
},
{
"ctxKey": "bareFs",
"package": "bare-fs",
"path": "/lib/bare/bundles/bareFs.js",
"bytes": 215595
},
{
"ctxKey": "bareGif",
"package": "bare-gif",
"path": "/lib/bare/bundles/bareGif.js",
"bytes": 3766
},
{
"ctxKey": "bareGtk",
"package": "bare-gtk",
"path": "/lib/bare/bundles/bareGtk.js",
"bytes": 15579
},
{
"ctxKey": "bareHeif",
"package": "bare-heif",
"path": "/lib/bare/bundles/bareHeif.js",
"bytes": 3279
},
{
"ctxKey": "bareHrtime",
"package": "bare-hrtime",
"path": "/lib/bare/bundles/bareHrtime.js",
"bytes": 3432
},
{
"ctxKey": "bareHttp1",
"package": "bare-http1",
"path": "/lib/bare/bundles/bareHttp1.js",
"bytes": 178026
},
{
"ctxKey": "bareHttpParser",
"package": "bare-http-parser",
"path": "/lib/bare/bundles/bareHttpParser.js",
"bytes": 25022
},
{
"ctxKey": "bareHttps",
"package": "bare-https",
"path": "/lib/bare/bundles/bareHttps.js",
"bytes": 220553
},
{
"ctxKey": "bareIco",
"package": "bare-ico",
"path": "/lib/bare/bundles/bareIco.js",
"bytes": 3595
},
{
"ctxKey": "bareImageResample",
"package": "bare-image-resample",
"path": "/lib/bare/bundles/bareImageResample.js",
"bytes": 4017
},
{
"ctxKey": "bareInspect",
"package": "bare-inspect",
"path": "/lib/bare/bundles/bareInspect.js",
"bytes": 40269
},
{
"ctxKey": "bareInspector",
"package": "bare-inspector",
"path": "/lib/bare/bundles/bareInspector.js",
"bytes": 395512
},
{
"ctxKey": "bareIntl",
"package": "bare-intl",
"path": "/lib/bare/bundles/bareIntl.js",
"bytes": 127821
},
{
"ctxKey": "bareIpc",
"package": "bare-ipc",
"path": "/lib/bare/bundles/bareIpc.js",
"bytes": 116026
},
{
"ctxKey": "bareJpeg",
"package": "bare-jpeg",
"path": "/lib/bare/bundles/bareJpeg.js",
"bytes": 3674
},
{
"ctxKey": "bareLief",
"package": "bare-lief",
"path": "/lib/bare/bundles/bareLief.js",
"bytes": 92536
},
{
"ctxKey": "bareLink",
"package": "bare-link",
"path": "/lib/bare/bundles/bareLink.js",
"bytes": 124607
},
{
"ctxKey": "bareLogger",
"package": "bare-logger",
"path": "/lib/bare/bundles/bareLogger.js",
"bytes": 46717
},
{
"ctxKey": "bareMake",
"package": "bare-make",
"path": "/lib/bare/bundles/bareMake.js",
"bytes": 62379
},
{
"ctxKey": "bareMedia",
"package": "bare-media",
"path": "/lib/bare/bundles/bareMedia.js",
"bytes": 635582
},
{
"ctxKey": "bareModule",
"package": "bare-module",
"path": "/lib/bare/bundles/bareModule.js",
"bytes": 157707
},
{
"ctxKey": "bareModuleLexer",
"package": "bare-module-lexer",
"path": "/lib/bare/bundles/bareModuleLexer.js",
"bytes": 56975
},
{
"ctxKey": "bareModuleResolve",
"package": "bare-module-resolve",
"path": "/lib/bare/bundles/bareModuleResolve.js",
"bytes": 38424
},
{
"ctxKey": "bareModuleTraverse",
"package": "bare-module-traverse",
"path": "/lib/bare/bundles/bareModuleTraverse.js",
"bytes": 82904
},
{
"ctxKey": "bareNative",
"package": "bare-native",
"path": "/lib/bare/bundles/bareNative.js",
"bytes": 21380
},
{
"ctxKey": "bareNdk",
"package": "bare-ndk",
"path": "/lib/bare/bundles/bareNdk.js",
"bytes": 5097
},
{
"ctxKey": "bareNet",
"package": "bare-net",
"path": "/lib/bare/bundles/bareNet.js",
"bytes": 146828
},
{
"ctxKey": "bareNodeFetch",
"package": "bare-node-fetch",
"path": "/lib/bare/bundles/bareNodeFetch.js",
"bytes": 2543
},
{
"ctxKey": "bareNodeRuntime",
"package": "bare-node-runtime/global",
"path": "/lib/bare/bundles/bareNodeRuntime.js",
"bytes": 585413
},
{
"ctxKey": "bareOpen",
"package": "bare-open",
"path": "/lib/bare/bundles/bareOpen.js",
"bytes": 3268
},
{
"ctxKey": "bareOs",
"package": "bare-os",
"path": "/lib/bare/bundles/bareOs.js",
"bytes": 7857
},
{
"ctxKey": "barePack",
"package": "bare-pack",
"path": "/lib/bare/bundles/barePack.js",
"bytes": 105577
},
{
"ctxKey": "barePackDrive",
"package": "bare-pack-drive",
"path": "/lib/bare/bundles/barePackDrive.js",
"bytes": 106717
},
{
"ctxKey": "barePath",
"package": "bare-path",
"path": "/lib/bare/bundles/barePath.js",
"bytes": 34917
},
{
"ctxKey": "barePerformance",
"package": "bare-performance",
"path": "/lib/bare/bundles/barePerformance.js",
"bytes": 19655
},
{
"ctxKey": "barePipe",
"package": "bare-pipe",
"path": "/lib/bare/bundles/barePipe.js",
"bytes": 112762
},
{
"ctxKey": "barePng",
"package": "bare-png",
"path": "/lib/bare/bundles/barePng.js",
"bytes": 3435
},
{
"ctxKey": "barePrebuild",
"package": "bare-prebuild",
"path": "/lib/bare/bundles/barePrebuild.js",
"bytes": 66387
},
{
"ctxKey": "bareProcess",
"package": "bare-process",
"path": "/lib/bare/bundles/bareProcess.js",
"bytes": 250172
},
{
"ctxKey": "barePromClient",
"package": "bare-prom-client",
"path": "/lib/bare/bundles/barePromClient.js",
"bytes": 170295
},
{
"ctxKey": "barePunycode",
"package": "bare-punycode",
"path": "/lib/bare/bundles/barePunycode.js",
"bytes": 2927
},
{
"ctxKey": "bareQuerystring",
"package": "bare-querystring",
"path": "/lib/bare/bundles/bareQuerystring.js",
"bytes": 3538
},
{
"ctxKey": "bareQueueMicrotask",
"package": "bare-queue-microtask",
"path": "/lib/bare/bundles/bareQueueMicrotask.js",
"bytes": 2806
},
{
"ctxKey": "bareReadline",
"package": "bare-readline",
"path": "/lib/bare/bundles/bareReadline.js",
"bytes": 111189
},
{
"ctxKey": "bareRealm",
"package": "bare-realm",
"path": "/lib/bare/bundles/bareRealm.js",
"bytes": 3392
},
{
"ctxKey": "bareRepl",
"package": "bare-repl",
"path": "/lib/bare/bundles/bareRepl.js",
"bytes": 341695
},
{
"ctxKey": "bareRpc",
"package": "bare-rpc",
"path": "/lib/bare/bundles/bareRpc.js",
"bytes": 156194
},
{
"ctxKey": "bareRun",
"package": "bare-run",
"path": "/lib/bare/bundles/bareRun.js",
"bytes": 258251
},
{
"ctxKey": "bareRuntime",
"package": "bare-runtime",
"path": "/lib/bare/bundles/bareRuntime.js",
"bytes": 3864
},
{
"ctxKey": "bareSdl",
"package": "bare-sdl",
"path": "/lib/bare/bundles/bareSdl.js",
"bytes": 23244
},
{
"ctxKey": "bareSemver",
"package": "bare-semver",
"path": "/lib/bare/bundles/bareSemver.js",
"bytes": 13188
},
{
"ctxKey": "bareSidecar",
"package": "bare-sidecar",
"path": "/lib/bare/bundles/bareSidecar.js",
"bytes": 43058
},
{
"ctxKey": "bareSignals",
"package": "bare-signals",
"path": "/lib/bare/bundles/bareSignals.js",
"bytes": 23405
},
{
"ctxKey": "bareStdio",
"package": "bare-stdio",
"path": "/lib/bare/bundles/bareStdio.js",
"bytes": 243869
},
{
"ctxKey": "bareStorage",
"package": "bare-storage",
"path": "/lib/bare/bundles/bareStorage.js",
"bytes": 58827
},
{
"ctxKey": "bareStream",
"package": "bare-stream",
"path": "/lib/bare/bundles/bareStream.js",
"bytes": 87143
},
{
"ctxKey": "bareStringDecoder",
"package": "bare-string-decoder",
"path": "/lib/bare/bundles/bareStringDecoder.js",
"bytes": 15560
},
{
"ctxKey": "bareStructuredClone",
"package": "bare-structured-clone",
"path": "/lib/bare/bundles/bareStructuredClone.js",
"bytes": 185344
},
{
"ctxKey": "bareSubprocess",
"package": "bare-subprocess",
"path": "/lib/bare/bundles/bareSubprocess.js",
"bytes": 175091
},
{
"ctxKey": "bareSvg",
"package": "bare-svg",
"path": "/lib/bare/bundles/bareSvg.js",
"bytes": 3558
},
{
"ctxKey": "bareSystemLogger",
"package": "bare-system-logger",
"path": "/lib/bare/bundles/bareSystemLogger.js",
"bytes": 47803
},
{
"ctxKey": "bareTap",
"package": "bare-tap",
"path": "/lib/bare/bundles/bareTap.js",
"bytes": 47330
},
{
"ctxKey": "bareTcp",
"package": "bare-tcp",
"path": "/lib/bare/bundles/bareTcp.js",
"bytes": 121084
},
{
"ctxKey": "bareThread",
"package": "bare-thread",
"path": "/lib/bare/bundles/bareThread.js",
"bytes": 102120
},
{
"ctxKey": "bareTiff",
"package": "bare-tiff",
"path": "/lib/bare/bundles/bareTiff.js",
"bytes": 3450
},
{
"ctxKey": "bareTimers",
"package": "bare-timers",
"path": "/lib/bare/bundles/bareTimers.js",
"bytes": 17058
},
{
"ctxKey": "bareTls",
"package": "bare-tls",
"path": "/lib/bare/bundles/bareTls.js",
"bytes": 158323
},
{
"ctxKey": "bareTpl",
"package": "bare-tpl",
"path": "/lib/bare/bundles/bareTpl.js",
"bytes": 2744
},
{
"ctxKey": "bareTty",
"package": "bare-tty",
"path": "/lib/bare/bundles/bareTty.js",
"bytes": 114177
},
{
"ctxKey": "bareType",
"package": "bare-type",
"path": "/lib/bare/bundles/bareType.js",
"bytes": 8595
},
{
"ctxKey": "bareUiKit",
"package": "bare-ui-kit",
"path": "/lib/bare/bundles/bareUiKit.js",
"bytes": 16766
},
{
"ctxKey": "bareUnionBundle",
"package": "bare-union-bundle",
"path": "/lib/bare/bundles/bareUnionBundle.js",
"bytes": 200405
},
{
"ctxKey": "bareUnpack",
"package": "bare-unpack",
"path": "/lib/bare/bundles/bareUnpack.js",
"bytes": 23452
},
{
"ctxKey": "bareUrl",
"package": "bare-url",
"path": "/lib/bare/bundles/bareUrl.js",
"bytes": 52694
},
{
"ctxKey": "bareUtils",
"package": "bare-utils",
"path": "/lib/bare/bundles/bareUtils.js",
"bytes": 306714
},
{
"ctxKey": "bareV8",
"package": "bare-v8",
"path": "/lib/bare/bundles/bareV8.js",
"bytes": 3277
},
{
"ctxKey": "bareV8ToIstanbul",
"package": "bare-v8-to-istanbul",
"path": "/lib/bare/bundles/bareV8ToIstanbul.js",
"bytes": 332461
},
{
"ctxKey": "bareVm",
"package": "bare-vm",
"path": "/lib/bare/bundles/bareVm.js",
"bytes": 4328
},
{
"ctxKey": "bareWalkHandles",
"package": "bare-walk-handles",
"path": "/lib/bare/bundles/bareWalkHandles.js",
"bytes": 3713
},
{
"ctxKey": "bareWebKit",
"package": "bare-web-kit",
"path": "/lib/bare/bundles/bareWebKit.js",
"bytes": 15351
},
{
"ctxKey": "bareWebKitGtk",
"package": "bare-web-kit-gtk",
"path": "/lib/bare/bundles/bareWebKitGtk.js",
"bytes": 16946
},
{
"ctxKey": "bareWebp",
"package": "bare-webp",
"path": "/lib/bare/bundles/bareWebp.js",
"bytes": 5227
},
{
"ctxKey": "bareWhich",
"package": "bare-which",
"path": "/lib/bare/bundles/bareWhich.js",
"bytes": 9478
},
{
"ctxKey": "bareWinUi",
"package": "bare-win-ui",
"path": "/lib/bare/bundles/bareWinUi.js",
"bytes": 17641
},
{
"ctxKey": "bareWorker",
"package": "bare-worker",
"path": "/lib/bare/bundles/bareWorker.js",
"bytes": 396379
},
{
"ctxKey": "bareWs",
"package": "bare-ws",
"path": "/lib/bare/bundles/bareWs.js",
"bytes": 336859
},
{
"ctxKey": "bareXdiff",
"package": "bare-xdiff",
"path": "/lib/bare/bundles/bareXdiff.js",
"bytes": 9669
},
{
"ctxKey": "bareZlib",
"package": "bare-zlib",
"path": "/lib/bare/bundles/bareZlib.js",
"bytes": 97965
},
{
"ctxKey": "bareZmq",
"package": "bare-zmq",
"path": "/lib/bare/bundles/bareZmq.js",
"bytes": 109332
},
{
"ctxKey": "compactEncoding",
"package": "compact-encoding",
"path": "/lib/bare/bundles/compactEncoding.js",
"bytes": 45550
},
{
"ctxKey": "fetch",
"package": "bare-fetch",
"path": "/lib/bare/bundles/fetch.js",
"bytes": 344624
},
{
"ctxKey": "hypercoreIdEncoding",
"package": "hypercore-id-encoding",
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"bytes": 12065
},
{
"ctxKey": "protomux",
"package": "protomux",
"path": "/lib/bare/bundles/protomux.js",
"bytes": 70061
},
{
"ctxKey": "safetyCatch",
"package": "safety-catch",
"path": "/lib/bare/bundles/safetyCatch.js",
"bytes": 3108
}
],
"bundleStats": {
"ok": 132,
"failed": 0,
"attempted": 132
}
}
+17
View File
@@ -0,0 +1,17 @@
{
"schemaVersion": 1,
"description": "Third-party IIFE bundles that still contain upstream TODO/NOT_IMPLEMENTED markers. Shrink this list over time via upstream bumps or post-process fixes.",
"entries": [
{ "bundleFile": "bareDev.js", "reason": "Upstream dev tooling bundle; markers in vendored dependency graph" },
{ "bundleFile": "bareFfmpeg.js", "reason": "Upstream media bundle" },
{ "bundleFile": "bareFfmpegEncodings.js", "reason": "Upstream media bundle" },
{ "bundleFile": "bareHttp1.js", "reason": "Upstream HTTP stack NOT_IMPLEMENTED helper" },
{ "bundleFile": "bareHttps.js", "reason": "Upstream HTTP stack NOT_IMPLEMENTED helper" },
{ "bundleFile": "bareInspector.js", "reason": "Upstream inspector NOT_IMPLEMENTED helper" },
{ "bundleFile": "bareIntl.js", "reason": "Upstream intl ###TODO### marker" },
{ "bundleFile": "bareMedia.js", "reason": "Upstream media TODO + NOT_IMPLEMENTED" },
{ "bundleFile": "bareNodeRuntime.js", "reason": "Upstream compatibility NOT_IMPLEMENTED helper" },
{ "bundleFile": "bareWs.js", "reason": "Upstream websocket NOT_IMPLEMENTED helper" },
{ "bundleFile": "fetch.js", "reason": "Upstream fetch NOT_IMPLEMENTED helper" }
]
}
+1 -1
View File
@@ -14,7 +14,7 @@ Single place to compare **protocol**, **booter `ctx` API**, **feature-bit docume
## Version artifacts
**`bareOsCtxApiVersion`** (current stock: **`1.28.0`**) — Defined in [`packages/bare-os-booter/lib/bare-os-ctx-api.js`](../../packages/bare-os-booter/lib/bare-os-ctx-api.js). This is the semver string for the documented **`ctx`** contract; bump it when stable guest-visible behavior changes.
**`bareOsCtxApiVersion`** (current stock: **`1.30.0`**) — Defined in [`packages/bare-os-booter/lib/bare-os-ctx-api.js`](../../packages/bare-os-booter/lib/bare-os-ctx-api.js). This is the semver string for the documented **`ctx`** contract; bump it when stable guest-visible behavior changes.
**`BARE_OS_KERNEL_FEATURE_BITS_DOC`** (current stock: **`15`**) — Exported from [`packages/bare-os-protocol/lib/kernel-feature-bits.js`](../../packages/bare-os-protocol/lib/kernel-feature-bits.js). It versions the feature-bit documentation and related governance; keep it aligned with [`developer-guide/adr/001-kernel-feature-bits-governance.md`](../../developer-guide/adr/001-kernel-feature-bits-governance.md).
+12 -3
View File
@@ -18,9 +18,9 @@ Bare OS targets **maximal POSIX-like** behavior on the **Bare** runtime with a *
| Area | Status | Notes |
| --- | --- | --- |
| Pipelines, lists, redirects | Partial | See [environment appendix §14a](environment-and-posix-appendix.md#14a-posix-userland-appendix-implemented-vs-gaps) |
| Parameter expansion | Partial | `BARE_OS_SHELL_PARAM_EXPANSION`, `BARE_OS_SHELL_PARAM_EXPANSION_V2` |
| Parameter expansion | Partial | `BARE_OS_SHELL_PARAM_EXPANSION`, `BARE_OS_SHELL_PARAM_EXPANSION_V2`, `BARE_OS_SHELL_PARAM_EXPANSION_V3` (`:${?+}` forms) |
| Command substitution | Partial | Bounded `$(…)` when `BARE_OS_SHELL_CMDSUBST` |
| Job control | Partial | `jobs` / `fg` / `wait`, background `&` |
| Job control | Partial | `jobs` / `fg` / `wait`, background `&`; synthetic `sid` / `pgid` on job rows |
| Full POSIX `sh` grammar | N/A | No subshells; not a standalone POSIX `sh` binary |
## File system / VFS (XBD path + XSH-like ops)
@@ -30,7 +30,7 @@ Bare OS targets **maximal POSIX-like** behavior on the **Bare** runtime with a *
| Path resolution | Partial | Symlinks, modes, personal vs system drive; see `vfs.js` |
| `chmod`, `umask`, ownership display | Partial | `chown`/`chgrp` on personal metadata |
| `mkfifo` | Partial | IPC under `/run/bare-os/ipc/` (see man pages) |
| `mount` / `umount` | Partial | Hyperdrive-backed mounts via HDMS labels under `/mnt` (not host kernel mounts) |
| `mount` / `umount` | Partial | Hyperdrive-backed mounts via HDMS labels under `/mnt` (not host kernel mounts); optional persist snapshot at `/etc/bare-os/mounts.json` after mount changes |
| `sync` / durability | Synthetic | Documented no-op or policy-bound flush |
## Utilities (XCU)
@@ -55,6 +55,15 @@ Bare OS targets **maximal POSIX-like** behavior on the **Bare** runtime with a *
| Sockets as POSIX BSD | Partial | Delegates / fetch policy where used |
| P2P swarm | Synthetic | Hyperswarm + Protomux; not POSIX sockets |
## Observability (synthetic `/proc`)
| Area | Status | Notes |
| --- | --- | --- |
| Live metrics JSON | Synthetic | `/proc/bare_os/metrics_live.json` (coalesced; `BARE_OS_PROC_POLL_MS`) |
| OpenMetrics text | Synthetic | `/proc/bare_os/metrics.prom``bare_os_kernel_counters{name="…"}` from the in-process counter registry |
| Protomux alias table | Synthetic | `/proc/bare_os/protomux.json` — logical→actual channel map + tail of change log |
| Audit hash chain | Synthetic | `ctx.bareOsAuditLogAppend` / `ctx.bareOsAuditLogAppendBatch` (in-memory chain; optional persistence via host logging) |
## CI and evidence
- Booter + coreutils: `packages/bare-os-booter/test.js`, `packages/bare-os-coreutils` tests.
@@ -41,7 +41,7 @@ The list below is one **bullet per variable** in the form **name — component
- `MANWIDTH``/bin/man` — Wrap width for manual text (default `72`; minimum `40`)
- `NO_COLOR``/bin/man` — If set, disable ANSI bold for section headings on a TTY
**Host → session passthrough** (booter copies into **`shellEnv`** when the host sets a non-empty value): `BARE_OS_PIPELINE_MAX_STAGES`, `BARE_OS_PIPELINE_MAX_BYTES`, `BARE_OS_PIPELINE_MAX_LINES`, `BARE_OS_SHELL_STREAMING`, `BARE_OS_SHELL_STREAMING_MULT`, `BARE_OS_SHELL_CMDSUBST`, `BARE_OS_SHELL_CMDSUBST_MAX_BYTES`, `BARE_OS_SHELL_PARAM_EXPANSION`, `BARE_OS_SHELL_PARAM_EXPANSION_V2`, `BARE_OS_ENV_DASH_S`, `BARE_OS_VFS_WATCH_PSEUDO`, `BARE_OS_VFS_WATCH_SWARM`, `BARE_OS_SHELL_LOCAL_DECLARE`, `BARE_OS_DIAGNOSTICS_SUBSCRIBE`, `BARE_OS_AUTOPASS_INVITE_URL`, `BARE_OS_BIN_WORKER_OFFLOAD`, `BARE_OS_BIN_WORKER_ALLOW`, `BARE_OS_BOOT_PROFILE`, `BARE_OS_ONBOOT`, `BARE_OS_BOOT_STRICT`, `BARE_OS_RC_D_SKIP`, `BARE_OS_BOOT_MINIMAL`, `BARE_OS_BOOT_SKIP`, `BARE_OS_BOOT_SAFE_MODE`, `BARE_OS_BOOT_TRANSACTION_JOURNAL`, `BARE_OS_BOOT_CHECKPOINT`, `BARE_OS_BOOT_DRY_RUN`, `BARE_OS_BOOT_POLICY_PATH`, `BARE_OS_BOOT_ROLLBACK_APPLY`, `BARE_OS_BOOT_BUNDLE_DIGEST_HEX`, `BARE_OS_REQUIRE_CTX_API_MIN`, `BARE_OS_BOOT_ABI_STRICT`, `BARE_OS_LOADER_AUDIT`, `BARE_OS_DELEGATE_TRACE`, `BARE_OS_DNS_PROFILE`, `BARE_OS_BOOT_TRACE`, `BARE_OS_KERNEL_PROGRAM_PROC_JSON`, `BARE_OS_GIANT_PHASE_PROGRAM_JSON`, `BARE_OS_KERNEL_SELFTEST`, `BARE_OS_SELFTEST_FORMAT`, `BARE_OS_AUDIT`, `BARE_OS_AUDIT_JSON`, `BARE_OS_AUDIT_REDACT`, `BARE_OS_IMAGE_DIGEST`, `BARE_OS_EXEC_MAX_DEPTH`, `BARE_OS_EXEC_LINE_BUDGET_MS`, `BARE_OS_IPC_MAX_BYTES`, `BARE_OS_IPC_CHANNEL_MAX_BYTES`, `BARE_OS_IPC_RPC_TOKEN`, `BARE_OS_IPC_FANOUT`, `BARE_OS_IPC_JSON_MAX_BYTES`, `BARE_OS_IPC_NAMESPACE`, `BARE_OS_VFS_WATCH`, `BARE_OS_VFS_UNION_PREFIXES`, `BARE_OS_VFS_UNION_WRITE_DENY`, `BARE_OS_VFS_BIN_CACHE`, `BARE_OS_BOOT_ALLOWLIST`, `BARE_OS_BOOT_MANIFEST`, `BARE_OS_BOOT_MANIFEST_SIGN`, `BARE_OS_BOOT_MANIFEST_PUBKEY_HEX`, `BARE_OS_BOOT_POLICY`, `BARE_OS_BOOT_POLICY_STRICT`, `BARE_OS_LAZY_PERSONAL_DRIVE`, `BARE_OS_SYSTEM_REVISION_ID`, `BARE_OS_SYSTEM_REVISION_PENDING`, `BARE_OS_SYSTEM_SLOT`, `BARE_OS_DELEGATE_ALLOW`, `BARE_OS_DELEGATE_MAX_PER_MIN`, `BARE_OS_DELEGATE_MAX_CONCURRENT`, `BARE_OS_DELEGATE_GIT_MAX_PER_MIN`, `BARE_OS_DELEGATE_CURL_MAX_PER_MIN`, `BARE_OS_DELEGATE_WGET_MAX_PER_MIN`, `BARE_OS_DELEGATE_SYSTEMCTL_MAX_PER_MIN`, `BARE_OS_DELEGATE_GIT_MAX_CONCURRENT`, `BARE_OS_DELEGATE_CURL_MAX_CONCURRENT`, `BARE_OS_DELEGATE_WGET_MAX_CONCURRENT`, `BARE_OS_DELEGATE_SYSTEMCTL_MAX_CONCURRENT`, `BARE_OS_DELEGATE_AUDIT_ONLY`, `BARE_OS_DNS_ALLOWLIST`, `BARE_OS_KERNEL_HOT_RELOAD`, `BARE_OS_SANDBOX_SCRIPT`, `BARE_OS_SANDBOX_WORKER`, `BARE_OS_INITD_MAX_PARALLEL`, `BARE_OS_INITD_JOURNAL_MAX_LINES`, `BARE_OS_URANDOM_CRYPTO`, `BARE_OS_TELEMETRY_NDJSON`, `BARE_OS_TELEMETRY_OTEL_JSONL`, `BARE_OS_PROC_POLL_MS`, `BARE_OS_SEED_RPC_HANDSHAKE`, `BARE_OS_SEED_CAP_STRICT`, `BARE_OS_SEED_CAP_FAIL`, `BARE_OS_OFFLINE_LKG_BOOT`, `BARE_OS_LKG_SYSTEM_KEY_HEX`, `BARE_OS_HOST_STORAGE_JSON`, `BARE_OS_BOOT_POLICY_DENY_EXEC_LINE_BUILTINS`, `BARE_OS_BOOT_POLICY_ALLOWED_CTX_METHODS`, `BARE_OS_SUBPROCESS_BRIDGE_JOBS_JSON`, `BARE_OS_IPC_AUDIT`, `BARE_OS_HTTP_ALLOWLIST`, `BARE_OS_HTTP_DENYLIST`, `BARE_OS_TLS_PIN_SHA256`, `BARE_OS_BARE_MODULES`, `BARE_OS_BARE_DRIVE_BUNDLES`, `BARE_OS_PEAR_CHANNEL`, `BARE_OS_PEAR_RELEASE`, `PEAR_CHANNEL`, `BARE_OS_FIND_EXEC_MAX`, `BARE_OS_YES_MAX_LINES`, `BARE_OS_SHUF_MAX_LINES`, `BARE_OS_SPLIT_MAX_FILES`, `BARE_OS_NPROC`, `BARE_OS_BLIND_BOOTSTRAP_URL`, `BARE_OS_BLIND_BOOTSTRAP_JSON`, `BARE_OS_MIRROR_READ_KEY`, `BARE_OS_PEAR_TRUST_JSON`, `BARE_OS_HOST_BUNDLE_EVALUATE`, **`TERM`**, **`COLORTERM`**.
**Host → session passthrough** (booter copies into **`shellEnv`** when the host sets a non-empty value): `BARE_OS_PIPELINE_MAX_STAGES`, `BARE_OS_PIPELINE_MAX_BYTES`, `BARE_OS_PIPELINE_MAX_LINES`, `BARE_OS_SHELL_STREAMING`, `BARE_OS_SHELL_STREAMING_MULT`, `BARE_OS_SHELL_CMDSUBST`, `BARE_OS_SHELL_CMDSUBST_MAX_BYTES`, `BARE_OS_SHELL_PARAM_EXPANSION`, `BARE_OS_SHELL_PARAM_EXPANSION_V2`, `BARE_OS_SHELL_PARAM_EXPANSION_V3`, `BARE_OS_ENV_DASH_S`, `BARE_OS_VFS_WATCH_PSEUDO`, `BARE_OS_VFS_WATCH_SWARM`, `BARE_OS_SHELL_LOCAL_DECLARE`, `BARE_OS_DIAGNOSTICS_SUBSCRIBE`, `BARE_OS_AUTOPASS_INVITE_URL`, `BARE_OS_BIN_WORKER_OFFLOAD`, `BARE_OS_BIN_WORKER_ALLOW`, `BARE_OS_BOOT_PROFILE`, `BARE_OS_ONBOOT`, `BARE_OS_BOOT_STRICT`, `BARE_OS_RC_D_SKIP`, `BARE_OS_BOOT_MINIMAL`, `BARE_OS_BOOT_SKIP`, `BARE_OS_BOOT_SAFE_MODE`, `BARE_OS_BOOT_TRANSACTION_JOURNAL`, `BARE_OS_BOOT_CHECKPOINT`, `BARE_OS_BOOT_DRY_RUN`, `BARE_OS_BOOT_POLICY_PATH`, `BARE_OS_BOOT_ROLLBACK_APPLY`, `BARE_OS_BOOT_BUNDLE_DIGEST_HEX`, `BARE_OS_REQUIRE_CTX_API_MIN`, `BARE_OS_BOOT_ABI_STRICT`, `BARE_OS_LOADER_AUDIT`, `BARE_OS_DELEGATE_TRACE`, `BARE_OS_DNS_PROFILE`, `BARE_OS_BOOT_TRACE`, `BARE_OS_KERNEL_PROGRAM_PROC_JSON`, `BARE_OS_GIANT_PHASE_PROGRAM_JSON`, `BARE_OS_KERNEL_SELFTEST`, `BARE_OS_SELFTEST_FORMAT`, `BARE_OS_AUDIT`, `BARE_OS_AUDIT_JSON`, `BARE_OS_AUDIT_REDACT`, `BARE_OS_IMAGE_DIGEST`, `BARE_OS_EXEC_MAX_DEPTH`, `BARE_OS_EXEC_LINE_BUDGET_MS`, `BARE_OS_IPC_MAX_BYTES`, `BARE_OS_IPC_CHANNEL_MAX_BYTES`, `BARE_OS_IPC_RPC_TOKEN`, `BARE_OS_IPC_FANOUT`, `BARE_OS_IPC_JSON_MAX_BYTES`, `BARE_OS_IPC_NAMESPACE`, `BARE_OS_VFS_WATCH`, `BARE_OS_VFS_UNION_PREFIXES`, `BARE_OS_VFS_UNION_WRITE_DENY`, `BARE_OS_VFS_BIN_CACHE`, `BARE_OS_BOOT_ALLOWLIST`, `BARE_OS_BOOT_MANIFEST`, `BARE_OS_BOOT_MANIFEST_SIGN`, `BARE_OS_BOOT_MANIFEST_PUBKEY_HEX`, `BARE_OS_BOOT_POLICY`, `BARE_OS_BOOT_POLICY_STRICT`, `BARE_OS_LAZY_PERSONAL_DRIVE`, `BARE_OS_SYSTEM_REVISION_ID`, `BARE_OS_SYSTEM_REVISION_PENDING`, `BARE_OS_SYSTEM_SLOT`, `BARE_OS_DELEGATE_ALLOW`, `BARE_OS_DELEGATE_MAX_PER_MIN`, `BARE_OS_DELEGATE_MAX_CONCURRENT`, `BARE_OS_DELEGATE_GIT_MAX_PER_MIN`, `BARE_OS_DELEGATE_CURL_MAX_PER_MIN`, `BARE_OS_DELEGATE_WGET_MAX_PER_MIN`, `BARE_OS_DELEGATE_SYSTEMCTL_MAX_PER_MIN`, `BARE_OS_DELEGATE_GIT_MAX_CONCURRENT`, `BARE_OS_DELEGATE_CURL_MAX_CONCURRENT`, `BARE_OS_DELEGATE_WGET_MAX_CONCURRENT`, `BARE_OS_DELEGATE_SYSTEMCTL_MAX_CONCURRENT`, `BARE_OS_DELEGATE_AUDIT_ONLY`, `BARE_OS_DNS_ALLOWLIST`, `BARE_OS_KERNEL_HOT_RELOAD`, `BARE_OS_SANDBOX_SCRIPT`, `BARE_OS_SANDBOX_WORKER`, `BARE_OS_INITD_MAX_PARALLEL`, `BARE_OS_INITD_JOURNAL_MAX_LINES`, `BARE_OS_URANDOM_CRYPTO`, `BARE_OS_TELEMETRY_NDJSON`, `BARE_OS_TELEMETRY_OTEL_JSONL`, `BARE_OS_PROC_POLL_MS`, `BARE_OS_SEED_RPC_HANDSHAKE`, `BARE_OS_SEED_CAP_STRICT`, `BARE_OS_SEED_CAP_FAIL`, `BARE_OS_OFFLINE_LKG_BOOT`, `BARE_OS_LKG_SYSTEM_KEY_HEX`, `BARE_OS_HOST_STORAGE_JSON`, `BARE_OS_BOOT_POLICY_DENY_EXEC_LINE_BUILTINS`, `BARE_OS_BOOT_POLICY_ALLOWED_CTX_METHODS`, `BARE_OS_SUBPROCESS_BRIDGE_JOBS_JSON`, `BARE_OS_IPC_AUDIT`, `BARE_OS_HTTP_ALLOWLIST`, `BARE_OS_HTTP_DENYLIST`, `BARE_OS_TLS_PIN_SHA256`, `BARE_OS_BARE_MODULES`, `BARE_OS_BARE_DRIVE_BUNDLES`, `BARE_OS_PEAR_CHANNEL`, `BARE_OS_PEAR_RELEASE`, `PEAR_CHANNEL`, `BARE_OS_FIND_EXEC_MAX`, `BARE_OS_YES_MAX_LINES`, `BARE_OS_SHUF_MAX_LINES`, `BARE_OS_SPLIT_MAX_FILES`, `BARE_OS_NPROC`, `BARE_OS_BLIND_BOOTSTRAP_URL`, `BARE_OS_BLIND_BOOTSTRAP_JSON`, `BARE_OS_MIRROR_READ_KEY`, `BARE_OS_PEAR_TRUST_JSON`, `BARE_OS_HOST_BUNDLE_EVALUATE`, **`TERM`**, **`COLORTERM`**.
- `BARE_OS_VFS_UNION_PREFIXES` — Booter / VFS — Comma-separated logical path prefixes where **`readFile`** may union system + overlay sources.
- `BARE_OS_VFS_UNION_WRITE_DENY` — Booter / VFS — When **`1`** / **`true`**, block **`writeFile`** / **`unlink`** on paths under union read prefixes (read-only union overlay).
@@ -66,11 +66,12 @@ The list below is one **bullet per variable** in the form **name — component
- `BARE_OS_INITD_JOURNAL_MAX_LINES` — bare-initd / unit journals — Cap lines retained per unit NDJSON journal under **`/run/bare-os/unit-journal/`**.
- `BARE_OS_TELEMETRY_NDJSON` — Booter — Absolute or **`~/…`** path in the **guest VFS**: append capped NDJSON telemetry records (**`telemetrySchemaVersion` / `lifecycleSchemaVersion`**: **5** (stock Capability word 6+), **`ts`**, …) mirroring structured boot/kernel events.
- `BARE_OS_TELEMETRY_OTEL_JSONL` — Booter / var-log — Guest VFS path for OTLP-inspired JSON lines (var-log mirrors).
- `BARE_OS_PROC_POLL_MS` — VFS — Coalescing interval for **`/proc/bare_os/metrics_live.json`** (25060000).
- `BARE_OS_PROC_POLL_MS` — VFS — Coalescing interval for **`/proc/bare_os/metrics_live.json`** and poll cadence for related pseudo metrics reads (25060000).
- `BARE_OS_SHELL_PARAM_EXPANSION` — Shell — When **`1`**, enable **`${VAR:-word}`** and **`${VAR#prefix}`** in **`expandWord`**.
- `BARE_OS_SHELL_PARAM_EXPANSION_V2` — Shell — With param expansion on, enable **`${VAR:=word}`**, **`${VAR##*/}`** / **`${VAR#*/}`**, **`${VAR%%suffix}`** / **`${VAR%suffix}`** (bounded patterns).
- `BARE_OS_SHELL_PARAM_EXPANSION_V3` — Shell — With param expansion on, enable **`${VAR:?word}`** and **`${VAR:+word}`** (POSIX-style error/alternate-value forms within documented bounds).
- `BARE_OS_ENV_DASH_S``/bin/env` — When **`1`**, enable **`-S` / `--split-string`** and **`--env-file`** (bounded).
- `BARE_OS_VFS_WATCH_PSEUDO` — VFS — When **`1`**, allow **`vfs.watch`** on coalesced **`/proc/bare_os/metrics_live.json`**.
- `BARE_OS_VFS_WATCH_PSEUDO` — VFS — When **`1`**, allow **`vfs.watch`** on coalesced **`/proc/bare_os/metrics_live.json`** and polled **`/proc/bare_os/metrics.prom`** (and flat **`/proc/bare_os_metrics_*`** aliases).
- `BARE_OS_VFS_WATCH_SWARM` — VFS — When **`1`**, allow bounded **`vfs.watch`** on **`/proc/bare_os/swarm`**, flat **`/proc/bare_os_swarm`**, **`/proc/bare_os/replication`**, **`/proc/bare_os_replication`** (poll interval **`BARE_OS_PROC_POLL_MS`**).
- `BARE_OS_SHELL_LOCAL_DECLARE` — Shell — When **`1`**, **`local`** and read-only **`declare -r`** apply per shell line (shallow **`vfs.env`** copy).
- `BARE_OS_DIAGNOSTICS_SUBSCRIBE` — Booter — When **`1`**, **`ctx.bareOsDiagnosticsSubscribe`** receives structured booter events.
+1 -1
View File
@@ -39,7 +39,7 @@ See also [Kernel subsystem map](../architecture/kernel-subsystems.md) and [ADR 0
**`createReadLine()`**
- If `BARE_OS_SKIP_REPL === '1'`: returns `async () => null`.
- Else tries `node:readline` `createInterface` + `question` per prompt.
- Else prefers **fish-style** / **`bare-readline`** raw TTY editing when stdin is a TTY; falls back to a stream line reader (no **`node:readline`** in the stock boot path).
- On failure: warns and returns `async () => null`.
**`executeKernel(disk, store, swarm, initSource)`** (`store`/`swarm` unused but kept for signature symmetry / future use)
+11 -2
View File
@@ -3,7 +3,10 @@
"title": "Bare OS POSIX-like conformance snapshot (machine-readable)",
"normativeReference": "IEEE Std 1003.1-2017",
"syntheticProcessModel": true,
"procLogicalPaths": ["/proc/bare_os/process_table.json"],
"procLogicalPaths": [
"/proc/bare_os/process_table.json",
"/proc/bare_os/syscalls.json"
],
"bareOsSyscallOps": [
"readFile",
"writeFile",
@@ -21,7 +24,13 @@
"rmdir",
"mount",
"umount",
"kill"
"kill",
"rename",
"link",
"access",
"utimes",
"truncate",
"ftruncate"
],
"utilitiesRecent": [
"dd",