Changelog
v1.1.0 — March 2026
Added
--dry-runflag on all 7 scripts — preview actions without modifying the system--helpflag on all 7 scripts — display usage information- 136 unit tests using bats-core with full mock framework (
tests/*.bats) - Docker-based unit test container (
tests/Dockerfile.unit) on Arch Linux - Docker-based integration test container (
tests/Dockerfile.integration) on Arch Linux with real packages - Consolidated CI workflow (
.github/workflows/tests.yml) with ShellCheck, unit tests, and integration tests - Testing section in README, CONTRIBUTING, and scripts overview docs
Fixed
02-wifi-firmware.sh: replaced glob patterns in backup/restore withfindcommands for fish shell compatibility03-optimise.sh: replacedsudo -u "$SUDO_USER"with directHOMEoverride to avoid hanging AUR helpers05-mount-vault.sh: added$USERfallback viawhoamifor environments where$USERis unset (e.g. Docker containers)tests/integration/run-all.sh: fixed((PASS++))arithmetic causingset -eto exit when counter is zero
v1.0.0 — March 2026
Initial public release. All scripts field-tested on MacBook Air 2020 (MacBookAir9,1) running CachyOS kernel 6.19.x.
Added
00-setup-vault.sh— first-time LUKS2 encrypted vault setup with interactive size selection01-thermal-setup.sh— mbpfan installation and fan curve configuration for APP0001:00 ACPI path02-wifi-firmware.sh— BCM4377b firmware verify, backup, restore, and re-install03-optimise.sh— Ice Lake kernel params, TLP drop-in, PipeWire T2 audio config, suspend fix service04-bootloader.sh— Limine management, optional rEFInd install, EFI boot order management05-mount-vault.sh— unlock and mount LUKS2 code vault06-unmount-vault.sh— lock and unmount LUKS2 code vault- VitePress documentation site
Fixed
- Replaced all glob patterns (
applesmc.*) withfindcommands for fish shell compatibility - Removed
sudo -uAUR helper calls (paru/yay hang when called via sudo -u inside sudo session) - Fan sysfs path now detected dynamically via ACPI path instead of hardcoded
applesmc.768 - mbpfan config uses
coretempsensors only (applesmc TC* sensors not available via expected path on 6.19.x)
Known Issues
- Webcam support varies by kernel version — check T2 Linux roadmap
- Thunderbolt-specific features limited