id: SMH-RESEARCH-FNY87IGJ type: research title: "Pi 0.75.5 to 0.85.1 Delta"
Pi 0.75.5 to 0.85.1 Delta
Scope
Baseline: Pi coding-agent 0.75.5, previously inspected at repository revision 3eb0027.
Current release: 0.85.1, published 2026-09-05 and installed locally.
Checked 2026-09-09.
The npm releases span 36 published versions after the baseline.
This is a release-level architectural delta, not an exhaustive source diff.
Facts
Providers and models
- Static generated model data grew into a runtime model and authentication facade named
ModelRuntime. - Provider catalogs can restore persisted data, refresh remotely, publish partial results, reject stale generations, and operate offline.
- Extensions can register complete providers with authentication, model refresh, filtering, and custom streaming.
- Model metadata now carries richer compatibility and capability information: verified thinking levels, strict tool support, grammar tools, deferred tools, cache behavior, session affinity, sampling parameters, and provider-specific reasoning controls.
- Provider and model coverage expanded substantially, including llama.cpp management and additional subscription, gateway, and direct providers.
- Credential handling gained provider-scoped environments, auth readiness checks, token export, proactive OAuth refresh, and stronger concurrent update behavior.
Agent loop and tools
- Provider retries, timeouts, cancellation, terminal stop reasons, and malformed stream handling became explicit and more consistent.
- Dynamic tool loading can preserve prompt-cache prefixes on supported providers.
- Tools can request strict JSON Schema or grammar-constrained sampling when a model advertises support.
- Tool, compaction, and branch-summary usage is persisted and included in totals.
- Built-in tool selection is configurable; Windows gained an optional PowerShell tool.
- Tool and session event surfaces expanded, including settled runs, failed compaction, UI prompt waits, correlated RPC bash output, and terminating blocked tool calls.
Sessions and replay
- The coding-agent's user-facing session format remains append-only JSONL with a version 3 parent-linked tree.
- Session loading, forking, compaction boundaries, torn-tail handling, atomic publication, large-file reads, concurrent sharing, and in-memory restoration received substantial fixes.
- Lower-level agent-core introduced a separate version 4 lane-based session architecture with durable operations, global facts, shared sequence numbers, storage abstractions, and repository interfaces.
- Experimental remote-session work added a transport-neutral client and CBOR protocol.
- These lower-level additions do not replace the coding-agent's documented JSONL session files.
Extensions and security
- Project trust now gates project-local settings, resources, instructions, and packages.
- Extension APIs gained trust events, provider hooks, Markdown transformers, entry renderers, autocomplete triggers, more lifecycle events, and richer runtime context.
- Pi packages and extensions still execute with full system access; isolation remains delegated to containers or custom extensions.
- Resource installation and update paths gained path validation, private temporary directories, exact-version updates, checksums, staged activation, and deterministic source archives.
TUI and operating modes
- Pi gained an experimental fullscreen TUI with an independently scrollable transcript, sticky editor, search, selection, scrollbars, and runtime mode switching.
- Markdown rendering gained terminal Mermaid and LaTeX support.
- Terminal behavior gained capability overrides and many fixes for tmux, Windows, WSL, Kitty graphics, hyperlinks, Unicode width, focus, and keyboard negotiation.
- RPC gained session tree reads, queue clearing, streaming bash events, usage fixes, and stronger cancellation and framing behavior.
- The supported product modes remain interactive, print, JSON, RPC, and SDK embedding.
Public API changes
- Pi AI's old global API moved to a compatibility entry point.
- SDK model configuration moved from separate auth storage and model registry inputs to asynchronous
ModelRuntime. - JSON and RPC message updates changed from cumulative partial messages to deltas.
- TypeBox was upgraded with deprecated APIs removed.
- Provider refresh contracts became cancellation-aware and generation-checked.
- Agent-core replaced legacy repository APIs with newer session storage and repository contracts.
- The packaged CLI now uses a bundled entry point; supported SDK and stdio RPC entry points remain.
Conclusions
- The old provider snapshot is stale as a design reference because current Pi treats catalogs, credentials, compatibility, and capability discovery as coordinated runtime state.
- Pi remains useful evidence for provider normalization, but current behavior should be inspected before adopting field names or refresh semantics.
- Provider churn strengthens the case for a narrow provider-independent stream boundary.
- Pi's generation-checked catalog publication, cancellation, explicit capability flags, and event-sequence fixes are strong candidates for Smith prototypes.
- Pi's dual session direction is evidence for separating durable storage from runtime views, not evidence for copying either JSONL or lane APIs.
- Pi's remote CBOR protocol supports CBOR as an integration format, while its user session persistence still demonstrates the operational value of append-only records and repairable tails.
- Pi's project trust model addresses untrusted local inputs. Its unrestricted extension model differs fundamentally from Smith's sandboxed Lua boundary.
- Fullscreen rendering, terminal overrides, compaction timing, and RPC delta assembly identify failure cases Smith should test early rather than features Smith must copy.
Unresolved Questions
- What is the exact field-level change in generated model data between revisions
3eb0027andd981de1? - Which
ModelRuntimecatalog and credential contracts are stable public API rather than transitional compatibility layers? - Will agent-core's version 4 lane sessions replace coding-agent JSONL sessions or remain a separate harness architecture?
- Which constrained-sampling capabilities are provider-verified versus inferred from model families?
- Which fullscreen TUI mechanisms transfer to a Rust renderer without inheriting Pi's component architecture?
Sources
- Pi 0.75.5 package at the previously inspected revision: https://raw.githubusercontent.com/earendil-works/pi-mono/3eb0027/packages/coding-agent/package.json
- Pi 0.75.5 npm release metadata, release git head
83a227aed3f6f7d2f8a63bdd66df0bdb80cd21e2: https://www.npmjs.com/package/@earendil-works/pi-coding-agent/v/0.75.5 - Pi 0.85.1 npm release metadata, release git head
d981de1229ef899957bbe968bc8dcda02a21f477: https://www.npmjs.com/package/@earendil-works/pi-coding-agent/v/0.85.1 - Pi coding-agent changelog through 0.85.1: https://github.com/earendil-works/pi/blob/d981de1229ef899957bbe968bc8dcda02a21f477/packages/coding-agent/CHANGELOG.md
- Pi coding-agent README at 0.85.1: https://github.com/earendil-works/pi/blob/d981de1229ef899957bbe968bc8dcda02a21f477/packages/coding-agent/README.md
- Current model configuration: https://github.com/earendil-works/pi/blob/d981de1229ef899957bbe968bc8dcda02a21f477/packages/coding-agent/docs/models.md
- Current SDK documentation: https://github.com/earendil-works/pi/blob/d981de1229ef899957bbe968bc8dcda02a21f477/packages/coding-agent/docs/sdk.md
- Current session format: https://github.com/earendil-works/pi/blob/d981de1229ef899957bbe968bc8dcda02a21f477/packages/coding-agent/docs/session-format.md