Skip to content

Upgrade Atomic to the stable 0.9.43 release - #727

Merged
lavaman131 merged 1 commit into
mainfrom
atomic-0.9.43
Oct 24, 2026
Merged

lavaman131 merged 1 commit into
mainfrom
atomic-0.9.43

Conversation

@lavaman131

Copy link
Copy Markdown
Collaborator

Moves the Atomic harness to the stable 0.9.43 release.

Versions. catalog:harness pins @bastani/atomic 0.9.43. The lockfile resolves @bastani/atomic, @bastani/atomic-natives with its eight platform packages, and @bastani/pi-ai at 0.9.43, with no older @bastani package left. Atomic's @earendil-works pi packages stay at 1.4.0.

What changed in Atomic, and what it means here. 0.9.43 is about local workflow worker pools:

  • A crashed worker's child is replayed on a new worker instead of failing the root.
  • Leases follow worker liveness, with a new workflows.localWorkers.leaseMs setting.
  • Workers start without reading the whole journal, with a new startupTimeoutMs setting.
  • WorkflowInfrastructureError and isRetryableWorkflowError mark retryable pool faults.
  • Each worker's standard error is kept in worker-logs/ beside the journal.

Pools stay off unless the operator's Atomic settings enable them. None of the types the adapter uses changed, so the adapter needs no code change.

The worker logs do affect Chopin. I ran a real Planner workflow with an operator-enabled pool and a child that crashes. Atomic put the logs under Chopin's journal directory, not its default, replayed the child three times, and Chat's run card ended as failed. That directory is private only because the adapter creates it with mode 0700, and nothing tested that. The journal test now checks the mode, and it fails if the adapter drops it. The self-hosting guide names the new version, says where the logs go and that the logs of failed workers are kept, and names the two new settings.

Connector. Not changed; it does not depend on Atomic.

Verification

  • bun test: 6734 pass, 22 skip, 0 fail
  • bun run types and bun run ci pass
  • The new mode check fails without the adapter's 0700 and passes with it
  • Server Docker image builds and starts healthy with HARNESS=atomic, and it imports Atomic 0.9.43 and its new workflow exports
  • Targeted bun run e2e (harness, run card, smoke, decisions deck): 35 passed

The harness catalog now pins @bastani/atomic 0.9.43, and the lockfile
resolves @bastani/atomic, @bastani/atomic-natives with its eight platform
packages, and @bastani/pi-ai at 0.9.43, with no older @Bastani package
left. Atomic's @earendil-works pi packages stay at 1.4.0.

The release is about local workflow worker pools: a crashed worker's
child is replayed on a new worker instead of failing the root, leases
follow worker liveness, startup no longer reads the whole journal, and
WorkflowInfrastructureError marks retryable pool faults. Pools stay off
unless the operator's Atomic settings enable them, and the adapter calls
nothing whose shape changed, so it needs no code change.

Each worker's standard error is now kept in worker-logs/ beside the
journal. A real Planner workflow with an operator-enabled pool and a
child that crashes put those logs under Chopin's journal directory,
not Atomic's default, replayed the child three times, and ended with a
failed run card. That directory is private only because the adapter
creates it with mode 0700, which nothing tested; the journal test now
checks the mode and fails when the adapter drops it. The self-hosting
guide names the new version and says where the logs go, that failed
workers' logs are kept, and which settings set the startup timeout and
lease.

Assistant-model: Claude Opus 5.5 (fast)
Assistant-workflow: inline (fast subagents)
Assistant-verification: bun test (6734 pass, 22 skip, 0 fail), bun run types, bun run ci
Assistant-verification: journal directory mode test fails without the adapter's 0700 mode, passes with it
Assistant-verification: real Planner workflow with a local worker pool kept worker logs beside the journal and reported the run failed
Assistant-verification: docker build of the server image; container started healthy with HARNESS=atomic and imports Atomic 0.9.43
Assistant-verification: targeted bun run e2e (35 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 24, 2026
@lavaman131
lavaman131 merged commit f84f153 into main Oct 24, 2026
24 checks passed
@lavaman131
lavaman131 deleted the atomic-0.9.43 branch October 24, 2026 17:45
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