Skip to content

feat(pi)!: support Pi 1.5 - #382

Merged
eersnington merged 1 commit into
pi-rivetkit-3-stablefrom
pi-durable-1.5
Nov 5, 2026
Merged

eersnington merged 1 commit into
pi-rivetkit-3-stablefrom
pi-durable-1.5

Conversation

@eersnington

@eersnington eersnington commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Moves @rivet-dev/pi from Pi 1.4 to Pi 1.5. Pi 1.5 changes its API in several places, so this release drops Pi 1.4 (~1.4.0 → ~1.5.0), while bringing faster storage, state-based watches, and clearer failures.

 conversation
-  watchEvents(id), unwatchEvents(id)   // Pi removed watchEvents()
+  watch(id), unwatch(id)               // Pi's conversation view
 events
-  "pi.events"
+  "pi.view"                            // starts with the newest 50 entries
 onReport
-  (error, { type: "session_failed" })
+  ({ kind: "storage_failed", error })
 tool schemas
-  Type.Object(...)                     // pi-ai no longer exports Type
+  obj(...)                             // @earendil-works/pi-schema
  • Clients page older entries with conversation.entries.
  • A crash can lose about the last second of streamed output.
  • A model call cut off by a crash counts as a failed attempt, and retries after the backoff.
  • Reattaching deletes saved events watches, so they no longer fail on every wake.
  • Storage or a document from a newer Pi Durable gives clients pi_schema_too_new.

Merge danger

You can't roll back below this release. Once an agent runs on Pi 1.5, it writes a pi.live document that Pi 1.4 can't read. On 0.5.5, submit, prompt, and watch calls then fail with internal_error. watchEvents, unwatchEvents, pi.events, and PiEventsFrame are gone.


This is part 2 of 2 in a stack:

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

📟 Pip-Boy · 31c7831

📦 Packages · fresh npm install resolve, no lockfile · this PR vs base

package (linux-x64-gnu) @latest base this PR Δ vs base packages
🔴 @rivet-dev/pi 372.5 MB 372.5 MB 381.6 MB +9.1 MB (+2.4%) 220 (+2 (+0.9%))
🔴 `@rivet-dev/pi` details
platform base this PR Δ
linux-x64-gnu 372.5 MB 381.6 MB +9.1 MB (+2.4%)
linux-arm64-gnu 353.1 MB 362.2 MB +9.1 MB (+2.6%)
darwin-arm64 249.7 MB 258.8 MB +9.1 MB (+3.6%)
darwin-x64 259.7 MB 268.8 MB +9.1 MB (+3.5%)
win32-x64 175.9 MB 185.0 MB +9.1 MB (+5.2%)

Added dependencies

package size via
@earendil-works/pi-coding-agent@1.5.0 22.9 MB @rivet-dev/pi › @earendil-works/pi-coding-agent
@earendil-works/chord@1.5.0 8.4 MB @rivet-dev/pi › @earendil-works/chord
@earendil-works/pi-durable@1.5.0 4.2 MB @rivet-dev/pi › @earendil-works/pi-durable
@earendil-works/pi-ai@1.5.0 4.2 MB @rivet-dev/pi › @earendil-works/pi-ai
@earendil-works/pi-tui@1.5.0 2.3 MB @rivet-dev/pi › @earendil-works/pi-coding-agent › @earendil-works/pi-tui
undici@8.12.3 2.1 MB @rivet-dev/pi › @earendil-works/pi-coding-agent › undici
@earendil-works/pi-schema@1.5.0 602.9 KB @rivet-dev/pi › @earendil-works/chord › @earendil-works/pi-schema
minimatch@11.0.3 418.8 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › minimatch
@earendil-works/pi-mcp@1.5.0 386.9 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › @earendil-works/pi-mcp
@isaacs/nonrecursive-glob-match@1.0.3 371.2 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › minimatch › @isaacs/nonrecursive-glob-match

Removed dependencies

