Skip to content

telemetry: complete rows gathered through $, sent in batches, serving built-in plugins only - #95618

Merged
poteat merged 1 commit into
mainfrom
poteat/telemetry-complete-rows
Sep 20, 2026
Merged

poteat merged 1 commit into
mainfrom
poteat/telemetry-complete-rows

Conversation

@poteat

@poteat poteat commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

The telemetry mod now runs wherever Claude Code's analytics are on, for the plugins built into Claude Code: a hook on its own two events reads who raised the call (next.origin) and refuses a plugin a person installed or an administrator listed, with a reason. Its rows carry what the CLI's own rows carry, gathered through $ once a session (device and account ids from the CLI's config, client type, entrypoint, the env block); what only the engine knows (its version, build time, runtime) is not on $ and stays empty. Rows are queued and sent in batches (a few seconds after the first, at a hundred, and at session end) with one retry; log and mark resolve once queued. It honours every analytics opt-out the CLI honours, re-read before each batch, and sends nothing when they cannot be read. On an engine that hands out no first-party credential it sends nothing, as before. Tests beside the mod.

@bhosmer-ant bhosmer-ant left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stamped. One question: isInternal, which decides whether the user's email goes into the row, reads $.env.get('USER_TYPE'). If the engine answers that from process.env rather than the build-time define, an external user who sets USER_TYPE=ant would have their email collected. Worth confirming it resolves from the define. Not a blocker.

@poteat
poteat merged commit 4564326 into main Sep 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants