Repository navigation
feat(telemetry): recognise Pi and Oh My Pi as AI clients - #2098
Merged
Merged
Conversation
Pi has no built-in MCP client; it connects through extensions that announce themselves as pi-lean-ctx, pi-mcp-adapter or pi-mcp-probe. Oh My Pi announces itself as omp-coding-agent. Both fell into the anonymous 'other' cohort. The existing client_family field gains 'pi' and 'oh_my_pi'; no client name is sent and capabilities are unchanged. Detection matches the Pi name, not the letters (pipeline-*, api-*, compose-* stay unknown). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pi users were invisible in the anonymous usage statistics: they were counted as
other, the largest client cohort (685 installations in 5 days, more than Claude Code with 604).pi-lean-ctx(our bridge,packages/pi-lean-ctx/extensions/mcp-bridge.ts),pi-mcp-adapter/pi-mcp-probe(nicobailon/pi-mcp-adapter), orPi Coding Agent.identify_client()turned all of them intounknown.omp-coding-agent(can1357/oh-my-pipackages/coding-agent/src/mcp/client.ts).Changes
identify_client()recognisespiandoh-my-piby the Pi name, not the letters:pipeline-*,api-*,spinnakerandcompose-*stayunknown(covered by a test).ClientFamilygainsPi→"pi"andOhMyPi→"oh_my_pi"on the wire.client_familyfield gains two values; no client name is sent and nothing new is collected. The public privacy page lists the field, not its values, so it needs no change.Rollout order
The cloud ingest enum is strict, so the server has to accept the values before any client sends them:
root/lean-ctxprivate/gateway-canonical0625364cb3(ingest enum,telemetry_daily_usageCHECK v4, Ops filter, plus a test that pins the three lists to each other); deployed to production before this ships.leanctx-intelligencelabels forpi/oh_my_pi.Verification
On pounce (CI mirror, Rust 1.99.1,
--all-features): loc-gate, fmt, clippy (prod + tests),check --no-default-features, gen_docs all green; fullcargo test --all-featuresresult below. Pushed withSKIP_PREFLIGHT=1because the gates ran on pounce; GitHub CI is the authoritative gate.🤖 Generated with Claude Code