Repository navigation
Upgrade Atomic to the stable 0.9.43 release - #727
Merged
Merged
Conversation
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>
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.
Moves the Atomic harness to the stable 0.9.43 release.
Versions.
catalog:harnesspins@bastani/atomic0.9.43. The lockfile resolves@bastani/atomic,@bastani/atomic-nativeswith its eight platform packages, and@bastani/pi-aiat 0.9.43, with no older@bastanipackage left. Atomic's@earendil-workspi packages stay at 1.4.0.What changed in Atomic, and what it means here. 0.9.43 is about local workflow worker pools:
workflows.localWorkers.leaseMssetting.startupTimeoutMssetting.WorkflowInfrastructureErrorandisRetryableWorkflowErrormark retryable pool faults.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 failbun run typesandbun run cipassHARNESS=atomic, and it imports Atomic 0.9.43 and its new workflow exportsbun run e2e(harness, run card, smoke, decisions deck): 35 passed