@bastani/atomic 0.9.45-alpha.1 → 0.9.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.45] - 2026-10-25
6
+
7
+ Custom storage adapters now plug into workflow journals as first-class citizens, and large local worker pools start reliably on busy machines.
8
+
9
+ - **Journal adapters that build on Atomic's own journal:** a storage adapter loaded by path can import `@bastani/atomic/workflows` and get the running Atomic's module, so `SqlRunJournal` subclasses and journal errors such as `StaleLeaseError` work instead of failing with `Storage unavailable` ([#3963](https://github.com/bastani-inc/atomic/issues/3963), [#3969](https://github.com/bastani-inc/atomic/pull/3969))
10
+ - **Fast status, resume and receipts for custom journals:** a run journal that implements the optional `changeToken()`, `runVersions()`, `snapshotTail()` and `appendMany()` members gets the same faster `/workflow status`, resume and batched delivery receipts as the built-in SQL journal ([#3964](https://github.com/bastani-inc/atomic/issues/3964), [#3968](https://github.com/bastani-inc/atomic/pull/3968))
11
+ - **Worker pools that start on small or busy machines:** without an explicit `workflows.localWorkers.startupTimeoutMs`, the startup deadline scales with pool size and machine load instead of failing after 30 s ([#3962](https://github.com/bastani-inc/atomic/issues/3962), [#3965](https://github.com/bastani-inc/atomic/pull/3965))
12
+
13
+ ### Added
14
+
15
+ - `StorageProvider` journal factories accept `hostModules`, and `loadStorageAdapter()` takes an optional third `hostModules` argument, to give adapter modules extra live host modules by specifier ([#3963](https://github.com/bastani-inc/atomic/issues/3963))
16
+ - The `RunJournal` interface in `@bastani/atomic/storage` has optional `changeToken()`, `runVersions()`, `snapshotTail()` and `appendMany()` members, with the `RunVersion`, `RunSnapshotTail` and `RunJournalBatchAppend` types. A run journal from a storage adapter, or any custom `RunJournal`, that implements them gets the same faster `/workflow status`, resume and batched delivery receipts as the built-in SQL journal, and `registerRunJournalConformance` checks them when present ([#3964](https://github.com/bastani-inc/atomic/issues/3964))
17
+
18
+ ### Fixed
19
+
20
+ - A journal adapter loaded by path (`ATOMIC_WORKFLOWS_JOURNAL`, `workflows.journal`, or a run's `journal: { adapter }`) can now import `@bastani/atomic/workflows`. It gets the workflows module of the running Atomic that opened the journal, so an `openRunJournal` hook can build on `SqlRunJournal` and its errors, such as `StaleLeaseError`, pass Atomic's `instanceof` checks. Before, the import resolved to a path inside `dist/index.js` and the journal failed with `Storage unavailable` ([#3963](https://github.com/bastani-inc/atomic/issues/3963))
21
+
5
22
  ## [0.9.45-alpha.1] - 2026-10-25
6
23
 
7
24
  Custom storage adapters now plug into workflow journals as first-class citizens, and large local worker pools start reliably on busy machines.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/intercom",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "private": true,
5
5
  "description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
6
6
  "contributors": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/mcp",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "private": true,
5
5
  "description": "Atomic's pi-compatible MCP integration for server connections, OAuth, tools, resources, and terminal management.",
6
6
  "contributors": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/subagents",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "private": true,
5
5
  "description": "Atomic extension for delegating tasks to subagents with parallel execution. Fork of: https://github.com/nicobailon/pi-subagents",
6
6
  "contributors": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/web-access",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "private": true,
5
5
  "description": "Atomic extension for web search, URL fetching, GitHub repo cloning, PDF/video extraction. Fork of: https://github.com/nicobailon/pi-web-access",
6
6
  "contributors": [
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.9.45] - 2026-10-25
10
+
11
+ ### Fixed
12
+
13
+ - A large local worker pool no longer fails at startup with `Local worker startup timed out after 30000 ms` on a small or busy machine. When `localWorkers.startupTimeoutMs` is not set, the readiness deadline now scales with the number of workers and the 1-minute load average per CPU core, from 30000 ms up to 600000 ms; on an idle machine with spare cores it stays 30000 ms. If workers still miss the deadline, the error now says they were too slow to start and names `workflows.localWorkers.startupTimeoutMs` ([#3962](https://github.com/bastani-inc/atomic/issues/3962))
14
+
9
15
  ## [0.9.45-alpha.1] - 2026-10-25
10
16
 
11
17
  ### Added
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/workflows",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "private": true,
5
5
  "description": "Atomic extension for multi-stage workflow authoring and execution.",
6
6
  "contributors": [
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@bastani/atomic",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bastani/atomic",
9
- "version": "0.9.45-alpha.1",
9
+ "version": "0.9.45",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@bastani/atomic-natives": "0.9.45-alpha.1",
13
- "@bastani/pi-ai": "0.9.45-alpha.1",
12
+ "@bastani/atomic-natives": "0.9.45",
13
+ "@bastani/pi-ai": "0.9.45",
14
14
  "@earendil-works/pi-agent-core": "1.4.0",
15
15
  "@earendil-works/pi-codemode": "1.4.0",
16
16
  "@earendil-works/pi-tui": "1.4.0",
@@ -427,18 +427,18 @@
427
427
  }
428
428
  },
429
429
  "node_modules/@bastani/atomic-natives": {
430
- "version": "0.9.45-alpha.1",
431
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives/-/atomic-natives-0.9.45-alpha.1.tgz",
430
+ "version": "0.9.45",
431
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives/-/atomic-natives-0.9.45.tgz",
432
432
  "license": "MIT",
433
433
  "optionalDependencies": {
434
- "@bastani/atomic-natives-darwin-arm64": "0.9.45-alpha.1",
435
- "@bastani/atomic-natives-darwin-x64": "0.9.45-alpha.1",
436
- "@bastani/atomic-natives-linux-arm64-gnu": "0.9.45-alpha.1",
437
- "@bastani/atomic-natives-linux-arm64-musl": "0.9.45-alpha.1",
438
- "@bastani/atomic-natives-linux-x64-gnu": "0.9.45-alpha.1",
439
- "@bastani/atomic-natives-linux-x64-musl": "0.9.45-alpha.1",
440
- "@bastani/atomic-natives-win32-arm64-msvc": "0.9.45-alpha.1",
441
- "@bastani/atomic-natives-win32-x64-msvc": "0.9.45-alpha.1"
434
+ "@bastani/atomic-natives-darwin-arm64": "0.9.45",
435
+ "@bastani/atomic-natives-darwin-x64": "0.9.45",
436
+ "@bastani/atomic-natives-linux-arm64-gnu": "0.9.45",
437
+ "@bastani/atomic-natives-linux-arm64-musl": "0.9.45",
438
+ "@bastani/atomic-natives-linux-x64-gnu": "0.9.45",
439
+ "@bastani/atomic-natives-linux-x64-musl": "0.9.45",
440
+ "@bastani/atomic-natives-win32-arm64-msvc": "0.9.45",
441
+ "@bastani/atomic-natives-win32-x64-msvc": "0.9.45"
442
442
  },
443
443
  "engines": {
444
444
  "bun": ">=1.4.2",
@@ -446,8 +446,8 @@
446
446
  }
447
447
  },
448
448
  "node_modules/@bastani/atomic-natives-darwin-arm64": {
449
- "version": "0.9.45-alpha.1",
450
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-arm64/-/atomic-natives-darwin-arm64-0.9.45-alpha.1.tgz",
449
+ "version": "0.9.45",
450
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-arm64/-/atomic-natives-darwin-arm64-0.9.45.tgz",
451
451
  "license": "MIT",
452
452
  "os": [
453
453
  "darwin"
@@ -458,8 +458,8 @@
458
458
  "optional": true
459
459
  },
460
460
  "node_modules/@bastani/atomic-natives-darwin-x64": {
461
- "version": "0.9.45-alpha.1",
462
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-x64/-/atomic-natives-darwin-x64-0.9.45-alpha.1.tgz",
461
+ "version": "0.9.45",
462
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-x64/-/atomic-natives-darwin-x64-0.9.45.tgz",
463
463
  "license": "MIT",
464
464
  "os": [
465
465
  "darwin"
@@ -470,8 +470,8 @@
470
470
  "optional": true
471
471
  },
472
472
  "node_modules/@bastani/atomic-natives-linux-arm64-gnu": {
473
- "version": "0.9.45-alpha.1",
474
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-arm64-gnu/-/atomic-natives-linux-arm64-gnu-0.9.45-alpha.1.tgz",
473
+ "version": "0.9.45",
474
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-arm64-gnu/-/atomic-natives-linux-arm64-gnu-0.9.45.tgz",
475
475
  "license": "MIT",
476
476
  "os": [
477
477
  "linux"
@@ -485,8 +485,8 @@
485
485
  "optional": true
486
486
  },
487
487
  "node_modules/@bastani/atomic-natives-linux-arm64-musl": {
488
- "version": "0.9.45-alpha.1",
489
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-arm64-musl/-/atomic-natives-linux-arm64-musl-0.9.45-alpha.1.tgz",
488
+ "version": "0.9.45",
489
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-arm64-musl/-/atomic-natives-linux-arm64-musl-0.9.45.tgz",
490
490
  "license": "MIT",
491
491
  "os": [
492
492
  "linux"
@@ -500,8 +500,8 @@
500
500
  "optional": true
501
501
  },
502
502
  "node_modules/@bastani/atomic-natives-linux-x64-gnu": {
503
- "version": "0.9.45-alpha.1",
504
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-x64-gnu/-/atomic-natives-linux-x64-gnu-0.9.45-alpha.1.tgz",
503
+ "version": "0.9.45",
504
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-x64-gnu/-/atomic-natives-linux-x64-gnu-0.9.45.tgz",
505
505
  "license": "MIT",
506
506
  "os": [
507
507
  "linux"
@@ -515,8 +515,8 @@
515
515
  "optional": true
516
516
  },
517
517
  "node_modules/@bastani/atomic-natives-linux-x64-musl": {
518
- "version": "0.9.45-alpha.1",
519
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-x64-musl/-/atomic-natives-linux-x64-musl-0.9.45-alpha.1.tgz",
518
+ "version": "0.9.45",
519
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-x64-musl/-/atomic-natives-linux-x64-musl-0.9.45.tgz",
520
520
  "license": "MIT",
521
521
  "os": [
522
522
  "linux"
@@ -530,8 +530,8 @@
530
530
  "optional": true
531
531
  },
532
532
  "node_modules/@bastani/atomic-natives-win32-arm64-msvc": {
533
- "version": "0.9.45-alpha.1",
534
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-arm64-msvc/-/atomic-natives-win32-arm64-msvc-0.9.45-alpha.1.tgz",
533
+ "version": "0.9.45",
534
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-arm64-msvc/-/atomic-natives-win32-arm64-msvc-0.9.45.tgz",
535
535
  "license": "MIT",
536
536
  "os": [
537
537
  "win32"
@@ -542,8 +542,8 @@
542
542
  "optional": true
543
543
  },
544
544
  "node_modules/@bastani/atomic-natives-win32-x64-msvc": {
545
- "version": "0.9.45-alpha.1",
546
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-x64-msvc/-/atomic-natives-win32-x64-msvc-0.9.45-alpha.1.tgz",
545
+ "version": "0.9.45",
546
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-x64-msvc/-/atomic-natives-win32-x64-msvc-0.9.45.tgz",
547
547
  "license": "MIT",
548
548
  "os": [
549
549
  "win32"
@@ -554,8 +554,8 @@
554
554
  "optional": true
555
555
  },
556
556
  "node_modules/@bastani/pi-ai": {
557
- "version": "0.9.45-alpha.1",
558
- "resolved": "https://registry.npmjs.org/@bastani/pi-ai/-/pi-ai-0.9.45-alpha.1.tgz",
557
+ "version": "0.9.45",
558
+ "resolved": "https://registry.npmjs.org/@bastani/pi-ai/-/pi-ai-0.9.45.tgz",
559
559
  "license": "MIT",
560
560
  "dependencies": {
561
561
  "@anthropic-ai/sdk": "0.129.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/atomic",
3
- "version": "0.9.45-alpha.1",
3
+ "version": "0.9.45",
4
4
  "description": "Atomic coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "atomicConfig": {
@@ -89,8 +89,8 @@
89
89
  "prepublishOnly": "bun run clean && bun run build && bun run shrinkwrap"
90
90
  },
91
91
  "dependencies": {
92
- "@bastani/atomic-natives": "0.9.45-alpha.1",
93
- "@bastani/pi-ai": "0.9.45-alpha.1",
92
+ "@bastani/atomic-natives": "0.9.45",
93
+ "@bastani/pi-ai": "0.9.45",
94
94
  "@earendil-works/pi-agent-core": "1.4.0",
95
95
  "@earendil-works/pi-codemode": "1.4.0",
96
96
  "@earendil-works/pi-tui": "1.4.0",