Releases: netresearch/claude-coach-plugin
v2.4.3
Full Changelog: v2.4.2...v2.4.3
Full Changelog: v2.4.2...v2.4.3
v2.4.2
Full Changelog: v2.4.1...v2.4.2
v2.4.1
v2.4.0
Async Hooks with Stable Paths
This release combines async execution with stable hook paths for optimal performance and reliability.
What's New
- Async hook execution - Hooks return immediately (~1ms), scripts run in background
- Integrated
--asyncflag - coach-run launcher handles async execution - Removed async_wrapper.sh - Functionality consolidated into coach-run
How It Works
- Initial install uses standard paths (works immediately)
- On first hook execution, auto-upgrades to:
~/.claude-coach/bin/coach-run --async detect_signals.py ... - Async mode:
- Captures stdin if provided
- Spawns Python script in background with
nohup - Returns immediately with exit 0
- Plugin updates don't break hooks (stable paths from v2.3.0)
Performance
| Before | After |
|---|---|
| 100-500ms per hook | ~1ms per hook |
| Blocking | Non-blocking |
Full Changelog
- feat: integrate async mode into stable launcher
- Merged v2.3.0 stable hook paths
v2.3.0
Stable Hook Paths
This release fixes the issue where plugin hooks would break after version updates.
What's New
- Auto-healing hook paths - Scripts automatically install a stable launcher on first execution
- No user action required - Plugin updates now work seamlessly
- Backward compatible - Existing installations auto-upgrade on first hook run
How It Works
- On first hook execution, scripts auto-install
~/.claude-coach/bin/coach-run - Settings.json hooks are automatically upgraded to use the stable path
- The launcher resolves the current plugin version at runtime
- Future updates don't break hooks
Manual Recovery
If hooks break after an update, run /coach init to repair them.
Related
- Workaround for: anthropics/claude-code#18517
v2.2.4
Fixes
- Fix UNIQUE constraint error on duplicate fingerprints (included in v2.2.3 but plugin.json version wasn't updated)
- Properly bump version in plugin.json so marketplace picks up the update
Changelog since v2.2.1
v2.2.3
- Fix: Prevent UNIQUE constraint error on duplicate fingerprints using ON CONFLICT clause
- Fix: Deduplicate candidates by fingerprint before processing
v2.2.2
- Docs: Clarify Coach as Feature Plugin
- Refactor: Remove LLM API calls, use native Claude Code analysis
To update: The Claude Code marketplace should automatically pick up this version. If you still see errors, restart Claude Code.
v2.2.3
Bug Fixes
-
fix: prevent UNIQUE constraint error on duplicate fingerprints (25255ce)
Fixed
sqlite3.IntegrityError: UNIQUE constraint failed: candidates.fingerprintthat occurred during the stop hook when processing candidates with duplicate fingerprints.Root cause: The
_update_ledger()method processed candidates in a loop with SELECT-then-INSERT, but only committed once at the end. If two candidates had the same fingerprint, both would attempt INSERT before the first was committed.Solution:
- Added in-memory deduplication before processing
- Implemented SQLite UPSERT (
INSERT ... ON CONFLICT DO UPDATE) for atomic duplicate handling - Applied consistent fix to both
aggregate.pyandledger.py