# Progress This file is now intentionally compact. Detailed chronological history through Phase 18.2 has been archived at: - `docs/reports/progress-log-through-phase18-2-freebsd.md` For a broader narrative summary, see: - `docs/PROG_SUMMARY.md` ## Current status Fruix currently has: - declarative system modeling on FreeBSD - content-addressed system closures under `/frx/store` - native FreeBSD base artifacts in `/frx/store` - declarative FreeBSD source objects and source materialization - source-driven native base builds from materialized source snapshots - side-by-side source revisions and boot validation - a host-driven non-interactive install path: - `fruix system install` - a bootable Fruix-managed installer environment: - `fruix system installer` - a bootable Fruix-managed installer ISO: - `fruix system installer-iso` Validated boot modes still are: - `freebsd-init+rc.d-shepherd` - `shepherd-pid1` The validated Phase 18 installation work currently uses: - `freebsd-init+rc.d-shepherd` ## Latest completed achievement ### 2026-04-04 — Phase 18.3 completed Fruix now builds a bootable installer ISO, boots it, installs from it, and boots the installed target successfully. Highlights: - added in `modules/fruix/system/freebsd.scm`: - `operating-system-installer-iso-spec` - `materialize-installer-iso` - added CLI support in `scripts/fruix.scm`: - `fruix system installer-iso` - the installer ISO now carries: - a UEFI El Torito boot image - `/boot/root.img` as the installer mdroot payload - the installer closure - the selected target closure - the target runtime store closure needed for installation - in-guest installer state/log/scripts - validated workflows: - local QEMU/UEFI/TCG boot, install, and installed-target reboot - real XCP-ng VM boot, install, and installed-target reboot - a platform-specific installer detail is now recorded in-tree: - QEMU ISO path installs onto `/dev/vtbd0` - XCP-ng ISO path installs onto `/dev/ada0` Validation: - `PASS phase18-installer-iso` - `PASS phase18-installer-iso-xcpng` Report: - `docs/reports/phase18-installer-iso-freebsd.md` Commits: - `1970c5c` — `system: add UEFI installer ISO builder` - `604ad82` — `system: validate UEFI installer ISO boot path` ## Recent major milestones - `1d00907` — `Add Fruix bootable installer environment` - `2517710` — `Add non-interactive Fruix installation flow` - `02a02e3` — `Document Fruix FreeBSD source policy` - `865012e` — `Boot Fruix from distinct FreeBSD source revisions` - `8150508` — `Validate side-by-side FreeBSD source revisions` - `5cbf5b9` — `Build native bases from materialized FreeBSD sources` ## Active constraints - local `bhyve` remains blocked under Xen due to lack of nested VT-x exposure - XO self-service creation is still not usable with the current token - real XCP-ng validation must continue to use: - VM `90490f2e-e8fc-4b7a-388e-5c26f0157289` - approved A/B VDIs: - `0f1f90d3-48ca-4fa2-91d8-fc6339b95743` - `7061d761-3639-4bec-87f7-2ba1af924eaa` - local QEMU/TCG validation keeps conservative default SMP settings; `QEMU_SMP` remains overrideable ## Next step Per `docs/PLAN_4.md`, the next planned step is: - **Phase 19.1** — define and document the canonical Fruix deployment workflow for rebuild, image generation, installation, and rollback Phase 18.3 is now complete: Fruix can build, boot, install from, and validate a bootable UEFI installer ISO on FreeBSD.