github badlogic/pi-mono v0.67.1

21 hours ago

Telemetry

Interactive mode now sends a lightweight anonymous install/update telemetry ping to https://pi.dev/install?version=x.y.z after it writes lastChangelogVersion in settings.json.

Why this exists:

  • Pi needs a reliable per-version usage signal to understand whether releases are being adopted and to help justify funding continued development.
  • npm download counts are not a reliable proxy for actual Pi usage.

How it works:

  • It only runs in interactive mode.
  • It does not run in RPC mode, print mode, JSON mode, or SDK mode.
  • On a fresh interactive install, Pi writes lastChangelogVersion, then sends the ping.
  • On later interactive startups, if the local changelog contains entries newer than the previously stored lastChangelogVersion, Pi writes the new lastChangelogVersion, then sends the ping.
  • The request is fire-and-forget. Startup does not wait for it, and any errors are ignored.

What data is collected:

  • Only the Pi version in the request path, for example https://pi.dev/install?version=0.67.1.
  • The server stores only aggregate per-version counters such as { "0.67.1": 3 }.
  • It does not store IP addresses, client identifiers, prompts, paths, models, auth state, or any other per-user data. It literally only increments a counter for that version.

How to disable it:

  • /settings → disable Install telemetry
  • settings.json → set enableInstallTelemetry to false
  • PI_OFFLINE=1
  • PI_TELEMETRY=0

New Features

  • Full openRouterRouting support in models.json, including fallbacks, parameter requirements, data collection, ZDR, ignore lists, quantizations, provider sorting, max price, and preferred throughput and latency constraints. See docs/models.md.
  • PI_CODING_AGENT=true environment variable set at startup so subprocesses can detect they are running inside the coding agent.

Added

  • Added full openRouterRouting field support in models.json, including fallbacks, parameter requirements, data collection, ZDR, ignore lists, quantizations, provider sorting, max price, and preferred throughput and latency constraints (#2904 by @zmberber)
  • Set PI_CODING_AGENT=true environment variable at startup so sub-processes can detect they are running inside the coding agent (#2868)

Fixed

  • Fixed interactive changelog rendering for the telemetry notes by moving the section under a ### Telemetry heading, so startup shows the full release notes instead of only the version header.
  • Updated antigravity-image-gen.ts example extension to use User-Agent version 1.21.9 (#2901 by @aadishv)
  • Bumped default Antigravity User-Agent version to 1.21.9 (#2901 by @aadishv)
  • Fixed Gemma 4 thinking level mapping to route between MINIMAL and HIGH, and map Pi reasoning levels to the model's supported thinking levels (#2903 by @aadishv)
  • Fixed Gemini 2.5 Flash Lite minimal thinking budget to use the model's supported 512-token minimum instead of the regular Flash 128-token minimum, avoiding invalid thinking budget errors (#2861 by @JasonOA888)
  • Fixed OpenAI Codex Responses requests to forward configured serviceTier values, restoring service-tier selection for Codex sessions (#2996 by @markusylisiurunen)
  • Fixed Container.render() stack overflow on long sessions by replacing Array.push(...spread) with a loop-based push, preventing RangeError: Maximum call stack size exceeded when child output exceeds the V8 call stack argument limit (#2651)
  • Fixed editor sticky-column tracking around paste markers so vertical cursor navigation restores the column from before the cursor entered a paste marker instead of jumping inside or past pasted content (#3092 by @Perlence)
  • Fixed queued messages typed during /tree branch summarization to flush automatically after navigation completes, so they no longer remain stuck in the steering queue (#3091 by @Perlence)

Don't miss a new pi-mono release

NewReleases is sending notifications on new releases.