Critical Fix
ContextQ score was stuck showing the same value across all sessions.
Root Cause
The statusline read from one global quality-cache.json file, but multiple sessions (and subagents) raced to overwrite it. The last writer won, causing every session to display a stale score from whichever session wrote last.
Fix
Statusline now reads session-specific cache files with a 3-tier priority:
quality-cache-{session_id}.json(exact match, if Claude Code sends session_id)- Most recently modified
quality-cache-*.json(fallback) - Global
quality-cache.json(final fallback)
Each session now shows its own quality score and compaction count.
Also in this release (from v2.4.2)
- Fixed caller dict mutation bug in
_auto_remove_bad_env_vars() - Fixed
_manage_mcpguard logic - Consolidated duplicate write functions (-12 lines)
- Added orphaned temp file cleanup to
ensure-health - Deduped compaction loss map between JS/Python