pi-crew 0.11.0 → 0.11.2
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 +155 -9
- package/README.md +161 -1037
- package/agents/verifier.md +18 -7
- package/dist/index.mjs +744 -90644
- package/docs/README.md +57 -46
- package/docs/architecture.md +87 -33
- package/docs/commands-reference.md +9 -5
- package/docs/troubleshooting.md +3 -2
- package/package.json +1 -3
- package/schema.json +39 -0
- package/skills/real-test-pi-crew/REPORT-TEMPLATE.md +2 -0
- package/skills/real-test-pi-crew/SKILL.md +371 -34
- package/src/agents/agent-config.ts +1 -1
- package/src/agents/discover-agents.ts +1 -1
- package/src/config/config-validation.ts +15 -2
- package/src/config/config.ts +47 -13
- package/src/config/defaults.ts +0 -1
- package/src/config/env-vars.ts +35 -0
- package/src/config/types.ts +19 -5
- package/src/errors.ts +2 -2
- package/src/extension/async-notifier.ts +23 -0
- package/src/extension/crew-vibes/config.ts +0 -21
- package/src/extension/crew-vibes/index.ts +0 -2
- package/src/extension/crew-vibes/render.ts +1 -50
- package/src/extension/help.ts +21 -12
- package/src/extension/knowledge-injection.ts +2 -1
- package/src/extension/management.ts +8 -3
- package/src/extension/notification-sink.ts +17 -0
- package/src/extension/register.ts +7 -2
- package/src/extension/registration/command-utils.ts +28 -2
- package/src/extension/registration/commands/dashboard.ts +11 -1
- package/src/extension/registration/commands/manage.ts +36 -19
- package/src/extension/registration/commands/run.ts +24 -2
- package/src/extension/registration/commands/shared.ts +23 -1
- package/src/extension/registration/commands/status.ts +25 -2
- package/src/extension/registration/context-builder.ts +8 -2
- package/src/extension/registration/health-notify-policy.ts +100 -0
- package/src/extension/registration/lazy-configurers.ts +35 -0
- package/src/extension/registration/lifecycle-handlers.ts +91 -30
- package/src/extension/registration/lifecycle.ts +75 -10
- package/src/extension/registration/observability.ts +98 -35
- package/src/extension/registration/registration-types.ts +7 -5
- package/src/extension/registration/runtime-cleanup.ts +9 -3
- package/src/extension/registration/subagent-helpers.ts +38 -0
- package/src/extension/registration/subagent-tools.ts +16 -6
- package/src/extension/registration/team-tool.ts +10 -3
- package/src/extension/registration/terminal-status-wiring.ts +172 -0
- package/src/extension/registration/viewers.ts +6 -0
- package/src/extension/registration/wire-cross-extension.ts +28 -0
- package/src/extension/run-compare.ts +220 -0
- package/src/extension/run-export.ts +37 -5
- package/src/extension/run-maintenance.ts +155 -5
- package/src/extension/team-tool/dispatch/index.ts +3 -2
- package/src/extension/team-tool/dispatch/manage.ts +5 -2
- package/src/extension/team-tool/goal.ts +4 -1
- package/src/extension/team-tool/handle-settings.ts +33 -4
- package/src/extension/team-tool/health-monitor.ts +21 -7
- package/src/extension/team-tool/lifecycle-actions.ts +49 -1
- package/src/extension/team-tool/plan.ts +10 -0
- package/src/extension/team-tool/routing-hint.ts +63 -0
- package/src/extension/team-tool/status.ts +4 -0
- package/src/extension/team-tool.ts +52 -6
- package/src/extension/webhook-notify.ts +382 -0
- package/src/observability/metric-sink.ts +12 -2
- package/src/prompt/prompt-runtime.ts +82 -31
- package/src/prompt/worker-events-channel.ts +12 -0
- package/src/runtime/README.md +1 -1
- package/src/runtime/async-runner.ts +87 -1
- package/src/runtime/background-runner.ts +313 -234
- package/src/runtime/broker/crew-broker.ts +17 -11
- package/src/runtime/broker/delegate/shadow-lifecycle.ts +92 -0
- package/src/runtime/broker/wait-status-cache.ts +1 -1
- package/src/runtime/child-pi/child-pi-timers.ts +1 -1
- package/src/runtime/child-pi/mock-fixtures.ts +48 -0
- package/src/runtime/crew-agent-records.ts +337 -45
- package/src/runtime/deadletter.ts +43 -1
- package/src/runtime/delegate-spawn.ts +5 -1
- package/src/runtime/dispatch-batch.ts +72 -5
- package/src/runtime/goal-workflow/goal-loop-runner.ts +73 -4
- package/src/runtime/heartbeat/heartbeat-watcher.ts +7 -0
- package/src/runtime/model/model-fallback.ts +21 -1
- package/src/runtime/model/pi-args.ts +8 -10
- package/src/runtime/recovery/crash-recovery.ts +25 -1
- package/src/runtime/run-worker.ts +12 -1
- package/src/runtime/scheduling/global-worker-cap.ts +13 -6
- package/src/runtime/scheduling/run-coalesced-task-group.ts +27 -1
- package/src/runtime/scheduling/scheduler.ts +49 -13
- package/src/runtime/scheduling/semaphore.ts +148 -20
- package/src/runtime/scratchpad/README.md +1 -1
- package/src/runtime/scratchpad/protocol.ts +1 -1
- package/src/runtime/settings-store.ts +1 -1
- package/src/runtime/skill-instructions.ts +22 -0
- package/src/runtime/stale-reconciler.ts +85 -13
- package/src/runtime/task-display.ts +1 -1
- package/src/runtime/task-runner/pre-execution.ts +26 -2
- package/src/runtime/task-runner/prompt-builder.ts +142 -45
- package/src/runtime/task-runner.ts +21 -1
- package/src/runtime/team-runner.ts +38 -1
- package/src/runtime/workspace-lock.ts +4 -1
- package/src/schema/config-schema.ts +18 -0
- package/src/schema/team-tool-schema.ts +17 -0
- package/src/state/atomic-write.ts +53 -0
- package/src/state/contracts.ts +109 -0
- package/src/state/coordination/locks.ts +191 -33
- package/src/state/coordination/mailbox.ts +140 -15
- package/src/state/crew-init.ts +87 -12
- package/src/state/event-log/cursor.ts +37 -1
- package/src/state/event-log/event-log-rotation.ts +72 -7
- package/src/state/stores/active-run-registry.ts +13 -1
- package/src/state/stores/state-store.ts +112 -22
- package/src/state/types.ts +4 -0
- package/src/ui/adaptive-card.ts +65 -0
- package/src/ui/agents-jobs-browser.ts +70 -64
- package/src/ui/card-colors.ts +36 -7
- package/src/ui/dashboard-panes/agents-pane.ts +55 -14
- package/src/ui/dashboard-panes/cancellation-pane.ts +0 -42
- package/src/ui/dashboard-panes/health-pane.ts +7 -5
- package/src/ui/dashboard-panes/mailbox-pane.ts +22 -6
- package/src/ui/dashboard-panes/metrics-pane.ts +15 -7
- package/src/ui/dashboard-panes/pane-theme.ts +21 -0
- package/src/ui/dashboard-panes/plan-pane.ts +63 -30
- package/src/ui/dashboard-panes/progress-pane.ts +3 -2
- package/src/ui/dashboard-panes/schedules-pane.ts +44 -21
- package/src/ui/dashboard-panes/transcript-pane.ts +11 -5
- package/src/ui/dwf-phase-display.ts +3 -20
- package/src/ui/format-helpers.ts +22 -0
- package/src/ui/heartbeat-aggregator.ts +34 -0
- package/src/ui/inline-panel/crew-editor.ts +13 -3
- package/src/ui/inline-panel/index.ts +60 -4
- package/src/ui/keybinding-map.ts +251 -35
- package/src/ui/live-conversation-overlay.ts +180 -47
- package/src/ui/live-run-sidebar.ts +134 -55
- package/src/ui/mascot.ts +32 -16
- package/src/ui/overlays/agent-picker-overlay.ts +81 -26
- package/src/ui/overlays/confirm-overlay.ts +55 -29
- package/src/ui/overlays/help-overlay.ts +108 -53
- package/src/ui/overlays/mailbox-compose-overlay.ts +89 -50
- package/src/ui/overlays/mailbox-detail-overlay.ts +137 -57
- package/src/ui/powerbar-publisher.ts +0 -1
- package/src/ui/rail.ts +333 -0
- package/src/ui/run-dashboard.ts +193 -79
- package/src/ui/run-snapshot-cache.ts +18 -1
- package/src/ui/settings-overlay.ts +81 -39
- package/src/ui/spinner.ts +26 -2
- package/src/ui/terminal-status.ts +7 -1
- package/src/ui/theme-adapter.ts +0 -45
- package/src/ui/theme-discovery.ts +12 -6
- package/src/ui/tool-progress-formatter.ts +128 -9
- package/src/ui/tool-renderers/brief-mode.ts +10 -67
- package/src/ui/tool-renderers/index.ts +374 -523
- package/src/ui/transcript-viewer.ts +30 -12
- package/src/ui/widget/index.ts +32 -52
- package/src/ui/widget/task-list.ts +64 -32
- package/src/ui/widget/widget-formatters.ts +3 -402
- package/src/ui/widget/widget-model.ts +28 -7
- package/src/ui/widget/widget-renderer.ts +201 -128
- package/src/ui/widget/widget-types.ts +0 -2
- package/src/utils/incremental-reader.ts +11 -3
- package/src/utils/paths.ts +94 -12
- package/src/utils/project-markers.ts +40 -0
- package/src/utils/visual.ts +0 -4
- package/src/worktree/worktree-manager.ts +206 -26
- package/workflows/distill.workflow.md +3 -3
- package/workflows/fast-fix.workflow.md +1 -1
- package/workflows/plan-execute.workflow.md +1 -1
- package/workflows/review.workflow.md +1 -1
- package/workflows/strict-fast-fix.workflow.md +1 -1
- package/docs/migration-v0.4-v0.5.md +0 -208
- package/docs/runtime-flow.md +0 -148
- package/src/extension/crew-vibes/figures.ts +0 -22
- package/src/extension/crew-vibes/font-detect.ts +0 -71
- package/src/ui/dynamic-border.ts +0 -35
- package/src/ui/loaders.ts +0 -6
- package/src/ui/overlay-stack.ts +0 -148
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,153 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
## [0.11.2] — runtime hygiene, in-process async test seam, slash-command fixes (2026-09-26)
|
|
6
|
+
|
|
7
|
+
### runtime: ambient-noise + temp-workspace hygiene + in-process async test seam
|
|
8
|
+
|
|
9
|
+
- **Ambient notification false-positives (guest `gc-*` subagents)**: the heartbeat watcher and the UI heartbeat aggregator no longer treat delegate-owned guest tasks as worker heartbeats — guests have no heartbeat channel (their lifecycle is `delegate.requested/admitted/completed`); fires were observed 52ms after admit. Skipped at both independent layers (`heartbeat-watcher.ts`, `heartbeat-aggregator.ts`), each with a guard-test proving a genuinely-missing real worker is still flagged.
|
|
10
|
+
- **Temp-workspace hygiene** (live triage: health `running=144`, ~3.4k `pi-crew-*` tmpdirs, frozen reconciler): the orphan sweep batch now rotates statelessly (`floor(now/60s) % batches`) so an alphabetically-first stuck cluster can no longer starve the dirs behind it; abandoned `.cleanup-in-progress` sentinels older than 10 minutes are reclaimed; the test runner sweeps pre-existing `pi-crew-*` debris (mtime < suiteStart−30min) after every suite — one choke point covering ~320 mkdtemp-using test files (opt-out `PI_CREW_TEST_NO_TMP_SWEEP=1`).
|
|
11
|
+
- **In-process async test seam**: `PI_CREW_TEST_ASYNC_INLINE=1` + `PI_CREW_ALLOW_MOCK=1` (double gate; production sets neither) executes async runs in-process instead of spawning a detached background-runner — the run logic is now an exported `executeBackgroundRun()` core shared verbatim by the detached runner and the seam, and `main()` is entry-guarded (`PI_CREW_BACKGROUND_RUNNER_ENTRY` or argv entry check) so importing the module runs nothing. Kills the Windows Defender first-spawn stall (`subagent-tools-integration`: 5+min stall-prone → 14/14 in 37s) and the orphan-runner tmpdir leak (in-process runs die with the test process). See `docs/decisions/2026-09-26-inline-async-test-seam.md`.
|
|
12
|
+
|
|
13
|
+
### slash-commands usability fixes
|
|
14
|
+
|
|
15
|
+
- `/team-respond` now guards its arguments (`<runId> <taskId|--all> <message>`) with a usage message instead of surfacing an opaque tool error.
|
|
16
|
+
- `/team-goal` metadata is honest: description lists the real sub-actions (`cancel`, `reset`, default `status`) and first-argument completions suggest them.
|
|
17
|
+
- `/team-metrics` appends a hint when the snapshot is empty — naming observability as the likely cause and the `observability: true` enable path.
|
|
18
|
+
- `/team-dashboard` in a headless session now notifies that it needs a UI (suggesting `/team-status`) instead of silently doing nothing.
|
|
19
|
+
- Notification truncation is explicit: clipped output ends with `… [truncated]`, still capped at 800 chars; `/team-events` appends the on-disk events log path when truncated so the full log stays reachable.
|
|
20
|
+
- `/skill-create` resolution is ESM-safe (`import.meta.url` walk-up replacing `require.resolve`/`__dirname`) and works identically under strip-types and the bundle; missing/unknown template ids now list the available template ids.
|
|
21
|
+
- `/team-help` resynced to the real command surface (all 38 team commands + pointer to the 5 non-team commands).
|
|
22
|
+
- `docs/commands-reference.md` truth-synced: phantom `/team-cleanup` removed, `/team-respond`//`/team-follow-up`//`/team-invalidate` args fixed, `/team-vibes` reduced to its real `[on|off]` surface, `/schedules`//`/skill-list`//`/skill-create`//`/crew-brief`//`/team-cleanup-menu` documented — locked by a new docs↔code set-equality parity test.
|
|
23
|
+
- New handler tests: team-respond guard, team-goal metadata, command output hints (truncation/dashboard/metrics), skill-create ESM resolution, team-vibes (status/on/off/usage-error).
|
|
24
|
+
|
|
25
|
+
### docs: lean docs tree
|
|
26
|
+
|
|
27
|
+
- README rewritten as a lean landing page (1099 → 206 lines): the changelog-duplicate section, full config dump, and action/command tables are replaced by links to their single sources; stale claims corrected (55 actions, 18 agents). The "⚠️ IMPORTANT — Read before using" warning is restored as a compact callout (same honest framing, details delegated to trust-model/security-issues/limitations).
|
|
28
|
+
- Dated point-in-time docs (audits, plans, fix specs, roadmaps, migration guides) moved to `docs/archive/`; perf analyses to `docs/perf/`; `docs/README.md` rebuilt as a three-group index (Start here / Reference / Records).
|
|
29
|
+
- `runtime-flow.md` folded into `architecture.md` ("Runtime flow"); the stale `v0.10.3` version header dropped.
|
|
30
|
+
- Error-code range corrected to E001–E013 everywhere (E013 `ModelOutOfScope` shipped undocumented).
|
|
31
|
+
- Cross-references updated repo-wide (docs, src/test comments, runtime warning string, tarball whitelist); `migration-v0.4-v0.5.md` and `runtime-flow.md` dropped from the npm file whitelist.
|
|
32
|
+
|
|
3
33
|
> **Note:** `atomic-write-v2.ts` / `AtomicWriter` mentioned in historical entries below was consolidated into `atomic-write.ts` as of v0.9.42. This changelog is preserved as historical record — the migration was completed (the v2 class was never adopted; v1 won on simplicity + symlink-safety + link+unlink atomicity). See `docs/migration/atomic-write-v2-migration.md` for the decision rationale.
|
|
4
34
|
|
|
35
|
+
## [0.11.1] — RAIL: one UI design language for every surface + UI-audit fixes (2026-09-16)
|
|
36
|
+
|
|
37
|
+
### feat(ui): RAIL — a single visual language for the whole product
|
|
38
|
+
|
|
39
|
+
- **New shared design system.** `src/ui/rail.ts` owns every glyph and helper —
|
|
40
|
+
rail `┏ ┣ ┃ ┗`, the `NAME ▸ SUBJECT` canopy, dot leaders `······`, the
|
|
41
|
+
eighth-block gauge `▕████▎░░▏`, status slot/badge/icon maps, `overflowHint`,
|
|
42
|
+
`formatHint`/`keyToken`, `CURSOR`/`ACTIVE` — and `docs/UI-DESIGN-SYSTEM.md`
|
|
43
|
+
documents the grammar, the seven surface classes and the width contract.
|
|
44
|
+
`src/ui/tool-renderers/index.ts` now imports from it instead of declaring its
|
|
45
|
+
own copies.
|
|
46
|
+
- **Tool card (team + subagent) redesigned**: width-deferred through
|
|
47
|
+
`AdaptiveCard` (a frame built for 116 columns no longer tears at 100), one
|
|
48
|
+
unified identity canopy (`┏ CREW ▸ <team>`, `┏ AGENT ▸ <name>`,
|
|
49
|
+
`┏ LIST`), agent name surfaced while the run is still streaming, fail-visible
|
|
50
|
+
outcome on three levels, `done`/`succeeded` alias handling, merged
|
|
51
|
+
tally+gauge with the elapsed segment right-aligned, and `role/agent`
|
|
52
|
+
duplication collapsed (`verifier/verifier` → `verifier`).
|
|
53
|
+
- **Every other surface migrated**: crew widget (still exactly ONE row:
|
|
54
|
+
`┃ ⠧ CREW ▸ fast-fix · 2 running · 3/5 done · ⏰ 1 sched ···· ↓·enter`, idle row
|
|
55
|
+
`┃ CREW ▸ idle · …`, focused `❯` marker), plan/task list (`┏ PLAN ▸ <title>`),
|
|
56
|
+
live-run sidebar (`┏ LIVE ▸ <runId8>` + `┣ ACTIVE ▸ n`), team dashboard,
|
|
57
|
+
Agents & Jobs browser, settings overlay, transcript viewer, live-conversation
|
|
58
|
+
/ help / confirm / mailbox-detail / mailbox-compose / agent-picker overlays,
|
|
59
|
+
dashboard panes and `/team-mascot`. The rounded box `╭─╮│╰─╯├┤` and the inline
|
|
60
|
+
`── label ──` rule are retired (sections are `┣ NAME ▸ x`).
|
|
61
|
+
- **One dialect per concept**: cursor `›`, active/section marker `▸`, overflow
|
|
62
|
+
`▲ n above` / `▼ m below` (was four dialects), hints `keys label · …` with the
|
|
63
|
+
close/cancel action last and canonical key spelling (`Esc`, `Enter`, `Tab`) —
|
|
64
|
+
including an `exactKeys` mode for the case-sensitive plan-approval keyspace
|
|
65
|
+
(`A` approve vs `n` deny).
|
|
66
|
+
|
|
67
|
+
### fix(ui): bugs found by the audit, the cold-verify pass and live runs
|
|
68
|
+
|
|
69
|
+
- **`undefined — ↓·enter` in the widget after a run finished** — the zero-runs
|
|
70
|
+
branch built its row without checking `schedLine`; with no active runs and no
|
|
71
|
+
schedules it painted the literal `undefined`. It now renders nothing.
|
|
72
|
+
- **No `undefined` can reach a string**: every interpolated field on records read
|
|
73
|
+
from disk (`agents.json`, schedules, metrics) is guarded — role/agent/model
|
|
74
|
+
routing in the sidebar and agent picker, every persisted job field in the
|
|
75
|
+
schedules pane, metric label values, and the settings `Edit` title.
|
|
76
|
+
- `1 tools` → `1 tool` (one `formatCount` helper, five surfaces).
|
|
77
|
+
- Help cheatsheet no longer prints a raw TAB (`keyToken` missed `\t`).
|
|
78
|
+
- `role->agent` → `role▸agent` everywhere, including the producer
|
|
79
|
+
(`task-display.ts`) rather than only at one render boundary.
|
|
80
|
+
- Settings overlay: the edit submenu hint is built by `formatHint` and no longer
|
|
81
|
+
advertises a key that is not bound.
|
|
82
|
+
|
|
83
|
+
### fix(ui): phantom affordances, schema drift and theme discovery (P0)
|
|
84
|
+
|
|
85
|
+
- **`/team-settings theme <name>` works again**: `theme-discovery.ts` used bare
|
|
86
|
+
`require("node:fs")` inside a module loaded by dynamic import, so discovery
|
|
87
|
+
could fail silently and only the builtin themes were selectable. Now a
|
|
88
|
+
top-level import, with a HOME-sandboxed test (13 themes discovered, active
|
|
89
|
+
theme read from `settings.json`, `setPiTheme()` writes).
|
|
90
|
+
- Removed the phantom `p` (progressToggle) binding/action/help entry, the no-op
|
|
91
|
+
`placement` option, and the non-existent `/team-cleanup` / `/team-health`
|
|
92
|
+
commands from help.
|
|
93
|
+
- Schema/docs drift: `ui.widgetRowStyle`, `ui.inlinePanel`,
|
|
94
|
+
`ui.autoCloseDashboardMs` added to `schema.json` + configuration schema so
|
|
95
|
+
editors stop flagging valid keys; brief-mode command description scoped to
|
|
96
|
+
what it really does; help overlay gained the Schedules and Plan key groups;
|
|
97
|
+
keyboard reference and command docs corrected.
|
|
98
|
+
- `LiveConversationOverlay` gained a real `handleInput` (scroll, auto-scroll
|
|
99
|
+
toggle, close) so its advertised footer keys are reachable.
|
|
100
|
+
- **Terminal status restored**: the documented tab-title + Ghostty `OSC 9;4`
|
|
101
|
+
progress integration is now wired (`installTerminalStatus`) instead of the
|
|
102
|
+
no-op dispose handler; best-effort, debounced, headless-safe.
|
|
103
|
+
|
|
104
|
+
### chore: dead code removed
|
|
105
|
+
|
|
106
|
+
- Deleted `overlay-stack.ts`, `ui/loaders.ts`, `crew-vibes/figures.ts`,
|
|
107
|
+
`crew-vibes/font-detect.ts`, `dynamic-border.ts` and `boxLine()` plus their
|
|
108
|
+
tests (~1.7k lines net), together with the dead `compactAgentRow` chain.
|
|
109
|
+
- Removed the orphaned `ui.widgetRowStyle` config chain (default, type,
|
|
110
|
+
parser, TypeBox schema, `schema.json`, KNOWN_KEYS, `model.rowStyle` field,
|
|
111
|
+
`WidgetRowStyle` type): the M4 RAIL dock renders exactly one layout, so the
|
|
112
|
+
key had no reader left. The strict schema now rejects it as unknown;
|
|
113
|
+
schema-sync + settings tests pin the removal in both directions so it cannot
|
|
114
|
+
resurface.
|
|
115
|
+
|
|
116
|
+
### fix(ui): defects found by rendering a REAL team run
|
|
117
|
+
|
|
118
|
+
Rendering the live run `team_20260916110100` through every surface (tool card,
|
|
119
|
+
widget dock, plan card, sidebar, dashboard, agents & jobs browser) exposed seven
|
|
120
|
+
defects the review passes had missed:
|
|
121
|
+
|
|
122
|
+
- **The dock spun forever.** `┃ ⠹ CREW ▸ fast-fix · 0 running · 3/3 done` — a
|
|
123
|
+
spinner with nothing to spin for, because the header always received a braille
|
|
124
|
+
frame. The leading glyph now reflects state (`⠋…` only while a worker is
|
|
125
|
+
running, otherwise `✓`/`✗`); zero counts (`0 running`) are no longer printed.
|
|
126
|
+
- **The dock lost its key hint on a narrow terminal.** At 50 columns the row
|
|
127
|
+
ended in `···· ↓…`; the leader budget now shrinks with the width so the left
|
|
128
|
+
segment is trimmed (with `…`) and `↓·enter` always survives.
|
|
129
|
+
- **The run dashboard truncated the status into `complete…`.** The narrow-width
|
|
130
|
+
fallback clipped `head · meta` as one string, cutting the very token the run
|
|
131
|
+
list exists to show. Meta now yields first, then the goal; the head (run id +
|
|
132
|
+
status) is only clipped if it cannot fit at all.
|
|
133
|
+
- **Sidebar printed an invented `· right default` string** — replaced with the
|
|
134
|
+
run's real `workspaceMode` (`single` / `worktree`).
|
|
135
|
+
- **`fast-fix/fast-fix`** in the sidebar and dashboard — one shared
|
|
136
|
+
`teamWorkflowLabel()` collapses the workflow half when it repeats the team.
|
|
137
|
+
- **Raw usage rows** (`input=2780, output=3715, cacheRead=57216, cost=0.000000,
|
|
138
|
+
turns=0`) — the sidebar now uses the compact `↑2.8k ↓3.7k` form the tool card
|
|
139
|
+
already had (the `key=value` form stays for CLI/status output).
|
|
140
|
+
- **`314.7s` instead of `5m44s`**, `1 runs` instead of `1 run`, `3 agents` /
|
|
141
|
+
`N runs` without pluralisation, and `┃ - none` for empty sections — all
|
|
142
|
+
normalised through `formatDuration` / `formatCount`.
|
|
143
|
+
|
|
144
|
+
### verification
|
|
145
|
+
|
|
146
|
+
- `test:unit` full suite, `test:critical` (117/117), `test:bundle` (2/2), biome,
|
|
147
|
+
`format:check`, `tsc --noEmit` and bundle size/staleness gates all run on the
|
|
148
|
+
release tree; UI migration verified by an independent verifier rendering real
|
|
149
|
+
surfaces at 40/60/80/100/160 columns.
|
|
150
|
+
|
|
5
151
|
## [0.11.0] — Scheduled Jobs UI + Agents & Jobs browser + kitty CSI-u hardening (2026-09-15)
|
|
6
152
|
|
|
7
153
|
### feat(ui): Agents & Jobs browser — the crew widget's ↓+Enter popup
|
|
@@ -744,7 +890,7 @@ waiting-producer-ask, spec-system (+ round-1 errata).
|
|
|
744
890
|
Branch `refactor/maintainability`: 16-round audit → 5-phase refactor →
|
|
745
891
|
finding-by-finding sweep → full remediation of every open finding (Waves
|
|
746
892
|
1A/1B/2A/2B/B/C). Full execution log with commit map:
|
|
747
|
-
`docs/refactor-plan.md`. Audit inventory: `docs/refactor-plan.review.md`.
|
|
893
|
+
`docs/archive/refactor-plan.md`. Audit inventory: `docs/archive/refactor-plan.review.md`.
|
|
748
894
|
|
|
749
895
|
### Security (config tiering)
|
|
750
896
|
- Schema-driven project-config sanitize: `sensitive:true` drop-list +
|
|
@@ -807,8 +953,8 @@ finding-by-finding sweep → full remediation of every open finding (Waves
|
|
|
807
953
|
|
|
808
954
|
## [0.9.68] — RLM fixes after deep-review verification (2026-08-12)
|
|
809
955
|
|
|
810
|
-
Fixes from `docs/rlm-deep-review-2026-08-12.md` (verified) +
|
|
811
|
-
`docs/rlm-fixes-implementation-plan.md`. Each code part loop-reviewed (3
|
|
956
|
+
Fixes from `docs/archive/rlm-deep-review-2026-08-12.md` (verified) +
|
|
957
|
+
`docs/archive/rlm-fixes-implementation-plan.md`. Each code part loop-reviewed (3
|
|
812
958
|
parallel reviewers: security/correctness/tests, read-only) before merge here.
|
|
813
959
|
|
|
814
960
|
### Fixes
|
|
@@ -855,7 +1001,7 @@ parallel reviewers: security/correctness/tests, read-only) before merge here.
|
|
|
855
1001
|
|
|
856
1002
|
## [0.9.67] — RLM/scratchpad adoption batch (I1–I7) (2026-08-11)
|
|
857
1003
|
|
|
858
|
-
First shippable slice of `improvement-plan-2026-08-11.md` — the scratchpad was
|
|
1004
|
+
First shippable slice of `docs/archive/improvement-plan-2026-08-11.md` — the scratchpad was
|
|
859
1005
|
armed-but-unused (0 cells in 14 runs); this batch fixes the doctrine, adds an
|
|
860
1006
|
adoption/value metric, and ports the pattern-12 shell guard. Each item was
|
|
861
1007
|
loop-reviewed (iterative-audit) before commit; `test:critical` 101/0, 129
|
|
@@ -1105,10 +1251,10 @@ Six fixes distilled from the `real-test-pi-crew` 9-tier battery (run 2026-08-10)
|
|
|
1105
1251
|
- **Notifier/session-summary (`src/extension/async-notifier.ts`, `session-summary.ts`)**: filter `listRuns` theo `ownerSessionId` trước notify — session B không còn toast về run của A.
|
|
1106
1252
|
- **Health filter (#3)**: `ctx.currentCtx?.sessionManager?.getSessionId()` + bỏ dead clause `ownerSessionGeneration` (field không tồn tại trên `TeamRunManifest`) — trước đó silently drop tất cả owned runs.
|
|
1107
1253
|
- Verified end-to-end theo skill `real-test-pi-crew`: `test:critical` 101/101, 3-path kill-switch green, typecheck + bundle + md5 sync OK, live TUI (tmux + pty) render không crash, smoke verifier 52s (<300s, no hang), full feature battery (team tool 9a–9f + subagent tools) clean — zero `Unknown type`/`Validation failed`. 6837 unit + 214 integration tests pass.
|
|
1108
|
-
- Lưu ý: `#12` (DeliveryCoordinator) infrastructure staged nhưng inert — `deliver*` không có production caller, nên queue không bao giờ được feed. Documented trong `docs/cross-session-leak-fix-plan.md`.
|
|
1254
|
+
- Lưu ý: `#12` (DeliveryCoordinator) infrastructure staged nhưng inert — `deliver*` không có production caller, nên queue không bao giờ được feed. Documented trong `docs/archive/cross-session-leak-fix-plan.md`.
|
|
1109
1255
|
|
|
1110
1256
|
### Docs
|
|
1111
|
-
- `docs/cross-session-leak-audit.md` (audit re-verify: 2/2 root cause CONFIRMED, 12/13 vector CONFIRMED, #3 REFUTED) + `docs/cross-session-leak-fix-plan.md` (phased plan, reviewed).
|
|
1257
|
+
- `docs/archive/cross-session-leak-audit.md` (audit re-verify: 2/2 root cause CONFIRMED, 12/13 vector CONFIRMED, #3 REFUTED) + `docs/archive/cross-session-leak-fix-plan.md` (phased plan, reviewed).
|
|
1112
1258
|
|
|
1113
1259
|
## [0.9.58] — fix load crash on stale hoisted typebox: defensive guard + bundle vendoring (survives `pi update`) + round-1/round-2 fixes (2026-08-04)
|
|
1114
1260
|
|
|
@@ -6464,7 +6610,7 @@ Note: `src/runtime/parent-guard.ts:37` left as-is — that's an exit-time log th
|
|
|
6464
6610
|
- **CHANGELOG.md** — Added the v0.5.5 entry covering all 13 rounds of code review hardening (this entry).
|
|
6465
6611
|
- **SECURITY-ISSUES.md** — Bumped to v2.0, added v0.5.5 round-13 findings table (8 new issues closed).
|
|
6466
6612
|
- **docs/architecture.md** — Cross-references v0.5.5 and `docs/pi-crew-v0.5.5-audit-fix-plan.md`.
|
|
6467
|
-
- **docs/migration-v0.4-v0.5.md** — Added v0.5.5 highlights (no breaking changes; drop-in replacement).
|
|
6613
|
+
- **docs/archive/migration-v0.4-v0.5.md** — Added v0.5.5 highlights (no breaking changes; drop-in replacement).
|
|
6468
6614
|
|
|
6469
6615
|
### Fixes
|
|
6470
6616
|
|
|
@@ -6633,7 +6779,7 @@ correctness+error-handling, and performance+architecture audits across 77 source
|
|
|
6633
6779
|
- Improved consistency in section naming
|
|
6634
6780
|
|
|
6635
6781
|
### Documentation
|
|
6636
|
-
- Added `docs/migration-v0.4-v0.5.md` - comprehensive migration guide
|
|
6782
|
+
- Added `docs/archive/migration-v0.4-v0.5.md` - comprehensive migration guide
|
|
6637
6783
|
- Updated `docs/deep-review-report.md` - complete issue tracking
|
|
6638
6784
|
|
|
6639
6785
|
### Dependencies
|
|
@@ -7315,7 +7461,7 @@ correctness+error-handling, and performance+architecture audits across 77 source
|
|
|
7315
7461
|
- docs/pi-crew-bugs.md: v0.5.22 + historical note
|
|
7316
7462
|
- docs/TEST_MATRIX.md: test count updated to 2703
|
|
7317
7463
|
- docs/deep-review-report.md: marked historical
|
|
7318
|
-
- docs/migration-v0.4-v0.5.md: drop-in replacement note
|
|
7464
|
+
- docs/archive/migration-v0.4-v0.5.md: drop-in replacement note
|
|
7319
7465
|
|
|
7320
7466
|
### CI
|
|
7321
7467
|
- `.github/workflows/ci.yml`: typecheck step re-enabled (was disabled since v0.3.x)
|