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:
@@ -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)
|
||||
})
|
||||
Reference in New Issue
Block a user