@zhuxixi/pi-agent-board 0.9.0 → 0.10.1

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 (37) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +10 -2
  3. package/VERIFY.md +2 -1
  4. package/docs/superpowers/plans/2026-09-29-issue-145-holding-semantic-state.md +1183 -0
  5. package/docs/superpowers/plans/2026-09-29-issue-145-user-verification.md +66 -0
  6. package/docs/superpowers/plans/2026-09-30-board-delete-key-x-y-confirm.md +649 -0
  7. package/docs/superpowers/plans/2026-09-30-issue-153-runner-stop-boot-window.md +618 -0
  8. package/docs/superpowers/plans/2026-09-30-issue-95-test-discipline.md +555 -0
  9. package/docs/superpowers/plans/2026-09-30-publish-dispatch-tag-check.md +259 -0
  10. package/docs/superpowers/specs/2026-09-29-issue-145-holding-semantic-state-design.md +394 -0
  11. package/docs/superpowers/specs/2026-09-30-board-delete-key-x-y-confirm-design.md +86 -0
  12. package/docs/superpowers/specs/2026-09-30-issue-153-runner-stop-boot-window-design.md +75 -0
  13. package/docs/superpowers/specs/2026-09-30-issue-95-test-discipline-design.md +226 -0
  14. package/docs/superpowers/specs/2026-09-30-publish-dispatch-tag-check-design.md +129 -0
  15. package/package.json +1 -1
  16. package/runner/job-runner.mjs +56 -22
  17. package/runner/pty-runner-legacy.mjs +1 -1
  18. package/runner/state-coordinator.mjs +1 -1
  19. package/runner/state-runner.mjs +2 -2
  20. package/scripts/budget-audit.mjs +135 -0
  21. package/src/core/auto-state.mjs +12 -10
  22. package/src/core/coordinator-protocol.mjs +3 -1
  23. package/src/core/derive.mjs +3 -0
  24. package/src/core/evidence.mjs +4 -1
  25. package/src/core/host-probe.mjs +12 -1
  26. package/src/core/pty-attach-reconnect.mjs +12 -1
  27. package/src/core/rows.mjs +4 -0
  28. package/src/core/state-commands.mjs +62 -8
  29. package/src/core/stop-latch.mjs +41 -0
  30. package/src/core/store.mjs +8 -1
  31. package/src/core/terminal-query-sequences.mjs +26 -0
  32. package/src/core/test-knobs.mjs +28 -0
  33. package/src/core/types.mjs +5 -2
  34. package/src/core/warm-host-sweeper.mjs +13 -0
  35. package/src/runtime/service.mjs +149 -28
  36. package/src/ui/dashboard.ts +46 -1
  37. package/src/ui/pty-attach.ts +49 -3
package/CHANGELOG.md CHANGED
@@ -5,6 +5,34 @@ conventional commits by `scripts/release_helper.mjs`. Entries are
5
5
  forward-only: they begin with the first release after this file landed —
6
6
  for earlier history, see the git log and the pull-request list.
7
7
 
