# Changelog All notable changes to HOPS will be documented here. Format based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). --- ## [Unreleased] --- ## [1.0.1] - 2026-06-10 Stabilization pass: bug fixes, security hardening, and codebase consolidation on the Path A install pipeline. ### Fixed - Infinite recursion in get_timezone_mount() and get_gpu_devices() on Linux (B1) - ((x++)) abort under set -e across hops and install (B5) - Glob stored as string breaking multi-user directory detection (B3) - Missing hops_service_definitions.sh reference in firewall setup (B4) - Linux-only guard missing from hops entry point (B6) - eval echo "~$SUDO_USER" replaced with getent passwd in uninstall (B3/S5) ### Changed - Duplicate log, error_exit, warning, success, info removed from hops, uninstall, and install; single canonical copies in lib/common.sh (A5, Q1) - Duplicate validate_password, generate_secure_password, create_docker_networks, validate_timezone removed from install; lib/security.sh, lib/docker.sh, lib/validation.sh are now the sole definitions (A5) - lib/docker.sh, lib/validation.sh, lib/security.sh use LIB_DIR instead of SCRIPT_DIR so sourcing them inside a function does not clobber the caller - validate_timezone updated to warn-and-default instead of error_exit - validate_password updated to handle empty input (return 3) - uninstall sources lib/common.sh directly, allowing standalone execution ### Removed - Path B install pipeline (setup, privileged-setup, user-operations, services-improved, lib/privileges.sh) -- dead code, never wired in (A1, A3) --- ## [1.0.0] - TBD Full rewrite establishing the Path A install pipeline.