What's new
Auto-init everywhere. First cozempic run on a machine writes hooks to ~/.claude/settings.json — every Claude Code session is protected automatically. Interactive prompt on TTY, silent on CI. Opt out via cozempic init --uninstall-global or COZEMPIC_NO_GLOBAL_INIT=1.
Race-free in-place upgrades. SessionStart hook now starts the daemon first, upgrades in background, signals --reload-self if the version changed. No more import-race crash after a PyPI update.
Hook schema versioning (v4). Hooks auto-refresh when cozempic detects a stale installation. Bug fixes in the hook command propagate to existing projects without manual re-init.
30+ bug fixes from 4 deep-QA rounds:
- Atomic settings.json write (crash-safe — no more config wipe on Ctrl-C)
flockmissing on macOS — background auto-upgrade was dead code; nowcommand -vguarded- Unquoted
$TRANSCRIPTword-split on paths with spaces - PID-reuse defense (ps argv verification + CAS unlinks)
- User commands preserved during uninstall/refresh (per-command surgical filter)
- NFS-safe locking (lockf instead of flock)
- PYTHONIOENCODING=utf-8 for LANG=C/POSIX systems
- File permissions preserved after atomic write
- Graceful JSON parse on malformed settings
cozempic doctorgains daemon-running check- And more — see commit log for full detail
Multi-channel packaging:
- Homebrew:
brew install Ruya-AI/cozempic/cozempic - Nix flake:
nix profile install github:Ruya-AI/cozempic?dir=packaging/nix - AUR + MacPorts: PKGBUILD/Portfile staged in
packaging/
360 tests (up from 332 at v1.7.1).