📊 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_activityevent per active day: observation/session/summary/prompt counts, observation-type breakdown, session outcomes, platform buckets, subagent counts, and compression discovery-token totals — all taggedbackfilled: true - One
install_inferredevent 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, andtelemetry.jsonopt-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=1dry-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.
PR: #2912