pi-crew 0.9.17 → 0.9.18

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
@@ -1,5 +1,54 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.9.18] — perf fix bundle-mode spawn + config cache (2026-07-02)
4
+
5
+ Five commits addressing items from the v0.9.17 performance review (`docs/perf/performance-review-2026-07.md`):
6
+
7
+ ### Highlights
8
+
9
+ - **CRITICAL — fix bundle-mode background runner spawn.** `spawnBackgroundTeamRun` in `src/runtime/async-runner.ts:226` was computing the `background-runner.ts` path via `import.meta.url-relative` resolution. The path landed correctly in source (strip-types loader) but BROKE in the bundle (default v0.9.17+): esbuild's `__esm` helper does not preserve per-module `import.meta.url`, so the path resolved to `<pi-crew>/background-runner.ts` (missing `src/runtime/`). Spawned runners then ENOENTed at ~4s into every team run. Fixed with `packageRoot()` from `utils/paths.ts` — mirrors the same pattern as the v0.9.17 fix in `pi-args.ts:10` (commit `0dd93e0`). Verified live: 3 E2E team runs after the fix (test-coalesce-static, fast-fix, research) all spawned the background runner cleanly.
10
+ - **F4 mitigation — wire `saveRunTasksCoalesced` into the checkpoint path.** The 50ms-debounce coalescer in `state-store.ts:428` had been dormant (0 callers). Now called from `persistSingleTaskUpdate` (called ~5× per task from `task-runner.ts:233, 424, 538, 617, 1347`). Two safety guards: `flushPendingAtomicWrites()` at the top of the mtime-CAS retry loop (defeats the stale-read window under concurrent coalesced writers) and the mtime CAS itself still guards against concurrent non-coalesced writers. Trade-off: checkpoint writes are now best-effort within a 50ms window — terminal writes still use full fsync via `saveRunTasks`.
11
+ - **F16 quick win — 2s TTL+mtime cache for `loadConfig`.** `loadConfig` had 78 callers (top: `register.ts` 11, `registration/ui.ts` 6, `team-tool.ts` 5) and was called 1 Hz idle / 6 Hz active with zero cache. Each call reads up to 4 files (legacy, user, `.crew/config.json`, `.pi/pi-crew.json`), parses JSON, runs full TypeBox `Value.Check` validation, and merges. New cache follows the same pattern as `manifest-cache.ts`. Cache key is a deterministic JSON encoding of `(filePath, legacyPath, projectPath, projectPiCrewJsonPath, cwd)`. On hit, return cached value without parsing; on miss or mtime change, re-parse. New exports for tests/ops: `__test__setConfigCacheTtlMs`, `__test__getConfigCacheTtlMs`, `__test__getConfigCacheEntry`, `__test__configCacheSize`, `invalidateConfigCache`, `flushConfigCache`. Caveat documented: caches for 2s even if the user just edited their config in a separate process — acceptable for the perf win.
12
+ - **D — documented atomic-write-v2 migration plan.** New `docs/migration/atomic-write-v2-migration.md` (297 lines) covers why migrate (F3, F4, F6: drop the dir-fsync cost added by 13f4490), API differences, 3-phase migration plan (dual-write behind feature flag → switch default → deprecate v1), risks + mitigations, effort estimate (M = 3-5 days), and a MIGRATE decision. Existing `atomic-write-v2.ts` (0 callers today) is the v2 surface; v1 (`atomic-write.ts`) keeps symlink-safety + link+unlink atomicity. Phase 1 is gated by `PI_CREW_ATOMIC_WRITER` env flag with instant rollback.
13
+
14
+ ### Verification
15
+
16
+ | Gate | Result |
17
+ |---|---|
18
+ | TSC | ✅ |
19
+ | Lint | ✅ |
20
+ | format:check | ✅ |
21
+ | check:conflict-markers | ✅ |
22
+ | check:lazy-imports | ✅ |
23
+ | check:bundle-staleness | ✅ |
24
+ | test:unit local (config-cache) | ✅ 7/7 |
25
+ | test:unit local (safe-bash, post-style-fix) | ✅ 26/26 |
26
+ | test:unit local (coalesce + atomic-write-coalesced + file-coalescer + progress-event-coalescer) | ✅ 26/26 |
27
+ | Live E2E: test-coalesce-static (3 tasks) | ✅ all 3 resultArtifacts + heartbeats + clean closeout |
28
+ | Live E2E: fast-fix (explore→execute→verify) | ✅ consistency=1, 14 min |
29
+ | Live E2E: research (explore→analyze→write) | ✅ consistency=1, summary 4.7KB |
30
+ | CI Ubuntu / Node 22 | ✅ (post-push) |
31
+ | CI macOS / Node 22 | ✅ (post-push) |
32
+ | CI Windows / Node 22 | ✅ (post-push) |
33
+
34
+ ### Changed
35
+
36
+ - `src/runtime/async-runner.ts:224-235` — `runnerPath` now uses `packageRoot()` (1 import added at line 11).
37
+ - `src/runtime/task-runner/state-helpers.ts:1-2, 57-69, 121-127` — wire `saveRunTasksCoalesced` + `flushPendingAtomicWrites` guard.
38
+ - `src/state/state-store.ts:425-434` — export `saveRunTasksCoalesced` (was local), update doc comment.
39
+ - `src/config/config.ts:69-166, 1077-1100` — new cache module + cache-aware `loadConfig`.
40
+ - `test/unit/config-cache.test.ts` (new, 242 lines, 7 tests).
41
+ - `docs/migration/atomic-write-v2-migration.md` (new, 297 lines) — migration plan + decision.
42
+ - `docs/perf/performance-review-2026-07.md` — verification report (added in v0.9.18 cycle).
43
+ - 31 files via biome auto-fix (`style: biome auto-fixes` commit `299338e`) — import-sort + minor semantic.
44
+
45
+ ### Migration notes
46
+
47
+ - No public-API breaking changes. Existing workflows and configs continue to work without modification.
48
+ - The `loadConfig` cache is transparent — first call hits disk, subsequent calls within 2s return cached value. To force a refresh (e.g. after a config edit), call `invalidateConfigCache()` from a custom integration or just wait 2s.
49
+ - The `saveRunTasksCoalesced` swap is checkpoint-only; terminal writes remain fully durable. If a process crashes mid-50ms-buffer, the last checkpoint may be lost but the on-disk `manifest.json` + `tasks.json` source of truth is preserved.
50
+ - The atomic-write-v2 migration plan describes a 3-phase rollout behind `PI_CREW_ATOMIC_WRITER=v1|v2` flag (default v1 until Phase 2). Users on critical/durability-sensitive deployments can opt into v2 after Phase 1 stabilizes.
51
+
3
52
  ## [v0.9.17] — coalesced micro-tasks (M6) ships + closeout race fix (2026-07-02)
