@zhuxixi/pi-agent-board 0.9.0 → 0.10.0
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 +20 -0
- package/README.md +10 -2
- package/VERIFY.md +2 -1
- package/docs/superpowers/plans/2026-09-29-issue-145-holding-semantic-state.md +1183 -0
- package/docs/superpowers/plans/2026-09-29-issue-145-user-verification.md +66 -0
- package/docs/superpowers/plans/2026-09-30-board-delete-key-x-y-confirm.md +649 -0
- package/docs/superpowers/plans/2026-09-30-issue-153-runner-stop-boot-window.md +618 -0
- package/docs/superpowers/plans/2026-09-30-issue-95-test-discipline.md +555 -0
- package/docs/superpowers/plans/2026-09-30-publish-dispatch-tag-check.md +259 -0
- package/docs/superpowers/specs/2026-09-29-issue-145-holding-semantic-state-design.md +394 -0
- package/docs/superpowers/specs/2026-09-30-board-delete-key-x-y-confirm-design.md +86 -0
- package/docs/superpowers/specs/2026-09-30-issue-153-runner-stop-boot-window-design.md +75 -0
- package/docs/superpowers/specs/2026-09-30-issue-95-test-discipline-design.md +226 -0
- package/docs/superpowers/specs/2026-09-30-publish-dispatch-tag-check-design.md +129 -0
- package/package.json +1 -1
- package/runner/job-runner.mjs +56 -22
- package/runner/pty-runner-legacy.mjs +1 -1
- package/runner/state-coordinator.mjs +1 -1
- package/runner/state-runner.mjs +2 -2
- package/scripts/budget-audit.mjs +135 -0
- package/src/core/auto-state.mjs +12 -10
- package/src/core/coordinator-protocol.mjs +3 -1
- package/src/core/derive.mjs +3 -0
- package/src/core/evidence.mjs +4 -1
- package/src/core/host-probe.mjs +12 -1
- package/src/core/pty-attach-reconnect.mjs +12 -1
- package/src/core/rows.mjs +4 -0
- package/src/core/state-commands.mjs +62 -8
- package/src/core/stop-latch.mjs +41 -0
- package/src/core/store.mjs +8 -1
- package/src/core/terminal-query-sequences.mjs +26 -0
- package/src/core/test-knobs.mjs +28 -0
- package/src/core/types.mjs +5 -2
- package/src/core/warm-host-sweeper.mjs +13 -0
- package/src/runtime/service.mjs +149 -28
- package/src/ui/dashboard.ts +46 -1
- package/src/ui/pty-attach.ts +46 -3
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Issue #145 — On-hold semantic state: user-verification checklist
|
|
2
|
+
|
|
3
|
+
Source: `docs/superpowers/specs/2026-09-29-issue-145-holding-semantic-state-design.md` §9 "用户实测" (U1–U7). Operation steps and pass criteria below are copied verbatim from that table; 验收方式 for every item is 用户实测.
|
|
4
|
+
|
|
5
|
+
**How to run this checklist:** these items are executed **by a human against an installed build** of the extension (not against a source checkout run through `node`). The automated gate passing (`npm run verify`, acceptance A20, recorded in the task-12 report) does **not** substitute for any of them. An item with no observed result stays `pending` — per spec §9's 验收纪律: "U 项未执行前不得宣称验收完成;自动化项通过不能替代 U 项。"
|
|
6
|
+
|
|
7
|
+
Record each item's result (`pass` / `fail` / `pending`) in its section and in the summary table below. If a `fail` is observed, note the row's `diagnostics.jsonl` tail and the exact key sequence.
|
|
8
|
+
|
|
9
|
+
## Results summary
|
|
10
|
+
|
|
11
|
+
| ID | 功能点 | 结果 | 备注 |
|
|
12
|
+
|----|--------|------|------|
|
|
13
|
+
| U1 | `h` 置搁置 | `pending` | |
|
|
14
|
+
| U2 | `h` 解除搁置 | `pending` | |
|
|
15
|
+
| U3 | 说话即恢复(holding) | `pending` | |
|
|
16
|
+
| U4 | 说话即恢复(既存回归) | `pending` | |
|
|
17
|
+
| U5 | `d` 转真完成 | `pending` | |
|
|
18
|
+
| U6 | 搁置行可删 | `pending` | |
|
|
19
|
+
| U7 | 搁置行 + follow-up 不自动唤醒(含 Done 行对照) | `pending` | |
|
|
20
|
+
|
|
21
|
+
## U1 — `h` 置搁置
|
|
22
|
+
|
|
23
|
+
- **操作步骤**: 在面板 list 选中一个非 busy 行,按 `h`
|
|
24
|
+
- **通过标准**: 行进入 **ON HOLD** 分组(位置在 NEEDS INSTRUCTIONS 之后、DONE 之前);顶栏与 footer 计数不变;notice 提示已搁置
|
|
25
|
+
- **结果**: `pending`
|
|
26
|
+
|
|
27
|
+
## U2 — `h` 解除搁置
|
|
28
|
+
|
|
29
|
+
- **操作步骤**: 对 ON HOLD 行再按 `h`
|
|
30
|
+
- **通过标准**: 行回到 **NEEDS INSTRUCTIONS** 分组;notice 提示已恢复
|
|
31
|
+
- **结果**: `pending`
|
|
32
|
+
|
|
33
|
+
## U3 — 说话即恢复(holding)
|
|
34
|
+
|
|
35
|
+
- **操作步骤**: 对 ON HOLD 行按 `→` attach,在真实会话里敲一句话提交
|
|
36
|
+
- **通过标准**: 行变为 **RUNNING**;该行 `diagnostics.jsonl` **不再新增** `sync_foreground rejected (manual_fence)`
|
|
37
|
+
- **结果**: `pending`
|
|
38
|
+
|
|
39
|
+
## U4 — 说话即恢复(既存回归)
|
|
40
|
+
|
|
41
|
+
- **操作步骤**: 对 **DONE** 行 attach 后敲字提交
|
|
42
|
+
- **通过标准**: 同上(行变 RUNNING、无新 manual_fence 拒绝)。这条是本 PR 修的既有 bug,与 holding 无关也应通过
|
|
43
|
+
- **结果**: `pending`
|
|
44
|
+
|
|
45
|
+
## U5 — `d` 转真完成
|
|
46
|
+
|
|
47
|
+
- **操作步骤**: 对 ON HOLD 行按 `d` 并确认
|
|
48
|
+
- **通过标准**: 行进入 **DONE** 分组;`state.json` 的 `semanticState === "completed"`
|
|
49
|
+
- **结果**: `pending`
|
|
50
|
+
|
|
51
|
+
## U6 — 搁置行可删
|
|
52
|
+
|
|
53
|
+
- **操作步骤**: 对 ON HOLD 行按 `X`
|
|
54
|
+
- **通过标准**: 该状态全部 inactive 行被归档;live 行跳过
|
|
55
|
+
- **结果**: `pending`
|
|
56
|
+
|
|
57
|
+
## U7 — 搁置行 + follow-up 不自动唤醒(含 Done 行对照)
|
|
58
|
+
|
|
59
|
+
- **操作步骤**: 给 ON HOLD 行排队一条 follow-up(先使其 busy 时 reply,或 `delivery: "queue"`),再置搁置,等待;**对照**:另一条 Done 行同样排队 follow-up 且 host 存活,等待 reconcile
|
|
60
|
+
- **通过标准**: 主行保持 ON HOLD,不被自动唤醒,队列计数保留;对照行 follow-up 被投递且行变 RUNNING(§4.4 自动投递交互的实测)
|
|
61
|
+
- **结果**: `pending`
|
|
62
|
+
- **Note:** spec §10 open question 2 — if "holding + queued follow-up" is too hard to construct manually, U7 degrades to the A18 automated coverage and stays `pending`.
|
|
63
|
+
|
|
64
|
+
## Completion rule
|
|
65
|
+
|
|
66
|
+
All seven items must read `pass` (or U7 degraded per its note) before issue #145's user acceptance is declared complete. Do not flip a result without performing the operation against the installed build.
|