package size via
@earendil-works/pi-coding-agent@1.4.0 22.3 MB @rivet-dev/pi › @earendil-works/pi-coding-agent
@earendil-works/pi-ai@1.4.0 4.1 MB @rivet-dev/pi › @earendil-works/pi-ai
@earendil-works/pi-durable@1.4.0 3.4 MB @rivet-dev/pi › @earendil-works/pi-durable
@earendil-works/pi-tui@1.4.0 2.3 MB @rivet-dev/pi › @earendil-works/pi-coding-agent › @earendil-works/pi-tui
@earendil-works/chord@1.4.0 1.9 MB @rivet-dev/pi › @earendil-works/chord
undici@8.10.2 1.8 MB @rivet-dev/pi › @earendil-works/pi-coding-agent › undici
minimatch@10.2.6 523.6 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › minimatch
@earendil-works/pi-mcp@1.4.0 384.9 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › @earendil-works/pi-mcp
@earendil-works/pi-codemode@1.4.0 366.8 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › @earendil-works/pi-codemode
@earendil-works/pi-agent-core@1.4.0 265.1 KB @rivet-dev/pi › @earendil-works/pi-coding-agent › @earendil-works/pi-agent-core

Largest dependencies

package size via
@rivet-dev/services-linux-x64-gnu@0.2.5 134.2 MB @rivet-dev/pi › rivetkit › @rivet-dev/services › @rivet-dev/services-linux-x64-gnu
@rivetkit/engine-cli-linux-x64-musl@3.0.3 58.1 MB @rivet-dev/pi › rivetkit › @rivetkit/engine-cli › @rivetkit/engine-cli-linux-x64-musl
@rivetkit/rivetkit-napi-linux-x64-gnu@3.0.3 26.5 MB @rivet-dev/pi › rivetkit › @rivetkit/rivetkit-napi › @rivetkit/rivetkit-napi-linux-x64-gnu
@earendil-works/pi-coding-agent@1.5.0 22.9 MB @rivet-dev/pi › @earendil-works/pi-coding-agent
openai@7.19.0 17.6 MB @rivet-dev/pi › @earendil-works/pi-ai › openai

Entrypoints (own code, minified; third-party imports excluded)

entrypoint base this PR Δ imports exports
🔴 . 32.0 KB 32.3 KB +270 B (+0.8%) — −PiEventsFrame
🔴 ./durable 32.0 KB 32.3 KB +270 B (+0.8%) — −PiEventsFrame
All 10 packages · linux-x64-gnu
package (linux-x64-gnu) @latest base this PR Δ vs base packages
🔴 @rivet-dev/pi 372.5 MB 372.5 MB 381.6 MB +9.1 MB (+2.4%) 220 (+2 (+0.9%))
@rivet-dev/sandbox-adapter 113.8 KB 113.8 KB 113.8 KB 0 1 (0)
@sandbox-agent/cli-shared 27.2 KB 27.2 KB 27.2 KB 0 1 (0)
@sandbox-agent/persist-indexeddb 12.4 KB 12.4 KB 12.4 KB 0 1 (0)
@sandbox-agent/persist-postgres 12.3 KB 12.3 KB 12.3 KB 0 1 (0)
@sandbox-agent/persist-rivet 12.2 KB 12.2 KB 12.2 KB 0 1 (0)
@sandbox-agent/persist-sqlite 12.3 KB 12.3 KB 12.3 KB 0 1 (0)
@sandbox-agent/react 41.6 MB 41.9 MB 41.9 MB 0 15 (0)
acp-http-client 6.7 MB 6.7 MB 6.7 MB 0 3 (0)
sandbox-agent 31.0 MB 31.0 MB 31.0 MB 0 8 (0)

🧹 Rust dependencies

Skipped: this PR doesn't change any Rust code or dependencies.

🦀 Binaries

Skipped: this PR doesn't change any Rust code.

⏱ Timing

job wall time slowest step
changes 18s checkout · 15s
zizmor 16s checkout · 9s
footprint 4m17s Run pnpm --dir sandbox-agent install --frozen-lockfile · 1m40s
⏭ self-test — skipped
⏭ hygiene — skipped
⏭ native · ${{ matrix.platform }} — skipped
report 32s setup-node · 12s
🔭 Full CI trace for this commit

One OpenTelemetry trace of CI and Pip-Boy for 31c7831: every job and step, with the sizes above attached. Run after CI finishes.

pnpm install --frozen-lockfile --filter 'pipboy...'
pnpm --filter pipboy pipboy trace --sha 31c7831b883387fb3d962ce2af58488dcedd5aaf

Add --otlp <url> to send it to any OTLP/HTTP collector.

Agent instruction: From a rivet-dev/agents checkout, run the commands above, then read the trace file the last command prints. List the slowest jobs and steps and explain where CI time went.

@eersnington
eersnington merged commit acd7e39 into pi-rivetkit-3-stable Nov 5, 2026
11 of 12 checks passed
@eersnington
eersnington deleted the pi-durable-1.5 branch November 5, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant