Repository navigation
Upgrade Atomic to the stable 0.9.81 release - #890
Merged
Merged
Conversation
Moves the Atomic harness from 0.9.80 to the stable 0.9.81 release. Versions. catalog:harness pins `@bastani/atomic` 0.9.81. The lockfile resolves `@bastani/atomic`, `@bastani/atomic-natives` with its platform packages, and `@bastani/pi-ai` at 0.9.81, with no older `@bastani` package left; the `@earendil-works/pi-*` packages stay at 1.5.2, which Atomic still pins. `@bastani/pi-ai` now takes `@google/genai` 2.32.0, while `@earendil-works/pi-ai` 1.5.2 still pins 2.21.0 exactly, so the lockfile keeps that copy nested under it. Re-resolving the whole lockfile moved the rest of Atomic's tree to its newest in-range patch: `ws` 8.23.0, `encodeurl` 2.0.3, `graceful-fs` 4.2.12 and `@hono/node-server` 2.1.8. Outside Atomic's tree it moved `baseline-browser-mapping` 2.11.37, `electron-to-chromium` 1.5.485 and `enhanced-resolve` 5.27.0. `@modelcontextprotocol/ext-apps` and `get-intrinsic` stay on the version their `latest` tag names. The self-hosting guide names the new version. Nothing in 0.9.81 needed a code change. Chopin's host tools and its structured result tool set no `constrainedSampling`, so the strict-schema fallback for typeless nodes does not reach them; the only effect on them is that a non-strict Anthropic request now keeps a schema's root `additionalProperties`, which Anthropic accepts. No Chopin code reads the `bash` tool's truncation footer, calls `pi.exec`, configures a Google provider's `fetch`, or matches a provider's "Connection closed." error (the remote link's "The agent connection closed." is Chopin's own, not a provider error). `model: "auto"` routing, `parallelSlot`, the footer, queued-message rows, `/resume` and `find` globs are in Atomic's router, workflows and terminal interface, which Chopin's Planner does not use. Assistant-model: Claude Opus 5.5 Assistant-workflow: inline (subagent) Assistant-verification: bun install --frozen-lockfile passed Assistant-verification: typecheck and lint passed: bun run types and bun run ci Assistant-verification: harness unit tests passed: GIT_CONFIG_GLOBAL=/dev/null bun test apps/server/src/harness, 596 pass, 0 fail Assistant-verification: conversation-plan unit tests passed: GIT_CONFIG_GLOBAL=/dev/null bun test apps/server/src/conversation-plan, 1059 pass, 0 fail, 1 skip Assistant-verification: harness browser specs passed: bun run e2e --project=harness --workers=2, 78 passed Assistant-verification: Planner browser specs: bun run e2e --project=chromium --workers=2 e2e/planner-picker.e2e.ts e2e/planner-attachment.e2e.ts, 62 passed, 1 failed (planner-picker.e2e.ts:2388, which also fails on origin/main eec9491 with 0.9.80) Assistant-verification: build passed: bun run build, initial JavaScript 259,958 B raw / 82,471 B gzip (budget 260,500 / 83,450), initial stylesheet 184,420 B raw / 32,675 B gzip (budget 185,000 / 33,000) User-preference: Keep everything on the latest Atomic, transitive dependencies included, and redeploy as new versions come out Co-authored-by: Alex Lavaee <lavaman131@github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade Atomic to the stable 0.9.81 release
This moves the Atomic harness from 0.9.80 to the stable 0.9.81 release. It follows the same steps as the 0.9.80 upgrade.
Versions
catalog:harnesspins@bastani/atomic0.9.81.bun.lockresolves@bastani/atomic,@bastani/atomic-nativesand all eight of its platform packages, and@bastani/pi-aiat 0.9.81. No older@bastanipackage is left.@earendil-works/pi-*packages stay at 1.5.2, which Atomic still pins.@bastani/pi-ai0.9.81 takes@google/genai2.32.0.@earendil-works/pi-ai1.5.2 still pins 2.21.0 exactly, so the lockfile keeps that copy nested under it.bun installto re-resolve it. This moved the rest of Atomic's tree to the newest version its ranges allow:ws8.23.0,encodeurl2.0.3,graceful-fs4.2.12 and@hono/node-server2.1.8.baseline-browser-mappingto 2.11.37,electron-to-chromiumto 1.5.485 andenhanced-resolveto 5.27.0.@modelcontextprotocol/ext-appsandget-intrinsicstay on the version theirlatesttag names.What changed in 0.9.81, and whether Chopin depends on it
I compared the published 0.9.80 and 0.9.81 packages of
@bastani/atomicand@bastani/pi-aifile by file and checked each behaviour change against Chopin's code and tests. None needed a code change.constrainedSampling: { strict: "prefer" }. Chopin's host tools and its structured result tool (apps/server/src/harness/atomic/adapter.ts) don't setconstrainedSampling, so the fallback never applies to them. One change does affect Chopin's tools: a non-strict Anthropic request now keeps a schema's rootadditionalPropertiesinstead of dropping it. The result tool'sadditionalProperties: trueand the host tools'additionalProperties: falseare both valid there.bashlong-line output. No Chopin code reads thebashtool's truncation footer.pi.execexit codes. Chopin never callspi.exec.@google/genai2.32.0. Chopin doesn't configure a Google provider or a customfetch./connection.?closed/i) is in Atomic's model-fallback failure list. No Chopin code or test matches a provider's "Connection closed." error. The remote link's "The agent connection closed." is Chopin's own error, and it never passes through Atomic as a provider error. The harness tests drive Atomic through a stub OpenAI-compatible server that never closes a connection mid-turn.model: "auto"routing,parallelSlot, the footer, queued-message rows,/resumeandfindglobs. These live in Atomic's router, its workflows and its terminal interface. Chopin's Planner doesn't use any of them, and the export list gains only theParallelSlottype. Chopin's own steering callsAgentSession.steer, which didn't change between the two releases.Checks
bun install --frozen-lockfile: passed.bun run typesandbun run ci: passed.GIT_CONFIG_GLOBAL=/dev/null bun test apps/server/src/harness: 596 passed, 0 failed.GIT_CONFIG_GLOBAL=/dev/null bun test apps/server/src/conversation-plan(this code importsModelRegistryfrom Atomic): 1059 passed, 0 failed, 1 skipped.bun run e2e --project=harness --workers=2: 78 passed.bun run e2e --project=chromium --workers=2 e2e/planner-picker.e2e.ts e2e/planner-attachment.e2e.ts: 62 passed, 1 failed. See the note below.bun run build:The one failure was already failing on main
e2e/planner-picker.e2e.ts:2388("with no machine of their own, a person still opens the Machines menu to a teammate's shared machine…") fails on this branch. It also fails on origin/maineec9491c3, which still has Atomic 0.9.80.--repeat-each=2).AGENT=offserver and doesn't touch Atomic.I left it alone because fixing it is outside this upgrade.
Judgement calls
@google/genai2.21.0 that@earendil-works/pi-aipins exactly. Overriding it would break that package's exact pin.