Skip to content

Commit 6535457

Browse files
docs(qa): approvals checklist reads a paused run's variables; deep-link APP is com.objectstack.setup (#27164)
Part of #25807 (wave-2 accuracy, slice D) Clause-②: no Metadata-protocol: none ## 维护者速读 - 改了什么:审批测试清单两条条目的文字校准——动态审批人路由条目改为直接读取暂停运行的变量快照(保留原有的结果校验),通知深链条目把落地应用段写正为 `com.objectstack.setup`。 - 为什么改:QA 运行 #27134 实测发现两处说法已过时:暂停的运行现在会返回变量(#7639),落地 URL 的应用段也不是 `setup`。 - 风险与回滚:仅改一份 QA 清单 JSON,不动产品代码、不发布;回滚即 revert 本提交。 - 先看:`docs/qa/platform-checklist/areas/approvals.json` 中 `approvals.dynamic-approver-routing` 的 acceptance[3] 与 knownGaps[0]。 - 两分钟验证:`node scripts/check-platform-checklist.mjs`,预期输出 `OK — 16 areas, 329 items`。 - 需要你做的:无,席位落地。 ## What changes One file, two items, each `revision` +1 from main with main's `history` kept as an exact prefix and one appended row citing #27134. **`approvals.dynamic-approver-routing` r4 → r5** - `knownGaps[0]` is rewritten as CLOSED by #7639, not deleted. A paused run's detail now carries its variables: both suspend sites (the `status: 'paused'` recordLog in `service-automation/src/engine.ts`, and the re-suspend in `run-resume.ts`, which is where this flow re-pauses at stage 2) hand one snapshot to the continuation and to the paused log entry that `GET /api/v1/automation/:name/runs/:runId` serves. #27134 measured it live. - `acceptance[3]` is stronger, not weaker. It gains a snapshot leg: on the stage-2-paused run, `variables['lead_review.next_reviewers']` must equal the submitted pick, ids and order. Decision outputs land as flat NODEID.KEY variables (`engine.ts#applyResumeSignal`). The resolution leg stays unchanged: stage-2 `pending_approvers`, 1 → 1 and 2 → 2, same order. Both legs must hold on both chains, and a missing or disagreeing snapshot is a FAIL. The old "⛔ Do NOT prescribe reading the run's variables snapshot" sentence is gone, because its premise no longer holds. - `steps[7]` and `source[3]` say the same thing. The run id is the stage-2 request's `flow_run_id`. **`approvals.notification-deep-link` r8 → r9** - `steps[3]`: on the bare `/system/approvals` route, APP is `com.objectstack.setup`. `requestPagePath` (`ApprovalsInboxPage.tsx`) falls back to the setup app's name `setup`. The app shell's `canonicalAppPathname` (`ui/packages/app-shell/src/utils/appRoute.ts`) then replaces that name alias with the package id `SETUP_APP_PACKAGE_ID` (`packages/apps/setup/src/index.ts`). #27134 measured this live. - `acceptance[3]`'s verify parenthetical had the same stale `setup`, and it gets the same correction. Every clause still uses the APP placeholder, so no assertion changes. ## Acceptance notes - **Scope, declared:** the claim named `knownGaps[0]` + acceptance[3]'s reason, and `steps[3]`. The same stale fact also sat in `steps[7]` and `source[3]` of the first item and in `acceptance[3]`'s verify of the second. They are corrected here because leaving them would make each item contradict itself. No other item is touched. - **Not yet driven live:** the stage-2 key `lead_review.next_reviewers`. #27134 read variables on a stage-1-paused run, so the stage-2 key is grounded in source at base 74133d9. The history row says so, and a prior verdict on acceptance[3] does not carry. ## Verification <details><summary>Local gates at HEAD bf4b3b8 (each exit captured before any pipe)</summary> - `node scripts/check-platform-checklist.mjs` → exit 0, `OK — 16 areas, 329 items (324 active, 1 planned)`; symbol anchors 1036/1046 resolved, 10 on the named residual - `node scripts/check-platform-checklist.mjs --self-test` → exit 0, 265 assertions - `node scripts/checklist-select.mjs area:approvals` → exit 0, 20 runnable items, both edited items included - `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` → exit 0, 16 commands. All 16 were run and exited 0. `check:doc-formula-expressions` first answered exit 3 (PREREQUISITE NOT MET: lint/formula not built). After `turbo run build --filter=@objectstack/formula --filter=@objectstack/lint` (VERDICT command-exit 0), it answered exit 0. - `--ran` → exit 0, `16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero)` </details> --- _Generated by [Claude Code](https://claude.ai/code/session_01QSeKYmP1ZLg3jhTNud1E3J)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 6866e2e commit 6535457

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

0 commit comments

Comments
 (0)