Group of 2 Under the hood
Claude Code's telemetry uploader now follows a server-provided policy for when to hold or flush events, with a kill switch
What
The client-side logic that decides when to hold versus upload telemetry events was substantially reworked:
- A new mechanism ingests a server-provided 'flush policy' (limits on max events, max age, max bytes, whether to flush when sampling ends, and which event types must always flush), logging when the policy is adopted, changed, or cleared, and warning when the policy is unreadable.
- Hold decisions are now split into two lanes:
served_policy(driven by the server's policy, which flushes when sampling ends) andno_subscriber_flag. - A new
eventHoldEnabledsetting acts as a kill switch that can turn off event holding entirely. - Ephemeral stream events can now be dropped entirely when there is no subscriber watching them, with a telemetry counter tracking how often this happens.
- Each release/flush now tracks a reason: round-trip, event, or sampling-end.
Why
This lets the server control telemetry upload timing and volume dynamically instead of relying purely on fixed client-side rules, and provides a way to disable event holding if it causes problems, while avoiding wasted work uploading events nobody is watching.