v13.6.0

bigcapitalhq/bigcapitalv13.6.0Jun 13, 2026by thedotmack

AI Summary

Adds historical telemetry backfill for claude-mem growth metrics, extending data availability back to before telemetry existed. On first worker start, each install performs a one-time backfill of anonymized daily activity rollups into PostHog.

Key Highlights

  • One-time backfill of anonymized daily activity events
  • Privacy-focused with full consent gate support (DO_NOT_TRACK, telemetry.json opt-out)
  • Runs once per install with duplicate-safe retry logic

New Features

  • Historical activity event backfill
  • Install inferred event carrying first active date
  • Telemetry debug mode with dry-run capability

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