Repository navigation
Commit 1382a23
docs(qa): records-forms checklist — 60 ledger lines from the 18.2.0 sweep runs (#26125)
<!-- claude-projects-attribution: {"github_login":"os-steve"} -->
_Requested by **Steve** · [project
thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9PmbTJCW5X3f7qRdDKVM1AM)_
Fixes #25846
Clause-②: no
Metadata-protocol: none
Part of the 18.2.0 release sweep, wave anchor #25807. Docs-only: one
file, `docs/qa/platform-checklist/areas/records-forms.json`.
The card was filed under the maintainer's 「写issue,不派发」 and returned to
the queue by the maintainer's 2026-10-26 「16 张清单卡:应该可以回归队列吧」. Claim:
comment 6415980938 (devx seat 2), branch `claude/project-thread-na4l37`,
the card thread's harness-pinned branch.
## What changed
34 items revised. Each bumps `revision` by one and appends one `history`
row, dated 2026-10-26 with `ref: #25846`, naming the run record each
line came from: P0 run #25812, Tier 1 run #25815 or manual-set run
#25817, all at `6679644a` with pin `b41ed7f68956`. Every line was
re-read against `origin/main` at `cc378e93` first, with objectui paths
re-read under `ui/`. #26028 (10:03Z) had touched this file after the
card was filed; the one line it changed is not among these.
Three kinds of edit:
1. **55 of the 60 card lines applied** (table below). Mostly
`automated.ref` and `verify` text that claimed more than a pin reaches
at its layer (RUNNER rule 6). Others are refs that still named specs
dropped at an earlier revision, which a ref parser read as pins. One
clause was re-authored: `field-unique-enforcement` acceptance[4] said
bare `unique` folds NULL-organization rows into ONE bucket (ADR-0120
D3). Both of its pins now assert ADR-0131 D1's exemption, so the clause
asserts that instead. That is the one semantic clause change, and run
records before revision 10 scored the old clause.
2. **Retired pin wording, left to this card by #26035.** These lines
named the retired pin flow (`.objectui-sha`, `pnpm objectui:build`):
`script-action-hook-refusal-toast` requires[3] and steps[0],
`v18-semantic-defaults` knownGaps[0], `field-group-visible-when`
acceptance[3], `form-dirty-guard` acceptance[2], and
`import-wizard-encoding-and-hints` steps[0], knownGaps[1] and
acceptance[0]–[2]. They now say `pnpm console:build` and run from `ui/`.
Outside `history` rows, a search of this file for
`objectui:(build|refresh|bump|clean)` or `.objectui-sha` now finds three
lines, and each one names the pin as retired.
3. **The objectui-pinned-automation note on 13 items** (devx seat 2's
direction). Its `knownGaps` text "AUTOMATION IS PINNED IN THE objectui
REPO, NOT HERE … none of those specs exist here" is now false, because
the specs are under `ui/`. The note now says where they resolve and how
they run. The `import-job-undo-cancel` fixtures name `ui/` for the same
reason. Those 13 are `conditional-rules-header`,
`conditional-rules-grid`, `cascading-options`,
`master-detail-atomic-save`, `related-list-server-pagination`,
`import-wizard-encoding-and-hints`, `gantt-interactions`,
`form-dirty-guard`, `adhoc-filter-sort-builder`,
`concurrent-edit-conflict`, `bulk-select-all-matching`,
`record-edit-undo` and `import-job-undo-cancel`.
## Per-line disposition (60)
| item | line(s) | disposition |
|:--|:--|:--|
| crud-roundtrip | acc[6] owner half "not yet run" | applied: replay
from #25812 recorded |
| action-param-widgets | ref-parse | applied: dropped spec no longer
named in the ref |
| adhoc-filter-sort-builder | a4; ref-parse | applied (2) |
| bulk-select-all-matching | a1/a4/n0; a3/n2 | applied (2). Refuted in
part: `bulkFanoutHostParams.test.tsx` (not in the ref) does drive the
paged fan-out and HARD_CAP at component level, so the ref names it as
evidence of that layer |
| cascading-multilevel-and-clear | a1; ref | applied (2): in-set answer
is 201, message key unpinned; validator test leaves the ref |
| cascading-options | a1/n0 | applied |
| comment-reactions-and-edit-stamps | a1/a2 | applied |
| concurrent-edit-conflict | a3; a1; pins | applied (3) |
| conditional-rules-grid | ref-parse; browser-only | applied (2) |
| conditional-rules-header | a2; pins; a0/a3 | applied (3): the spec
asserts tax_rate enabled at paid on the New dialog (objectui#13436), so
acceptance[2] is unpinned |
| delete-behavior-matrix | a0–a4/n0–n3; a5 | applied (2):
`packages/spec/src/data/field.test.ts` added for the parse seam |
| encrypted-field-behavior | a0 | applied |
| field-history-tracking | a2 | applied |
| field-type-constraints | a5/a6; matrix.ts; a0–a4 | applied (3) |
| field-type-matrix | matrix.ts; a5/n1; a4 | applied (3) |
| field-unique-enforcement | a4 | applied: clause re-authored to
ADR-0131 D1 |
| field-unique-enforcement | a0–a3/n0–n2 | no edit: the line confirms
the ref as written |
| form-dirty-guard | a0/n0; a2 count | applied (2): 11 `it()` cases on
this tree, no Escape/backdrop case |
| gantt-interactions | a1/a2; commit | applied (2) |
| import-job-undo-cancel | a3; a1/n0 | applied (2) |
| import-wizard-encoding-and-hints | pins | applied: suites run from
`ui/` |
| list-view-capabilities | a1; dogfood in ref | applied (2) |
| master-detail-atomic-save | pins; a0 | applied (2) |
| object-hook-lifecycle | a0; a6/n0 | applied (2) |
| object-hook-lifecycle | "83 tests" vs 79 | not taken: the four files
hold 79 `it()` call sites, one of them a four-row `it.each` in
`hook-binder.test.ts`, so 83 tests run |
| predicate-relationship-traversal | a3 | applied |
| record-clone-contract | live mount; a3; path spelling | applied (3) |
| record-discussion-mentions | a5; a8 | applied (2) |
| record-discussion-mentions | a6/n3; a9 | no edit: both lines confirm
the clause and ref text as written |
| record-edit-undo | UndoManager | applied |
| view-type-gallery | a5 | applied |
| write-answer-advisories-rollback-and-tree-delete | a1; a2/n0 | applied
(2) |
| write-answer-advisories-rollback-and-tree-delete | a3 | no edit: the
line itself rules the rtl_* fixture acceptable (the clause names no
carrier) |
| action-location-matrix | the three manual-set lines | applied (3):
related-list header Reassign…, ⋯ click scoped to `main`, quick bar
authored |
No line turned out to be a product defect, so no defect card is owed.
## Acceptance notes
- RUNNER.md's objectui-pinned-automation standing fact still says this
checkout holds none of the objectui specs and sends a run to "an
objectui checkout at the pinned revision". The same knownGaps copy sits
on items in `attachments-storage.json` (1), `automation.json` (2) and
`studio-authoring.json` (4). This PR rewrites only this file's 13
copies, and the new note says the RUNNER wording predates the `ui/`
import. Carrier: #26035 (slice 2 covers RUNNER.md). #26035 remains open.
- `related-list-server-pagination` changed only in that knownGaps note.
## Gates
At head `82952908`:
- `pnpm check:platform-checklist`: exit 0 (`OK — 16 areas, 329 items …
symbol anchors: 986/996 resolved … 18 file floors held`).
- `node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` derived 13 families. All 13 ran with exit 0.
`--ran` reconciliation: `13 derived, 13 run, 0 NOT-MEASURED, 0 UNRUN` (a
derived zero, since all 13 recorded an exit code).
`check:doc-formula-expressions` first exited 3 on an unbuilt
prerequisite. After `turbo run build --filter=@objectstack/formula
--filter=@objectstack/lint` under the verify lock it exited 0.
- `node scripts/check-platform-checklist.mjs --changed-from
origin/main`: exit 0, 0 anchored files in the change set.
- Changed lines: 400 (+302 / −98) in one file. `skip-changeset`: the
file is under `docs/qa/`, which no package's `files[]` ships.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01RtaemQoSDLDAyNK1TyVh2P)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent ada3cbb commit 1382a23
1 file changed
Lines changed: 309 additions & 99 deletions
0 commit comments