Add fifth feature word (STOCK_V5 / bits5) with ADR and capability docs.

Protocol: canonical seed RPC registry (seed-rpc-methods.js), bits5 on
capabilities, typed seed RPC errors, richer replication_queue and
staging_slot hints.

Booter: /proc host_os (bare-module on Bare, node:os on Node), sync_window,
debug.json, net_summary transport stats, HDMS hints/correlation, warm
profile reload, subprocess bridge snapshot helpers, boot policy v5 hooks,
BARE_OS_BIN_WORKER_ALLOW pattern groups, VFS symlink/union alignment, OTel
JSONL schema version 2 in var-log.

Seeder: pass staging/replication hints into seed channel; mirror kernel
init and boot policy example.

Kernel: enforce requireFeatureBits5 / requireInitJsSha256 when configured;
selftests for new proc surfaces.

CI/pretest: verify-doc-links, verify-man-coverage, verify-compat-matrix;
extend roadmap/ctx/dts verifiers. Add otel-bare-os-jsonl schema.

Docs: Wave 5 roadmap, kernel-extensions, handbook/devguide updates;
bare-module manifest tier/risk sample; bare-libs README.
This commit is contained in:
Raven Scott
2026-04-04 04:33:25 -04:00
parent f8a0dad897
commit 268b46dd3a
60 changed files with 1607 additions and 499 deletions
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env node
/**
* CI: Tier-1 command names in commands.mjs should have man.json pages (name match).
*/
import fs from 'node:fs'
import path from 'node:path'
import process from 'node:process'
import { fileURLToPath } from 'node:url'
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
async function main() {
const { COREUTILS_COMMANDS } = await import(
path.join(root, 'packages/bare-os-coreutils/lib/commands.mjs')
)
const manPath = path.join(root, 'kernel/share/man/man.json')
const raw = fs.readFileSync(manPath, 'utf8')
const db = JSON.parse(raw)
const pages = Array.isArray(db.pages) ? db.pages : []
const names = new Set(
pages.map((p) => (p && typeof p.name === 'string' ? p.name : '')).filter(Boolean)
)
/** @type {string[]} */
const missing = []
for (const cmd of COREUTILS_COMMANDS) {
if (!names.has(cmd)) missing.push(cmd)
}
if (missing.length) {
console.error('verify-man-coverage: missing man.json pages for:', missing.join(', '))
process.exit(1)
}
console.log(
'verify-man-coverage: OK',
COREUTILS_COMMANDS.length,
'commands'
)
}
main().catch((e) => {
console.error(e)
process.exit(1)
})