All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- i3lock-color detection now checks for "Cassandra Fox" in version output instead of "i3lock-color" string which doesn't appear
- Version check now uses GitHub API instead of raw.githubusercontent.com to avoid CDN caching issues
- Kitty: Disabled mouse clicks from inserting characters in terminal (mouse_map no_op for left/middle/right clicks)
- Automated Testing: BATS test suite for install.sh, .bashrc, and rollback.sh functions
- GitHub Actions CI: Automated shellcheck, BATS tests, dry-run validation, and JSON lint
- Pre-flight validation:
--checkflag to validate system compatibility before installation - Interactive mode:
--interactive/-iflag for guided installation with prompts - Troubleshooting guide: Comprehensive troubleshooting section in README
- FAQ section: Common questions and answers in README
- Prerequisites section: Explicit system requirements documentation
- Enhanced installation summary in interactive mode with color-coded UI
- Improved system compatibility checking with detailed reports
- Full installation now requires 5GB disk space (up from 2GB)
- Phase 6 hardening complete (automated testing, CI/CD)
- Phase 7 hardening complete (documentation, interactive mode)
- All 7 phases of security hardening now complete
- Modular installation:
--shell-onlyflag for shell-only installs (no desktop components) - Dry-run mode:
--dry-runflag to preview installation without changes - Verbose mode:
--verbose/-vflag for detailed output - Skip backup option:
--skip-backupflag for clean installs - Force reinstall:
--forceflag to reinstall even if same version - Dependency checking: Validates apt, sudo, disk space (2GB), internet connectivity
- Color-coded logging: INFO (blue), OK (green), WARN (yellow), ERROR (red)
- Installation state tracking: Saved to
~/.config/cli-setup/state.json - Version tracking: VERSION file and installed version in
~/.config/cli-setup/version - Manifest file:
manifest.jsonwith declarative package/config definitions - Idempotent background downloads: Skip images that already exist
- Flathub repository check: Avoid duplicate repository additions
- Snap connection verification: Check before attempting connections
- Rollback script:
rollback.shto restore configs from backups (--list, --backup, --dry-run) - Input validation:
_validate_input()helper, validatedweather()andcommit()functions - Path validation:
validate_path()andsafe_mkdir()to prevent directory traversal and symlink attacks - Network retry:
curl_with_retry()with exponential backoff (3 attempts, 2s→4s→8s delays) - Offline mode:
--local DIRflag for air-gapped installations using local files
- Refactored install.sh from 470 lines to modular architecture
- Improved error messages with line numbers and color coding
- Enhanced help text with usage examples
- Phase 1 hardening complete (shell injection, error handling, backups, checksums)
- Phase 2 hardening complete (code quality, idempotency, dependency checks, logging)
- Phase 3 hardening complete (version tracking, rollback capability)
- Phase 4 hardening complete (input validation, path validation)
- Phase 5 hardening complete (network retry, offline mode)
- Initial release
- APT, Snap, Flatpak package installation
- Configuration file deployment
- i3, polybar, rofi, picom setup
- Catppuccin Mocha theme throughout
- Background wallpaper rotation
- Automatic config backups
- Checksum verification for downloads
- Comprehensive logging