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.
Files changed (174) hide show
  1. package/CHANGELOG.md +155 -9
  2. package/README.md +161 -1037
  3. package/agents/verifier.md +18 -7
  4. package/dist/index.mjs +744 -90644
  5. package/docs/README.md +57 -46
  6. package/docs/architecture.md +87 -33
  7. package/docs/commands-reference.md +9 -5
  8. package/docs/troubleshooting.md +3 -2
  9. package/package.json +1 -3
  10. package/schema.json +39 -0
  11. package/skills/real-test-pi-crew/REPORT-TEMPLATE.md +2 -0
  12. package/skills/real-test-pi-crew/SKILL.md +371 -34
  13. package/src/agents/agent-config.ts +1 -1
  14. package/src/agents/discover-agents.ts +1 -1
  15. package/src/config/config-validation.ts +15 -2
  16. package/src/config/config.ts +47 -13
  17. package/src/config/defaults.ts +0 -1
  18. package/src/config/env-vars.ts +35 -0
  19. package/src/config/types.ts +19 -5
  20. package/src/errors.ts +2 -2
  21. package/src/extension/async-notifier.ts +23 -0
  22. package/src/extension/crew-vibes/config.ts +0 -21
  23. package/src/extension/crew-vibes/index.ts +0 -2
  24. package/src/extension/crew-vibes/render.ts +1 -50
  25. package/src/extension/help.ts +21 -12
  26. package/src/extension/knowledge-injection.ts +2 -1
  27. package/src/extension/management.ts +8 -3
  28. package/src/extension/notification-sink.ts +17 -0
  29. package/src/extension/register.ts +7 -2
  30. package/src/extension/registration/command-utils.ts +28 -2
  31. package/src/extension/registration/commands/dashboard.ts +11 -1
  32. package/src/extension/registration/commands/manage.ts +36 -19
  33. package/src/extension/registration/commands/run.ts +24 -2
  34. package/src/extension/registration/commands/shared.ts +23 -1
  35. package/src/extension/registration/commands/status.ts +25 -2
  36. package/src/extension/registration/context-builder.ts +8 -2
  37. package/src/extension/registration/health-notify-policy.ts +100 -0
  38. package/src/extension/registration/lazy-configurers.ts +35 -0
  39. package/src/extension/registration/lifecycle-handlers.ts +91 -30
  40. package/src/extension/registration/lifecycle.ts +75 -10
  41. package/src/extension/registration/observability.ts +98 -35
  42. package/src/extension/registration/registration-types.ts +7 -5
  43. package/src/extension/registration/runtime-cleanup.ts +9 -3
  44. package/src/extension/registration/subagent-helpers.ts +38 -0
  45. package/src/extension/registration/subagent-tools.ts +16 -6
  46. package/src/extension/registration/team-tool.ts +10 -3
  47. package/src/extension/registration/terminal-status-wiring.ts +172 -0
  48. package/src/extension/registration/viewers.ts +6 -0
  49. package/src/extension/registration/wire-cross-extension.ts +28 -0
  50. package/src/extension/run-compare.ts +220 -0
  51. package/src/extension/run-export.ts +37 -5
  52. package/src/extension/run-maintenance.ts +155 -5
  53. package/src/extension/team-tool/dispatch/index.ts +3 -2
  54. package/src/extension/team-tool/dispatch/manage.ts +5 -2
  55. package/src/extension/team-tool/goal.ts +4 -1
  56. package/src/extension/team-tool/handle-settings.ts +33 -4
  57. package/src/extension/team-tool/health-monitor.ts +21 -7
  58. package/src/extension/team-tool/lifecycle-actions.ts +49 -1
  59. package/src/extension/team-tool/plan.ts +10 -0
  60. package/src/extension/team-tool/routing-hint.ts +63 -0
  61. package/src/extension/team-tool/status.ts +4 -0
  62. package/src/extension/team-tool.ts +52 -6
  63. package/src/extension/webhook-notify.ts +382 -0
  64. package/src/observability/metric-sink.ts +12 -2
  65. package/src/prompt/prompt-runtime.ts +82 -31
  66. package/src/prompt/worker-events-channel.ts +12 -0
  67. package/src/runtime/README.md +1 -1
  68. package/src/runtime/async-runner.ts +87 -1
  69. package/src/runtime/background-runner.ts +313 -234
  70. package/src/runtime/broker/crew-broker.ts +17 -11
  71. package/src/runtime/broker/delegate/shadow-lifecycle.ts +92 -0
  72. package/src/runtime/broker/wait-status-cache.ts +1 -1
  73. package/src/runtime/child-pi/child-pi-timers.ts +1 -1
  74. package/src/runtime/child-pi/mock-fixtures.ts +48 -0
  75. package/src/runtime/crew-agent-records.ts +337 -45
  76. package/src/runtime/deadletter.ts +43 -1
  77. package/src/runtime/delegate-spawn.ts +5 -1
  78. package/src/runtime/dispatch-batch.ts +72 -5
  79. package/src/runtime/goal-workflow/goal-loop-runner.ts +73 -4
  80. package/src/runtime/heartbeat/heartbeat-watcher.ts +7 -0
  81. package/src/runtime/model/model-fallback.ts +21 -1
  82. package/src/runtime/model/pi-args.ts +8 -10
  83. package/src/runtime/recovery/crash-recovery.ts +25 -1
  84. package/src/runtime/run-worker.ts +12 -1
  85. package/src/runtime/scheduling/global-worker-cap.ts +13 -6
  86. package/src/runtime/scheduling/run-coalesced-task-group.ts +27 -1
  87. package/src/runtime/scheduling/scheduler.ts +49 -13
  88. package/src/runtime/scheduling/semaphore.ts +148 -20
  89. package/src/runtime/scratchpad/README.md +1 -1
  90. package/src/runtime/scratchpad/protocol.ts +1 -1
  91. package/src/runtime/settings-store.ts +1 -1
  92. package/src/runtime/skill-instructions.ts +22 -0
  93. package/src/runtime/stale-reconciler.ts +85 -13
  94. package/src/runtime/task-display.ts +1 -1
  95. package/src/runtime/task-runner/pre-execution.ts +26 -2
  96. package/src/runtime/task-runner/prompt-builder.ts +142 -45
  97. package/src/runtime/task-runner.ts +21 -1
  98. package/src/runtime/team-runner.ts +38 -1
  99. package/src/runtime/workspace-lock.ts +4 -1
  100. package/src/schema/config-schema.ts +18 -0
  101. package/src/schema/team-tool-schema.ts +17 -0
  102. package/src/state/atomic-write.ts +53 -0
  103. package/src/state/contracts.ts +109 -0
  104. package/src/state/coordination/locks.ts +191 -33
  105. package/src/state/coordination/mailbox.ts +140 -15
  106. package/src/state/crew-init.ts +87 -12
  107. package/src/state/event-log/cursor.ts +37 -1
  108. package/src/state/event-log/event-log-rotation.ts +72 -7
  109. package/src/state/stores/active-run-registry.ts +13 -1
  110. package/src/state/stores/state-store.ts +112 -22
  111. package/src/state/types.ts +4 -0
  112. package/src/ui/adaptive-card.ts +65 -0
  113. package/src/ui/agents-jobs-browser.ts +70 -64
  114. package/src/ui/card-colors.ts +36 -7
  115. package/src/ui/dashboard-panes/agents-pane.ts +55 -14
  116. package/src/ui/dashboard-panes/cancellation-pane.ts +0 -42
  117. package/src/ui/dashboard-panes/health-pane.ts +7 -5
  118. package/src/ui/dashboard-panes/mailbox-pane.ts +22 -6
  119. package/src/ui/dashboard-panes/metrics-pane.ts +15 -7
  120. package/src/ui/dashboard-panes/pane-theme.ts +21 -0
  121. package/src/ui/dashboard-panes/plan-pane.ts +63 -30
  122. package/src/ui/dashboard-panes/progress-pane.ts +3 -2
  123. package/src/ui/dashboard-panes/schedules-pane.ts +44 -21
  124. package/src/ui/dashboard-panes/transcript-pane.ts +11 -5
  125. package/src/ui/dwf-phase-display.ts +3 -20
  126. package/src/ui/format-helpers.ts +22 -0
  127. package/src/ui/heartbeat-aggregator.ts +34 -0
  128. package/src/ui/inline-panel/crew-editor.ts +13 -3
  129. package/src/ui/inline-panel/index.ts +60 -4
  130. package/src/ui/keybinding-map.ts +251 -35
  131. package/src/ui/live-conversation-overlay.ts +180 -47
  132. package/src/ui/live-run-sidebar.ts +134 -55
  133. package/src/ui/mascot.ts +32 -16
  134. package/src/ui/overlays/agent-picker-overlay.ts +81 -26
  135. package/src/ui/overlays/confirm-overlay.ts +55 -29
  136. package/src/ui/overlays/help-overlay.ts +108 -53
  137. package/src/ui/overlays/mailbox-compose-overlay.ts +89 -50
  138. package/src/ui/overlays/mailbox-detail-overlay.ts +137 -57
  139. package/src/ui/powerbar-publisher.ts +0 -1
  140. package/src/ui/rail.ts +333 -0
  141. package/src/ui/run-dashboard.ts +193 -79
  142. package/src/ui/run-snapshot-cache.ts +18 -1
  143. package/src/ui/settings-overlay.ts +81 -39
  144. package/src/ui/spinner.ts +26 -2
  145. package/src/ui/terminal-status.ts +7 -1
  146. package/src/ui/theme-adapter.ts +0 -45
  147. package/src/ui/theme-discovery.ts +12 -6
  148. package/src/ui/tool-progress-formatter.ts +128 -9
  149. package/src/ui/tool-renderers/brief-mode.ts +10 -67
  150. package/src/ui/tool-renderers/index.ts +374 -523
  151. package/src/ui/transcript-viewer.ts +30 -12
  152. package/src/ui/widget/index.ts +32 -52
  153. package/src/ui/widget/task-list.ts +64 -32
  154. package/src/ui/widget/widget-formatters.ts +3 -402
  155. package/src/ui/widget/widget-model.ts +28 -7
  156. package/src/ui/widget/widget-renderer.ts +201 -128
  157. package/src/ui/widget/widget-types.ts +0 -2
  158. package/src/utils/incremental-reader.ts +11 -3
  159. package/src/utils/paths.ts +94 -12
  160. package/src/utils/project-markers.ts +40 -0
  161. package/src/utils/visual.ts +0 -4
  162. package/src/worktree/worktree-manager.ts +206 -26
  163. package/workflows/distill.workflow.md +3 -3
  164. package/workflows/fast-fix.workflow.md +1 -1
  165. package/workflows/plan-execute.workflow.md +1 -1
  166. package/workflows/review.workflow.md +1 -1
  167. package/workflows/strict-fast-fix.workflow.md +1 -1
  168. package/docs/migration-v0.4-v0.5.md +0 -208
  169. package/docs/runtime-flow.md +0 -148
  170. package/src/extension/crew-vibes/figures.ts +0 -22
  171. package/src/extension/crew-vibes/font-detect.ts +0 -71
  172. package/src/ui/dynamic-border.ts +0 -35
  173. package/src/ui/loaders.ts +0 -6
  174. 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)