Skip to content

Upgrade Atomic to the stable 0.9.40 release - #706

Merged
lavaman131 merged 1 commit into
mainfrom
atomic-0.9.40
Oct 20, 2026
Merged

lavaman131 merged 1 commit into
mainfrom
atomic-0.9.40

Conversation

@lavaman131

Copy link
Copy Markdown
Collaborator

Upgrades the Atomic harness from 0.9.39 to the stable 0.9.40 release.

What changed

  • catalog:harness pins @bastani/atomic 0.9.40. bun.lock now resolves @bastani/atomic, @bastani/atomic-natives (and all eight platform packages), and @bastani/pi-ai at 0.9.40, with no older @bastani/* entries left. Atomic's own @typesafe-ai/sdk dependency moves from 0.6.0 to 0.7.0 along with it.
  • Pending recovery (breaking in 0.9.40): binding a session no longer replays deliveries left unfinished by an earlier session. A host now has to call 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 calls startPendingRecovery(). A comment at createAgentSession now records that choice.
  • Subagent kill removed (breaking in 0.9.40): this does not affect Chopin. The Planner's tool set has no subagent tool, and nothing in the server or its prompts uses that action.
  • Per-process storage selection (new in 0.9.40): createAgentSession() now validates every set ATOMIC_STORAGE, ATOMIC_SESSIONS_STORAGE, and ATOMIC_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-session journal option takes precedence. I checked this by running a real workflow with both variables set. docs/hosted-agent.md now explains both points, and docs/self-hosting.md names 0.9.40.
  • Workflow run results still report runId in 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 includes harness/atomic/*, atomic.contract.test.ts, and atomic/full.test.ts.
  • bun run types and bun run ci both pass.
  • Server Docker image builds. The container imports Atomic 0.9.40 and starts healthy with HARNESS=atomic.
  • Targeted bun run e2e (run-card, planner-attachment, planner-picker): 13 passed.

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>
@lavaman131 lavaman131 self-assigned this Oct 20, 2026
@lavaman131
lavaman131 merged commit 8775faf into main Oct 20, 2026
24 checks passed
@lavaman131
lavaman131 deleted the atomic-0.9.40 branch October 20, 2026 20:21
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.

1 participant