# BUG_REPORT: fix-install-update-flow ## Findings ### Bug 1 (LOW): install.sh `set -e` with `|| true` on loop commands The `set -e` flag causes the script to exit on any command failure. The `|| true` on the self-improvement loop commands (lines 87-89) correctly prevents `set -e` from triggering. However, the `|| echo "WARNING: ..."` on the version check (line 99) also prevents `set -e` from triggering, which is the intended behavior. **Severity:** LOW (no bug -- verified correct) **Fix:** None needed. ### Bug 2 (LOW): update.sh hook copy overwrites existing hooks In `update.sh`, the hook installation only runs `if [ -f "$HOOK_SRC" ] && [ ! -f "$HOOK_DST" ]`. This means existing hooks are NOT overwritten, which is correct -- the user may have custom hooks. But if the user previously had automaton hooks installed via symlink (from the old `ln -sf` code), those symlinks will persist. The user would need to manually delete them and re-run `install-hooks.sh` to get copies. **Severity:** LOW (migration concern for existing users) **Fix:** None needed for v1. The `install-hooks.sh` script always copies, so users can re-run it to switch from symlinks to copies. ### Bug 3 (INFO): README still shows manual `git clone` before `install.sh` The README now shows `git clone ~/.automaton` followed by `./install.sh `. The user provides the URL twice: once for the manual clone and once for install.sh. This is slightly redundant but necessary because install.sh needs the URL for its own validation (and potentially for future self-update features). The manual clone is needed because install.sh itself is inside the cloned repo. **Severity:** INFO (by design) **Fix:** None needed. ## Summary No correctness bugs found. Two LOW (one verified correct, one migration concern) and one INFO. **Verdict: CLEAN**