Repository navigation
v0.8.0 — install --probation + rollback + quickstart
The headline pipeline is now complete. From a fresh box to a booted custom kernel:
```bash
curl -LsSf https://raw.githubusercontent.com/mjbommar/autokernel/master/install.sh | bash
~/.local/bin/autokernel quickstart # walk-through preflight → ... → apply
(then build + install when you're ready)
```
New verbs
- `install --probation` — distro-aware kernel package install. Default dry-run; `--execute` runs the plan as root. Uses one-shot grub-reboot so a failed boot falls back to the previous default automatically.
- `install --commit` — after a successful probation boot, promotes the running kernel to permanent default.
- `rollback` — undo the most recent install (apt/dnf/pacman remove + bootloader regenerate). Idempotent.
- `quickstart` — guided walk-through verb. Confirmation prompts before each step; failures explain exactly what to retry.
New infrastructure
- `bootloader.py` — detects GRUB2 (Debian + Fedora layouts), systemd-boot, rEFInd. v1 supports GRUB2 only.
- `errors.py` — every error path renders as `✗ summary / why / → fix-with-exact-command`. Distro-aware fix hints (`apt install` on Debian, `dnf install` on Fedora, `pacman -S` on Arch).
- Preflight extensions for install: bootloader_supported, boot_writable, fallback_kernel_present, grub_tools.
Safety
- Default everywhere is dry-run. `--execute` opts in.
- Probation: a failed boot falls back to the previous kernel automatically; user runs `autokernel rollback --execute` to clean up.
- DKMS gate refuses `auto-*` autonomy (also enforced in build).
- Load-bearing blocklist enforced at proposal AND apply stages.
- The TUI never writes to disk; the App layer is a pure mutator.
Tests
426 total, ~4s, fully mocked subprocess so no test ever runs `apt` / `grub-reboot` / etc.
Roadmap
- systemd watchdog for auto-promotion (currently `--commit` is manual)
- systemd-boot / rEFInd support for `install`
- PEP 723 kernel-dev helpers (bisect, patch series, fragment composer)