#+TITLE: Session Context - Active Session #+DATE: 2026-01-23 * Session: Friday 2026-01-23 @ 14:08 CST (ongoing) ** Key Decisions This Session *** Project Rename: archangel - Decided to rename project from "archzfs" to "archangel" - Script name will be just "archangel" (not install-archangel) - Checked for conflicts: pwnerfly/Archangel is dead (2020, 0 stars, no license) - Name is clear for use *** 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 *** Partition Type Handling - disk.sh checks global FILESYSTEM variable - ZFS: BF00 (Solaris root) - Btrfs: 8300 (Linux filesystem) ** Work Completed *** 1. 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 *** 2. Phase 2: Btrfs Support (IN PROGRESS) **** Phase 2.1: lib/btrfs.sh (COMPLETE) - [X] Created lib/btrfs.sh with full implementation - [X] BTRFS_OPTS: noatime,compress=zstd,space_cache=v2,discard=async - [X] 10 subvolumes matching ZFS dataset layout - [X] Mount functions with proper options - [X] fstab generation (subvol= NOT subvolid!) - [X] Snapper configuration (timeline policy) - [X] GRUB + grub-btrfs configuration - [X] Genesis snapshot via snapper **** Updated Files - [X] disk.sh - filesystem-aware partition type - [X] archangel - sources btrfs.sh, install_btrfs() path - [X] build.sh - includes lib/btrfs.sh permissions - [X] PLAN-archangel-btrfs.org - added Phase 2.7/2.8 **** Syntax Checks - [X] All lib/*.sh pass bash -n - [X] archangel passes bash -n - [X] All btrfs functions defined correctly ** Next Steps 1. Commit Phase 2.1 implementation 2. Build ISO 3. VM test btrfs installation path ** Notes - Craig on remote console: 30 lines tall, ~145 columns wide - Testing approach: syntax first, then full VM test