pi-crew 0.11.8 → 0.11.10
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 +94 -0
- package/dist/index.mjs +466 -466
- package/docs/usage.md +1 -1
- package/install.mjs +4 -1
- package/package.json +1 -1
- package/skills/real-test-pi-crew/SKILL.md +26 -0
- package/src/config/defaults.ts +8 -1
- package/src/extension/command-completions.ts +44 -22
- package/src/extension/registration/commands/shared.ts +4 -14
- package/src/extension/registration/render-loop.ts +51 -21
- package/src/extension/registration/viewers.ts +25 -1
- package/src/extension/team-tool/handle-settings.ts +4 -1
- package/src/ui/dashboard-panes/agents-pane.ts +3 -2
- package/src/ui/dashboard-panes/health-pane.ts +6 -1
- package/src/ui/dashboard-panes/mailbox-pane.ts +12 -7
- package/src/ui/dashboard-panes/plan-pane.ts +5 -2
- package/src/ui/dashboard-panes/progress-pane.ts +8 -2
- package/src/ui/live-conversation-overlay.ts +5 -3
- package/src/ui/live-duration.ts +5 -4
- package/src/ui/live-run-sidebar.ts +90 -20
- package/src/ui/overlays/mailbox-compose-overlay.ts +17 -1
- package/src/ui/run-action-dispatcher.ts +2 -1
- package/src/ui/run-dashboard.ts +62 -22
- package/src/ui/run-snapshot-cache.ts +32 -0
- package/src/ui/settings-overlay.ts +26 -2
- package/src/ui/tool-renderers/brief-mode.ts +2 -2
- package/src/ui/transcript-viewer.ts +4 -1
- package/src/ui/widget/index.ts +10 -2
- package/src/ui/widget/task-list.ts +12 -4
- package/src/ui/widget/widget-model.ts +5 -4
- package/src/ui/widget/widget-renderer.ts +164 -38
- package/src/utils/socket-path.ts +48 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,99 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.11.10] — F1: `V` live-conversation dead-end replaced with runtime-aware notice (2026-10-08)
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **F1 (full-tier battery 2026-10-08)** — `V` (live conversation) ended in
|
|
8
|
+
"No live agent found for this run." on **every** child-process/scaffold run
|
|
9
|
+
(i.e. the default runtime — the in-process live-agent registry is only ever
|
|
10
|
+
populated by the ADR-frozen live-session runtime). `openLiveConversation` now
|
|
11
|
+
reads `manifest.runtimeResolution.kind` when no live agent matches and answers
|
|
12
|
+
with an actionable notice instead: child-process/scaffold runs are pointed at
|
|
13
|
+
the transcript viewer (`v` from the dashboard / `/team-transcript` — streaming
|
|
14
|
+
from disk, works live); live-session and legacy manifests keep the classic
|
|
15
|
+
message. Contract change: the return flag now means handled vs
|
|
16
|
+
cancelled/headless — the shared.ts fall-through notification (which also fired
|
|
17
|
+
spuriously on picker-cancel) is gone. Agents-browser live section unchanged
|
|
18
|
+
(honest empty list, not a dead end). Pins: 5 new tests in
|
|
19
|
+
`viewers-live-conversation.test.ts` (kind-routed notices, legacy manifest,
|
|
20
|
+
headless silent-false).
|
|
21
|
+
|
|
22
|
+
## [0.11.9] — F-BAT1: broker socket dir dodges /tmp pi-crew-* sweeps + stale-probe race (2026-10-08)
|
|
23
|
+
|
|
24
|
+
Live-caught by the full-tier battery (T9b-W): worker coordination (`ask`/`message`/`delegate`)
|
|
25
|
+
returned ENOENT in BOTH sync and async runs while the runs stayed green (graceful degrade —
|
|
26
|
+
the exact silent-failure class the battery exists to catch).
|
|
27
|
+
|
|
28
|
+
Two stacked root causes:
|
|
29
|
+
|
|
30
|
+
1. **Namespace collision** — with `XDG_RUNTIME_DIR` absent (sessions launched from
|
|
31
|
+
non-login envs), the broker's per-user dir fell back to `/tmp/pi-crew-<uid>`, which
|
|
32
|
+
THREE /tmp workspace sweeps (`cleanupLegacyOrphanTempDirs`, the orphan temp
|
|
33
|
+
reconciler, the health zombie scan) pattern-match as `pi-crew-*` debris and `rmSync`
|
|
34
|
+
— deleting the LIVE broker socket dir. Sessions with XDG_RUNTIME_DIR were
|
|
35
|
+
unaffected (/run/user is never swept), which is why this only bit some launches.
|
|
36
|
+
Fix: the no-XDG fallback now uses `.pi-crew-broker-<uid>` (dot-prefixed — no sweep
|
|
37
|
+
matches). XDG path unchanged.
|
|
38
|
+
2. **Stale-probe race** — `removeStaleBrokerSocket` treated a connect TIMEOUT as
|
|
39
|
+
"stale" and unlinked a HEALTHY (slow-to-accept) broker socket. Only a definitive
|
|
40
|
+
`ECONNREFUSED` (kernel rejects connect on a listener-less socket) may ever unlink.
|
|
41
|
+
|
|
42
|
+
Cross-platform hardening (CI 2026-10-08, macOS catch): a NON-SOCKET entry at the
|
|
43
|
+
socket path (the classic leftover corpse) is now removed deterministically via
|
|
44
|
+
`lstat` — no connect probe — because connect() to a non-socket path is undefined
|
|
45
|
+
across kernels (Linux yields ECONNREFUSED, macOS a different errno). Sockets keep
|
|
46
|
+
the probe path: ECONNREFUSED → remove, timeout/other → keep.
|
|
47
|
+
|
|
48
|
+
Live re-verified end-to-end on the fixed bundle: socket binds at
|
|
49
|
+
`/tmp/.pi-crew-broker-1000/`, `ask` round-trip delivers the leader reply through
|
|
50
|
+
dependency-context (worker quotes it verbatim), `message` notify delivered, socket
|
|
51
|
+
survives the whole run. Pin suite `socket-path-fbat1.test.ts` (6 tests,
|
|
52
|
+
mutation-checked both halves; single mutations are neutralized by the paired guard —
|
|
53
|
+
defense-in-depth by design).
|
|
54
|
+
|
|
55
|
+
## [0.11.9] — UI instability fix wave L1–L9 (2026-10-07)
|
|
56
|
+
|
|
57
|
+
Live-battery-driven fixes from the 2026-10-07 UI review
|
|
58
|
+
(docs/real-test/reports/real-test-2026-10-07-ui-instability-review.md +
|
|
59
|
+
real-test-2026-10-07-ui-fix-wave.md — 4 real runs, 308 live frames, T1/T5/T13 gates,
|
|
60
|
+
5/5 mutation-verified pins).
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- **L1 — crew dock renders in every session (HIGH)**: `activeWidgetRuns()` no longer filters
|
|
65
|
+
runs by `ownerSessionId` — bystander terminals now see active runs owned by other sessions
|
|
66
|
+
(live evidence: 308 frames across 3 async runs + 1 headless run rendered 0 docks; widget of
|
|
67
|
+
another extension updated fine in the same session). Crash-recovery scoping unchanged.
|
|
68
|
+
- **L2 — no more flicker around run completion (HIGH-MED)**: the render-loop health gates
|
|
69
|
+
(GATE 1 / FIX#1 / GATE 3) now rebuild snapshots in place (`scheduleRefresh`) instead of
|
|
70
|
+
hard-deleting cache entries — restoring the FLICKER FIX invariant the gates had been
|
|
71
|
+
violating on every tick for terminal/divergent runs.
|
|
72
|
+
- **L3 — dashboard defaults to the right-anchored panel**: `ui.dashboardPlacement` default
|
|
73
|
+
`"center"` → `"right"` (mirrors updated in install.mjs + both EFFECTIVE_DEFAULTS maps). The
|
|
74
|
+
centered 90% overlay exposed chopped background words at both margins on every width probed
|
|
75
|
+
(160/100/80) — pi-tui keeps base content visible outside overlay bounds by design.
|
|
76
|
+
- **L4 — sidebar auto-close deadline no longer slides**: the deadline is captured on first
|
|
77
|
+
eligibility and re-armed only when the run leaves terminal state; the "auto-close in 3s…"
|
|
78
|
+
countdown now reflects a fixed deadline instead of being reset by every re-render.
|
|
79
|
+
- **L6 — sidebar height locked** (dashboard `targetHeight()` pattern): loading → loaded →
|
|
80
|
+
shrunk frames share one height, killing ghost `┃` rows.
|
|
81
|
+
- **L5 — sync snapshot rebuild off the paint path**: new `readForRender()` cached-only accessor
|
|
82
|
+
+ coalesced async refresh for render(); keypress paths with sync read-after-write keep
|
|
83
|
+
`refreshIfStale` (Tier 11a read-your-writes preserved).
|
|
84
|
+
|
|
85
|
+
### Changed
|
|
86
|
+
|
|
87
|
+
- **L7 — TUI dialect sweep**: dashboard agent preview + mailbox pane now use `↑/↓` compact
|
|
88
|
+
usage instead of `tok=/in=/out=/model=/age=` wire format; live-conversation overlay uses
|
|
89
|
+
`formatDuration` (`5m44s`) instead of raw seconds; dead `formatLiveDuration` export removed.
|
|
90
|
+
- **L8 — `CURSOR_MARKER` defensive resolve** (settings overlay, mailbox compose): named import
|
|
91
|
+
replaced with the W4/G22 typeof-guard pattern — no ESM crash on hosts whose pi-tui lacks the
|
|
92
|
+
export.
|
|
93
|
+
- **L9 — dock truncation priority**: status pieces (`1 running`, `3/5 done`) are atomic — they
|
|
94
|
+
render whole or drop, never split mid-word (`1 runnin…` gone at 40 cols); meta pieces drop
|
|
95
|
+
first; plurals via `formatCount` across dashboard/panes/dispatcher.
|
|
96
|
+
|
|
3
97
|
## [0.11.8] — Pi 1.0.4 adoption + RPC/surface hardening + battery-proven stability (2026-10-07)
|
|
4
98
|
|
|
5
99
|
### Added — deep-learn polish batch (docs/reviews/pi-1.0.0-deep-learn-r3-2026-10-03.md R3 matrix)
|