- Remove duplicate log/error_exit/warning/success/info from hops and
uninstall; remove validate_password, generate_secure_password,
create_docker_networks, validate_timezone from install. Single
canonical copies now live in lib/common.sh, lib/security.sh,
lib/validation.sh, and lib/docker.sh (A5, Q1)
- Fix lib/docker.sh, lib/validation.sh, lib/security.sh to use LIB_DIR
instead of SCRIPT_DIR so sourcing them inside a function does not
clobber the caller's SCRIPT_DIR
- Move SCRIPT_VERSION to lib/common.sh as the single source of truth;
remove local declarations from hops, install, and uninstall
- uninstall now sources lib/common.sh directly for standalone safety
- validate_timezone updated to warn-and-default instead of error_exit
- validate_password updated to handle empty input (return 3)
- Update CHANGELOG and TODO to reflect resolved items (B1-B6, A1, A3,
A5, Q1) and bump version to 1.0.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- B1: Replace recursive get_timezone_mount/get_gpu_devices with literal YAML strings
- B3: Expand /home/*/hops glob via compgen -G instead of storing as array literal;
fix eval echo ~$SUDO_USER -> getent passwd in uninstall
- B4: Correct services source path in setup_firewall (hops_service_definitions.sh -> services)
- B5: Replace all ((x++)) with x=$((x + 1)) to avoid set -e abort on zero pre-increment
- B6: Add Linux-only guard at top of hops entry point
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Auto-updating containers without review conflicts with HOPS managing
its own deployments and can silently break working installs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Current definition uses the retired plexguide image. Need to
evaluate and switch to the elfhosted-maintained rebuild before 1.0.0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mark A2, A5, Q1, Q3 as DO FIRST before bug fixes -- consolidating
duplicate functions and the service catalog ensures each bug only
needs to be fixed in one place. Update order of attack accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reset all Path A script versions from 3.x to 1.0.0 following architectural
decision to treat this as a fresh stable baseline after the Path B cleanup.
Added TODO.md with prioritized audit findings and replaced the old CHANGELOG
with a clean stub.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>