feat(booter): cache syscalls proc JSON, net tuning hints, /dev/shm unlink, POSIX/docs sync

- Cache /proc/bare_os/syscalls.json until warm read cache clear; invalidate with vfs.bareOsClearWarmReadCaches
- net_summary: optional udxTuning / hyperswarmTuning from BARE_OS_UDX_* / BARE_OS_HYPERSWARM_* JSON
- Metric: operator.corestore_snapshot_hint on bareOsCorestoreSnapshotHint
- pathconf: _PC_NAME_MAX 128 under /dev/shm
- vfs: fix unlink for /dev/shm segments; add roundtrip test
- protocol: bareOsIsAllowedSeedRpcMethodShort + tests
- getconf: _POSIX_SHARED_MEMORY_OBJECTS, _POSIX_MESSAGE_PASSING, _POSIX_ASYNCHRONOUS_IO + test
- microbench: syscall suite (syscalls proc JSON stringify)
- JSON Schema bare-os-syscalls.schema.json schemaVersion 5; posix-conformance-matrix ops = getconf
- Docs: blind-relay security note, compat matrix (1.38.0 / 1.0.4), handbook 04/09, appendix, OTA note
- Pear: document host coupling in compatibility-matrix (no pear-runtime manifest entry)
This commit is contained in:
Raven Scott
2026-04-04 23:36:58 -04:00
parent 13a06ea3e9
commit 16ac71815f
65 changed files with 2160 additions and 1043 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ The authoritative list is in the [environment appendix](../../../docs/reference/
Esbuild prints the failing **`ctxKey`** and package. Fix **`bare-module-manifest.json`**, adjust **`build.mjs`** (plugins, platform), or mark the entry **`optional`** / **`bundle: false`** when host-only resolution is intended. **`npm run smoke:bare-manifest`** guards required imports listed in the manifest smoke list.
**CI:** **`scripts/verify-bundle-health.mjs`** checks **`docs/audit/bundle-health.json`** against on-disk sizes; **`scripts/verify-bundle-markers.mjs`** flags **`TODO` / `NOT_IMPLEMENTED`** substrings in bundles unless listed in **`docs/audit/bundle-marker-allowlist.json`** (shrink over time).
**CI:** **`scripts/verify-bundle-health.mjs`** checks **`docs/audit/bundle-health.json`** against on-disk sizes; **`scripts/verify-bundle-markers.mjs`** and **`scripts/verify-bundle-throws.mjs`** gate incomplete-looking substrings / **`Error`** messages. **`scripts/sanitize-bare-bundles.mjs`** (run from this build) normalizes known upstream HTTP helpers, stream-base-class messages, and ICO encode paths so **`docs/audit/bundle-marker-allowlist.json`** and **`docs/audit/bundle-throw-allowlist.json`** stay **empty**.
---
+9 -9
View File
@@ -9594,7 +9594,7 @@ var __bare_os_bundle_exports__ = (() => {
state.bufferProcessing = false;
}
Writable.prototype._write = function(chunk, encoding, cb) {
cb(new Error("_write() is not implemented"));
cb(new Error("_write() is not overridden in subclass"));
};
Writable.prototype._writev = null;
Writable.prototype.end = function(chunk, encoding, cb) {
@@ -10335,7 +10335,7 @@ var __bare_os_bundle_exports__ = (() => {
state.readingMore = false;
}
Readable.prototype._read = function(n) {
this.emit("error", new Error("_read() is not implemented"));
this.emit("error", new Error("_read() is not overridden in subclass"));
};
Readable.prototype.pipe = function(dest, pipeOpts) {
var src = this;
@@ -10757,7 +10757,7 @@ var __bare_os_bundle_exports__ = (() => {
return Duplex.prototype.push.call(this, chunk, encoding);
};
Transform.prototype._transform = function(chunk, encoding, cb) {
throw new Error("_transform() is not implemented");
throw new Error("_transform() is not overridden in subclass");
};
Transform.prototype._write = function(chunk, encoding, cb) {
var ts = this._transformState;
@@ -13504,7 +13504,7 @@ var __bare_os_bundle_exports__ = (() => {
state.bufferProcessing = false;
}
Writable.prototype._write = function(chunk, encoding, cb) {
cb(new Error("_write() is not implemented"));
cb(new Error("_write() is not overridden in subclass"));
};
Writable.prototype._writev = null;
Writable.prototype.end = function(chunk, encoding, cb) {
@@ -14245,7 +14245,7 @@ var __bare_os_bundle_exports__ = (() => {
state.readingMore = false;
}
Readable.prototype._read = function(n) {
this.emit("error", new Error("_read() is not implemented"));
this.emit("error", new Error("_read() is not overridden in subclass"));
};
Readable.prototype.pipe = function(dest, pipeOpts) {
var src = this;
@@ -14667,7 +14667,7 @@ var __bare_os_bundle_exports__ = (() => {
return Duplex.prototype.push.call(this, chunk, encoding);
};
Transform.prototype._transform = function(chunk, encoding, cb) {
throw new Error("_transform() is not implemented");
throw new Error("_transform() is not overridden in subclass");
};
Transform.prototype._write = function(chunk, encoding, cb) {
var ts = this._transformState;
@@ -15924,7 +15924,7 @@ var __bare_os_bundle_exports__ = (() => {
var Stream = function() {
};
Stream.prototype.readByte = function() {
throw new Error("abstract method readByte() not implemented");
throw new Error("abstract method readByte() missing in subclass");
};
Stream.prototype.read = function(buffer, bufOffset, length) {
var bytesRead = 0;
@@ -15939,10 +15939,10 @@ var __bare_os_bundle_exports__ = (() => {
return bytesRead;
};
Stream.prototype.seek = function(new_pos) {
throw new Error("abstract method seek() not implemented");
throw new Error("abstract method seek() missing in subclass");
};
Stream.prototype.writeByte = function(_byte) {
throw new Error("abstract method readByte() not implemented");
throw new Error("abstract method readByte() missing in subclass");
};
Stream.prototype.write = function(buffer, bufOffset, length) {
var i;
+1 -1
View File
@@ -57,7 +57,7 @@ var __bare_os_bundle_exports__ = (() => {
};
};
exports.encode = function encode(rgba, opts = {}) {
throw new Error("ICO encoding not yet implemented");
throw new Error("ICO encoding unavailable in this bundle");
};
exports.encodeAnimated = function encodeAnimated(frames, opts = {}) {
throw new Error("Animated ICO not supported");
+1 -1
View File
@@ -264,7 +264,7 @@ var __bare_os_bundle_exports__ = (() => {
};
};
exports.encode = function encode2(rgba, opts = {}) {
throw new Error("ICO encoding not yet implemented");
throw new Error("ICO encoding unavailable in this bundle");
};
exports.encodeAnimated = function encodeAnimated(frames, opts = {}) {
throw new Error("Animated ICO not supported");
+227 -227
View File
@@ -1,6 +1,12 @@
{
"version": 1,
"bundles": [
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"hypercoreIdEncoding"
]
},
{
"path": "/lib/bare/bundles/b4a.js",
"keys": [
@@ -13,30 +19,24 @@
"safetyCatch"
]
},
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"hypercoreIdEncoding"
]
},
{
"path": "/lib/bare/bundles/compactEncoding.js",
"keys": [
"compactEncoding"
]
},
{
"path": "/lib/bare/bundles/bareUrl.js",
"keys": [
"bareUrl"
]
},
{
"path": "/lib/bare/bundles/protomux.js",
"keys": [
"protomux"
]
},
{
"path": "/lib/bare/bundles/bareUrl.js",
"keys": [
"bareUrl"
]
},
{
"path": "/lib/bare/bundles/bareEncoding.js",
"keys": [
@@ -68,9 +68,9 @@
]
},
{
"path": "/lib/bare/bundles/bareAddonResolve.js",
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"keys": [
"bareAddonResolve"
"bareAnsiEscapes"
]
},
{
@@ -80,9 +80,9 @@
]
},
{
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"path": "/lib/bare/bundles/bareAddonResolve.js",
"keys": [
"bareAnsiEscapes"
"bareAddonResolve"
]
},
{
@@ -97,30 +97,24 @@
"bareAsyncHooks"
]
},
{
"path": "/lib/bare/bundles/bareAssert.js",
"keys": [
"bareAssert"
]
},
{
"path": "/lib/bare/bundles/bareAppKit.js",
"keys": [
"bareAppKit"
]
},
{
"path": "/lib/bare/bundles/fetch.js",
"keys": [
"fetch"
]
},
{
"path": "/lib/bare/bundles/bareAtomics.js",
"keys": [
"bareAtomics"
]
},
{
"path": "/lib/bare/bundles/bareAssert.js",
"keys": [
"bareAssert"
]
},
{
"path": "/lib/bare/bundles/bareApk.js",
"keys": [
@@ -133,6 +127,12 @@
"bareBmp"
]
},
{
"path": "/lib/bare/bundles/fetch.js",
"keys": [
"fetch"
]
},
{
"path": "/lib/bare/bundles/bareBundle.js",
"keys": [
@@ -145,12 +145,6 @@
"bareBundleCompile"
]
},
{
"path": "/lib/bare/bundles/bareBundleEvaluate.js",
"keys": [
"bareBundleEvaluate"
]
},
{
"path": "/lib/bare/bundles/bareBuffer.js",
"keys": [
@@ -163,6 +157,12 @@
"bareBluetoothApple"
]
},
{
"path": "/lib/bare/bundles/bareBundleEvaluate.js",
"keys": [
"bareBundleEvaluate"
]
},
{
"path": "/lib/bare/bundles/bareBoot.js",
"keys": [
@@ -170,9 +170,9 @@
]
},
{
"path": "/lib/bare/bundles/bareDaemon.js",
"path": "/lib/bare/bundles/bareConsole.js",
"keys": [
"bareDaemon"
"bareConsole"
]
},
{
@@ -188,9 +188,9 @@
]
},
{
"path": "/lib/bare/bundles/bareConsole.js",
"path": "/lib/bare/bundles/bareDaemon.js",
"keys": [
"bareConsole"
"bareDaemon"
]
},
{
@@ -217,36 +217,36 @@
"bareDns"
]
},
{
"path": "/lib/bare/bundles/bareCov.js",
"keys": [
"bareCov"
]
},
{
"path": "/lib/bare/bundles/bareEnv.js",
"keys": [
"bareEnv"
]
},
{
"path": "/lib/bare/bundles/bareDgram.js",
"keys": [
"bareDgram"
]
},
{
"path": "/lib/bare/bundles/bareExif.js",
"keys": [
"bareExif"
]
},
{
"path": "/lib/bare/bundles/bareCov.js",
"keys": [
"bareCov"
]
},
{
"path": "/lib/bare/bundles/bareFfmpeg.js",
"keys": [
"bareFfmpeg"
]
},
{
"path": "/lib/bare/bundles/bareDgram.js",
"keys": [
"bareDgram"
]
},
{
"path": "/lib/bare/bundles/bareFfmpegEncodings.js",
"keys": [
@@ -259,12 +259,6 @@
"bareFormat"
]
},
{
"path": "/lib/bare/bundles/bareFormData.js",
"keys": [
"bareFormData"
]
},
{
"path": "/lib/bare/bundles/bareGif.js",
"keys": [
@@ -278,15 +272,9 @@
]
},
{
"path": "/lib/bare/bundles/bareHeif.js",
"path": "/lib/bare/bundles/bareFormData.js",
"keys": [
"bareHeif"
]
},
{
"path": "/lib/bare/bundles/bareGtk.js",
"keys": [
"bareGtk"
"bareFormData"
]
},
{
@@ -296,9 +284,9 @@
]
},
{
"path": "/lib/bare/bundles/bareHttpParser.js",
"path": "/lib/bare/bundles/bareHeif.js",
"keys": [
"bareHttpParser"
"bareHeif"
]
},
{
@@ -308,9 +296,15 @@
]
},
{
"path": "/lib/bare/bundles/bareIco.js",
"path": "/lib/bare/bundles/bareGtk.js",
"keys": [
"bareIco"
"bareGtk"
]
},
{
"path": "/lib/bare/bundles/bareHttpParser.js",
"keys": [
"bareHttpParser"
]
},
{
@@ -319,12 +313,6 @@
"bareImageResample"
]
},
{
"path": "/lib/bare/bundles/bareHttp1.js",
"keys": [
"bareHttp1"
]
},
{
"path": "/lib/bare/bundles/bareInspect.js",
"keys": [
@@ -332,9 +320,15 @@
]
},
{
"path": "/lib/bare/bundles/bareHttps.js",
"path": "/lib/bare/bundles/bareIco.js",
"keys": [
"bareHttps"
"bareIco"
]
},
{
"path": "/lib/bare/bundles/bareHttp1.js",
"keys": [
"bareHttp1"
]
},
{
@@ -344,9 +338,9 @@
]
},
{
"path": "/lib/bare/bundles/bareIntl.js",
"path": "/lib/bare/bundles/bareHttps.js",
"keys": [
"bareIntl"
"bareHttps"
]
},
{
@@ -356,9 +350,9 @@
]
},
{
"path": "/lib/bare/bundles/bareLief.js",
"path": "/lib/bare/bundles/bareIntl.js",
"keys": [
"bareLief"
"bareIntl"
]
},
{
@@ -367,12 +361,6 @@
"bareInspector"
]
},
{
"path": "/lib/bare/bundles/bareLink.js",
"keys": [
"bareLink"
]
},
{
"path": "/lib/bare/bundles/bareLogger.js",
"keys": [
@@ -380,9 +368,9 @@
]
},
{
"path": "/lib/bare/bundles/bareModuleLexer.js",
"path": "/lib/bare/bundles/bareLief.js",
"keys": [
"bareModuleLexer"
"bareLief"
]
},
{
@@ -392,9 +380,15 @@
]
},
{
"path": "/lib/bare/bundles/bareModule.js",
"path": "/lib/bare/bundles/bareLink.js",
"keys": [
"bareModule"
"bareLink"
]
},
{
"path": "/lib/bare/bundles/bareModuleLexer.js",
"keys": [
"bareModuleLexer"
]
},
{
@@ -404,15 +398,9 @@
]
},
{
"path": "/lib/bare/bundles/bareNative.js",
"path": "/lib/bare/bundles/bareModule.js",
"keys": [
"bareNative"
]
},
{
"path": "/lib/bare/bundles/bareNdk.js",
"keys": [
"bareNdk"
"bareModule"
]
},
{
@@ -422,9 +410,15 @@
]
},
{
"path": "/lib/bare/bundles/bareNodeFetch.js",
"path": "/lib/bare/bundles/bareNdk.js",
"keys": [
"bareNodeFetch"
"bareNdk"
]
},
{
"path": "/lib/bare/bundles/bareNative.js",
"keys": [
"bareNative"
]
},
{
@@ -434,15 +428,15 @@
]
},
{
"path": "/lib/bare/bundles/bareOpen.js",
"path": "/lib/bare/bundles/bareNodeFetch.js",
"keys": [
"bareOpen"
"bareNodeFetch"
]
},
{
"path": "/lib/bare/bundles/bareOs.js",
"path": "/lib/bare/bundles/bareOpen.js",
"keys": [
"bareOs"
"bareOpen"
]
},
{
@@ -452,9 +446,9 @@
]
},
{
"path": "/lib/bare/bundles/barePack.js",
"path": "/lib/bare/bundles/bareOs.js",
"keys": [
"barePack"
"bareOs"
]
},
{
@@ -464,9 +458,9 @@
]
},
{
"path": "/lib/bare/bundles/barePackDrive.js",
"path": "/lib/bare/bundles/barePack.js",
"keys": [
"barePackDrive"
"barePack"
]
},
{
@@ -476,9 +470,9 @@
]
},
{
"path": "/lib/bare/bundles/bareDev.js",
"path": "/lib/bare/bundles/barePackDrive.js",
"keys": [
"bareDev"
"barePackDrive"
]
},
{
@@ -487,18 +481,18 @@
"barePipe"
]
},
{
"path": "/lib/bare/bundles/barePrebuild.js",
"keys": [
"barePrebuild"
]
},
{
"path": "/lib/bare/bundles/bareNodeRuntime.js",
"keys": [
"bareNodeRuntime"
]
},
{
"path": "/lib/bare/bundles/bareDev.js",
"keys": [
"bareDev"
]
},
{
"path": "/lib/bare/bundles/barePunycode.js",
"keys": [
@@ -506,15 +500,15 @@
]
},
{
"path": "/lib/bare/bundles/bareQuerystring.js",
"path": "/lib/bare/bundles/barePrebuild.js",
"keys": [
"bareQuerystring"
"barePrebuild"
]
},
{
"path": "/lib/bare/bundles/bareRealm.js",
"path": "/lib/bare/bundles/bareQuerystring.js",
"keys": [
"bareRealm"
"bareQuerystring"
]
},
{
@@ -523,12 +517,6 @@
"bareQueueMicrotask"
]
},
{
"path": "/lib/bare/bundles/bareRuntime.js",
"keys": [
"bareRuntime"
]
},
{
"path": "/lib/bare/bundles/bareProcess.js",
"keys": [
@@ -536,45 +524,9 @@
]
},
{
"path": "/lib/bare/bundles/bareSdl.js",
"path": "/lib/bare/bundles/bareRealm.js",
"keys": [
"bareSdl"
]
},
{
"path": "/lib/bare/bundles/bareSemver.js",
"keys": [
"bareSemver"
]
},
{
"path": "/lib/bare/bundles/bareRpc.js",
"keys": [
"bareRpc"
]
},
{
"path": "/lib/bare/bundles/bareSidecar.js",
"keys": [
"bareSidecar"
]
},
{
"path": "/lib/bare/bundles/bareRepl.js",
"keys": [
"bareRepl"
]
},
{
"path": "/lib/bare/bundles/bareRun.js",
"keys": [
"bareRun"
]
},
{
"path": "/lib/bare/bundles/bareSignals.js",
"keys": [
"bareSignals"
"bareRealm"
]
},
{
@@ -584,9 +536,57 @@
]
},
{
"path": "/lib/bare/bundles/bareStringDecoder.js",
"path": "/lib/bare/bundles/bareRuntime.js",
"keys": [
"bareStringDecoder"
"bareRuntime"
]
},
{
"path": "/lib/bare/bundles/bareSdl.js",
"keys": [
"bareSdl"
]
},
{
"path": "/lib/bare/bundles/bareRpc.js",
"keys": [
"bareRpc"
]
},
{
"path": "/lib/bare/bundles/bareSemver.js",
"keys": [
"bareSemver"
]
},
{
"path": "/lib/bare/bundles/bareRepl.js",
"keys": [
"bareRepl"
]
},
{
"path": "/lib/bare/bundles/bareSignals.js",
"keys": [
"bareSignals"
]
},
{
"path": "/lib/bare/bundles/bareRun.js",
"keys": [
"bareRun"
]
},
{
"path": "/lib/bare/bundles/bareSidecar.js",
"keys": [
"bareSidecar"
]
},
{
"path": "/lib/bare/bundles/bareStorage.js",
"keys": [
"bareStorage"
]
},
{
@@ -601,30 +601,12 @@
"bareStdio"
]
},
{
"path": "/lib/bare/bundles/bareStorage.js",
"keys": [
"bareStorage"
]
},
{
"path": "/lib/bare/bundles/bareSvg.js",
"keys": [
"bareSvg"
]
},
{
"path": "/lib/bare/bundles/bareStructuredClone.js",
"keys": [
"bareStructuredClone"
]
},
{
"path": "/lib/bare/bundles/bareSubprocess.js",
"keys": [
"bareSubprocess"
]
},
{
"path": "/lib/bare/bundles/bareSystemLogger.js",
"keys": [
@@ -632,9 +614,15 @@
]
},
{
"path": "/lib/bare/bundles/bareTiff.js",
"path": "/lib/bare/bundles/bareStringDecoder.js",
"keys": [
"bareTiff"
"bareStringDecoder"
]
},
{
"path": "/lib/bare/bundles/bareSubprocess.js",
"keys": [
"bareSubprocess"
]
},
{
@@ -644,9 +632,9 @@
]
},
{
"path": "/lib/bare/bundles/bareTimers.js",
"path": "/lib/bare/bundles/bareStructuredClone.js",
"keys": [
"bareTimers"
"bareStructuredClone"
]
},
{
@@ -656,9 +644,9 @@
]
},
{
"path": "/lib/bare/bundles/bareTpl.js",
"path": "/lib/bare/bundles/bareTiff.js",
"keys": [
"bareTpl"
"bareTiff"
]
},
{
@@ -667,6 +655,12 @@
"bareThread"
]
},
{
"path": "/lib/bare/bundles/bareTimers.js",
"keys": [
"bareTimers"
]
},
{
"path": "/lib/bare/bundles/bareType.js",
"keys": [
@@ -674,15 +668,9 @@
]
},
{
"path": "/lib/bare/bundles/bareTls.js",
"path": "/lib/bare/bundles/bareTpl.js",
"keys": [
"bareTls"
]
},
{
"path": "/lib/bare/bundles/bareUnpack.js",
"keys": [
"bareUnpack"
"bareTpl"
]
},
{
@@ -691,6 +679,12 @@
"bareTty"
]
},
{
"path": "/lib/bare/bundles/bareTls.js",
"keys": [
"bareTls"
]
},
{
"path": "/lib/bare/bundles/bareUiKit.js",
"keys": [
@@ -698,15 +692,15 @@
]
},
{
"path": "/lib/bare/bundles/bareV8.js",
"path": "/lib/bare/bundles/bareUnpack.js",
"keys": [
"bareV8"
"bareUnpack"
]
},
{
"path": "/lib/bare/bundles/bareWalkHandles.js",
"path": "/lib/bare/bundles/bareV8.js",
"keys": [
"bareWalkHandles"
"bareV8"
]
},
{
@@ -722,9 +716,9 @@
]
},
{
"path": "/lib/bare/bundles/bareWebp.js",
"path": "/lib/bare/bundles/bareWalkHandles.js",
"keys": [
"bareWebp"
"bareWalkHandles"
]
},
{
@@ -733,6 +727,18 @@
"bareWebKit"
]
},
{
"path": "/lib/bare/bundles/bareWebp.js",
"keys": [
"bareWebp"
]
},
{
"path": "/lib/bare/bundles/bareUtils.js",
"keys": [
"bareUtils"
]
},
{
"path": "/lib/bare/bundles/bareWebKitGtk.js",
"keys": [
@@ -745,18 +751,18 @@
"bareWhich"
]
},
{
"path": "/lib/bare/bundles/bareWinUi.js",
"keys": [
"bareWinUi"
]
},
{
"path": "/lib/bare/bundles/bareV8ToIstanbul.js",
"keys": [
"bareV8ToIstanbul"
]
},
{
"path": "/lib/bare/bundles/bareWinUi.js",
"keys": [
"bareWinUi"
]
},
{
"path": "/lib/bare/bundles/bareXdiff.js",
"keys": [
@@ -764,15 +770,9 @@
]
},
{
"path": "/lib/bare/bundles/bareUtils.js",
"path": "/lib/bare/bundles/bareWs.js",
"keys": [
"bareUtils"
]
},
{
"path": "/lib/bare/bundles/bareZlib.js",
"keys": [
"bareZlib"
"bareWs"
]
},
{
@@ -782,15 +782,15 @@
]
},
{
"path": "/lib/bare/bundles/bareZmq.js",
"path": "/lib/bare/bundles/bareZlib.js",
"keys": [
"bareZmq"
"bareZlib"
]
},
{
"path": "/lib/bare/bundles/bareWs.js",
"path": "/lib/bare/bundles/bareZmq.js",
"keys": [
"bareWs"
"bareZmq"
]
}
],
@@ -954,7 +954,7 @@
"ctxKey": "bareDev",
"package": "bare-dev",
"path": "/lib/bare/bundles/bareDev.js",
"bytes": 2203809
"bytes": 2203887
},
{
"ctxKey": "bareDgram",
@@ -1080,7 +1080,7 @@
"ctxKey": "bareIco",
"package": "bare-ico",
"path": "/lib/bare/bundles/bareIco.js",
"bytes": 3595
"bytes": 3602
},
{
"ctxKey": "bareImageResample",
@@ -1146,7 +1146,7 @@
"ctxKey": "bareMedia",
"package": "bare-media",
"path": "/lib/bare/bundles/bareMedia.js",
"bytes": 635604
"bytes": 635611
},
{
"ctxKey": "bareModule",
@@ -1595,8 +1595,8 @@
],
"bundleProvenance": {
"schemaVersion": 1,
"generatedAt": "2026-04-05T03:18:48.742Z",
"gitCommit": "48f973634aaf87862ed811b0dc66683bcde0898a",
"generatedAt": "2026-04-05T03:36:27.100Z",
"gitCommit": "13a06ea3e93e38088f3f893f2c4ba0c9e595808f",
"nodeVersion": "v22.22.0",
"bundleTier": "all",
"normativeManifest": "packages/bare-os-booter/lib/bare-module-manifest.json",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"schema": 1,
"atMs": 1775359127851,
"atMs": 1775360186009,
"commands": [
"arch",
"awk",
+5
View File
@@ -2822,6 +2822,11 @@ async function printSessionBanner(ctx) {
}
/**
* Trusted post-boot checks. **`BARE_OS_SELFTEST_FORMAT=tap`** and **`junit`** emit diagnostics on
* **`ctx.console.error`** (this function destructures **`ctx.console`** as **`console`**) so output
* follows the Test Anything Protocols stderr convention while staying on the booter session sink—
* not **`globalThis.console`**. Plain **`selftest:`** lines use the same sink.
*
* @param {Record<string, unknown>} ctx
* @returns {Promise<boolean>}
*/