pi-crew 0.11.46 → 0.11.48
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 +30 -0
- package/dist/index.mjs +479 -479
- package/package.json +1 -1
- package/src/config/env-vars.ts +1 -1
- package/src/prompt/surface-worker.ts +1 -1
- package/src/runtime/broker/crew-broker-child.ts +6 -3
- package/src/runtime/broker/crew-broker-delegate-request.ts +5 -5
- package/src/runtime/child-pi/child-pi-spawn.ts +21 -13
- package/src/runtime/live-session/live-session-prompt-models.ts +368 -0
- package/src/runtime/live-session/live-session-runtime.ts +19 -356
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.11.48] — HOTFIX: stdin broker-credential gate flipped OPT-IN — fixes silent worker death (2026-10-28)
|
|
4
|
+
|
|
5
|
+
**Fixed — v0.11.46/0.11.47 regression: every headless JSON worker on the default route exited 0 with zero stdout.**
|
|
6
|
+
The LOW-1 stdin handshake shipped in 0.11.46 with the gate default-ON. On real Pi hosts, the moment the worker-side
|
|
7
|
+
stdin reader activated (`startChildBrokerClientAsync` → `readStdinFirstLine`: env broker identity present, env token
|
|
8
|
+
absent, gate on — the default shape of every team-run worker), the whole `pi --mode json -p` process exited 0 silently
|
|
9
|
+
(~1.2s, 0 stdout bytes, retry ×3, run failed). CI never caught it: unit tests inject the `readStdinLine` seam and never
|
|
10
|
+
run `process.stdin` inside a real pi process; the live battery (real-test-pi-crew T7) caught it — which is also why this
|
|
11
|
+
release ships with that battery re-run green (3/3 tasks + `message` round-trip through the legacy env route).
|
|
12
|
+
|
|
13
|
+
`PI_CREW_BROKER_STDIN` is now **OPT-IN** (`"1"` enables the stdin route; unset/`0`/anything else keeps the legacy env
|
|
14
|
+
route on BOTH sides, bit-for-bit pre-0.11.46 behavior). The LOW-1 closure code (writer, reader, payload v2) stays for
|
|
15
|
+
re-enabling after the reader path is root-caused.
|
|
16
|
+
|
|
17
|
+
Also adds `test/integration/broker-stdin-reader-liveworker.test.ts` — a LIVE regression test that spawns a real `pi`
|
|
18
|
+
worker with the exact env shape that died and asserts non-zero stdout (skips where no `pi` binary exists, e.g. CI
|
|
19
|
+
containers that run the fake-pi fixtures), plus incidental biome fixes (`useImportType` ×5, `noUselessTernary`) in
|
|
20
|
+
crew-broker-delegate-request.ts / surface-worker.ts.
|
|
21
|
+
|
|
22
|
+
## [0.11.47] — live-session split: model/prompt clusters out of live-session-runtime.ts (2026-10-27)
|
|
23
|
+
|
|
24
|
+
**Changed — `live-session-runtime.ts` (1971 → 1634 lines).** The file sat 29 lines under the 2000-line wc-gate LIMIT,
|
|
25
|
+
blocking further live-session work. Pure move into `src/runtime/live-session/live-session-prompt-models.ts` (368
|
|
26
|
+
lines): `LiveSessionSpawnInput`, `LiveSessionLike`, `ROLE_INTENSITY` and 13 model-resolution/prompt-building helpers
|
|
27
|
+
(`resolveScopeModelsPatterns`, `resolveScopedSessionModels`, `resolveParentModelFromRegistry`, `liveSystemPrompt`,
|
|
28
|
+
`filterActiveTools`, …). Byte-identical audit PASS (336 moved lines, modulo added `export` keywords). Public surface
|
|
29
|
+
preserved via re-exports — zero test churn. `scripts/check-lazy-imports.mjs` budget 540 → 541 (new static node from
|
|
30
|
+
the split; zero new reachability). Gates: tsc/lint/wc-gate/lazy green, targeted unit 64/64, live-session-faux-e2e
|
|
31
|
+
4/4, test:critical green.
|
|
32
|
+
|
|
3
33
|
## [0.11.46] — broker hygiene: token off the child env (stdin handshake) + crew-broker split (2026-10-27)
|
|
4
34
|
|
|
5
35
|
Follow-up wave to the 0.11.45 security hardening: closes the LOW-1 residual (broker token in child env) and pays
|