Skip to content

chore(agents): pi packages → @earendil-works 0.85.1 (refresh of #4702) - #4804

Open
espaciofuturoio wants to merge 8 commits into
electric-sql:mainfrom
espaciofuturoio:fix/pi-earendil-0.85
Open

espaciofuturoio wants to merge 8 commits into
electric-sql:mainfrom
espaciofuturoio:fix/pi-earendil-0.85

Conversation

@espaciofuturoio

Copy link
Copy Markdown

Refresh of #4702 (@KyleAMathews) rebased onto current main, with the pi packages bumped from ^0.80.5 to ^0.85.1. Kyle's three commits are cherry-picked unchanged (one trivial package.json conflict); this PR adds one commit + a changeset on top. Happy to close this in favour of #4702 if you'd rather take the two commits there.

What changed since 0.80.5 that matters here

  • getModel (compat) is now typed on the generated catalog's providers (BuiltinProvider, a subset of KnownProvider): resolvePiModel casts through Parameters<typeof getModel>[0] and keeps the unknown-model throw.
  • Agent streamFn is a required stream function since 0.84 (0.84.1 kept the option name); pi-adapter.ts always passes one, so nothing to do.
  • Catalogs regenerated from models.dev — Sonnet 5 / Fable 5 / GPT-5.6 / Kimi K3 on the gateway providers — which is the reason downstream apps want this.

Full changelog read: packages/ai/CHANGELOG.md and packages/agent/CHANGELOG.md in earendil-works/pi, 0.70.0 → 0.85.1; nothing else between 0.80.5 and 0.85.1 touches the runtime's surface (auth/OAuth rewrite, Models API, TypeBox 1.3.7, Cloudflare bindings).

Verification

  • typecheck green for agents-runtime, agents, agents-server, agents-server-conformance-tests (after agents-runtime build).
  • agents-runtime: pi-adapter (35), model-runner (10), compaction-trigger (2), context-factory (6), process-wake (54) — 107/107.
  • agents-server: wake-registry-sync.test.ts green. wake-registry.test.ts has 7 failures that reproduce identically on pristine main on my machine (DurableStreamError: JSON methods are only valid for JSON-mode streams, plus the pull-wake e2es never reaching the handler) — environmental here, so please rely on CI for those.
  • End to end: agents-server Docker image built from this branch + an entity server on @earendil-works/pi-ai@0.85.1 through Vercel AI Gateway (Sonnet 5 orchestrator, Haiku 4.5 workers, tool calls via anthropic-messages): 2-worker swarm, same output as on 0.70 (2 wiki entries, 1 cross-reference), 86 s vs 80 s, $0.102 vs $0.110 by the runtime's steps token counts.

espaciofuturoio and others added 8 commits September 13, 2026 10:12
…, not only `old_value`

Electric's `replica: full` delete message carries the deleted row in `value`
(`old_value` is only set on updates). WakeRegistry read `old_value.id`, got NaN,
and reset the whole in-memory registration cache on every delete. Because
manifest sync unregisters+registers per child, a parent that spawned N children
with `runFinished` wakes kept only the registration inserted after the last
delete — only its last child ever woke it — and the shape log replayed the same
deletes on every restart. Measured on two 5-child swarms against
electricsql/electric 1.7.10 + agents-server 0.6.4.

The existing sync test modelled deletes without a row, which cannot tell
'removed one' from 'reset everything'; the new test deletes one of two
registrations with the row in `value` and asserts the other still evaluates.
…c-sql#4702

getModel is typed on the generated catalog's providers (BuiltinProvider) in 0.85; resolvePiModel
casts through Parameters<typeof getModel>[0] and keeps the unknown-model throw.
espaciofuturoio added a commit to espaciofuturoio/electric that referenced this pull request Sep 13, 2026
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.

2 participants