Repository navigation
Upgrade Atomic to the stable 0.9.40 release - #706
Merged
Merged
Conversation
The harness catalog now pins @bastani/atomic 0.9.40, and the lockfile resolves @bastani/atomic, @bastani/atomic-natives with its platform packages, and @bastani/pi-ai at 0.9.40, with no older @Bastani package left. Atomic's own @typesafe-ai/sdk dependency moves from 0.6.0 to 0.7.0 with it. Atomic 0.9.40 no longer replays deliveries an earlier session left unfinished when a session is bound; a host has to call startPendingRecovery() for that. The atomic adapter keeps its sessions in memory and stops any turn it did not start itself, so it deliberately never calls it, and a comment at createAgentSession now says so. The other breaking change, the subagent tool losing its kill action, does not reach Chopin: the Planner's tool set has no subagent tool and nothing in the server or its prompts names that action. createAgentSession() now validates every set ATOMIC_STORAGE, ATOMIC_SESSIONS_STORAGE and ATOMIC_WORKFLOWS_JOURNAL, so an invalid value fails every Atomic turn. A valid one does not move a Planner session's journal, because the session's own journal option takes precedence. The hosted-agent guide says both, and the self-hosting guide names the new version. Workflow run results still report their runId in the shape the run cards read. Assistant-model: Claude Opus 5.5 (fast) Assistant-workflow: inline (fast subagents) Assistant-verification: bun test (6662 pass, 22 skip, 0 fail), bun run types, bun run ci Assistant-verification: Atomic harness, contract and full-session tests pass, including a real workflow run and its journal location Assistant-verification: docker build of the server image; container started healthy with HARNESS=atomic and imports Atomic 0.9.40 Assistant-verification: targeted bun run e2e (13 passed) User-preference: Keep Atomic and its transitive packages on the same release everywhere Co-authored-by: Alex Lavaee <alexlavaee@microsoft.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.
Upgrades the Atomic harness from 0.9.39 to the stable 0.9.40 release.
What changed
catalog:harnesspins@bastani/atomic0.9.40.bun.locknow resolves@bastani/atomic,@bastani/atomic-natives(and all eight platform packages), and@bastani/pi-aiat 0.9.40, with no older@bastani/*entries left. Atomic's own@typesafe-ai/sdkdependency moves from 0.6.0 to 0.7.0 along with it.startPendingRecovery()to get that replay. The atomic adapter keeps its sessions in memory and stops any turn it did not start itself, so it deliberately never callsstartPendingRecovery(). A comment atcreateAgentSessionnow records that choice.killremoved (breaking in 0.9.40): this does not affect Chopin. The Planner's tool set has nosubagenttool, and nothing in the server or its prompts uses that action.createAgentSession()now validates every setATOMIC_STORAGE,ATOMIC_SESSIONS_STORAGE, andATOMIC_WORKFLOWS_JOURNAL, so an invalid value fails every Atomic turn. A valid value does not move a Planner session's workflow journal, because the per-sessionjournaloption takes precedence. I checked this by running a real workflow with both variables set.docs/hosted-agent.mdnow explains both points, anddocs/self-hosting.mdnames 0.9.40.runresults still reportrunIdin the shape the run cards parse. I checked this against a real workflow run on 0.9.40.The connector is unchanged: it does not depend on
@bastani/atomic.No UI changes, so there is no visual preview.
Verification
bun test: 6662 pass, 22 skip, 0 fail. This includesharness/atomic/*,atomic.contract.test.ts, andatomic/full.test.ts.bun run typesandbun run ciboth pass.HARNESS=atomic.bun run e2e(run-card,planner-attachment,planner-picker): 13 passed.