#+TITLE: Session Context - Active Session #+DATE: 2026-01-24 * Session: Friday 2026-01-23 @ 14:08 CST (continued 2026-01-24) ** Key Decisions This Session *** Project Rename: archangel - Decided to rename project from "archzfs" to "archangel" *** Btrfs Implementation Approach - Phase 2: Single-disk btrfs, no encryption (test first) - Phase 2.7: Test basic btrfs before adding encryption - Phase 2.8: LUKS encryption after basic btrfs works - Phase 3: Multi-disk (stripe, mirror, raidX) + encrypted/unencrypted ** Work Completed *** Phase 1: Refactor (COMPLETE) - [X] lib/common.sh, config.sh, disk.sh, zfs.sh created - [X] Filesystem selection prompt - [X] Renamed to archangel - [X] VM test passed *** Phase 2.1-2.6: Btrfs Support (COMPLETE) - [X] Created lib/btrfs.sh with full implementation - [X] 10 subvolumes matching ZFS dataset layout - [X] Mount functions with proper options - [X] fstab generation (subvol= NOT subvolid!) - [X] GRUB + grub-btrfs configuration with serial console - [X] Snapper firstboot service (configures on first boot) *** Phase 2.7: Basic Btrfs Testing (COMPLETE @ 05:23 CST) - [X] VM boots from installed btrfs disk - [X] GRUB menu shows and auto-boots - [X] All 10 subvolumes mount correctly - [X] Snapper works when configured - [X] Genesis snapshot can be created - [X] grub-btrfs detects snapshots **** Issues Fixed During Testing 1. GRUB couldn't find normal.mod - added proper boot-directory config 2. GRUB_BTRFS_GRUB_DIRNAME was wrong - removed, use default 3. HEREDOC not working in remote execution - switched to echo 4. Snapper needs D-Bus - firstboot service approach 5. rootflags=subvol=@ was duplicated - grub-mkconfig adds it ** Commits This Session - a49f4b1: Phase 2.1: Implement btrfs support - 35a661c: Fix btrfs bugs from VM testing - bd0616c: Fix btrfs GRUB boot and snapper firstboot ** Next Steps 1. Phase 2.8: LUKS encryption for btrfs 2. Rebuild ISO with all fixes 3. Full end-to-end automated test 4. Phase 3: Multi-disk support ** Notes - Craig on remote console: 30 lines tall, ~145 columns wide - Testing approach: syntax first, then full VM test - Snapper requires D-Bus - can't configure in chroot, needs firstboot