Repository navigation
Commit 55337f4
docs(qa): re-point the wave-5 checklist lines and add the package export round-trip item (#30128)
<!-- claude-projects-attribution: {"github_login":"marchtian"} -->
_Requested by **田騏** · [project
thread](https://claude.ai/code/project/chan_01VmuUhXU9SSUzqJYyXSmYSi?thread=cmsg_01VmuUhXU9SSUzqJYyXSmYSiNjyvCdXYygFqntMNR7S2dW)_
Fixes #29906
Clause-②: no
Metadata-protocol: none
## 维护者速读
- 改了什么:按 18.3.0 第五轮复测(#29890、#29893、#29877、#29870)的发现,更新了 45 个测试清单条目和
RUNNER 说明,并新增 1 个条目,覆盖“整个部署导出、到新环境再安装”这条链路。
- 为什么改:这些步骤和判定写的还是旧行为。下一轮测试照着跑,会把正常行为误判为失败,或者白白多出 422 和卡住的步骤。
- 风险与回滚:只改了 docs/qa 下的清单 JSON 和 RUNNER.md,产品代码没有动。回滚就是 revert 这个 PR。
- 先看:RUNNER.md 新写的两条环境事实,一条是覆盖已发布视图或模板的方式(走 .custom
定制包),一条是首次进入时的币种/时区弹窗;再看新条目 platform-core.package-export-round-trip。
- 两分钟验证:在分支上运行 `node scripts/check-platform-checklist.mjs`,应返回 OK,退出码 0。
- 需要你做的:无,席位落地
## What changes
Each card line was re-read against the code at base `f68b47ca` before it
was applied. 45 existing items get a revision bump and a history row
that cites #29906; one item is new.
- **Part A (W5-FAIL, #29890): 19 items.**
- The aggregate bulk action goes through the action door, `POST
/api/v1/actions/showcase_task/showcase_recalc_selection` with
`{params:{_selectedIds}}`.
- ADR-0146 D11 pair staging: list-view negatives and the email-template
admin edit.
- `/batch` is no longer offered as a 400 door.
- `connectorConfig` is closed, and run records hold echoed secrets.
- Email: the non-string display name probe, the `failed` row after a
refused send, the unreachable no-locale branch and `?member=`.
- Flow clone: 11 dropped keys, and the 'Added' row mark beside the 'In
{pair}' header chip.
- 'Switched on / off for this deployment'.
- The New flow dialog is proven by creating a flow.
- The app-id canonicalisation hop, and Keyboard shortcuts only inside an
app.
- No Activity tab for a member.
- surface-matrix: `--maxWorkers=1`, a field-help variant, and a stock zh
confirm specimen (`sys_session.revoke_my_other_sessions`, read from
source only).
- adhoc: a quick search, and sign-out through the account menu.
- Dashboard: the wave-4 held filter shape, and a two-dimension sankey
with no root.
- `?mode=draft` on a read answers 400.
- The no-entry matrix: lockedBy (#29312), the sortable observables
(#29896, #30024), non-default probes, `modalSize` and the CEL envelope.
- `sharingModel` for a published fixture object.
- disabled-control: Archive's own reason, the ledger switch, the ~all
item page (#29897).
- Invite outcome copy, and the per-group approval read from
`sys_approval_action`.
- PERMISSION_DENIED vs FORBIDDEN for the same `manage_metadata` refusal.
- **Part B (W5-STUDIO, #29893): 24 studio-authoring items.**
- Studio routes for the picklist fixture, the scratch-copy boot and the
Add record dialog.
- Spelled-out values for `indexes` and `contextSelectors`.
- Autosave wording.
- Validation rule shapes.
- Script action capabilities.
- 'New dataset' exists.
- The joined report hold.
- Record page autosave, and the member leg driven.
- The command-center queue filter, a planted foreign task, Display ›
Layout and the publish door.
- The sealed-sentence scope.
- Dataset plus measure.
- Leave-guard label and user activation.
- 'Switched on / off'.
- The edge Condition control.
- The qualified view name.
- The pair link lands on the base.
- RLS operation `select`.
- Clear falls back to the object grant.
- Ensure is asked once per editing session.
- **Part C (W5-P0, #29877).** `studio-authoring.first-run-loop`
knownGaps[3] becomes a regression row (#29673 is fixed by #29790).
RUNNER's console-auth fact names the Packaged Actions page; the retired
Packaged Automation page now redirects to Studio.
- **Part D (W5-EXPORT, #29870).** New
`platform-core.package-export-round-trip` (api + cli, P1, v18.3,
active), with 7 acceptance clauses, 5 negatives, source anchors and
partial automated pins. Clauses [3] and [6] cite #29871 and #29872 as
**fixed**: both are closed completed at base, so the clauses state the
fixed behaviour and name the card a regression would reopen.
- **RUNNER.md.**
- The "`view` is overlay-allowed, a bare PUT answers 2xx" fact is
replaced by the D11 rule. A package-less write onto a shipped name
answers 403 NOT_OVERRIDABLE; the recipe is ensure-customization, then
PUT `?package=com.example.showcase.custom` with `overrides`; a fresh
name still writes.
- A new fact covers the first-page currency / timezone prompt
(`workspace-timezone-prompt-decline`, 'Not now'). This also lands the
card's "all page items" fixture line.
- **Deviation, not on the card.**
`platform-core.manifest-install-contract` source[1] is re-pointed from
`protocol.ts#assertProtocolCompat`, which no longer resolves, to
`protocol-package-install.ts#installPackage`. The checker refused
`platform-core.json` at base for this anchor, and this PR edits that
file.
**Overlap with #29819.** The `studio-authoring.picklist-bound-select`
fixture line (`fixtures.requires[0]`: the scratch copy and no
`--compile`) lands here, so #29819 should skip it.
**Lines not applied** (6 of the card's 66):
- `offclause.zh-cn-studio-save-29790`, all 4 lines: no ledger item
carries this off-clause, so there is nothing to re-point.
- `studio-authoring.org-scope-flows` fixtures.requires[1]: a
confirmation, and the ledger already says it. At base a fresh-name
package-less PUT still writes and a shipped name answers 403, so no
change.
- `studio-authoring.permission-matrix-editor-ux` A5: the card says the
metadata-admin door draws no object expander on a read-only set. At
base, `PermissionMatrixEditor.tsx` draws the chevron expander on every
object row of that door with no read-only gate, so the reading could not
be confirmed and the clause is unchanged.
**Lines where the code at base differs from the card, applied as the
code reads** (8):
- held-edit-leave-guard: the card's steps[2] is steps[1] at base.
- picklist-bound-select: steps[4] names no route, so it is unchanged.
- report-authoring-options: only steps[2] has a Joined switch; steps[0]
is unchanged.
- `modalSize`: the record modal's form view is the default form, or the
`create` form view for a create, not only the "isDefault" form.
- Email locale: the channel names the recipient's `sys_user.locale`,
else the deployment default, rather than always `en`.
- Part D [3] and [6] are fixed rather than failing.
- The Packaged Automation fact is re-pointed to its successor, Packaged
Actions, from source.
- The "all page items" currency line lands as one RUNNER fact plus
`app-and-nav-properties` steps[1], not on each page item.
## Tests
Documentation and checklist only; no product code or test changes. The
ledger is validated by `scripts/check-platform-checklist.mjs`. Every
edit was applied text-level, then re-parsed and deep-compared against
the intended object before it was written.
## Acceptance notes
- Every line was re-read at base `f68b47ca` before it was applied; the
skipped and changed lines are named above.
- Part D lands with `status: active` and its pins. The two clauses the
card proposed as failing cite #29871 and #29872, both closed completed.
- No line-number citations were added. Every `file#symbol` anchor added
resolves to a declaration, and no anchor was removed.
## Verification
- `node scripts/check-platform-checklist.mjs` → exit 0 (16 areas, 360
items).
- `node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` derived 16 commands, and all 16 ran → exit
0.
- `check:doc-formula-expressions` first exited 3 because a prerequisite
was not built. I ran the build it prescribes (`turbo run build
--filter=@objectstack/formula --filter=@objectstack/lint`), and the gate
then exited 0.
- `--ran` reconciliation: 16 derived, 16 run, 0 NOT-MEASURED, 0 UNRUN (a
derived zero, from recorded exit codes).
- `origin/main` merged once before opening (merge `97ee2c53`).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>1 parent 5d7ada3 commit 55337f4
9 files changed
Lines changed: 561 additions & 192 deletions
File tree
- docs/qa/platform-checklist
- areas
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
197 | 218 | | |
198 | 219 | | |
199 | 220 | | |
| |||
460 | 481 | | |
461 | 482 | | |
462 | 483 | | |
463 | | - | |
464 | | - | |
465 | | - | |
466 | | - | |
467 | | - | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
472 | | - | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
473 | 500 | | |
474 | 501 | | |
475 | 502 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3295 | 3295 | | |
3296 | 3296 | | |
3297 | 3297 | | |
3298 | | - | |
| 3298 | + | |
3299 | 3299 | | |
3300 | 3300 | | |
3301 | 3301 | | |
| |||
3310 | 3310 | | |
3311 | 3311 | | |
3312 | 3312 | | |
3313 | | - | |
| 3313 | + | |
3314 | 3314 | | |
3315 | 3315 | | |
3316 | 3316 | | |
| |||
3387 | 3387 | | |
3388 | 3388 | | |
3389 | 3389 | | |
| 3390 | + | |
| 3391 | + | |
| 3392 | + | |
| 3393 | + | |
| 3394 | + | |
| 3395 | + | |
3390 | 3396 | | |
3391 | 3397 | | |
3392 | 3398 | | |
| |||
0 commit comments