Repository navigation
Upgrade Atomic to the stable 0.9.42 release - #726
Merged
Merged
Conversation
The harness catalog now pins @bastani/atomic 0.9.42, and the lockfile resolves @bastani/atomic, @bastani/atomic-natives with its eight platform packages, and @bastani/pi-ai at 0.9.42, with no older @Bastani package left. Atomic's own @earendil-works pi packages move from 1.3.0 to 1.4.0 with it, and pi-tui brings in marked-cjk-friendly. Nothing between 0.9.41-alpha.1 and 0.9.42 breaks the Atomic adapter, and it needs no code change. The steer() and followUp() change and waitForSettled() were already handled with 0.9.41-alpha.1. Atomic now shares a provider's rate limit across the whole process: after one request gets a 429, every Atomic session in the server, Planner turns and workers alike, waits for that provider's cooldown before its next request. A real run confirmed the wait and that aborting a waiting turn ends it without sending the request. The self-hosting guide describes this and names the new version. Chopin sets no request budget and passes no resourceAdmission; both are optional. Atomic's shared top-level storage setting can now name an adapter by package, as atomic storage join writes for libSQL. A Planner session's explicit journal still outranks it, so its workflow runs stay in Chopin's journal. A new test runs a workflow with such a selection whose adapter is not installed; it fails if the adapter stops passing the journal. That setting does reach the Planner's Intercom broker, which the hosted-agent guide now says. Device-code login, the trailing-newline trim for file storage secrets, local workflow worker pools, and the interactive queue fixes do not reach Chopin: it never runs /login, configures no storage secret, and drives sessions through the SDK. Operator settings for worker pools and workflow admission were tried against a real Planner workflow and do not break it. 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: new journal test fails when the adapter stops passing its journal, passes with it Assistant-verification: real Atomic sessions show a shared provider cooldown on 0.9.42 and none on 0.9.41-alpha.1 Assistant-verification: docker build of the server image; container started healthy with HARNESS=atomic and imports Atomic 0.9.42 Assistant-verification: targeted bun run e2e (24 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 the 0.9.41-alpha.1 pre-release to the stable 0.9.42 release.
What changed
catalog:harnesspins@bastani/atomic0.9.42.bun.locknow resolves@bastani/atomic,@bastani/atomic-natives(and all eight platform packages), and@bastani/pi-aiat 0.9.42, with no older@bastani/*entries left. Atomic's own@earendil-works/pi-*packages move from 1.3.0 to 1.4.0 with it, andpi-tuiaddsmarked-cjk-friendly.No adapter code change. Nothing from 0.9.41-alpha.2 through 0.9.42 breaks
apps/server/src/harness/atomic/*. Thesteer()/followUp()breaking change andwaitForSettled()were already handled in Upgrade Atomic to the 0.9.41-alpha.1 pre-release #720, and that coverage still passes.Shared provider rate limits (new in 0.9.42): after one request gets a 429, every Atomic session in the Chopin server waits for that provider's cooldown before its next request. That includes Planner turns, summary workers, and research workers. Before 0.9.42, each session hit the limit on its own. I checked this with real Atomic sessions against a stub provider that returns
429withRetry-After: 3:docs/self-hosting.mdnow lists this as an Atomic caveat. Chopin sets noconfigureProviderRequestBudget()and passes noresourceAdmission, because both are optional.Storage adapters by package name (new in 0.9.42): the shared top-level
storagesetting can now name an adapter package, which is whatatomic storage joinwrites for libSQL. A Planner session's explicitjournalstill takes precedence, so its workflow runs stay in Chopin's journal. A new test inatomic/full.test.tsruns a real workflow with that setting pointing at an adapter that isn't installed. It passes. With the adapter'sjournaloption removed, it fails withCould not load storage adapter. The same setting does reach the Planner's Intercom broker: a real run wrote the broker's tables to the operator's selected database.docs/hosted-agent.mdnow says so.No effect on Chopin:
/login: Chopin never runs/login.autocopies the host login. The connector's "sign in with /login" guidance is still accurate.{ "file": … }secrets: Chopin configures no storage secrets.workflows.localWorkersandworkflows.admissionsettings: I tried both against a real Planner workflow, and its question still reached Decisions.docs/self-hosting.mdnow names 0.9.42.The connector is unchanged. It installs
@bastani/atomicwithout pinning a version.No UI changes, so there is no visual preview.
Verification
bun test: 6734 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,setup-agents,machines,harness-children,chat-mentions): 24 passed.