--- 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 `3eb0027` and `d981de1`? - Which `ModelRuntime` catalog 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: - Pi 0.75.5 npm release metadata, release git head `83a227aed3f6f7d2f8a63bdd66df0bdb80cd21e2`: - Pi 0.85.1 npm release metadata, release git head `d981de1229ef899957bbe968bc8dcda02a21f477`: - Pi coding-agent changelog through 0.85.1: - Pi coding-agent README at 0.85.1: - Current model configuration: - Current SDK documentation: - Current session format: