Repository navigation
Commit 6535457
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
0 commit comments