From 3743f065727e78c84cd1ab3e9bc90e4cf5728280 Mon Sep 17 00:00:00 2001 From: Alex Lavaee Date: Sat, 10 Oct 2026 18:41:12 -0700 Subject: [PATCH] Upgrade the Atomic harness to 0.9.33 Moves the Atomic harness to 0.9.33, which fixes Atomic's managed PostgreSQL cluster being refused with "Managed Postgres cluster identity mismatch" after a macOS reboot changes the data volume's device number (bastani-inc/atomic#3555). Atomic then fell back to its non-durable in-memory workflow backend, so Planner workflow runs on a self-hosted macOS Chopin lost the durable run state that lets an interrupted run be resumed from a later session. Atomic now reattaches the cluster when the data directory inode, path, cluster ID, major version and PostgreSQL system identifier still match, and a genuine mismatch names the fields that differ. 0.9.33 also makes the interactive terminal's program status (OSC 7501) report workflow runs (bastani-inc/atomic#3556). Chopin runs Atomic through its headless SDK, so that change does not reach it. No Chopin code changes: the SDK and workflow type declarations Chopin imports are unchanged between 0.9.32 and 0.9.33. bun.lock moves @bastani/atomic, @bastani/atomic-natives (all eight platform packages) and @bastani/pi-ai to 0.9.33. Atomic's other dependencies, including the @earendil-works packages at 1.1.0, are unchanged. No patch targets these packages; the existing patches still apply. docs/self-hosting.md now says 0.9.33. Assistant-model: Claude Opus 5.5 (fast) Assistant-workflow: inline (worker subagent) Assistant-verification: bun install passed: lockfile moves only the @bastani packages to 0.9.33, patches applied Assistant-verification: bun run types passed: all workspace checks and e2e Assistant-verification: bun test passed: 4587 pass, 4 skip, 0 fail (GIT_CONFIG_GLOBAL=/dev/null) Assistant-verification: bun run ci passed: dprint, oxlint (31 warnings, 0 errors), tokens, design contract, design record, Impeccable (no new findings) Assistant-verification: Atomic contract suite passed: atomic.contract.test.ts 22 pass, 0 fail Co-authored-by: Alex Lavaee --- bun.lock | 24 ++++++++++++------------ docs/self-hosting.md | 2 +- package.json | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/bun.lock b/bun.lock index 0b9a908c6..9f53945e6 100644 --- a/bun.lock +++ b/bun.lock @@ -301,7 +301,7 @@ "@ai-sdk/harness-pi": "1.0.148", "@ai-sdk/mcp": "2.0.72", "@ai-sdk/sandbox-just-bash": "1.0.146", - "@bastani/atomic": "0.9.32", + "@bastani/atomic": "0.9.33", "@earendil-works/pi-coding-agent": "0.85.1", "ai": "7.0.135", "typebox": "1.3.7", @@ -455,27 +455,27 @@ "@base-ui/utils": ["@base-ui/utils@0.3.2", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@floating-ui/utils": "^0.2.12", "reselect": "^5.2.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-oWy1aq/I2GmYjpl4PhEAhzflF8VPGKgZeq0xAWTbfD5KBWyxcN0ZP2+WHSUm/5Z6lVMBDLReLcoXwSYoRc/zNQ=="], - "@bastani/atomic": ["@bastani/atomic@0.9.32", "", { "dependencies": { "@bastani/atomic-natives": "0.9.32", "@bastani/pi-ai": "0.9.32", "@dbos-inc/dbos-sdk": "4.25.14", "@earendil-works/pi-agent-core": "1.1.0", "@earendil-works/pi-client": "1.1.0", "@earendil-works/pi-codemode": "1.1.0", "@earendil-works/pi-protocol": "1.1.0", "@earendil-works/pi-tui": "1.1.0", "@modelcontextprotocol/ext-apps": "^1.7.5", "@modelcontextprotocol/sdk": "1.32.1", "@mozilla/readability": "^0.6.0", "@silvia-odwyer/photon-node": "0.3.4", "@typesafe-ai/sdk": "0.6.0", "brace-expansion": "5.0.12", "chalk": "6.0.0", "cross-spawn": "7.0.6", "diff": "8.0.4", "embedded-postgres": "18.4.0-beta.17", "glob": "13.0.6", "grok-mermaid": "0.2.3", "highlight.js": "10.7.3", "hosted-git-info": "9.0.3", "ignore": "7.0.8", "jiti": "2.7.0", "linkedom": "^0.18.13", "lru-cache": "11.5.3", "markit-ai": "0.5.3", "minimatch": "10.2.6", "open": "^11.0.1", "p-limit": "^7.3.2", "pg": "8.23.0", "proper-lockfile": "4.1.2", "quickjs-wasi": "3.6.2", "semver": "7.8.5", "turndown": "^7.2.0", "typebox": "1.3.27", "undici": "8.10.2", "unpdf": "1.8.1", "yaml": "2.9.0", "zod": "^3.25.0 || ^4.0.0" }, "optionalDependencies": { "@mariozechner/clipboard": "0.3.9" }, "bin": { "atomic": "dist/cli.js" } }, "sha512-NVZeJcTRBnIRoARHnFAeKzSSxXenGzbciJop/loBOfRkTWSetWrPoOq0nBcxJt6r6KVmt6AgX+Ub3mYdGruf2w=="], + "@bastani/atomic": ["@bastani/atomic@0.9.33", "", { "dependencies": { "@bastani/atomic-natives": "0.9.33", "@bastani/pi-ai": "0.9.33", "@dbos-inc/dbos-sdk": "4.25.14", "@earendil-works/pi-agent-core": "1.1.0", "@earendil-works/pi-client": "1.1.0", "@earendil-works/pi-codemode": "1.1.0", "@earendil-works/pi-protocol": "1.1.0", "@earendil-works/pi-tui": "1.1.0", "@modelcontextprotocol/ext-apps": "^1.7.5", "@modelcontextprotocol/sdk": "1.32.1", "@mozilla/readability": "^0.6.0", "@silvia-odwyer/photon-node": "0.3.4", "@typesafe-ai/sdk": "0.6.0", "brace-expansion": "5.0.12", "chalk": "6.0.0", "cross-spawn": "7.0.6", "diff": "8.0.4", "embedded-postgres": "18.4.0-beta.17", "glob": "13.0.6", "grok-mermaid": "0.2.3", "highlight.js": "10.7.3", "hosted-git-info": "9.0.3", "ignore": "7.0.8", "jiti": "2.7.0", "linkedom": "^0.18.13", "lru-cache": "11.5.3", "markit-ai": "0.5.3", "minimatch": "10.2.6", "open": "^11.0.1", "p-limit": "^7.3.2", "pg": "8.23.0", "proper-lockfile": "4.1.2", "quickjs-wasi": "3.6.2", "semver": "7.8.5", "turndown": "^7.2.0", "typebox": "1.3.27", "undici": "8.10.2", "unpdf": "1.8.1", "yaml": "2.9.0", "zod": "^3.25.0 || ^4.0.0" }, "optionalDependencies": { "@mariozechner/clipboard": "0.3.9" }, "bin": { "atomic": "dist/cli.js" } }, "sha512-F62tKhHRfjsf1TXn+13/c7c+1+HxknxwYn0VaBu6B+X/ahC0vU/1o+TdtVck9noeGpIW4BekQqDzj8AhEDhjXg=="], - "@bastani/atomic-natives": ["@bastani/atomic-natives@0.9.32", "", { "optionalDependencies": { "@bastani/atomic-natives-darwin-arm64": "0.9.32", "@bastani/atomic-natives-darwin-x64": "0.9.32", "@bastani/atomic-natives-linux-arm64-gnu": "0.9.32", "@bastani/atomic-natives-linux-arm64-musl": "0.9.32", "@bastani/atomic-natives-linux-x64-gnu": "0.9.32", "@bastani/atomic-natives-linux-x64-musl": "0.9.32", "@bastani/atomic-natives-win32-arm64-msvc": "0.9.32", "@bastani/atomic-natives-win32-x64-msvc": "0.9.32" } }, "sha512-mwbLFCDeW8SPwEeJW0H0ceijcugD7ewRHcUu20nAynjOfNXL+IAT5XwK2kvo0zePh+Ycs+TthVad7EHOV6JbZw=="], + "@bastani/atomic-natives": ["@bastani/atomic-natives@0.9.33", "", { "optionalDependencies": { "@bastani/atomic-natives-darwin-arm64": "0.9.33", "@bastani/atomic-natives-darwin-x64": "0.9.33", "@bastani/atomic-natives-linux-arm64-gnu": "0.9.33", "@bastani/atomic-natives-linux-arm64-musl": "0.9.33", "@bastani/atomic-natives-linux-x64-gnu": "0.9.33", "@bastani/atomic-natives-linux-x64-musl": "0.9.33", "@bastani/atomic-natives-win32-arm64-msvc": "0.9.33", "@bastani/atomic-natives-win32-x64-msvc": "0.9.33" } }, "sha512-LpUSn8htnreJJDDL/UkDPyMKtZkefZ7dQHDvaLGHHPcPFPePQm8ELrcgD/EPN366d5NnFwGF5ahK9FJ9p2KyyQ=="], - "@bastani/atomic-natives-darwin-arm64": ["@bastani/atomic-natives-darwin-arm64@0.9.32", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0+nZSvGYQTiAJO5pGoAoPRB5PjcgB0Afmn+HaQj3jRGAtWgdJkfI8SSYpE2qytHFwMb7eE4XKIYxEsIOtpDJzg=="], + "@bastani/atomic-natives-darwin-arm64": ["@bastani/atomic-natives-darwin-arm64@0.9.33", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ycxbQXNyDXv+e19pNlQh04XsHT4tCs1Eudaky4j1d0UQCFz1PAdCUiHJwi58vLFKAk5WPXaJQ/50xi91bIr7Ww=="], - "@bastani/atomic-natives-darwin-x64": ["@bastani/atomic-natives-darwin-x64@0.9.32", "", { "os": "darwin", "cpu": "x64" }, "sha512-dUfbuDYZ7ampykupe4a7zzt4wKQYt8+z+/1pkZy2lQRb21voIDxlEMzSPcIHcSIh95y3e9pOCBYljFz6r13DNg=="], + "@bastani/atomic-natives-darwin-x64": ["@bastani/atomic-natives-darwin-x64@0.9.33", "", { "os": "darwin", "cpu": "x64" }, "sha512-vxn7KdujEKmLBhwTdpAWbHb0MvSs15d7zsYY1SysyIHxgwH3a8ZOn22rFp1OShsF/zNY+weGkgsGZqGaXuT+sQ=="], - "@bastani/atomic-natives-linux-arm64-gnu": ["@bastani/atomic-natives-linux-arm64-gnu@0.9.32", "", { "os": "linux", "cpu": "arm64" }, "sha512-FWWKqQkJf01ZoJ+e3+27WjDiveE5/DUl8NWs+D2u9ElhqWyZWWWU5Q/1VCQG8ySE8hyYmnCB3llN8KCrCq7UnA=="], + "@bastani/atomic-natives-linux-arm64-gnu": ["@bastani/atomic-natives-linux-arm64-gnu@0.9.33", "", { "os": "linux", "cpu": "arm64" }, "sha512-lhaTP9ninFj8ptpnb/nrICGP5fGCy7wXcPUGG+t8mEgzWwMFPyC45o7b8fUjun9hxFzxZTFdv84/TipNp1HGBQ=="], - "@bastani/atomic-natives-linux-arm64-musl": ["@bastani/atomic-natives-linux-arm64-musl@0.9.32", "", { "os": "linux", "cpu": "arm64" }, "sha512-9bgA80Bh7PleHERf+S4G7fseGzoeaG8PN+C2WCs7RHFnGX/CboY7qkbyst4zS09U/t+0+nGJOIC0KU61jJLnmw=="], + "@bastani/atomic-natives-linux-arm64-musl": ["@bastani/atomic-natives-linux-arm64-musl@0.9.33", "", { "os": "linux", "cpu": "arm64" }, "sha512-It2iR7pn8McDMnXYffKIXEay0gYSHep/HaWYGw7bgkovuDv2q/RrOIJJWRM6saJUWwC5QsspSodzo7DqzdANjA=="], - "@bastani/atomic-natives-linux-x64-gnu": ["@bastani/atomic-natives-linux-x64-gnu@0.9.32", "", { "os": "linux", "cpu": "x64" }, "sha512-6MbMEjPvuaT/vnwr/XwUBQrOhhXFY9uQakoeSeMmr/JqdxoyOReZYjNuIQBse6OBMMGCFxYUSLk8gU+9GThWYg=="], + "@bastani/atomic-natives-linux-x64-gnu": ["@bastani/atomic-natives-linux-x64-gnu@0.9.33", "", { "os": "linux", "cpu": "x64" }, "sha512-Kmt82QVo2fIIoA6BZJjHGB53wnSOd8IpSLDDw9UZ+ghqpOTAx7z1yFP71fJd9aKd8R5xf++vzghXNHJVubrFlg=="], - "@bastani/atomic-natives-linux-x64-musl": ["@bastani/atomic-natives-linux-x64-musl@0.9.32", "", { "os": "linux", "cpu": "x64" }, "sha512-5CJdkFKSvuCSOLTffwTqczlNe0d8axEOGNA7LaENsDBtXzO5fZQ0RFJFq1WdZ5GMaq3HY50IUHTu/GTbNlUV+Q=="], + "@bastani/atomic-natives-linux-x64-musl": ["@bastani/atomic-natives-linux-x64-musl@0.9.33", "", { "os": "linux", "cpu": "x64" }, "sha512-hxvkVI1NQ7FN6Jc6MwRB8lySFEgweFruGMQSFZjNQsLB2ak/oUziM1dVltHFa7pZndVmsyQydlmUkh+Vwfhs+w=="], - "@bastani/atomic-natives-win32-arm64-msvc": ["@bastani/atomic-natives-win32-arm64-msvc@0.9.32", "", { "os": "win32", "cpu": "arm64" }, "sha512-gN1Qhj3sncRMmo0sNrmM0y4Tgb+5EgEV9VBoaYXMEnigD0opthFkXztE+pYSoXtfpe4g8/ourzDY/tkV/vKQjQ=="], + "@bastani/atomic-natives-win32-arm64-msvc": ["@bastani/atomic-natives-win32-arm64-msvc@0.9.33", "", { "os": "win32", "cpu": "arm64" }, "sha512-E2Uq2P09QJLqLppVq5GaT7nPPIkjS0qUTao3urtJtgBhWTBxdzwLQwMf6yw2IkE7b53G2yLOcouokALa5L1INg=="], - "@bastani/atomic-natives-win32-x64-msvc": ["@bastani/atomic-natives-win32-x64-msvc@0.9.32", "", { "os": "win32", "cpu": "x64" }, "sha512-mY9V5v54Wplxk/mkY2hLDBte0NI2nIFpLFXThTvEDEewRyN7rvLDNvanxI6lB49+8PEQrZSkRsz2jUihXCSL8Q=="], + "@bastani/atomic-natives-win32-x64-msvc": ["@bastani/atomic-natives-win32-x64-msvc@0.9.33", "", { "os": "win32", "cpu": "x64" }, "sha512-zPkqUlj37eh+bwzWv5iv3kYvILM7tSSk9yQ0keuKhZ99qWKvaERuHKafoVp5SrU78cpTByPm9NaCLiC3gFRAog=="], - "@bastani/pi-ai": ["@bastani/pi-ai@0.9.32", "", { "dependencies": { "@anthropic-ai/sdk": "0.129.0", "@aws-sdk/client-bedrock-runtime": "3.1127.0", "@earendil-works/pi-telemetry": "1.1.0", "@google/genai": "2.21.0", "@smithy/node-http-handler": "4.12.1", "http-proxy-agent": "9.1.0", "https-proxy-agent": "9.1.0", "openai": "7.19.0", "partial-json": "0.1.7", "typebox": "1.3.27" }, "bin": { "pi-ai": "dist/cli.js" } }, "sha512-Edwujf3lVRoluFSXhc5kIESBxfp1GIyWlVJgsFLi6pYOAQdH1eAEa8+2o9tOSBK9FsvOkv60BwFBfxZcJnCtGA=="], + "@bastani/pi-ai": ["@bastani/pi-ai@0.9.33", "", { "dependencies": { "@anthropic-ai/sdk": "0.129.0", "@aws-sdk/client-bedrock-runtime": "3.1127.0", "@earendil-works/pi-telemetry": "1.1.0", "@google/genai": "2.21.0", "@smithy/node-http-handler": "4.12.1", "http-proxy-agent": "9.1.0", "https-proxy-agent": "9.1.0", "openai": "7.19.0", "partial-json": "0.1.7", "typebox": "1.3.27" }, "bin": { "pi-ai": "dist/cli.js" } }, "sha512-SbsqWLi68y/Dh8C3jUVcjH5TULAP4yzNiuLRO1okuUpm03TixTJOxxbRKd9R2KRlyQvEoaYbbniC6/kT3eFpSg=="], "@borewit/text-codec": ["@borewit/text-codec@0.2.2", "", {}, "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ=="], diff --git a/docs/self-hosting.md b/docs/self-hosting.md index 7e21b619e..954742271 100644 --- a/docs/self-hosting.md +++ b/docs/self-hosting.md @@ -115,7 +115,7 @@ it. The Pi contract suite (`apps/server/src/harness/pi.contract.test.ts`) covers this against the real Pi agent loop; run it before bumping `@ai-sdk/harness-pi` or `@earendil-works/pi-coding-agent`. -`HARNESS=atomic` runs Atomic 0.9.32 in the Chopin server process through its +`HARNESS=atomic` runs Atomic 0.9.33 in the Chopin server process through its headless SDK (`createAgentSession()`). It does not spawn the `atomic` CLI, use RPC mode, or substitute Atomic for Pi's runtime. diff --git a/package.json b/package.json index 3078a691b..5ebb91e30 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@ai-sdk/harness-pi": "1.0.148", "@ai-sdk/mcp": "2.0.72", "@ai-sdk/sandbox-just-bash": "1.0.146", - "@bastani/atomic": "0.9.32", + "@bastani/atomic": "0.9.33", "@earendil-works/pi-coding-agent": "0.85.1", "ai": "7.0.135", "typebox": "1.3.7",