Files
bare-operating-system/packages/bare-os-seeder
Raven Scott 27292f2ba6 Network/auth/delegate hardening
hdms
Added ls alias to list.
Made delegate failures explicit and nonzero in packages/bare-os-coreutils/src/hdms.js.
Added nonzero error exit in packages/bare-os-booter/lib/hdms-manager.js.
git-pear
Implemented clone subcommand routing to git clone in packages/bare-os-coreutils/src/git-pear.js.
trustctl
Added ls alias to status/policy output in packages/bare-os-coreutils/src/trustctl.js.
oidc-publish
Added explicit unknown-subcommand handling and publish subcommand compatibility in packages/bare-os-coreutils/src/oidc-publish.js.
ssh-keygen
Wrapped delegate invocation with explicit error propagation in packages/bare-os-coreutils/src/ssh-keygen.js.
Added success output on generated keypair in packages/bare-os-booter/lib/ssh-keygen-cli.js.
sshd
Added -t config test mode and explicit exit semantics in packages/bare-os-booter/lib/bare-openssh.js.
Ensured wrapper sets exit code consistently in packages/bare-os-openssh/src/sshd.js.
telnet
Changed connector preference to use net.createConnection first when available, then syscall bridge fallback, in packages/bare-os-coreutils/src/telnet.js.
crontab -e flow

Implemented edit flow with VISUAL/EDITOR fallback, unlocked-state checks, temp file handling, install, and cleanup in packages/bare-os-coreutils/src/crontab.js.
Shell/runtime hardcore semantics

Added numeric brace range expansion {1..5} in packages/bare-os-booter/lib/shell-glob.js.
Enabled brace expansion by default unless explicitly disabled.
Added normalization for inline brace-expression tokens in packages/bare-os-booter/lib/shell.js.
Added arithmetic command-form handling for (( ... )) in packages/bare-os-booter/lib/shell.js.
Extended shell signal trap dispatch support for USR1/USR2 (in addition to INT/TERM) in packages/bare-os-booter/index.js.
Hardened kill command delivery validation in packages/bare-os-coreutils/src/kill.js.
Regression tests

Added new: packages/bare-os-coreutils/test/hardcore-bugs.test.mjs.
Extended shell tests in packages/bare-os-booter/test.js for:
default cmdsub behavior,
brace range expansion,
arithmetic command form.
Existing regression files still pass after updates.
2026-04-27 08:54:50 -04:00
..
2026-04-27 08:54:50 -04:00
2026-04-26 15:49:55 -04:00
2026-04-25 23:04:56 -04:00

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: package kernel/ vendored copy, or repo kernel/ under Node file: 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 RPC bare_os.capability_attestation (operators verify on host; guest does not crypto-verify)

Pear vs Node

  • import.meta.url is file: — seeder may dynamically import bare-os-coreutils/build.mjs and bare-os-bare-libs/build.mjs, rebuilding /bin and kernel/lib/bare before staging.
  • pear: bundle — coreutils and /lib/bare bundles must be pre-built into kernel/; run npm run build -w bare-os-coreutils and npm run build -w bare-os-bare-libs before pear run (root npm run os:seeder does both).

Layout

  • index.js — Entry: Corestore, Hyperdrive, stageKernelTree, swarm, setupSeedChannel (RPCs include optional bare_os.snapshot_hints and bare_os.peer_firewall_stats when implemented)
  • lib/paths.jspackageRootDir, kernel root, Corestore path (Pear RTIaware)
  • kernel/ — Vendored mirror of repo kernel/ for Pear staging — must match kernel/ byte-for-byte (npm test pretest runs scripts/verify-kernel-seeder-parity.mjs)

Dependencies

bare-os-protocol (workspace), hyperdrive, corestore, hyperswarm, protomux, b4a, compact-encoding, safety-catch, bare-os.

See also