durable-agent-runtime: add pi-durable deep dive + crash/replay experiments
- new pi-durable.md: architecture (session/entry/document/task/submission), effect-sandwich semantics, structured concurrency, storage backends, maturity/adoption, taxonomy placement, implications for hermes-vm - empirical tests on @earendil-works/pi-durable 1.3.0 (Node 22.22.2): kill -9 mid-phase (memo vs plain), kill -9 mid-tool (safe vs unsafe), SQLite schema; noted cold-open waitForTask race and the main-vs-1.3.0 version gap (sleepUntil/onWake/restartLimit/sleeping not published) - taxonomy: durable harness library added as a new primitive family - sources + next-steps updated
This commit is contained in:
parent
ee2f9a01c5
commit
686d02755f
5 changed files with 247 additions and 5 deletions
|
|
@ -24,6 +24,21 @@ Full reference list for the research topic. One line per source: what it is, why
|
|||
- [e2b-dev/infra (GitHub)](https://github.com/e2b-dev/infra) — infrastructure powering E2B Cloud: Firecracker-based sandbox VMs for AI agents, template system, snapshot cold starts (sub-30ms). Open source; the substrate Amp orbs run on (per Amp's security reference). Also E2B docs: [e2b.dev](https://e2b.dev/docs).
|
||||
- [Spheron guide: E2B vs Daytona vs Firecracker (2026)](https://www.spheron.network/blog/ai-agent-code-execution-sandbox-e2b-daytona-firecracker/) — sandbox architecture comparison: E2B managed (CPU-only, snapshot cold starts), Daytona, Firecracker. Snapshot-restore + sandbox pooling math for cold-start latency.
|
||||
|
||||
## Durable harness library — pi-durable
|
||||
|
||||
Researched 2026-10-20 against `main` (`48c8f32`) and published `1.3.0`; full write-up in [[durable-agent-runtime/pi-durable|pi-durable]].
|
||||
|
||||
- [packages/durable README](https://github.com/earendil-works/pi/blob/main/packages/durable/README.md) — API tour: concepts, persist/resume, extensions, tools, code mode, settings, environment, compaction, child tasks, storage, errors. Documents some unreleased features (durable sleeps, `onWake`, crash-loop guard) not present in 1.3.0.
|
||||
- [packages/durable docs/spec.md](https://github.com/earendil-works/pi/blob/main/packages/durable/docs/spec.md) — normative spec (~5.6k lines). Key sections: §1 invariants, §5.2 effect sandwich, §5.5 structured concurrency, §8.3 generation recovery, §8.4 tool replay policy, §12 API footguns, §13 non-goals.
|
||||
- [packages/durable CHANGELOG](https://github.com/earendil-works/pi/blob/main/packages/durable/CHANGELOG.md) — 1.0.0 (2026-10-01) through 1.3.0 (2026-10-15); Unreleased has breaking changes (removes `TaskRuntime.sleep()`, SQLite schema v2 with no rollback).
|
||||
- [packages/durable package.json](https://github.com/earendil-works/pi/blob/main/packages/durable/package.json) — v1.3.0, MIT, Node >= 22.19; deps: pi-ai, chord, pi-codemode, pi-telemetry, TypeBox, Photon, diff.
|
||||
- [packages/chord README](https://github.com/earendil-works/pi/blob/main/packages/chord/README.md) — document-state substrate: objects at addresses, observable JSON, delta tracking, hot reload, SQLite adapters.
|
||||
- [Earendil, "Pi Durable" launch post (2026-10-01)](https://earendil.com/posts/pi-durable/) — vendor positioning and architecture tour; claims ~15k LOC excluding tests, "runs anywhere there is a JavaScript runtime", multi-client/multiplayer design; FAQ says a Rust port is possible but not planned.
|
||||
- [npm: @earendil-works/pi-durable](https://www.npmjs.com/package/@earendil-works/pi-durable) — first publish 2026-09-19; 16 versions; 1.3.0 latest as of 2026-10-20; npm API reports 387,665 downloads for the week ending 2026-10-18.
|
||||
- [GitHub: earendil-works/pi](https://github.com/earendil-works/pi) — monorepo metadata at 2026-10-20: 116,619 stars, 14,877 forks, MIT; `packages/durable` has 175 path commits (oldest API result 2026-09-18), 1.0.0 released 2026-10-01.
|
||||
|
||||
Empirical (this research, 2026-10-20): installed 1.3.0 under Node 22.22.2; ran faux-provider chat, `SIGKILL` mid-task with/without `runtime.memo`, `SIGKILL` mid-tool for `replay: "safe"` vs default `unsafe`, and dumped the SQLite schema. Results and caveats (including a cold-open `waitForTask` race) are in [[durable-agent-runtime/pi-durable|pi-durable]].
|
||||
|
||||
## Harness engineering / agent-as-library
|
||||
|
||||
- [gakonst/nanocodex (GitHub)](https://github.com/gakonst/nanocodex) — library-first Rust reimplementation of the Codex harness ("blazing-fast, minimal, library-first"). Typed turns/tool registry/event streams/steering/cancellation/forks over the OpenAI Responses WebSocket API. Agent session lives in your process; no app server or durable control plane. Crates: facade, agent lifecycle, typed OpenAI boundary, tools (shell/Code Mode/MCP), observability (OTel), experimental voice + VM-backed tools. Thin CLI/TUI, Python, Node/WASM, React consumers. Auth shares `~/.codex/auth.json`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue