Repository navigation
test(dogfood): pin the last records-forms checklist api clauses and name the live legs (slice 4) - #26908
Merged
Conversation
…ame the live legs (slice 4) Two new dogfood pins score the server halves of related-list-server-pagination (parent-scoped paging, re-read by id, the contributor/manager read gate) and view-type-gallery (the kanban aggregate per column and the temporal views' date fields). Six more items' automated.ref now say why their unpinned clauses stay live browser legs, or that the remaining one waits on the walled two-organization recipe. Revision +1 and one history row on each of the eight items. Claude-Session: https://claude.ai/code/session_01JQwxbZ3oTCkvGGTMNd5XYU Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
Contributor
Author
维护者速读
席位核对ACCEPT ·
Generated by Claude Code |
This was referenced Oct 27, 2026
This was referenced Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Warren · project thread
Fixes #26573 (slice 4, the last: items
related-list-server-pagination,view-type-gallerypinned; live-leg text onadhoc-filter-sort-builder,conditional-rules-header,field-history-tracking,form-dirty-guard,record-discussion-mentions,v18-semantic-defaults)Clause-②: no
Metadata-protocol: none
维护者速读
automated.ref里补一句为什么未钉条款留作现场腿(浏览器专属,或 record-discussion-mentions 等 qa(checklist): records-forms — provisioning recipes for a walled two-organization mention leg, a packaged action specimen, and the app-crm import specs #26625)。8 项 revision 各加 1,history 引本卡。related-list-server-paging-and-gate.dogfood.test.ts(contributor 被 403、manager 200 的两端读权限);records-forms.json6 处只改说明文字的automated.ref。pnpm --filter @objectstack/dogfood exec vitest run --maxWorkers=2 test/related-list-server-paging-and-gate.dogfood.test.ts test/view-type-gallery-data-halves.dogfood.test.ts,预期 2 个文件 5 个用例全绿;node scripts/check-platform-checklist.mjs预期 OK。What changes
related-list-server-pagination(8 → 9)related-list-server-paging-and-gate.dogfood.test.ts: the parent-scopedGET /data/showcase_contactholds Northwind's 26 contacts;$top=10pages at$skip0/10/20 answertotal: 26and 10/10/6 rows that partition the set (acceptance[1], negative[1] server half); each served child re-reads by id (acceptance[4]); a member staffedcontributoris refused 403, one staffedmanagerreads 200 (acceptance[5], negative[2] server half). The console's request shape, pager text, relatedList config and tab absence are named as live browser legs.view-type-gallery(2 → 3)view-type-gallery-data-halves.dogfood.test.ts:GET /meta/viewserves the kanban view (status / estimate_hours), every one of the five columns holds seeded tasks, and thePOST /data/showcase_task/querysum per status equals the raw rows grouped client-side (acceptance[1]); the calendar, timeline and gantt views name due_date, created_at and start_date → end_date with progress, and the seeded tasks carry them (acceptance[2]). acceptance[5] is named as the smoke spec's; the screenshot/dom clauses are named as live browser legs.adhoc-filter-sort-builder(7 → 8)automated.reftext only: acceptance[0]–[3], acceptance[4]'s same-request half and negative[0]–[3] stay live browser legs, and why.conditional-rules-header(6 → 7)automated.reftext only: acceptance[2]'s client lock, acceptance[4] and negative[2] are named as live browser legs.field-history-tracking(8 → 9)automated.reftext only: negative[1] and acceptance[2]'s absence half are named as live browser legs.form-dirty-guard(4 → 5)automated.reftext only: what the unit suite holds, and why acceptance[0]/negative[0]'s Escape and backdrop legs and acceptance[1] stay live browser legs (the re-read needs a browser to drive the guard's exit).record-discussion-mentions(8 → 9)automated.reftext only: acceptance[9]'s REST-door pin waits on #26625; until then its cross-organization leg stays a live leg on a walled boot.v18-semantic-defaults(3 → 4)automated.reftext only: the spec pins hold acceptance[0]; acceptance[1]–[3] stay live browser legs.One history row per item, citing #26573. No clause text, fixture, step or
knownGapsline was edited (the claim's file surface).Why
The card's Done-when: every clause it lists either carries a pin at its oracle's layer, or the item text says why it stays a live leg; each touched item's
automated.refnames the new pin withrevisionbumped and ahistoryrow citing the card; procedural clauses are left alone. Slices 1–3 (#26788, #26813, #26865) pinned fifteen items. This slice pins the last two that carry api clauses and writes the live-leg reason into the six items whose remaining clauses are browser-only or wait on #26625. A check of all 21 items against the card's clause lists finds every listed clause named in its item'sautomated.ref, as a pin or as a live leg with its reason. The triage ruling adds no CI lane, so the browser legs stay live legs rather than new Playwright specs.Tests
Runs
e78d7057(the restarted branch) underos-verify-lock.sh(Tasks: 67 successful, 67 total), then the two files: the view file failed twice on its first run, becauseGET /meta/viewwraps each view underitems[].config; after that fix, and with the measured paging answer (total: 26,hasMore) pinned,Test Files 2 passed (2),Tests 5 passed (5). Then the dogfood typecheck: exit 0.8e3668c0(after mergingorigin/mainc4a4aefc, which brought apackages/specchange): the closure rebuilt (Tasks: 67 successful, 67 total), then the two files →Test Files 2 passed (2),Tests 5 passed (5), thenpnpm typecheckinpackages/qa/dogfood, one locked command, VERDICT command-exit 0.No ablation was run: this diff adds tests and item text and changes no behaviour they pin. Each refusal assertion has a same-door admitted control beside it (the contributor's 403 against the manager's 200).
Acceptance notes
view-type-galleryacceptance[1] and [2] are pinned on their API half only: what the views declare and what the data door answers for the fields they name. Where a record lands on the canvas stays the browser leg the item's verify text describes.related-list-server-paginationacceptance[1] / negative[1]: the pin reads the server's paging (total,hasMore, disjoint pages); the console's pager text and its request'stop/skipspelling stay browser legs.Verification
node scripts/check-platform-checklist.mjs→ exit 0,OK — 16 areas, 329 items (324 active, 1 planned), on the commitf09120b3and on the final head.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack→ 55 commands onf09120b3, each run and reconciled with--ran:55 derived famil(ies) accounted for — 55 run, 0 NOT-MEASURED, all exit 0.Parked-onlines, every listed clause is named in the item'sautomated.ref, either with its pin or as a live leg with its reason (a scripted cross-read of the card body againstrecords-forms.json, then read by hand for the reasons).Dogfood Regression Gatedoes not run on pull_request, so the local runs above are this PR's evidence for the new pins.Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (CI-owned run)main, one pull request.@objectstack/dogfoodis private;docs/qa/**ships in no package), soskip-changeset; both declaration lines are filled in above.packages/specnot touched.content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code