Repository navigation
v0.1.0 — 2026-10-21
Added
- docs: Move docs to Docusaurus and add a product page (#20) (
8460693) - repo: Add the Radxa CM3 IO (RK3566) board (#13) (
40e6316) - repo: Name the WAN and LAN interfaces wan and lan on every board (#19) (
451530e) - scripts: Export configuration bundles through a root worker (#11) (
f5f5168) - nix: Consume Nixstasis fleet bootstrap profile (
8ff2dca) - modules: Enforce fleet bootstrap transport boundary (
879eb27) - nix: Extend build policy for fleet transport (
fc2f46e) - repo: Reconcile watchdog enforcement (
a5760ee) - modules: Warn when watchdog hardware is unavailable (
08d8d6a) - tooling: Apply local build policy overrides (
0202e64) - nix: Apply immutable build policy (
45b9726) - nix: Add build configuration schema (
68b221e) - tooling: Add bundle vm root debug flag (
fba8d2a) - modules: Separate provisioning apply privileges (
6b8e3e8) - modules: Add opt-in watchdog enforcement (
134c9b9) - modules: Add nixstasis client module (
f3cf5a5) - scripts: Add async first-boot htmx ui (
2c9c2df) - scripts: Add typed partial provisioning API (
47fa62a) - scripts: Apply activation policy runtime (
7c4bb43) - scripts: Validate activation policy config (
41babfe) - modules: Apply extended network config (
77a1516) - scripts: Validate extended network config (
5ee93b4) - modules: Harden rauc ota verification (
4837730) - scripts: Harden provisioned runtime activation (
aeec1e6) - modules: Enforce bootstrap exposure lifecycle (
917f776) - modules: Package and run provisioning service (
6a7ae71) - scripts: Add provisioning package foundation (
9cccca3) - modules: Convert bootstrap web console to socket activation (
9974172) - modules: Configure NTP servers from config (
119939d) - modules: Add activation rollback on re-apply failure (
4fac47b) - modules: Implement atomic candidate apply with rollback (
9d1e49f) - modules: Add re-apply authentication via SSH signatures (
c0e00f6) - modules: Add runtime user-apply service (
93b1344) - modules: Implement canonical config schema and parser (
72f6209) - repo: Polish Caddy OIDC Cockpit UI (
3ba110d) - scripts: Support build Quadlet units in config.toml (
d9a9906) - scripts: Support network and volume Quadlet units in config.toml (
d6b931a) - tooling: Support compressed images in flash task (
ffafc46) - repo: Keep provisioning recoverable after first boot (
7e4ab78) - modules: Support rock64 rtl8153 usb nic firmware (
01b3fee) - scripts: Validate provisioned config against schema (
dbceab7) - modules: Support optional restrictive LAN firewall (
994dfcd) - Add provisioned LAN gateway config (
d6951ab) - scripts: Complete local first-boot provisioning flow (
ff96939) - scripts: Local first-boot provisioning flow (
c5fc9f9) - modules: Add durable log batching (
5d89cd0) - modules: Bounded forensic boot logging (
0c71c33) - docs: Mermaid diagram expand modal (
cd5d009) - docs: MdBook mermaid support (
a2be31c) - scripts: --bg flag to serial:capture for background/agent use (
7ab3ff3) - tooling: --lima flag to build tasks for Lima VM builds (
2d9086f) - docs: Cobalt branding theme overrides for mdBook (
2145245) - docs: MdBook-lint as hk pre-commit hook for docs (
57f54ae) - docs: MdBook documentation site with GitHub Pages deployment (
4a219bf) - tests: E2E test performance benchmarks: macOS apple-virt vs Linux (
80b4a49) - tests: Add cross-platform E2E selection (
16ecb23) - tests: Aarch64-darwin checks for native macOS test execution (
8632fcc) - tests: Watchdog + boot-count rollback E2E test (task 16.6) (
923cf33) - tests: Add power and network E2E tests (
2327896) - tests: Mise tasks for running and debugging E2E tests (
5ffa498) - tests: Os-verification confirmation E2E test (task 16.3) (
12378b7) - tests: RAUC rollback E2E test (task 16.5) (
9093f27) - tests: RAUC update install E2E test (task 16.2) (
f333bd2) - tests: Custom bootloader backend for QEMU RAUC testing (
d3ae048) - tests: RAUC slot logic NixOS test (task 15.5) (
3f4c5cf) - modules: Add first-boot services (
9cf3682) - modules: Add Traefik reverse proxy (
f34a8d1) - tooling: Cockpit pod service and auth provisioning to emmc task (
ea9bcc2) - modules: Systemd-repart for first-boot persist partition creation (
8a98a7c) - tooling: Mise build tasks and provisioning workflows (
02bbd3e) - nix: Flashable disk image derivation (nix build .#image) (
05cdb3d) - scripts: EMMC provisioning script with A/B partition layout (
4d1a9ca) - modules: Squashfs and RAUC bundle image build derivations (
ac365fc) - modules: Add watchdog and upgrade services (
5e4dc6b) - modules: RAUC slot config, signing certs, U-Boot boot-count script (
5821f69) - modules: Add LAN gateway networking (
6770cfb) - nix: Add NixOS flake targets (
b9c5bfe)
Fixed
- tooling: Drop breaking labels from pre-v1 release notes (#27) (
f202056) - ci: Publish the site from official releases (#25) (
d51068e) - docs: Patch vulnerable deps, move to pnpm, and add Renovate (#23) (
916dd81) - tooling: Require --board for every build task (#21) (
ae93e7b) - modules: Reboot 10 seconds after a kernel panic (#18) (
2cbcafc) - scripts: Keep healthy RAUC slots confirmed across reboots (#17) (
0e81336) - scripts: Make a failed first provisioning apply recoverable (#16) (
70f33a8) - scripts: Commit staged applies after activation and recover safely (#10) (
71406cc) - scripts: Verify provisioning authorization in the root worker (#9) (
4a59c1c) - scripts: Enforce managed-file and Podman boundaries (#8) (
6ca1ba1) - tests: Add defaults to VM packages (
bdc30b4) - nix: Derive local DNS domain (
86aa81a) - nix: Close fleet bootstrap review gaps (
6430032) - tooling: Bound target validation scope (
cbb20d9) - tests: Scope boot hardware diagnostics (
f5a1129) - modules: Enable kernel function tracing (
c941def) - tooling: Validate all flake systems (
cc76413) - modules: Virtual kernel security diagnostics (
b153d01) - modules: VM security and remote access (
f461e29) - modules: Provide wireless probe path to dispatcher (
a63c040) - tests: Reset first-boot fixture marker (
2a2994b) - tests: Wait for firewall VM interfaces (
e3cf894) - modules: Preserve service D-Bus policies in virtual machines (
53a9247) - docs: Clarify provider migration wording (
d1c8227) - tooling: Exclude migrated documents from lint inputs (
fc91961) - tooling: Align documentation tool versions (
ec17a4b) - docs: Clarify intentional example values (
89c9ca2) - docs: Use semantic headings in image design (
c639904) - scripts: Allow package metadata in TOML lint (
a4c8d38) - nix: Silence wireless probes in virtual checks (
12f2956) - nix: Use simple container grouping in VM test (
10c7728) - modules: Skip hardware diagnostics in virtual images (
78afb9b) - nix: Disable VM clock trimming (
95fbd2f) - modules: Provide conversion data at boot (
2cb5815) - modules: Deduplicate VM service paths (
2317d6b) - modules: Omit unavailable VM kernel setting (
d6c46ff) - modules: Disable unavailable performance counters (
2d87a4f) - docs: Disable false list indentation warnings (
ce53fcf) - modules: Include storage probe in early boot (
528eb57) - modules: Define test time-service identity (
010942f) - modules: Remove duplicate runtime directory rules (
5630296) - nix: Disable the old VM firewall (
7c531e0) - nix: Use fixed strings in VM assertions (
66e6e5e) - nix: Keep VM root settings unambiguous (
4b9b1a0) - nix: Use supported VM boot path (
c0e2654) - nix: Stabilize health regression VM timing (
178c5b2) - modules: Gate boot-count helper to update profiles (
de5de10) - tooling: Preserve build override identity (
017ec11) - modules: Harden staged apply worker with no new privileges (
88808a4) - repo: Close privilege separation gaps (
c7565f3) - repo: Address staged review findings (
7edef57) - repo: Harden staged privilege boundary (
ecadc6b) - scripts: Harden staged job lifecycle (
1c7ff08) - scripts: Preserve staged queue ordering (
7d908bb) - scripts: Escape embedded config script payloads (
e9a1580) - scripts: Support config-only staged bundles (
400f4bc) - modules: Align bootstrap socket lifecycle (
2f4d55a) - repo: Align bootstrap provisioning with socket activation (
a1c51e9) - modules: Accept persisted boot ui terminal markers (
a3581b4) - modules: Tolerate malformed staged control paths (
9a95baf) - modules: Stop staged drain after systemic errors (
1867b3b) - modules: Mark cancelled jobs terminal (
36808ac) - modules: Hide malformed boot ui job routes (
3ae3342) - modules: Bind staged snapshot to verified manifest (
8e65b94) - modules: Finish staged submit work after cancellation (
8ebde1c) - modules: Refresh staged reservations while preparing (
30b3167) - modules: Migrate config read grants on recovery (
b2f971b) - modules: Expose active staged jobs to monitor (
abe1e25) - modules: Discard rejected staged partial jobs (
ea1bbff) - modules: Verify staged source before snapshot copy (
fe54af4) - nix: Update crun ldflags overlay for 26.05 (
fdf0eba) - modules: Derive release codename metadata (
7aa5fe2) - scripts: Harden boot ui closeout edges (
187a1fd) - scripts: Reject unknown partial request keys (
7293415) - workflow: Make implement feature more explicit (
a984d0d) - scripts: Correct provisioning auth header names (
7dd9860) - scripts: Simplify job polling contract (
5f06702) - scripts: Prevent fd double-close in save_managed_state (
bd2490a) - scripts: Authenticate before form parsing on /apply and /generate (
9681759) - scripts: Prevent double-prefix when quadlet sections already namespaced (
99f0cdf) - scripts: Clear promotion marker after successful re-apply rename (
de4d0d4) - scripts: Correct parse_port_lines indentation in /generate handler (
0c0fd81) - scripts: Resolve ruff lint violations in provision script (
b5e0cc3) - scripts: Use colon-separated USB search dirs to avoid splitting (
325ee3f) - modules: Align static dnsmasq default with generated config (
bf06d75) - repo: Align network key validation with schema (
b83b054) - scripts: Use wrapped apply-users script in first-boot fallback (
71b5a22) - scripts: Improve apply-users shell and password handling (
dddd127) - scripts: Reap fire-and-forget post-response subprocess (
e0b1160) - scripts: Validate port input in /generate form handler (
6a4a8d5) - scripts: Enforce request body size limit to prevent OOM (
ff221de) - scripts: Hold apply_lock for all POST paths (
c8b1da1) - scripts: Anchor TOML section rewrites to line start in /generate (
ad1fedd) - scripts: Support no-systemd first boot user apply (
efeacd6) - repo: Restore admin podman access (
6d1e96f) - repo: Protect unmanaged local accounts (
5407f82) - repo: Bump config contract version (
9268dc0) - repo: Recover interrupted config promotions (
8146a95) - scripts: Hide browser forms after provisioning (
136805d) - scripts: Thread-safety for NonceStore and _is_provisioned (
25f582e) - modules: Keep managed user passwords locked (
08eafe5) - modules: Use atomic promotion for CLI imports (
d35697a) - modules: Remove built-in admin operator account (
2858489) - modules: Harden admin user and promotion recovery (
d4a07c4) - modules: Bind re-apply auth to submitted config (
6ef8552) - modules: Share re-apply rollback for bootstrap forms (
43575a4) - modules: Close re-apply auth and rollback gaps (
ca9f150) - modules: Quiet LAN gateway time and DNS warnings (
ec580ee) - docs: Add Cockpit portal navigation (
49e676b) - docs: Use local Cockpit image without pulling (
dc433f0) - repo: Make OIDC example work on local devices (
f083592) - scripts: Restart provisioned units on reapply (
f7e1eb7) - docs: Build Cockpit image from Fedora (
19fe329) - scripts: Stop filtering bootstrap upload filenames (
62951cc) - docs: Use host network for Cockpit image build (
7edd532) - scripts: Accept documented zstd bundles (
2705ae7) - docs: Correct privileged container justification (
7fed199) - docs: Use h1 for SUMMARY.md part titles (
fff91a8) - tooling: Preserve blank line after subject in commit-msg hook (
b7ddb2b) - scripts: Make post-apply hook async to avoid hanging response (
ea8c394) - scripts: Reply before running bootstrap post-apply hook (
5b91c19) - scripts: Avoid duplicate dnsmasq directives (
355591a) - modules: Recover chrony after WAN becomes routable (
98776f7) - scripts: Remove first-boot dev bypass (
f20f3ef) - scripts: Validate provisioned firewall metadata early (
4700a09) - scripts: Recheck sustained health before mark-good (
029afa7) - scripts: Fail first boot when runtime apply fails (
5664065) - provisioning: Reject DHCP ranges containing gateway (
f936adb) - Remove verification target cycle (
562aa5f) - Harden verification input fallbacks (
e598acc) - Order verification after rauc (
743b239) - Tighten verification and lan apply validation (
8cd6e45) - Allow quadlet sync without rootless units (
9b94f04) - Fail closed on malformed runtime metadata (
04b8d1b) - Fail verification on invalid rauc status (
a2fec22) - Align lint and LAN gateway specs (
821edcd) - Validate provisioned runtime inputs (
869b008) - Handle review follow-ups cleanly (
c5137c6) - Align review threads with current behavior (
1274e44) - Harden LAN DNS and boot-time fallbacks (
16ae3c9) - Remove quadlet target cycle (
6556bc5) - Order verification after lan apply (
8796ac6) - Validate provisioned firewall input (
a98dc1f) - Address provision review feedback (
52438b5) - Gate quadlet startup on chrony sync (
c1fbf26) - Boot UI download config.toml client-side (
de71c24) - Boot UI styling and logo (
b20c2b5) - Bound bootstrap follow-up cleanup (
7700087) - Address bootstrap review feedback (
87e2bfc) - Harden bootstrap apply flow (
be0ac9f) - Clear stale forensics state on non-RAUC boot (
f09c45d) - Support absolute build outputs and align docs (
bd3cf06) - Harden build and flash task recovery (
06838a5) - Gate upgrades and harden auth probes (
bcb0ab6) - Gate RAUC-dependent boot confirmation (
0c1b06e) - Support bash 3.2 in flash task (
6724642) - Apply mdBook-lint global disables (
3cc1b71) - Require explicit RAUC enablement (
6eacea5) - scripts: Improve image build and flash defaults (
56b3134) - repo: Rootless provisioned container startup (
ea711ce) - modules: Disable broken initrd forensic logging (
45bc8ce) - Docs deployment (
837f7dd) - modules: Initrd forensics helper execution (
e6296ff) - scripts: Gate serial root debug behind RUT_OH (
d2cbbac) - modules: Stabilize Rock64 boot and Overwatch transition (
70036f9) - modules: Stabilize rock64 boot and persist layout (
1aedf3c) - modules: More kernel striping (
819c8e3) - repo: Mostly working (
ecc38f5) - repo: Disable redundant SPI env (
d5cc3cb) - docs: Boot/update pipeline and align docs/config (
5a28555) - scripts: Stabilize hardware boot flow (
2ffb4e4) - tests: Stabilize E2E network topology (
655c28d) - nix: Suppress noisy SQLite busy warnings from parallel nix builds (
c0724ed) - tests: E2e tasks: use --no-link to avoid result symlink conflicts (
5810726) - tests: Repair squashfs validation boot (
80ce651) - modules: Commit dev signing keys and fix RAUC bundle build (
83434d1) - modules: Expand boot partitions (
54b0053)
Changed
- modules: Remove the OpenVPN recovery service (#22) (
811bf4c) - tests: Consolidate E2E launchers (
d74b9cb) - tooling: Centralize commitlint installation (
ad77fba) - nix: Centralize immutable build policy (
e8ad3bf) - modules: Delegate structure to JSON Schema (
92ba456) - modules: Encapsulate provision dispatch (
8dc136d) - nix: Share boot partition construction (
75740df) - nix: Centralize LAN fallback defaults (
b064aa8) - scripts: Delegate first boot provisioning to package (
3bb74c2) - modules: Rename health config section to activation (
3a63a89) - docs: Centralize OIDC example variables (
2b0d8a3) - docs: Move OIDC tutorial to example bundle (
fd29158) - docs: Make cockpit-ws rootless (
2e9e657) - Replace forensic ring with journald logging (
d4b1e83) - Deduplicate Rock64 kernel config (
d6d9b74) - tooling: Serial task with serial:capture and serial:shell (
5807703) - modules: Replace tmpfs mounts with OverlayFS (
c877cc2) - docs: Consolidate docs workflow to single job (
061dfea)