4
53
 
5
54
  Two end-to-end correctness fixes for the M6 real-dispatch path + one workload-sizing refinement, plus a startup-latency fix discovered during user testing.
@@ -6119,7 +6119,7 @@
6119
6119
  "format": "esm"
6120
6120
  },
6121
6121
  "src/state/atomic-write.ts": {
6122
- "bytes": 27629,
6122
+ "bytes": 27623,
6123
6123
  "imports": [
6124
6124
  {
6125
6125
  "path": "node:crypto",
@@ -6232,7 +6232,7 @@
6232
6232
  "format": "esm"
6233
6233
  },
6234
6234
  "src/config/config.ts": {
6235
- "bytes": 43977,
6235
+ "bytes": 49215,
6236
6236
  "imports": [
6237
6237
  {
6238
6238
  "path": "node:fs",
@@ -6443,7 +6443,7 @@
6443
6443
  "format": "esm"
6444
6444
  },
6445
6445
  "src/utils/safe-paths.ts": {
6446
- "bytes": 17496,
6446
+ "bytes": 17260,
6447
6447
  "imports": [
6448
6448
  {
6449
6449
  "path": "node:fs",
@@ -6562,7 +6562,7 @@
6562
6562
  "format": "esm"
6563
6563
  },
6564
6564
  "src/state/state-store.ts": {
6565
- "bytes": 34202,
6565
+ "bytes": 34567,
6566
6566
  "imports": [
6567
6567
  {
6568
6568
  "path": "node:fs",
@@ -7341,7 +7341,7 @@
7341
7341
  "format": "esm"
7342
7342
  },
7343
7343
  "src/runtime/child-pi.ts": {
7344
- "bytes": 61941,
7344
+ "bytes": 61943,
7345
7345
  "imports": [
7346
7346
  {
7347
7347
  "path": "node:child_process",
@@ -10449,19 +10449,8 @@
10449
10449
  "format": "esm"
10450
10450
  },
10451
10451
  "src/runtime/mcp-proxy.ts": {
10452
- "bytes": 4219,
10453
- "imports": [
10454
- {
10455
- "path": "@earendil-works/pi-coding-agent",
10456
- "kind": "import-statement",
10457
- "external": true
10458
- },
10459
- {
10460
- "path": "@sinclair/typebox",
10461
- "kind": "import-statement",
10462
- "external": true
10463
- }
10464
- ],
10452
+ "bytes": 4214,
10453
+ "imports": [],
10465
10454
  "format": "esm"
10466
10455
  },
10467
10456
  "src/runtime/model-resolver.ts": {
@@ -12427,7 +12416,7 @@
12427
12416
  "format": "esm"
12428
12417
  },
12429
12418
  "src/extension/team-onboard.ts": {
12430
- "bytes": 5136,
12419
+ "bytes": 5120,
12431
12420
  "imports": [
12432
12421
  {
12433
12422
  "path": "node:fs",
@@ -12458,7 +12447,7 @@
12458
12447
  "format": "esm"
12459
12448
  },
12460
12449
  "src/extension/team-tool/anchor.ts": {
12461
- "bytes": 5655,
12450
+ "bytes": 5660,
12462
12451
  "imports": [
12463
12452
  {
12464
12453
  "path": "src/runtime/anchor-manager.ts",
@@ -12479,7 +12468,7 @@
12479
12468
  "format": "esm"
12480
12469
  },
12481
12470
  "src/extension/team-tool/auto-summarize.ts": {
12482
- "bytes": 4516,
12471
+ "bytes": 4521,
12483
12472
  "imports": [
12484
12473
  {
12485
12474
  "path": "src/runtime/auto-summarize.ts",
@@ -12783,7 +12772,7 @@
12783
12772
  "format": "esm"
12784
12773
  },
12785
12774
  "src/runtime/verification-integrity.ts": {
12786
- "bytes": 3921,
12775
+ "bytes": 3852,
12787
12776
  "imports": [
12788
12777
  {
12789
12778
  "path": "node:crypto",
@@ -12835,7 +12824,7 @@
12835
12824
  "format": "esm"
12836
12825
  },
12837
12826
  "src/runtime/async-runner.ts": {
12838
- "bytes": 13888,
12827
+ "bytes": 14599,
12839
12828
  "imports": [
12840
12829
  {
12841
12830
  "path": "node:child_process",
@@ -12882,6 +12871,11 @@
12882
12871
  "kind": "import-statement",
12883
12872
  "original": "../utils/internal-error.ts"
12884
12873
  },
12874
+ {
12875
+ "path": "src/utils/paths.ts",
12876
+ "kind": "import-statement",
12877
+ "original": "../utils/paths.ts"
12878
+ },
12885
12879
  {
12886
12880
  "path": "src/runtime/orphan-worker-registry.ts",
12887
12881
  "kind": "import-statement",
@@ -13505,7 +13499,7 @@
13505
13499
  "format": "esm"
13506
13500
  },
13507
13501
  "src/ui/tool-renderers/index.ts": {
13508
- "bytes": 28404,
13502
+ "bytes": 28409,
13509
13503
  "imports": [
13510
13504
  {
13511
13505
  "path": "@earendil-works/pi-tui",
@@ -14093,11 +14087,6 @@
14093
14087
  ],
14094
14088
  "format": "esm"
14095
14089
  },
14096
- "src/runtime/team-runner-artifacts.ts": {
14097
- "bytes": 550,
14098
- "imports": [],
14099
- "format": "esm"
14100
- },
14101
14090
  "src/runtime/coalesce-tasks.ts": {
14102
14091
  "bytes": 11044,
14103
14092
  "imports": [
@@ -14109,88 +14098,6 @@
14109
14098
  ],
14110
14099
  "format": "esm"
14111
14100
  },
14112
- "src/runtime/task-runner/output-splitter.ts": {
14113
- "bytes": 5912,
14114
- "imports": [],
14115
- "format": "esm"
14116
- },
14117
- "src/runtime/workspace-tree.ts": {
14118
- "bytes": 10201,
14119
- "imports": [
14120
- {
14121
- "path": "node:fs/promises",
14122
- "kind": "import-statement",
14123
- "external": true
14124
- },
14125
- {
14126
- "path": "node:path",
14127
- "kind": "import-statement",
14128
- "external": true
14129
- }
14130
- ],
14131
- "format": "esm"
14132
- },
14133
- "src/runtime/run-coalesced-task-group.ts": {
14134
- "bytes": 9226,
14135
- "imports": [
14136
- {
14137
- "path": "node:fs/promises",
14138
- "kind": "import-statement",
14139
- "external": true
14140
- },
14141
- {
14142
- "path": "node:path",
14143
- "kind": "import-statement",
14144
- "external": true
14145
- },
14146
- {
14147
- "path": "src/runtime/role-permission.ts",
14148
- "kind": "import-statement",
14149
- "original": "./role-permission.ts"
14150
- },
14151
- {
14152
- "path": "src/runtime/child-pi.ts",
14153
- "kind": "import-statement",
14154
- "original": "./child-pi.ts"
14155
- },
14156
- {
14157
- "path": "src/runtime/task-runner/output-splitter.ts",
14158
- "kind": "import-statement",
14159
- "original": "./task-runner/output-splitter.ts"
14160
- },
14161
- {
14162
- "path": "src/runtime/workspace-tree.ts",
14163
- "kind": "import-statement",
14164
- "original": "./workspace-tree.ts"
14165
- },
14166
- {
14167
- "path": "src/state/state-store.ts",
14168
- "kind": "import-statement",
14169
- "original": "../state/state-store.ts"
14170
- },
14171
- {
14172
- "path": "src/state/artifact-store.ts",
14173
- "kind": "import-statement",
14174
- "original": "../state/artifact-store.ts"
14175
- },
14176
- {
14177
- "path": "src/state/event-log.ts",
14178
- "kind": "import-statement",
14179
- "original": "../state/event-log.ts"
14180
- },
14181
- {
14182
- "path": "src/runtime/worker-heartbeat.ts",
14183
- "kind": "import-statement",
14184
- "original": "./worker-heartbeat.ts"
14185
- },
14186
- {
14187
- "path": "src/runtime/team-runner-artifacts.ts",
14188
- "kind": "import-statement",
14189
- "original": "./team-runner-artifacts.ts"
14190
- }
14191
- ],
14192
- "format": "esm"
14193
- },
14194
14101
  "src/runtime/concurrency.ts": {
14195
14102
  "bytes": 2709,
14196
14103
  "imports": [
@@ -14342,6 +14249,93 @@
14342
14249
  ],
14343
14250
  "format": "esm"
14344
14251
  },
14252
+ "src/runtime/task-runner/output-splitter.ts": {
14253
+ "bytes": 5912,
14254
+ "imports": [],
14255
+ "format": "esm"
14256
+ },
14257
+ "src/runtime/team-runner-artifacts.ts": {
14258
+ "bytes": 550,
14259
+ "imports": [],
14260
+ "format": "esm"
14261
+ },
14262
+ "src/runtime/workspace-tree.ts": {
14263
+ "bytes": 10201,
14264
+ "imports": [
14265
+ {
14266
+ "path": "node:fs/promises",
14267
+ "kind": "import-statement",
14268
+ "external": true
14269
+ },
14270
+ {
14271
+ "path": "node:path",
14272
+ "kind": "import-statement",
14273
+ "external": true
14274
+ }
14275
+ ],
14276
+ "format": "esm"
14277
+ },
14278
+ "src/runtime/run-coalesced-task-group.ts": {
14279
+ "bytes": 9226,
14280
+ "imports": [
14281
+ {
14282
+ "path": "node:fs/promises",
14283
+ "kind": "import-statement",
14284
+ "external": true
14285
+ },
14286
+ {
14287
+ "path": "node:path",
14288
+ "kind": "import-statement",
14289
+ "external": true
14290
+ },
14291
+ {
14292
+ "path": "src/state/artifact-store.ts",
14293
+ "kind": "import-statement",
14294
+ "original": "../state/artifact-store.ts"
14295
+ },
14296
+ {
14297
+ "path": "src/state/event-log.ts",
14298
+ "kind": "import-statement",
14299
+ "original": "../state/event-log.ts"
14300
+ },
14301
+ {
14302
+ "path": "src/state/state-store.ts",
14303
+ "kind": "import-statement",
14304
+ "original": "../state/state-store.ts"
14305
+ },
14306
+ {
14307
+ "path": "src/runtime/child-pi.ts",
14308
+ "kind": "import-statement",
14309
+ "original": "./child-pi.ts"
14310
+ },
14311
+ {
14312
+ "path": "src/runtime/role-permission.ts",
14313
+ "kind": "import-statement",
14314
+ "original": "./role-permission.ts"
14315
+ },
14316
+ {
14317
+ "path": "src/runtime/task-runner/output-splitter.ts",
14318
+ "kind": "import-statement",
14319
+ "original": "./task-runner/output-splitter.ts"
14320
+ },
14321
+ {
14322
+ "path": "src/runtime/team-runner-artifacts.ts",
14323
+ "kind": "import-statement",
14324
+ "original": "./team-runner-artifacts.ts"
14325
+ },
14326
+ {
14327
+ "path": "src/runtime/worker-heartbeat.ts",
14328
+ "kind": "import-statement",
14329
+ "original": "./worker-heartbeat.ts"
14330
+ },
14331
+ {
14332
+ "path": "src/runtime/workspace-tree.ts",
14333
+ "kind": "import-statement",
14334
+ "original": "./workspace-tree.ts"
14335
+ }
14336
+ ],
14337
+ "format": "esm"
14338
+ },
14345
14339
  "src/runtime/runtime-policy.ts": {
14346
14340
  "bytes": 1637,
14347
14341
  "imports": [
@@ -14478,7 +14472,7 @@
14478
14472
  "format": "esm"
14479
14473
  },
14480
14474
  "src/runtime/task-id.ts": {
14481
- "bytes": 5801,
14475
+ "bytes": 5793,
14482
14476
  "imports": [
14483
14477
  {
14484
14478
  "path": "node:crypto",
@@ -14646,13 +14640,18 @@
14646
14640
  "format": "esm"
14647
14641
  },
14648
14642
  "src/runtime/task-runner/state-helpers.ts": {
14649
- "bytes": 4925,
14643
+ "bytes": 5872,
14650
14644
  "imports": [
14651
14645
  {
14652
14646
  "path": "node:fs",
14653
14647
  "kind": "import-statement",
14654
14648
  "external": true
14655
14649
  },
14650
+ {
14651
+ "path": "src/state/atomic-write.ts",
14652
+ "kind": "import-statement",
14653
+ "original": "../../state/atomic-write.ts"
14654
+ },
14656
14655
  {
14657
14656
  "path": "src/state/locks.ts",
14658
14657
  "kind": "import-statement",
@@ -15176,11 +15175,6 @@
15176
15175
  "kind": "import-statement",
15177
15176
  "original": "../worktree/branch-freshness.ts"
15178
15177
  },
15179
- {
15180
- "path": "src/runtime/team-runner-artifacts.ts",
15181
- "kind": "import-statement",
15182
- "original": "./team-runner-artifacts.ts"
15183
- },
15184
15178
  {
15185
15179
  "path": "src/runtime/cancellation.ts",
15186
15180
  "kind": "import-statement",
@@ -15191,11 +15185,6 @@
15191
15185
  "kind": "import-statement",
15192
15186
  "original": "./coalesce-tasks.ts"
15193
15187
  },
15194
- {
15195
- "path": "src/runtime/run-coalesced-task-group.ts",
15196
- "kind": "import-statement",
15197
- "original": "./run-coalesced-task-group.ts"
15198
- },
15199
15188
  {
15200
15189
  "path": "src/runtime/concurrency.ts",
15201
15190
  "kind": "import-statement",
@@ -15266,6 +15255,11 @@
15266
15255
  "kind": "import-statement",
15267
15256
  "original": "./role-permission.ts"
15268
15257
  },
15258
+ {
15259
+ "path": "src/runtime/run-coalesced-task-group.ts",
15260
+ "kind": "import-statement",
15261
+ "original": "./run-coalesced-task-group.ts"
15262
+ },
15269
15263
  {
15270
15264
  "path": "src/runtime/run-tracker.ts",
15271
15265
  "kind": "import-statement",
@@ -15301,6 +15295,11 @@
15301
15295
  "kind": "import-statement",
15302
15296
  "original": "./task-runner.ts"
15303
15297
  },
15298
+ {
15299
+ "path": "src/runtime/team-runner-artifacts.ts",
15300
+ "kind": "import-statement",
15301
+ "original": "./team-runner-artifacts.ts"
15302
+ },
15304
15303
  {
15305
15304
  "path": "src/runtime/usage-tracker.ts",
15306
15305
  "kind": "import-statement",
@@ -15616,7 +15615,7 @@
15616
15615
  "format": "esm"
15617
15616
  },
15618
15617
  "src/runtime/result-extractor.ts": {
15619
- "bytes": 7082,
15618
+ "bytes": 6991,
15620
15619
  "imports": [
15621
15620
  {
15622
15621
  "path": "node_modules/@sinclair/typebox/build/esm/value/index.mjs",
@@ -15632,7 +15631,7 @@
15632
15631
  "format": "esm"
15633
15632
  },
15634
15633
  "src/runtime/dynamic-workflow-context.ts": {
15635
- "bytes": 40910,
15634
+ "bytes": 40912,
15636
15635
  "imports": [
15637
15636
  {
15638
15637
  "path": "node:crypto",
@@ -17987,11 +17986,6 @@
17987
17986
  "kind": "import-statement",
17988
17987
  "original": "./message-renderers.ts"
17989
17988
  },
17990
- {
17991
- "path": "./notification-router.ts",
17992
- "kind": "import-statement",
17993
- "external": true
17994
- },
17995
17989
  {
17996
17990
  "path": "src/extension/registration/artifact-cleanup.ts",
17997
17991
  "kind": "import-statement",
@@ -18167,7 +18161,7 @@
18167
18161
  "imports": [],
18168
18162
  "exports": [],
18169
18163
  "inputs": {},
18170
- "bytes": 6411752
18164
+ "bytes": 6421066
18171
18165
  },
18172
18166
  "dist/index.mjs": {
18173
18167
  "imports": [
@@ -19162,22 +19156,22 @@
19162
19156
  "external": true
19163
19157
  },
19164
19158
  {
19165
- "path": "node:fs/promises",
19159
+ "path": "node:child_process",
19166
19160
  "kind": "import-statement",
19167
19161
  "external": true
19168
19162
  },
19169
19163
  {
19170
- "path": "node:path",
19164
+ "path": "node:fs",
19171
19165
  "kind": "import-statement",
19172
19166
  "external": true
19173
19167
  },
19174
19168
  {
19175
- "path": "node:child_process",
19169
+ "path": "node:path",
19176
19170
  "kind": "import-statement",
19177
19171
  "external": true
19178
19172
  },
19179
19173
  {
19180
- "path": "node:fs",
19174
+ "path": "node:fs/promises",
19181
19175
  "kind": "import-statement",
19182
19176
  "external": true
19183
19177
  },
@@ -20317,7 +20311,7 @@
20317
20311
  "bytesInOutput": 5243
20318
20312
  },
20319
20313
  "src/state/atomic-write.ts": {
20320
- "bytesInOutput": 15545
20314
+ "bytesInOutput": 15539
20321
20315
  },
20322
20316
  "src/config/defaults.ts": {
20323
20317
  "bytesInOutput": 4396
@@ -20332,7 +20326,7 @@
20332
20326
  "bytesInOutput": 1330
20333
20327
  },
20334
20328
  "src/config/config.ts": {
20335
- "bytesInOutput": 35555
20329
+ "bytesInOutput": 38804
20336
20330
  },
20337
20331
  "src/errors.ts": {
20338
20332
  "bytesInOutput": 8094
@@ -20356,7 +20350,7 @@
20356
20350
  "bytesInOutput": 4422
20357
20351
  },
20358
20352
  "src/utils/safe-paths.ts": {
20359
- "bytesInOutput": 8540
20353
+ "bytesInOutput": 8526
20360
20354
  },
20361
20355
  "src/utils/scan-cache.ts": {
20362
20356
  "bytesInOutput": 3769
@@ -20377,7 +20371,7 @@
20377
20371
  "bytesInOutput": 1785
20378
20372
  },
20379
20373
  "src/state/state-store.ts": {
20380
- "bytesInOutput": 18223
20374
+ "bytesInOutput": 18501
20381
20375
  },
20382
20376
  "src/utils/file-coalescer.ts": {
20383
20377
  "bytesInOutput": 1204
@@ -20488,7 +20482,7 @@
20488
20482
  "bytesInOutput": 1642
20489
20483
  },
20490
20484
  "src/runtime/child-pi.ts": {
20491
- "bytesInOutput": 43953
20485
+ "bytesInOutput": 43955
20492
20486
  },
20493
20487
  "src/runtime/heartbeat-gradient.ts": {
20494
20488
  "bytesInOutput": 953
@@ -21181,7 +21175,7 @@
21181
21175
  "bytesInOutput": 1564
21182
21176
  },
21183
21177
  "src/extension/team-onboard.ts": {
21184
- "bytesInOutput": 4513
21178
+ "bytesInOutput": 4497
21185
21179
  },
21186
21180
  "src/runtime/anchor-manager.ts": {
21187
21181
  "bytesInOutput": 11040
@@ -21220,13 +21214,13 @@
21220
21214
  "bytesInOutput": 6961
21221
21215
  },
21222
21216
  "src/runtime/verification-integrity.ts": {
21223
- "bytesInOutput": 916
21217
+ "bytesInOutput": 900
21224
21218
  },
21225
21219
  "src/runtime/workspace-lock.ts": {
21226
21220
  "bytesInOutput": 2699
21227
21221
  },
21228
21222
  "src/runtime/async-runner.ts": {
21229
- "bytesInOutput": 8929
21223
+ "bytesInOutput": 8931
21230
21224
  },
21231
21225
  "src/subagents/async-entry.ts": {
21232
21226
  "bytesInOutput": 119
@@ -21369,21 +21363,9 @@
21369
21363
  "src/worktree/branch-freshness.ts": {
21370
21364
  "bytesInOutput": 2373
21371
21365
  },
21372
- "src/runtime/team-runner-artifacts.ts": {
21373
- "bytesInOutput": 279
21374
- },
21375
21366
  "src/runtime/coalesce-tasks.ts": {
21376
21367
  "bytesInOutput": 4350
21377
21368
  },
21378
- "src/runtime/task-runner/output-splitter.ts": {
21379
- "bytesInOutput": 3242
21380
- },
21381
- "src/runtime/workspace-tree.ts": {
21382
- "bytesInOutput": 7286
21383
- },
21384
- "src/runtime/run-coalesced-task-group.ts": {
21385
- "bytesInOutput": 6313
21386
- },
21387
21369
  "src/runtime/concurrency.ts": {
21388
21370
  "bytesInOutput": 2156
21389
21371
  },
@@ -21414,6 +21396,18 @@
21414
21396
  "src/runtime/retry-executor.ts": {
21415
21397
  "bytesInOutput": 2406
21416
21398
  },
21399
+ "src/runtime/task-runner/output-splitter.ts": {
21400
+ "bytesInOutput": 3242
21401
+ },
21402
+ "src/runtime/team-runner-artifacts.ts": {
21403
+ "bytesInOutput": 279
21404
+ },
21405
+ "src/runtime/workspace-tree.ts": {
21406
+ "bytesInOutput": 7286
21407
+ },
21408
+ "src/runtime/run-coalesced-task-group.ts": {
21409
+ "bytesInOutput": 6313
21410
+ },
21417
21411
  "src/runtime/runtime-policy.ts": {
21418
21412
  "bytesInOutput": 575
21419
21413
  },
@@ -21442,7 +21436,7 @@
21442
21436
  "bytesInOutput": 1482
21443
21437
  },
21444
21438
  "src/runtime/task-id.ts": {
21445
- "bytesInOutput": 1382
21439
+ "bytesInOutput": 1374
21446
21440
  },
21447
21441
  "src/runtime/task-packet.ts": {
21448
21442
  "bytesInOutput": 3564
@@ -21475,7 +21469,7 @@
21475
21469
  "bytesInOutput": 767
21476
21470
  },
21477
21471
  "src/runtime/task-runner/state-helpers.ts": {
21478
- "bytesInOutput": 3106
21472
+ "bytesInOutput": 3125
21479
21473
  },
21480
21474
  "src/runtime/task-runner/tail-read.ts": {
21481
21475
  "bytesInOutput": 762
@@ -21553,13 +21547,13 @@
21553
21547
  "bytesInOutput": 1927
21554
21548
  },
21555
21549
  "src/runtime/result-extractor.ts": {
21556
- "bytesInOutput": 4266
21550
+ "bytesInOutput": 4250
21557
21551
  },
21558
21552
  "src/runtime/semaphore.ts": {
21559
21553
  "bytesInOutput": 1460
21560
21554
  },
21561
21555
  "src/runtime/dynamic-workflow-context.ts": {
21562
- "bytesInOutput": 20183
21556
+ "bytesInOutput": 20185
21563
21557
  },
21564
21558
  "src/runtime/dynamic-workflow-runner.ts": {
21565
21559
  "bytesInOutput": 6259
@@ -21784,7 +21778,7 @@
21784
21778
  "bytesInOutput": 81
21785
21779
  }
21786
21780
  },
21787
- "bytes": 3076796
21781
+ "bytes": 3080272
21788
21782
  }
21789
21783
  }
21790
21784
  }