diff --git a/docs/telemetry-contract.md b/docs/telemetry-contract.md index ff285d8..4220c87 100644 --- a/docs/telemetry-contract.md +++ b/docs/telemetry-contract.md @@ -30,6 +30,14 @@ older than 14 days nightly. `host` is only the stream's `scheme://host` — **never** a full signed URL or an addon token (redacted client-side in `TelemetryService.redactUrl` before write). +**Rows from builds up to 1.3.0+38 can be stored twice.** Sending the app to the +background started two flushes at once (`onHide` and `onPause`), and both posted +the pending rows. Measured 2026-08-30 to 09-13: 17 of 438 sessions have two +`session_summary` rows, on six devices, each pair created within 0.23 s, and every +other kind is affected the same way. Count distinct `device` + `ts` + `event` (for +a summary, `device` + `meta.sessionId`), not rows. Builds after 1.3.0+38 run one +flush at a time. + ### `source_pick` — the row that answers "why did it play that one" Added 2026-09-09, because a real complaint could not be answered without it.