Skip to content

feat(telemetry): recognise Pi and Oh My Pi as AI clients - #2098

Merged
yvgude merged 1 commit into
mainfrom
feat/telemetry-pi-client
Oct 16, 2026
Merged

yvgude merged 1 commit into
mainfrom
feat/telemetry-pi-client

Conversation

@yvgude

@yvgude yvgude commented Oct 16, 2026

Copy link
Copy Markdown
Owner

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 has no built-in MCP client. It connects through extensions that announce themselves as pi-lean-ctx (our bridge, packages/pi-lean-ctx/extensions/mcp-bridge.ts), pi-mcp-adapter / pi-mcp-probe (nicobailon/pi-mcp-adapter), or Pi Coding Agent. identify_client() turned all of them into unknown.
  • Oh My Pi is a Pi fork with its own MCP client, omp-coding-agent (can1357/oh-my-pi packages/coding-agent/src/mcp/client.ts).

Changes

  • identify_client() recognises pi and oh-my-pi by the Pi name, not the letters: pipeline-*, api-*, spinnaker and compose-* stay unknown (covered by a test).
  • ClientFamily gains Pi → "pi" and OhMyPi → "oh_my_pi" on the wire.
  • MCP capabilities offered to these hosts are unchanged (same class as any unknown editor; asserted).
  • Telemetry data dictionary and CHANGELOG updated. Only the existing client_family field 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:

  • Backend: root/lean-ctx private/gateway-canonical 0625364cb3 (ingest enum, telemetry_daily_usage CHECK v4, Ops filter, plus a test that pins the three lists to each other); deployed to production before this ships.
  • Ops UI: leanctx-intelligence labels for pi / 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; full cargo test --all-features result below. Pushed with SKIP_PREFLIGHT=1 because the gates ran on pounce; GitHub CI is the authoritative gate.

🤖 Generated with Claude Code

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>
@yvgude
yvgude merged commit f17157b into main Oct 16, 2026
34 checks passed
@yvgude
yvgude deleted the feat/telemetry-pi-client branch October 16, 2026 20:46
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant