aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* docs: add new workflows and AMD GPU workaroundCraig Jennings2026-01-314-0/+686
| | | | | | | - Add email workflow (msmtp direct sending) - Add assemble-email workflow (document gathering for manual send) - Add retrospective workflow - Add AMD GPU suspend workaround notes
* docs: update protocols and session wrap-up workflowCraig Jennings2026-01-313-142/+198
| | | | | | | - Add Wayland environment section to protocols (wl-copy, Hyprland) - Add session-context deletion step to wrap-up workflow - Add clean git state verification before valediction - Update todo.org tasks
* refactor: rename archzfs to archangel, simplify build-releaseCraig Jennings2026-01-3113-1065/+217
| | | | | | | | - Standardize naming: VM names, hostname, passwords, ISO naming - Remove USB, Ventoy, and local deployment from build-release - Add snapper package and Btrfs validation tests to sanity-test - Update README for dual ZFS/Btrfs architecture - Delete obsolete SESSION-CONTEXT.md and download-archzfs-iso.sh
* fix: remove obsolete test for deleted zfs-snap-pruneCraig Jennings2026-01-262-317/+8
| | | | | | - Remove test-zfs-snap-prune.sh (tested deleted script) - Update Makefile to reference existing custom/ scripts - Remove test-unit target (no unit tests remain)
* chore: remove redundant help targetCraig Jennings2026-01-261-15/+1
| | | | Usage info already documented in header comment.
* refactor: remove archsetup references, make installer standaloneCraig Jennings2026-01-252-20/+7
| | | | | | | - Remove copy_archsetup function and calls from ZFS/Btrfs paths - Update SSH hardening messages to generic advice - Change sanoid references to tips without archsetup dependency - Improve filesystem dialog descriptions
* Remove session-context.org (session complete)Craig Jennings2026-01-251-105/+0
|
* Phase 4.3 complete: btrfs validation testingCraig Jennings2026-01-252-0/+58
| | | | | | | - Non-LUKS tests all pass (single, mirror, stripe) - LUKS reboot automation attempted but blocked (encrypt hook limitation) - Added manual LUKS verification task to todo.org - Session notes updated
* Add LUKS testing infrastructure and documentationCraig Jennings2026-01-256-105/+307
| | | | | | | | | | | | - Add setup_luks_testing_keyfile() for automated LUKS testing - Modify configure_crypttab() and configure_luks_initramfs() for keyfile support - Fix configure_btrfs_initramfs() to preserve encrypt hook when LUKS enabled - Add TESTING=yes to LUKS test configs - Create docs/TESTING-STRATEGY.org documenting testing approach LUKS automated reboot testing remains a work-in-progress due to complexity of sending passphrase to initramfs encrypt hook. Non-LUKS tests all pass: btrfs-single, btrfs-mirror, btrfs-stripe.
* Add ISO naming task, update session contextCraig Jennings2026-01-252-20/+109
| | | | | | | | - Add TODO for ISO naming convention change (date after project name) - Update session context with test results: - btrfs-single, btrfs-mirror, btrfs-stripe: PASS - btrfs-luks, btrfs-mirror-luks: reboot test blocked by passphrase prompt - Sync fix validated for non-encrypted btrfs
* Update test config and documentationCraig Jennings2026-01-253-107/+96
| | | | | | - Add NO_ENCRYPT=yes to btrfs-single.conf for unattended testing - Add offline Arch Wiki documentation section to RESCUE-GUIDE.txt - Update todo.org with completed tasks and new items
* Add reboot survival and rollback verification testsCraig Jennings2026-01-251-6/+223
| | | | | | | | | - Add start_vm_from_disk() to boot installed system without ISO - Add stop_vm keep_vars parameter to preserve EFI boot entries - Add verify_reboot_survival() to check system boots from disk - Add verify_rollback() to test snapshot/rollback functionality - Support different SSH passwords for live ISO vs installed system - Integrate reboot/rollback checks into test flow
* Fix GRUB boot for btrfs with subvolumesCraig Jennings2026-01-251-11/+21
| | | | | | | | | | - Store GRUB modules on EFI partition (FAT32) to avoid btrfs subvolume path prefix issues (/@/boot/grub not found) - Create symlink /boot/grub -> /efi/grub for grub-btrfs compatibility - Add sync after grub-mkconfig to ensure FAT32 write completion - Add sync before unmounting to prevent data loss on VM shutdown - Update snapper-firstboot to use /efi/grub/grub.cfg path - Update multi-disk GRUB functions for consistency
* Fix LUKS encryption for btrfs (single and multi-disk)Craig Jennings2026-01-243-24/+61
| | | | | | | - Use -d - flag for cryptsetup stdin key input (matches easy-arch) - Change ((i++)) to ((++i)) to avoid set -e exit on 0 increment - Add btrfs-mirror-luks test config - Update status protocol with sound notifications
* Phase 3: Add multi-disk btrfs support (RAID0/RAID1)Craig Jennings2026-01-245-37/+357
| | | | | | | | - RAID1 (mirror) and RAID0 (stripe) for 2+ disks - Multi-disk LUKS with single passphrase prompt - EFI redundancy: GRUB installed on all disks - Pacman hook syncs GRUB updates across EFI partitions - btrfs initramfs hook for multi-device assembly at boot
* Sync templates, update session contextCraig Jennings2026-01-242-44/+33
|
* Fix LUKS btrfs installation and reduce ISO sizeCraig Jennings2026-01-243-60/+61
| | | | | | | | | | | | | - Fix GRUB cryptodisk: configure_grub() heredoc was overwriting LUKS settings added by configure_luks_grub(). Moved LUKS GRUB config (GRUB_ENABLE_CRYPTODISK=y, cryptdevice cmdline) into configure_grub() after the heredoc writes the base config. - Fix ISO bloat: archsetup copy was including vm-images (17GB). Changed from cp -r to rsync with exclusions for vm-images, test-results, .qcow2, and .iso files. ISO now 2.0GB. - btrfs-luks VM test now passes.
* Phase 2.8: Add LUKS encryption for btrfsCraig Jennings2026-01-245-15/+213
| | | | | | | | | | | | | - Add LUKS functions to btrfs.sh (create/open/close container) - Add crypttab configuration for boot - Add encrypt hook to mkinitcpio HOOKS - Add cryptdevice parameter to GRUB cmdline - Add get_btrfs_encryption_choice and get_luks_passphrase prompts - Add LUKS_PASSPHRASE to config variables - Update show_summary and print_btrfs_summary for encryption status - Add btrfs-luks.conf test config VM test pending.
* Update session context: Phase 2.7 completeCraig Jennings2026-01-241-19/+27
|
* Fix btrfs GRUB boot and snapper firstbootCraig Jennings2026-01-241-84/+93
| | | | | | | | | | - Add GRUB serial console configuration for headless/VM testing - Add GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION for btrfs - Fix snapper-firstboot script (use echo instead of HEREDOC) - Add dbus.service dependency to firstboot service - Remove duplicate rootflags from GRUB_CMDLINE_LINUX VM test verified: GRUB boots, all subvolumes mount, snapper works.
* Fix btrfs bugs from VM testingCraig Jennings2026-01-234-68/+107
| | | | | | | | | | | - Fix GRUB config path (remove GRUB_BTRFS_GRUB_DIRNAME, use default) - Create snapper config manually (D-Bus not available in chroot) - Create genesis snapshot with btrfs command (not snapper) - Add btrfs-single.conf test config - Update test-install.sh to copy lib/ directory - Update test-install.sh to handle btrfs verification VM test now passes for btrfs single-disk installation.
* Phase 2.1: Implement btrfs supportCraig Jennings2026-01-236-81/+656
| | | | | | | | | | | - Create lib/btrfs.sh with full btrfs installation functions - Subvolume layout matching ZFS datasets (10 subvols) - Snapper configuration with timeline policy - GRUB + grub-btrfs for snapshot boot menu - Update disk.sh for filesystem-aware partition type - Update archangel with install_btrfs() path - Update build.sh to include lib/btrfs.sh - Update plan with Phase 2.7 (test) and 2.8 (LUKS)
* Update session context: Phase 1 completeCraig Jennings2026-01-231-29/+34
|
* Phase 1.5: Rename to archangelCraig Jennings2026-01-233-12/+14
| | | | | | | | | | | - Rename install-archzfs → archangel - Rename install-archzfs.conf.example → archangel.conf.example - Update build.sh to use new names - Update script header with dual-filesystem description - Update log file names to archangel-* The installer is now called "archangel" reflecting its expanded scope: snapshot-based recovery for both ZFS and Btrfs filesystems.
* Phase 1.4: Add filesystem selection promptCraig Jennings2026-01-234-12/+82
| | | | | | | | | | | | | - Add FILESYSTEM variable to config (zfs or btrfs) - Add select_filesystem() function with fzf support - Update gather_input() to prompt for filesystem in interactive mode - Add validation for FILESYSTEM in unattended mode - Btrfs selection errors with "not yet implemented" - Update banner to show "Archangel" branding - Update config example with FILESYSTEM option Groundwork for btrfs support - filesystem choice is now captured, installation logic gates on FILESYSTEM variable.
* Phase 1.1 complete: VM test passed, lib refactor validatedCraig Jennings2026-01-231-6/+17
|
* Update session context with VM testing progressCraig Jennings2026-01-231-49/+43
|
* Fix set -e compatibility in lib functionsCraig Jennings2026-01-234-11/+17
| | | | | | | | | - Replace [[ ]] && error pattern with if/then/fi - Pattern causes exit when condition is false with set -e - Fixed in: common.sh, config.sh, disk.sh, install-archzfs Discovered during VM testing: the && short-circuit returns exit code 1 when condition is false, triggering set -e to abort.
* Fix build.sh to include lib/ directory in ISOCraig Jennings2026-01-231-0/+13
| | | | | | - Copy custom/lib/ to /usr/local/bin/lib/ in airootfs - Add file permissions for lib/*.sh files - Required for refactored install-archzfs to work
* Phase 1.1: Create lib/ directory structure for archangel refactorCraig Jennings2026-01-236-82/+839
| | | | | | | | | | | - Add custom/lib/common.sh: output, validation, fzf prompts, disk utils - Add custom/lib/config.sh: argument parsing, config loading, validation - Add custom/lib/disk.sh: partitioning, EFI management, disk selection - Add custom/lib/zfs.sh: pool, datasets, ZFSBootMenu, services, hooks - Update install-archzfs to source libs - Remove duplicated output/config functions from main script Prepares codebase for btrfs filesystem support (Phase 2).
* Add btrfs implementation planCraig Jennings2026-01-232-0/+215
| | | | | | - Create PLAN-archangel-btrfs.org with 6-phase implementation - Phases: Refactor, Btrfs, Multi-disk, Testing, CLI tools, Docs - Add TODO referencing the plan
* Expand testing validation checks in btrfs researchCraig Jennings2026-01-231-28/+71
| | | | | | | - Add reboot survival checks (catches misconfigured services) - Rollback tests must include reboot for full validation - Document ZFSBootMenu rollback bug (needs filing) - Expand failure recovery and encryption checks
* Add archsetup --chroot task, update session contextCraig Jennings2026-01-232-80/+85
| | | | | | | - Add TODO [#B] for archsetup --chroot mode to enable full workstation setup during install-archangel chroot phase - Document required changes: skip systemctl start, ping checks, tmpfs mount - Update session context with archangel naming decision
* session: Code review workflow and btrfs expansion researchCraig Jennings2026-01-231-56/+78
|
* Research: Btrfs expansion and multi-filesystem supportCraig Jennings2026-01-232-37/+467
| | | | | | | | | | | | | | | | Comprehensive research for expanding project to support both ZFS and Btrfs: - Feature parity analysis (ZFS vs Btrfs equivalents) - Btrfs limitations: RAID 5/6 unstable, no native encryption (use LUKS) - Recommended subvolume layout: @, @home, @snapshots, @var_log, @var_cache - Snapshot stack: snapper + snap-pac + grub-btrfs + btrfs-assistant - Multi-disk support: raid1 (mirror), raid10 only - Installer architecture proposal with modular lib/ structure - Testing strategy and VM test matrix - Project rename recommendation: archsnap Cloned 8 reference repos: grub-btrfs, easy-arch, arch-btrfs-installation, btrfs-assistant, snap-pac, btrbk, buttermanager, alis
* Add code review workflow and project cleanup tasksCraig Jennings2026-01-233-0/+449
| | | | | | | | | | | - Create docs/project-workflows/code-review.org with comprehensive code review checklist based on Code Review Pyramid framework - Add 14 new tasks to todo.org from senior developer code review: - Priority A: README GRUB refs, missing LICENSE, skeleton script - Priority B: Stale files, Makefile lint, documentation gaps - Priority C: Style consistency, .editorconfig, test docs - Add Makefile targets to todo.org: deps, lint, deploy - Create docs/session-context.org for session tracking
* Remove session context after wrap-upCraig Jennings2026-01-231-52/+0
|
* session: Bare metal ZFSBootMenu validation on ratioCraig Jennings2026-01-231-0/+34
| | | | | Validated install-archzfs on Framework Desktop with 2-disk NVMe mirror. ZFSBootMenu installed on both EFI partitions with redundant boot entries.
* session: ZFSBootMenu implementation and testing completeCraig Jennings2026-01-232-27/+85
| | | | | Implemented and tested ZFSBootMenu bootloader replacement. All VM tests passed (single disk, mirror, raidz1). ISO copied to Ventoy drive.
* Replace GRUB with ZFSBootMenu bootloaderCraig Jennings2026-01-2213-564/+1232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a major change that replaces the GRUB bootloader with ZFSBootMenu, providing native ZFS boot environment support. Key changes: - EFI partition reduced from 1GB to 512MB (only holds ZFSBootMenu) - EFI now mounts at /efi instead of /boot - Kernel and initramfs live on ZFS root (enables snapshot boot with matching kernel) - Downloads pre-built ZFSBootMenu EFI binary from get.zfsbootmenu.org - Creates EFI boot entries for all disks in multi-disk configurations - Syncs ZFSBootMenu to all EFI partitions for redundancy - Sets org.zfsbootmenu:commandline on zroot/ROOT for kernel cmdline inheritance - Sets bootfs pool property for default boot environment - AMD GPU workarounds (pg_mask, cwsr_enable) added to kernel cmdline when AMD detected Deleted GRUB snapshot tooling (no longer needed): - custom/grub-zfs-snap - custom/40_zfs_snapshots - custom/zz-grub-zfs-snap.hook - custom/zfs-snap-prune Updated helper scripts: - zfssnapshot: removed grub-zfs-snap call, shows ZFSBootMenu tip - zfsrollback: removed grub-zfs-snap call, notes auto-detection Tested configurations: - Single disk installation - 2-disk mirror (mirror-0) - 3-disk RAIDZ1 (raidz1-0) - All boot correctly with ZFSBootMenu
* Document Strix Halo VPE/CWSR freeze issues and workaroundsCraig Jennings2026-01-222-0/+255
| | | | | | | | - Add instructions for applying pg_mask=0 and cwsr_enable=0 workarounds - Document that kernel 6.18.x has critical bugs, stay on 6.15.x-6.17.x - Add session docs, mkinitcpio fixes, and Donato Capitella video transcript - Add PRINCIPLES.org for behavioral lessons learned - Update protocols.org from template
* Clean up session context and add .stignoreCraig Jennings2026-01-222-50/+2
|
* Simplify session startup instructions in protocols.orgCraig Jennings2026-01-221-2/+1
|
* Remove autodetect from mkinitcpio HOOKS documentationCraig Jennings2026-01-221-5/+7
| | | | | autodetect during chroot install detects live ISO hardware, not target machine. Could leave out NVMe/AHCI drivers.
* Add session notes for ratio boot fix and retrospective workflowCraig Jennings2026-01-221-0/+36
| | | | | Documented boot fix session including firmware requirement, GRUB configuration, and behavioral principles for future sessions.
* Add retrospective workflow and PRINCIPLES.org for continuous improvementCraig Jennings2026-01-223-14/+140
| | | | | | | | | - docs/PRINCIPLES.org: Behavioral lessons from retrospectives - docs/retrospectives/: Directory for retrospective records - docs/protocols.org: Add PRINCIPLES.org to session startup reading list Establishes pattern for learning from problem-solving sessions and capturing behavioral (not just technical) lessons.
* Update ratio session doc: kernel 6.15.2 now default with clean GRUB menuCraig Jennings2026-01-221-0/+66
| | | | | | | - Created custom GRUB entries for cleaner boot menu - Set kernel 6.15.2 as default, LTS as fallback - Pinned linux package in pacman.conf - Documented UUID gotcha with mirrored NVMe boot partitions
* Fix ratio boot issues: firmware, mkinitcpio, and document ZFS rollback dangersCraig Jennings2026-01-227-0/+794
| | | | | | | | | | | | | | | | | Root cause: Missing/outdated linux-firmware broke AMD Strix Halo GPU init. Fixed by installing linux-firmware 20260110-1. Changes: - install-archzfs: Fix mkinitcpio config (remove archiso.conf, fix preset) - todo.org: Add ZFS rollback + /boot mismatch issue, recommend ZFSBootMenu - docs/2026-01-22-ratio-boot-fix-session.org: Full troubleshooting session - docs/2026-01-22-mkinitcpio-config-boot-failure.org: Bug report - assets/: Supporting documentation and video transcript Key learnings: - AMD Strix Halo requires linux-firmware 20260110+ - ZFS rollback with /boot on EFI partition can break boot - zpool import -R can permanently change mountpoints
* Fix ZFS boot failures: service conflicts, cachefile, and GRUB duplicate rootCraig Jennings2026-01-211-3/+10
| | | | | | | | | | | | | | | | | | Three bugs were preventing installed systems from booting: 1. ZFS package preset (50-zfs.preset) enables zfs-import-cache by default, overriding our attempt to use zfs-import-scan. Now explicitly disable zfs-import-cache before enabling zfs-import-scan. 2. zfs-import-scan has ConditionFileNotEmpty=!/etc/zfs/zpool.cache which prevents it from running if cachefile exists. Now remove cachefile after setting cachefile=none. 3. GRUB_CMDLINE_LINUX contained root=ZFS=... but grub-mkconfig also auto-detects ZFS root, causing duplicate root= parameters. Removed manual root= since grub-mkconfig handles it correctly. All 22 tests pass (19 sanity + 3 installation configs).
* Reorganize todo.org: flatten hierarchy and sort by priorityCraig Jennings2026-01-211-150/+94
| | | | | | | | | - Move all tasks to same level (no nested headers) - Add "Idea from:" attribution for external sources - Sort tasks by priority (A, B, C, D) - Expand build logging task with archsetup UX reference - Clarify multi-variant builds as very low priority - Trim Resolved section for brevity