Repository navigation
docs(qa): 18.0 sweep anchor round 6 — mark the objectui live specs stale at the console pin, and narrow or drop the pins that cover no full clause, in the UI-facing areas - #24697
Merged
objectstack-fleet[bot] merged 3 commits intoOct 20, 2026
Conversation
… the UI-facing checklist areas Eighteen items in studio-authoring and records-forms take one revision each. Specs that are red or skipped at the console pin, and still stale at the shipped pin, carry an automated.stale record. Pins that cover no full clause are narrowed per clause or dropped, so the next sweep drives those clauses by hand. History refs carry a placeholder until the PR exists. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…8-sweep-round6-pin-coverage
Replaces the placeholder ref in the 18 history rows added by this branch with the pull request's number. No other byte changes. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
Seat reviewACCEPT ·
This seat readies the PR and queues it with auto-merge. Generated by Claude Code |
objectstack-fleet
Bot
deleted the
claude/issue-24579-v18-sweep-round6-pin-coverage
branch
October 20, 2026 01:19
This was referenced Oct 20, 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.
Refs #24579
Clause-②: no
Round 6 of the 18.0 sweep's wave anchor. This PR covers the anchor's §2 themes "objectui live e2e is not green at its own pin" and "pins that cover no full clause", for the items round 4's report (
6278788942) names in the four UI-facing area files. Only ledger text changes: 18 items instudio-authoring.json(2) andrecords-forms.json(16) take onerevisionbump each and onehistoryrow. There is no product code, test, pin or objectui spec change in either repository.dashboards.jsonandsearch.jsonhold no item in either theme, so they are unchanged.Each history row cites its run records: Tier 1 run #24598, and the area records #24572 / #24616 (records-forms) or #24571 / #24604 (studio-authoring). The rows were committed with the placeholder
#PENDING-24579R6, because a historyrefnames this PR and the PR had no number yet. A follow-up commit on this branch swaps in this PR's number and changes nothing else.The console pin moved after the sweep
The sweep ran its live specs at objectui
4016370af3c9, the.objectui-shaof the sweep subjects5b14b7f3andba4afcc2. Before this branch was cut, #24660 moved the pin to12dc7b47c340, so that is the shipped pin atmain92ce3af404and at045dae8f23, which this branch merges. I re-read every spec at the new pin:git diff 4016370af3c9 12dc7b47c340 -- e2e/live/changes onlye2e/live/ci/backend.env(OBJECTSTACK_VERSIONnext.3 → next.5). No spec byte changed. Nothing ine2e/live/changed between12dc7b47c340and objectuimain90518cdb84either.12dc7b47c340(and at90518cdb84), and against the showcase metadata at objectstack92ce3af404. The metadata is unchanged sinceba4afcc2. Every cause still holds, and no spec is green at12dc7b47c340that was red at4016370af3c9. So each red spec gets astalerecord. Itswhycites the run at4016370af3c9and the re-reading at12dc7b47c340.4016370af3c9stay cited. Their bytes are identical at12dc7b47c340, but their verdict there is NOT MEASURED, because no live run exists at the new pin.e2e/live/)4016370af3c9(#24598)12dc7b47c340(re-read)studio-object-designer.spec.tspackages/spec/src/data/field.zod.tsis unchanged between the objectstack builds the two pins consume,2c9bf9430a11andf4755a68a797). F1 opens/apps/com.objectstack.studio, which no stock boot loads (#24571)studio-record-page.spec.tsuser-filters.spec.tsuserFiltersontabular. It also expects acellrole where the grid exposesgridcell(#24572)inline-edit-polish-2572.spec.tsmanager_reviewis deliberatelylockRecord: false. The spec also consumes its own fixture (#24572)field-conditional-rules.spec.tspackages/fieldsis unchanged, and the form renderer's only change is objectui#13055's hide-on-fault group gate (#24572)grid-file-upload.spec.ts,form-view-subforms.spec.ts'Line Items'locator collides in strict mode with the dialog's screen-reader-only description, "Enter the record and its line items, then save." That text is unchanged at both shas (#24572)cascading-options.spec.tsmd-form-submit, which only MasterDetailForm renders, onshowcase_cascade. That object has no child object, so its form is a flat ModalForm (#24572)detail-related-list.spec.ts?recordId=, but a row click opens/record/ID. The navigation code andpackages/spec/src/data/record-surface.tsare unchanged (#24572)record-history-display.spec.tsenable.trackHistoryobject. That premise is stale:showcase_accounthas onesaved-view-filter,required-when-submit,grid-conditional-rules,grid-parent-rules,master-detail,summary-rollup,list-row-action-cel,action-modalscreen-flow.spec.ts(red at4016370af3c9) belongs toautomation.json, which is not in this claim.Theme A — objectui live e2e is not green at its own pin
I used the shape
studio-authoring.record-page-roundtripalready carries:automated.stalewithsince/observedIn/ref/why/runnerRule/ownedBy. Where green refs sit beside the stale one, the record also takesstale.partial, which isplatform-core.metadata-authoring-roundtrip's precedent. EachrunnerRulesays which green specs a runner may still cite, and which clauses must be driven by hand.studio-authoring.object-designer-roundtripautomated.stalestudio-object-designer.spec.tsF1, F44016370af3c9, stale at12dc7b47c340; F2 / F3 greenstudio-authoring.record-page-roundtripautomated.stale.observedIn,automated.stale.whystudio-record-page.spec.tsobservedIn#7695 → #24598)records-forms.list-view-capabilitiesautomated.staleuser-filters.spec.ts(4 of 6),inline-edit-polish-2572.spec.tssaved-view-filtergreenrecords-forms.conditional-rules-gridautomated.stalegrid-file-upload.spec.tsrecords-forms.cascading-optionsautomated.stalecascading-options.spec.tsre-filter caserecords-forms.cascading-multilevel-and-clearautomated.stalecascading-options.spec.tsre-filter caserecords-forms.master-detail-atomic-saveautomated.staleform-view-subforms.spec.tsrecords-forms.field-history-trackingautomated.stalerecord-history-display.spec.tsTheme B — pins that cover no full clause
I applied one rule to each item round 4 named. The test is what the pin's own test bodies assert, read at
4016370af3c9. Every one of these pins is byte-identical at12dc7b47c340.automated.refsays which clauses each pin covers, in the round-2scope-depth-asymmetryshape. A pin that scores none of the item's clauses is dropped from the ref, and the ref names it.automatedwhere no pin asserts a full clause, even when green. The item'sfixtures.knownGapsline that said "AUTOMATION IS PINNED IN THE objectui REPO" now says that no pin covers a full clause, what each adjacent pin does assert, and whenautomatedmay come back.records-forms.adhoc-filter-sort-builderautomated.ref,automated.staleuser-filters.spec.ts;saved-view-filter.spec.tsrecords-forms.conditional-rules-headerautomated.ref,automated.stale,acceptance[4].verifylist-row-action-cel.spec.ts(+ theme Afield-conditional-rules)records-forms.related-list-server-paginationautomated.ref,automated.staledetail-related-list.spec.tsrecords-forms.concurrent-edit-conflictautomated.ref,acceptance[4].verifyoccSave.test.tsx;inline-edit-polish-2572.spec.tsrecords-forms.import-job-undo-cancelautomated.ref,acceptance[0].verifyimport-console-undo.spec.ts,import-undo.spec.tsrecords-forms.action-param-widgetsautomated.refaction-modal.spec.ts(objectui half)records-forms.action-location-matrixautomatedremoved,fixtures.knownGaps[0]list-row-action-cel.spec.ts,action-modal.spec.tsrecords-forms.calendar-interactionsautomatedremoved,fixtures.knownGaps[0]CalendarView.dnd.test.tsxrecords-forms.grid-personalizationautomatedremoved,fixtures.knownGaps[0]groupedPagination,groupedBooleanLabel,inlineEditPersistencetestsrecords-forms.lookup-picker-create-newautomatedremoved,fixtures.knownGaps[0]LookupField.dependsOn,RecordPickerDialog.filterOptionstestsWhy this rule, on the four axes:
automatedis the reverse edit.One consequence differs from the dispatch's hypothesis. A dropped P2 item becomes Tier 3 (deferred unless a change touches it, checklist-test skill §1), not Tier 2. That applies to
grid-personalizationandlookup-picker-create-new.Items left alone
dashboards.json,search.json: no item in either theme. They cite no objectui live spec, and QA run · tier1:automated-pins (149/166) · ba4afcc2 · 2026-10-19 · 60 PASS / 89 PARTIAL / 0 FAIL / 0 BLOCKED / 17 NOT-RUN #24598 names none of their pins as clause-free.platform-core.metadata-authoring-roundtripcites the same stalestudio-record-page.spec.ts. It is in round 5's file (landed in docs(qa): 18.0 sweep anchor round 5 — the walled-posture and second-organization themes, runner environment facts, and two carried notes #24687) and still readsobservedInQA run · studio-authoring (FULL area) · 92f26f75 · 2026-08-11 · 3 PASS / 2 PARTIAL / 7 FAIL #7695.attachments-storage.inline-grid-receipt-cells(grid-file-upload.spec.ts) andautomation.screen-flow-roundtrip(screen-flow.spec.ts) are in the same theme, but they are in round 5's files.studio-authoring.draft-publish-lifecycle: QA run · tier1:automated-pins (149/166) · ba4afcc2 · 2026-10-19 · 60 PASS / 89 PARTIAL / 0 FAIL / 0 BLOCKED / 17 NOT-RUN #24598 scores it NOT-RUN because its pins cover no full clause, but round 4's §2 list does not name it, so it is outside this claim.summary-rollup.spec.tsonmaster-detail-atomic-save(it rolls upshowcase_project, notinvoice.total, though acceptance[2].verify says it pins the clause), andgrid-conditional-rules.spec.tsonconditional-rules-grid(the inline flag only). These are candidates for the next theme-B pass.list-view-capabilities' dogfood half keeps round 4's "scores NO clause" annotation as it landed.integration-system.json(open PRs) is excluded. §4 fixture gaps are not this round's work.Acceptance notes
RUNNER.mdsays "23 items carry anautomated.refthat lives ENTIRELY in theobjectuirepo". I measured 28 onmainbefore this PR, and 24 after it.RUNNER.mdis outside this claim, so the count is recorded here and not edited.grid-parent-rules.spec.tsstays cited as green. The surface it drives, MasterDetailForm's header-record read, was rewritten between the pins (objectui#13062's repair,bc98626e), so its verdict at12dc7b47c340is NOT MEASURED.Verification
Every area-file edit went through a scripted span editor that never re-serialises a file. It splices only the declared value spans, then re-parses and asserts four things: the document equals the old one with the declared ops applied; every other item and every top-level key is value-equal; each edited item's changed leaf paths are a subset of the declared fields plus
revisionand the one new history row; and the text outside the 18 edited items' spans is byte-identical.Gates come from
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, which derived 13 families for the 2 changed paths, against merge base045dae8f2. All 13 ran at head70963fb0c2, each exit captured before any pipe, all exit 0:node scripts/check-ci-filter-parity.mjsnode scripts/check-closing-keyword-parity.mjsnode scripts/check-closing-keyword-parity.mjs --self-testnode scripts/check-comment-mask-corpus.mjspnpm --filter @objectstack/lint run check:doc-formula-expressionspnpm check:cross-package-test-inputspnpm check:doc-authoringpnpm check:driver-memory-censuspnpm check:gitlink-declaredpnpm check:nul-bytespnpm check:platform-checklistpnpm check:refd-timer-probepnpm check:watch-hint-literal--ranreconciles: "13 derived famil(ies) accounted for — 13 run, 0 NOT-MEASURED (a DERIVED zero — all 13 recorded an exit code and none of them is 3)".check:doc-formula-expressionsfirst refused with exit 3, a prerequisite:@objectstack/formulaand@objectstack/lintwere not built. I built both under the shared verify lock (VERDICT command-exit 0) and the rerun exited 0.check:platform-checklistruns in no per-PR CI, so this local reading is its evidence:Symbol anchors are 886/896 at
045dae8f23and 886/896 at head, against 413 cited sources, with 18 file floors held both times. At the original base92ce3af404they were 875/885 before and after this diff. So 0 anchors were lost and 0 added.There is no ablation, because no tested behaviour changed.
skip-changeset:docs/qa/**ships in none of the 86 package manifests'files[], and the repo root is private.Generated by Claude Code