Luigit
repositories / smith

smith

There are many coding harnesses - but this one is fast

owned by admin

.system/research/SMH-RESEARCH-FNY87IGJ-pi-0-75-5-to-0-85-1-delta/index.md

Raw
Rendered preview

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

---
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: <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>