v13.6.0
lewish/asciiflowv13.6.0Jun 13, 2026by thedotmack
AI Summary
This release implements a historical telemetry backfill to extend growth metrics back before telemetry existed, ensuring accurate cohort retention and usage history.
Key Highlights
- One-time backfill of anonymized daily activity rollups into PostHog on first worker start.
- Respects all consent gates including `DO_NOT_TRACK` and telemetry opt-outs.
- Runs once per install and includes duplicate-safe retry logic via deterministic UUIDs.
New Features
- Historical activity event generation with observation/session data.
- Install inferred event carrying the first active date.
- Privacy safeguards preventing title/prompt/file content transmission.
Full Release Notes
## 📊 Historical Telemetry Backfill claude-mem's growth metrics now extend back before telemetry existed. On the first worker start after this upgrade, each install performs a **one-time backfill** of anonymized daily activity rollups into PostHog via historical-migration ingestion — so installs-over-time, reconstructed WAU/MAU, and cohort retention reflect real usage history instead of starting at the telemetry ship date. ### What gets sent **Anonymous counts only — never titles, prompts, file contents, or project names:** - One profile-less `historical_activity` event per active day: observation/session/summary/prompt counts, observation-type breakdown, session outcomes, platform buckets, subagent counts, and compression discovery-token totals — all tagged `backfilled: true` - One `install_inferred` event carrying the install's first active date, drawn from trustworthy session timestamps ### Privacy & safety - Honors the exact same consent gates as live telemetry: `DO_NOT_TRACK`, `CLAUDE_MEM_TELEMETRY=0`, and `telemetry.json` opt-out. Opting out before your first post-upgrade worker start prevents the backfill entirely; a later opt-in still backfills. - Runs **once per install**, latched by a completion marker written only after confirmed delivery — failed sends retry on the next worker start, and deterministic event uuids make retries duplicate-safe. - `CLAUDE_MEM_TELEMETRY_DEBUG=1` dry-runs the full payload to stderr without sending anything. - Legacy epoch normalization and corrupt-row guards keep bad timestamps out of the historical record; partial days are never shipped. Full disclosure documented at [docs.claude-mem.ai/telemetry](https://docs.claude-mem.ai/telemetry). **PR**: #2912