fix(telemetry): a cached batch keeps the encoding it was written with
The cache stores bytes; the Content-Type was coming from whatever the pipeline
was configured with when the batch finally went out. A React Native app that
cached JSON batches and replayed them as protobuf lost all of them to 4xx — 40
records, which only surfaced because the self-report says dropped.rejected
rather than letting a 4xx look like success.
The batch id now carries the encoding alongside the route and the record count,
so a batch written by an earlier run of the app is sent the way it was written.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>