Repository navigation
docs(qa): re-point five 18.0 sweep red-row clauses to the shipped contract - #24622
Merged
objectstack-fleet[bot] merged 2 commits intoOct 19, 2026
Merged
Conversation
…tract Five checklist clauses the 18.0 release sweep scored fail were each disposed as a stale spec or an assertion defect against a documented contract. Each item is re-pointed, bumps its revision to 2 and records the run that found it: - cli.organization-ownership-ceremony: acceptance[1]-[3] score the 18.0 release refusal and the drop gate; the withdrawn ceremony arms move to fixtures.knownGaps as not scored; automated.ref gains the release-refusal pin. - automation.flow-authoring-refusals-v18: acceptance[2] says what the PUT door refuses; the CEL root-scope arms expect 200. - api-backend.error-sentences-and-unique-violation-wire-code: acceptance[2] asserts the composite details shape. - access-security.share-link-combined-gates: acceptance[3] is open/refused parity between /messages and /resolve. - attachments-storage.chunked-upload-integrity: acceptance[3] expects progress 200 unless the expiry stamp is due; chunks number from 0. No product code, test or pin changes. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
The rows were written before the pull request existed; this replaces their placeholder ref with its number and changes nothing else. 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-red-row-repoints
branch
October 19, 2026 17:19
This was referenced Oct 19, 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 (§1)
Clause-②: no
Part of #24579: this PR lands §1 of that wave anchor, the five red-row re-points. §2 (wave-wide themes), §3 (checklist-accuracy findings), §4 (fixture gaps, partials, not-run handover), §6 and §7 stay on the card.
What
The 18.0 release sweep (subject
5b14b7f3) scored five checklist clausesfail. Each run record disposed its row as a stale spec or an assertion defect against a documented contract: the product is right and the clause is wrong. This PR re-points those five clauses. Each item bumpsrevision1 → 2 and gains onehistoryrow that names its run record and has this PR as itsref.Ledger only. No product code, test or pin changes. Diff: 5 files under
docs/qa/platform-checklist/areas/, one item per file, and no other item or area-level key moves (checked by parse against the base).cli.organization-ownership-ceremonyacceptance[1]–[4]fixtures.knownGaps(new), steps, acceptance[0]–[3] (old [4] removed),automated.ref, sourceautomation.flow-authoring-refusals-v18acceptance[2]api-backend.error-sentences-and-unique-violation-wire-codeacceptance[2]access-security.share-link-combined-gatesacceptance[3]attachments-storage.chunked-upload-integrityacceptance[3]Each re-point, against
main5a871e4e41Every source cited below is byte-identical between the run subject
5b14b7f3andmain5a871e4e41. The one file that moved,metadata-protocol/src/protocol.ts, changed by a perf commit whose hunks are nowhere near the two refusals cited from it.cli.organization-ownership-ceremony. By ruling, 18.0 is fresh installs only. The registeredos migrate organization-ownership(MigrateOrganizationOwnership) refuses plan and apply alike, withNOT_IMPLEMENTED/upgrade-unavailable, before it opens anything. The changes:--applyarm refusing the same way.refused_organization_ownership_unmigratedwithtables). The sys_migration checkpoint half is dropped.automated.refgainsorganization-ownership.release-refusal.test.ts, the pin of the registered command. The other seven pins drive the ceremony class beneath it.clause/oracle/verify/evidence(one$comment).check-platform-checklist.mjsreads no such key, and RUNNER'sskippedis a run verdict, not an item field. The nearest legal shape is the one the ledger already uses for a half an item does not score: afixtures.knownGapsline saying the half is deliberately not scored here. Precedents arecli.plugin-manifest-build-contractknownGaps[1] andplatform-core.manifest-install-contractknownGaps[0].knownGaps[0]lists the ceremony's withdrawn arms with the ruling quoted from QA run · cli (18/22) · 5b14b7f3 · 2026-10-19 · 17 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24551 ("ruling records 6259608309 (item 1) and 6259698357 then cut 18.0 to fresh installs on the single posture…"). It tells a runner to score those arms neitherfail(QA run · cli (18/22) · 5b14b7f3 · 2026-10-19 · 17 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24551's reading of revision 1) norskipped(QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556's, c1/c2/c4), because they are not on the item. That is the single reading for both runs: each run captured the refusal that each re-pointed clause now asserts.knownGaps[1]says acceptance[3] scores the drop gate's exit,messageandtables, not its prose. That prose still prescribes the withdrawn command, which is row 3 of platform-checklist + cli: three findings from the 18.0 QA sweep at 5b14b7f3 — two clauses mis-asserted against documented contracts, and a refusal that prescribes a withdrawn command (family card) #24567.automation.flow-authoring-refusals-v18.packages/lint/src/flow-cel-root-scope.ts#perWriteSnapshotEntrancestands the CEL root-scope judgment down at the runtime publish gate. This is by design, under rulings 5791822697 (item 3) and 6104584601 (letter B), and the item's own pinvalidate-expressions.flow-cel-root.test.tsasserts it. So therecord.xanduser.idarms expect 200 and a stored row at PUT, andos validate(acceptance[1]) still refuses them.jobandapiare code-only types (allowRuntimeCreate: false, so PUT answers 403NOT_CREATABLE). The clause names the flow-side twins the door does refuse: atry_catchnode'sretry.maxRetry, and therunAs: "system"flow that a code-declaredauthRequired: falseendpoint names (anonymousElevatedFlowRefusal, 422 atrunAs).api-backend.error-sentences-and-unique-violation-wire-code. On a tenant-scoped object, driver-sql builds a field'sunique: trueas the(organization, field)composite, so the driver names no single column.dispatcher-unique-violation-wire-code.test.tspinsdetailskeys as exactlydeveloperMessageandobject, and addsfieldonly whenDuplicateRecordErrorstates a column. The clause now asserts that composite shape.access-security.share-link-combined-gates. Inshare-link-routes.ts#registerShareLinkRoutes,/messagespassesresolveTokenthe same audience inputs/resolvedoes. It answers every refusal with one404 NOT_FOUND, and a resolved non-ai_conversationslink with400 UNSUPPORTED.runtime/src/domains/share-links-messages-audience.test.tsholds both mounts to one open/refused verdict per audience. The clause becomes "/messagesis open iff/resolveis open", where open means the call passed the link's gates. A malformed password header is refused400 VALIDATION_FAILEDby both routes, before either reads the link.attachments-storage.chunked-upload-integrity.registerStorageRoutesasks the starting-organization gate on progress only whenexpiryStampDueholds. So after an org switch, progress answers 200 unless the session'sexpires_athas passed, and 409 after that. Chunk PUT and complete answer 409 either way.missingChunks: [1]for the step's "chunk 2"). Steps now number from 0, acceptance[1] expects[1], and the org-switch step names all three calls.Titles that contradicted a re-pointed clause follow it: cli, automation, access-security and attachments. No
file:linecitation is written. The new#symbolanchors areMigrateOrganizationOwnership,ORGANIZATION_OWNERSHIP_UPGRADE_UNAVAILABLE,perWriteSnapshotEntrance,registerShareLinkRoutesandregisterStorageRoutes, and all five resolve.Verification (at
1f7239d717)pnpm check:platform-checklistexits 0. This gate runs in no per-PR CI, so this local reading is its evidence:5a871e4e41. This diff adds +5 resolved anchors and loses none, and the residual is unchanged at 10.node scripts/pm/dispatch-gates.mjs --commandsderives 13 commands on this diff (5 paths vs merge base5a871e4e4, +73 / −45). All 13 exit 0:check-ci-filter-paritycheck-closing-keyword-parityand its--self-testcheck-comment-mask-corpuscheck:doc-formula-expressions(lint). This one first exited 3 (PREREQUISITE: formula and lint unbuilt, nothing measured). It exits 0 afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lint.check:cross-package-test-inputscheck:doc-authoringcheck:driver-memory-censuscheck:gitlink-declaredcheck:nul-bytescheck:platform-checklistcheck:refd-timer-probecheck:watch-hint-literal--ranreconciliation: "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)".skip-changeset, re-measured: the onlypackage.jsonwhose directory containsdocs/qa/is the private repo root (@objectstack/spec-monorepo,private: true), so this diff ships nothing.historyrow'srefset to a placeholder, because the PR number does not exist until the PR does. The next commit replaces those five strings with this PR's number and changes nothing else. The gate re-run on that final head is recorded in theos-dev-reportcomment on qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579.Acceptance notes
Noted, not filed. Each item is already parked on #24579 by its run record unless another carrier is named.
access-security.share-link-combined-gatesautomated.refdoes not namepackages/runtime/src/domains/share-links-messages-audience.test.ts, the pin of the parity acceptance[3] now asserts. Carrier: qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 §3. Not added here, because §1 changesautomated.reffor the cli row only.attachments-storage.chunked-upload-integrityacceptance[3] still needs a second organization, and stock 18.0 refuses one with 403ORGANIZATION_CREATION_DISABLED. Carrier: qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 §2, the "no second organization" theme. Separately, none of its three pins asserts the door-level org-switch 409. Carrier: qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 §3, from QA run · attachments-storage (11/11) · 5b14b7f3 · 2026-10-19 · 10 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24560.automation.flow-authoring-refusals-v18has three steps-level accuracy findings. Carrier: qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 §3, from QA run · automation (18/22) · 5b14b7f3 · 2026-10-19 · 15 PASS / 2 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24545 and QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558.rateLimit.STACK_SCHEMA_INVALIDwith a contract sentence, not as a rule id.api-backend.error-sentences-and-unique-violation-wire-code: a package cannot author a hook onsys_sharing_rule, so the fixture line and step 1 are unrunnable as written. Carrier: qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 §3, from QA run · api-backend (22/27) · 5b14b7f3 · 2026-10-19 · 20 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 5 NOT-RUN #24541 and QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558. acceptance[1] is the product defect rest/metadata-protocol: POST /api/v1/data/:object/batch withholds a hook's business refusal as a per-row INTERNAL_ERROR, while /data, /createMany and /import return the hook's sentence #24561.cli.organization-ownership-ceremony: there is no v17-shaped SQLite fixture in the tree. Carrier: qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 §4. The drop-gate prose naming the withdrawn command is row 3 of platform-checklist + cli: three findings from the 18.0 QA sweep at 5b14b7f3 — two clauses mis-asserted against documented contracts, and a refusal that prescribes a withdrawn command (family card) #24567.Generated by Claude Code