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:32 -04:00
parent de176addd9
commit d775fb0628
3 changed files with 51 additions and 1 deletions
@@ -0,0 +1,21 @@
{
"name": "nohup",
"section": 1,
"title": "run command (hangup is a no-op in Bare OS)",
"synopsis": [
"nohup [OPTION]... [OPERAND]..."
],
"description": "Bare OS implementation of run command (hangup is a no-op in Bare OS). Full behavior is defined in packages/bare-os-coreutils/src/nohup.js.",
"options": [],
"keywords": [
"nohup",
"bare-os",
"coreutils"
],
"examples": [
{
"caption": "run utility (no real SIGHUP in guest)",
"code": "nohup long-job.sh"
}
]
}
+1 -1
View File
@@ -5,7 +5,7 @@
"type": "module",
"description": "Build JS /bin utilities for bare-operating-system (concat + stage to kernel/)",
"scripts": {
"build": "node ./build.mjs",
"build": "node ./scripts/ensure-man-pages.mjs && node ./build.mjs",
"test": "node ./test/help-bin-list.test.mjs && node ./test/edit-key-parse.test.mjs"
}
}
@@ -0,0 +1,29 @@
#!/usr/bin/env node
/**
* If any expected man/pages/*.json is missing (e.g. after adding a command),
* run seed-man-pages.mjs once so `npm run build` does not fail on ENOENT.
*/
import { spawnSync } from 'node:child_process'
import { existsSync } from 'node:fs'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { COREUTILS_COMMANDS, MAN_EXTRA_PAGES } from '../lib/commands.mjs'
const __dirname = dirname(fileURLToPath(import.meta.url))
const pkgRoot = join(__dirname, '..')
const pagesDir = join(pkgRoot, 'man/pages')
const missing = [...COREUTILS_COMMANDS, ...MAN_EXTRA_PAGES].filter(
(n) => !existsSync(join(pagesDir, `${n}.json`))
)
if (!missing.length) process.exit(0)
console.warn(
`[bare-os-coreutils] man/pages missing (${missing.length}): ${missing.join(', ')}; running seed-man-pages.mjs`
)
const r = spawnSync(process.execPath, [join(__dirname, 'seed-man-pages.mjs')], {
cwd: pkgRoot,
stdio: 'inherit'
})
process.exit(r.status ?? 1)