You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
install.sh now re-execs into a newer bash instead of dying with declare: -A: invalid option on macOS. Apple's stock /bin/bash is 3.2 (frozen there since the GPLv2→GPLv3
switch) and install.sh's own #!/bin/bash shebang is resolved by the kernel from that
hardcoded path, not from $PATH — so a newer Homebrew bash already on a user's PATH was
never picked up just by running the script (which is what bootstrap.sh's exec "$INSTALL"
does). The registry-read cache needs declare -A (bash ≥ 4). The script now detects bash < 4,
hops to a findable newer bash (Homebrew's common install locations, or PATH), and exits with brew install bash guidance if none exists.
Added
install.sh claude --skills a,b,c now treats that list as the full desired skill set: a
name present in a prior --skills install but missing from this one is uninstalled, instead
of being silently left on disk forever. write_manifest()'s merge only adds/updates keys, so
without this a shrunk --skills list had no way to actually drop anything. The new prune_skills_not_in() shells out to uninstall.sh --skill — the existing single writer of
skill removal — rather than duplicating that logic, then deletes the pruned key from manifest.json so the merge doesn't resurrect it.