What changed
Fixed /bin generation for AsyncFunction execution in build pipeline:
Added appctl preamble wiring (p2p-suite.js) in packages/bare-os-coreutils/build.mjs.
Added a stripRunExport transform to remove trailing export { run } from generated /bin scripts.
Updated cut delimiter parsing in packages/bare-os-coreutils/src/cut.js:
Supports both -d X and attached -dX forms (including -d' ').
Validates -d argument presence and enforces single-character delimiter.
Improved uname -a output in packages/bare-os-coreutils/src/uname.js:
Better release/version derivation from env and /etc/os-release.
Uses env-backed machine architecture fallback instead of hardcoded unknown where available.
Added help aliases in packages/bare-os-coreutils/src/git-pear.js:
git-pear --help and git-pear -h now map to help output.
Reduced persistent invalid timer spam in packages/bare-os-booter/lib/bare-cron.js:
Added per-file parse-error dedupe/rate-limiting (first-seen, content-change, then hourly).
Added actionable invalid timer format hint in log message.
bare-os-seeder
Pear / Bare application that owns the canonical system Hyperdrive: it walks a kernel tree on disk, writes /boot/init.js, /bin/*, /etc/* into the drive (no host temp dirs), builds a 512-byte MBR with the drive key, joins Hyperswarm on bare-os-v1, and serves MBR block reads + Protomux bare-os-v1 replication to peers.
When to use: run the seeder when you want to publish the canonical system image for booters to replicate (typical dev: one terminal with npm run os:seeder). Eligible already-booted peers can later mirror block 0, but the seeder remains the trust anchor for initial publication.
Documentation: Concepts — Boot · Seeder reference · User manual ch.3 · Protocol reference.
Run
From package directory (after npm ci at repo root):
node index.js
Or with Bare/Pear:
npm run pear:dev
From repo root (recommended — fixes workspace node_modules for Pear):
npm run os:seeder
Environment
BARE_OS_KERNEL_ROOT— Absolute path to kernel tree to stage (default: packagekernel/vendored copy, or repokernel/under Nodefile:URL)BARE_OS_HOST_DATA— Base directory for host state (default~/.bare-os)BARE_OS_SEED_STORE— Corestore directory (default~/.bare-os/corestore/seeder)BARE_OS_SEED_CAPABILITY_ATTESTATION_JSON— Optional JSON string for seed RPCbare_os.capability_attestation(operators verify on host; guest does not crypto-verify)
Pear vs Node
import.meta.urlisfile:— seeder may dynamically importbare-os-coreutils/build.mjsandbare-os-bare-libs/build.mjs, rebuilding/binandkernel/lib/barebefore staging.pear:bundle — coreutils and/lib/barebundles must be pre-built intokernel/; runnpm run build -w bare-os-coreutilsandnpm run build -w bare-os-bare-libsbeforepear run(rootnpm run os:seederdoes both).
Layout
index.js— Entry: Corestore, Hyperdrive,stageKernelTree, swarm,setupSeedChannel(RPCs include optionalbare_os.snapshot_hintsandbare_os.peer_firewall_statswhen implemented)lib/paths.js—packageRootDir, kernel root, Corestore path (Pear RTI–aware)kernel/— Vendored mirror of repokernel/for Pear staging — must matchkernel/byte-for-byte (npm testpretestrunsscripts/verify-kernel-seeder-parity.mjs)
Dependencies
bare-os-protocol (workspace), hyperdrive, corestore, hyperswarm, protomux, b4a, compact-encoding, safety-catch, bare-os.