v13.5.5

thedotmack/claude-memv13.5.5Jun 10, 2026by thedotmack

AI Summary

This release adds five high-value reliability signals to claude-mem's telemetry system, addressing the gap where failure was invisible while success was instrumented. New signals cover search retrieval quality, compression trust, worker lifecycle, and hook failures, with everything closed-enum/count-only and whitelisted in the scrubber.

Key Highlights

  • Search retrieval quality telemetry (`search_performed`) with result_count, search_strategy, chroma_available, and fallback_reason to detect Chroma degradation to FTS
  • Compression trust signals including fabrication detection, respawn-gated invalid-output events, and abort flow convergence with detailed reasons
  • Worker lifecycle events including worker_stopped, crash detection via clean-shutdown sentinel, and memory health metrics (RSS/heap)
  • Hook failures telemetry (`hook_failed`) over direct CLI transport with threshold-gating and await-before-exit
  • Fixed CI PostHog regression test and added global PostHog mocking to prevent production analytics contamination

New Features

  • Search retrieval quality telemetry (search_performed) with result_count, search_strategy (chroma|fts|filter_only), chroma_available, and fallback_reason (none|chroma_connection|chroma_error|chroma_not_initialized)
  • Compression trust telemetry (session_compressed) with fabrication_detected/fabricated_count for commit-hash fabrication detection
  • Respawn-gated invalid-output events with invalid_output_class (xml|idle|prose|poisoned), consecutive_invalid_outputs, and respawn_triggered
  • Abort flow convergence with outcome:aborted and abort_reason (idle|shutdown|overflow|restart_guard|quota|poisoned|none)
  • Worker lifecycle: new worker_stopped event with uptime_seconds and shutdown_reason (stop|restart|signal)
  • Crash detection via worker_started reporting previous_shutdown (crash|clean|unknown) and previous_uptime_seconds
  • Memory health metrics: process_rss_mb and heap_used_mb on lifecycle events and heartbeat
  • Hook failures: new hook_failed event over direct CLI transport, threshold-gated on fail-loud counter
  • Windows-managed shutdown IPC now forwards restart reason for shutdown_reason fidelity
  • PostHog global mocking in CI via bun test preload to prevent real client construction and fabricated event flushing

Full Release Notes

## Telemetry Reliability Signals (Plan 14)

claude-mem instrumented success well — failure was invisible. This release adds the five highest-value missing reliability signals (#2874). Everything is closed-enum/count-only, whitelisted in the scrubber, and disclosed in both the [public docs](https://docs.claude-mem.ai/telemetry) and `claude-mem telemetry`.

### Search retrieval quality (`search_performed`)
- `result_count`, `search_strategy` (`chroma|fts|filter_only`), `chroma_available`, `fallback_reason` (`none|chroma_connection|chroma_error|chroma_not_initialized`)
- Zero-result rate is now computable, and Chroma's silent degradation to FTS is visible.

### Compression trust (`session_compressed`)
- `fabrication_detected` / `fabricated_count` — commit-hash fabrication by the observer model, on every emit path
- Respawn-gated invalid-output events: `invalid_output_class` (`xml|idle|prose|poisoned`), `consecutive_invalid_outputs`, `respawn_triggered`
- `outcome: aborted` with `abort_reason` (`idle|shutdown|overflow|restart_guard|quota|poisoned|none`), emitted where all abort flows converge

### Worker lifecycle
- New `worker_stopped` event: `uptime_seconds`, `shutdown_reason` (`stop|restart|signal`)
- Crash detection via clean-shutdown sentinel: `worker_started` now reports `previous_shutdown` (`crash|clean|unknown`) and `previous_uptime_seconds`
- Memory health: integer `process_rss_mb` / `heap_used_mb` on lifecycle events and the heartbeat

### Hook failures
- New `hook_failed` event over the direct CLI transport (the worker being unreachable IS the failure being reported), threshold-gated on the fail-loud counter and awaited before process exit so events survive short-lived hook processes

### Fixes
- **CI**: the PostHog `disableGeoip` regression test was order-dependent and failed full-suite runs (CI on main had been red since v13.5.4). `posthog-node` is now mocked globally via a bun test preload — which also guarantees test runs can never construct a real PostHog client and flush fabricated events into production analytics.
- Windows-managed shutdown IPC now forwards the restart reason for `shutdown_reason` fidelity.