8
+ ## [0.10.1] - 2026-10-01
9
+
10
+ ### Fixes
11
+
12
+ - **attach**: prevent stale hyperlink IDs from leaking across cells (#158)
13
+
14
+ [0.10.1]: https://github.com/zhuxixi/pi-agent-board/compare/v0.10.0...v0.10.1
15
+
16
+ ## [0.10.0] - 2026-10-01
17
+
18
+ ### Features
19
+
20
+ - **ui**: x then y confirms session deletion (issue #150) (#152)
21
+ - 8th semantic state holding + manual-fence lift on interactive input (issue #145) (#151)
22
+
23
+ ### Fixes
24
+
25
+ - **ci**: read the dispatch recovery tag from inputs, not the ref name (issue #154) (#156)
26
+ - job-runner boot-window stop loss + dead-run reconcile convergence (issue #153) (#155)
27
+ - **attach**: answer the color-scheme query client-side for attached sessions (issue #148) (#149)
28
+
29
+ ### Changes
30
+
31
+ - probe knob guard uses the production-default floor, not a jitter-prone absolute bound (issue #95) (#159)
32
+ - flake postmortems, budget audit gate, ladder knobs (issue #95 F3-F4) (#157)
33
+
34
+ [0.10.0]: https://github.com/zhuxixi/pi-agent-board/compare/v0.9.0...v0.10.0
35
+
8
36
  ## [0.9.0] - 2026-09-25
9
37
 
10
38
  ### Features
package/README.md CHANGED
@@ -114,7 +114,8 @@ Launch preferences are persisted and reused for later sessions. **Start & attach
114
114
  Session actions are deliberately confirmation-aware:
115
115
 
116
116
  - `d` confirms moving an inactive session to **Done**. Manual completion is the default.
117
- - Press `Ctrl+X` twice quickly to archive/delete the selected row. Archiving removes the row from the board but preserves its underlying Pi session file.
117
+ - `h` toggles the on-hold state (manual verdict — automated writers are fenced).
118
+ - Press `x`, then `y` to confirm deleting the selected row. `Ctrl+X` twice quickly still deletes without confirmation. Archiving removes the row from the board but preserves its underlying Pi session file.
118
119
  - `X` archives inactive rows in the selected state; live work is skipped.
119
120
  - `m` enters multi-select mode. Use `Space` to toggle rows, `a` to select all visible rows, `u` to clear the selection, `d` to mark inactive rows Done, or `Ctrl+X` to delete selected Done rows.
120
121
 
@@ -139,7 +140,9 @@ Shortcuts are scoped to the view where they are available:
139
140
  | `Ctrl+T` | Pin or unpin the selected session. |
140
141
  | `Ctrl+S` | Stop the selected active session. |
141
142
  | `d` | Confirm marking the selected inactive session Done. |
142
- | `Ctrl+X` twice quickly | Archive/delete the selected row. |
143
+ | `h` | Hold or unhold the selected inactive session. |
144
+ | `x`, then `y` | Archive/delete the selected row (confirmation prompt). |
145
+ | `Ctrl+X` twice quickly | Archive/delete the selected row without confirmation. |
143
146
  | `X` | Delete inactive rows in the selected state. |
144
147
  | `m` | Enter multi-select mode. |
145
148
  | `!` | Open node-pty diagnostics and repair hints. |
@@ -156,6 +159,8 @@ Peek shows the selected session's summary, blocker or question, latest output, a
156
159
  | `a`, `Right`, or `>` | Attach to the session. |
157
160
  | `v` | Open the read-only transcript. |
158
161
  | `e` | Open Evidence / Diagnostics. |
162
+ | `d` | Confirm marking the inactive session Done. |
163
+ | `h` | Hold or unhold the session. |
159
164
  | `Up` / `Down` | Move to the previous or next session. |
160
165
  | `Esc` | Return to the main list. |
161
166
 
@@ -174,6 +179,7 @@ The `v` view is a read-only projection of the durable Pi session JSONL. It does
174
179
  | `Enter` or `a` | Attach to the session. |
175
180
  | `e` | Open Evidence / Diagnostics. |
176
181
  | `d` | Confirm marking the inactive session Done. |
182
+ | `h` | Hold or unhold the session. |
177
183
  | `Left` / `Esc` / `<` | Return to the main list. |
178
184
 
179
185
  ### Evidence / Diagnostics
@@ -208,6 +214,7 @@ Agent Board separates a session's semantic task state from whether a worker proc
208
214
  | **Running** | The session is actively processing. |
209
215
  | **Needs answer** | The session is waiting for user input or an answer to a question. |
210
216
  | **Needs instructions** | The run ended without being marked complete and needs the next directive. |
217
+ | **On hold** | The user parked this session intentionally (manual verdict, `h` to toggle). Automated writers can't push it to Done; queued follow-ups do not wake it. |
211
218
  | **Done** | The user marked the inactive session complete; this is the default completion path. |
212
219
  | **Failed** | The worker or host ended with an error. |
213
220
  | **Stopped** | The user stopped the active work. |
@@ -218,6 +225,7 @@ Press `/` to enter filter mode. Filter tokens are case-insensitive and can be co
218
225
 
219
226
  ```text
220
227
  s:running
228
+ s:hold
221
229
  review:ready
222
230
  diag:stalled
223
231
  evidence:error
package/VERIFY.md CHANGED
@@ -82,7 +82,8 @@ Inside pi:
82
82
  4. **enter** on an empty input = attach to the selected full session (confirms first if it's still running).
83
83
  You're now in the real Pi session; run `/agent-board` again to return.
84
84
  5. Other keys: **/** filter (`s:running`, or free text), **Ctrl+R** rename, **Ctrl+T** pin, **Ctrl+S** stop,
85
- **Ctrl+X** delete (archives the row, keeps the session file), **?** help, **Esc** clears input / quits when empty.
85
+ **x** then **y** delete (confirm prompt; archives the row, keeps the session file), **Ctrl+X** ×2 quick delete (no confirm),
86
+ **?** help, **Esc** clears input / quits when empty.
86
87
 
87
88
  ## 5. Inspect the durable store on disk
88
89