Repository navigation
docs(qa): 18.0 sweep anchor round 3 — the approvals token door after the reminder link removal, a consumed-changeset citation, and §3 accuracy corrections in six areas - #24649
Merged
objectstack-fleet[bot] merged 8 commits intoOct 19, 2026
Conversation
…removal; the ownership ceremony's knownGap names its consumed changeset approvals.email-action-token-door rev 4: no stock door mints an action token since the reminder stopped carrying a link, so the live-token legs move to the pinned tests (now in automated.ref) and the live run keeps the at-rest read, the garbage-token page and the anonymous-client proof. approvals.act-door-and-admin-rescue-slate rev 3: its live-token fixture and legs follow. cli.organization-ownership-ceremony: knownGaps[0] spells the consumed changeset by name (citation fold, no revision). Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…uracy findings Thirteen cli items revised once each: the deliberate build breaks sit on plain-literal objects, the hook-body gate counts every forbidden pattern, the doctor's clean baseline stages a view over the starter object, the qa-suite step reads the transcript, the dev self-heal names its one decision home, and two over-claiming automated refs say which clause their pin covers. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…ep's accuracy findings Seventeen api-backend items revised once each: doors and spellings the sweep measured (the timezone lever's analytics door, the by-id expand spelling, the filter.t_ref location, continueOnError, the seven cache carve-outs), pins that now exist (the REST mount table), and arms that neither a stock boot nor a pin reaches. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…p's accuracy findings Thirteen automation items revised once each: the clone's ten dropped keys, the caller-specific remedy, the resume arms' specimens and spellings (the 409 slow-node recipe included), where an unpackaged probe lands, taken vs untaken end steps, the namespace prefix a scratch base needs, the refused flow a verdict read can store, the member persona's real grants, and two over-claiming automated refs narrowed to the clause their pin covers. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…nst the 18.0 sweep's accuracy findings i18n (2 items): the extract flag that emits flow keys, the scratch flow specimens, the coverage baseline being a count, the pin for the second load order. ai (5 items): the authoring warning an app agent draws, both code-only refusal shapes, the full data:read tool family, both system-object guard spellings, the skill body's required tools, the MCP argument names. ux-conventions (3 items): the expected FAILs objectui has since fixed become regression rows, and the write-feedback member and validation-rule rows name what stock can drive. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…8-sweep-accuracy-round3
…hat landed on main Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
Swaps exactly the 55 placeholder history refs for the PR's number. 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-accuracy-round3
branch
October 19, 2026 21:48
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
The third dispatch of the 18.0 release sweep's wave anchor: one PR in three parts, checklist ledger only. It changes the seven
docs/qa/platform-checklist/areas/files the claim names and nothing else: no product code, no test, no pin. Each edited item takes onerevisionbump and onehistoryrow naming the run records it rests on. Every finding was re-derived from source at base9a7838edf5(merged up toorigin/main7c7741dcb4before this PR opened) before an edit, and the console claims were read on objectui. Findings that did not hold are listed below with the reading that refuted them.The history rows carry the placeholder ref
#PENDING-24579R3, because the PR has no number until it is created. A follow-up commit on this branch swaps exactly those strings for this PR's number.Part (a): §1's last row, after PR #24620
PR #24620 (
65a8eeb7d4, the repair of #24564) took the one-tap link off the reminder payload. On mainremind()mints no token and attaches no link,issueActionTokenshas no production caller, and no REST door reaches it, so no stock boot holds a live action token. The live-token legs move to the pins, now named per clause in a newautomated.ref. The live run keeps three legs: the at-rest read (the reminder row carries no link), thetoken=garbagepage, and the anonymous-client proof.act-door-and-admin-rescue-slate'sfixtures.requiresfollows; #24620 refutes QA run #24542's reading that the raw links sit insys_notification.payload.actions.approvals.act-door-and-admin-rescue-slatefixtures.requires[1],steps[0],acceptance[1].verify,acceptance[1].evidenceapprovals.email-action-token-doorpersonas[0],fixtures.requires[0],fixtures.requires[1],fixtures.knownGaps,steps,acceptance[0].clause,acceptance[0].verify,acceptance[0].evidence,acceptance[1].oracle,acceptance[1].verify,acceptance[1].evidence,acceptance[2].oracle,acceptance[2].verify,acceptance[2].evidence,acceptance[3].oracle,acceptance[3].verify,acceptance[3].evidence,acceptance[4].verify,acceptance[4].evidence,acceptance[5].verify,acceptance[5].evidence,automated,source[2],source[4],sourcePins measured at base
9a7838edf5underscripts/pm/os-verify-lock.sh(VERDICT command-exit 0), plugin-approvals vitest:approval-service.test.ts367,action-page-member.integration.test.ts12,sys-approval-token-generic-door.integration.test.ts6,reminder-action-link-at-rest.integration.test.ts4,approval-token-internal-hash.integration.test.ts1. All 390 passed, 0 failed.Part (b): the rider
cli.organization-ownership-ceremonyfixtures.knownGaps[0]quoted QA run #24551 with the consumed path.changeset/pre/15212-180-guards-fresh-single-only.mdinside the quotation. The quotation now ends before the path. The carrier is named in the item's own prose as the changeset15212-180-guards-fresh-single-only, the spelling itssourcelist uses. This is a citation fold, so no revision is taken and no history row is added. Round 2 measured the same rule: a semantic edit needs a revision, and a citation fold does not.cli.organization-ownership-ceremonyfixtures.knownGaps[0]Part (c): §3 checklist-accuracy findings, six areas
cli (13 items)
cli.build-own-contractsteps[2],steps[5]cli.datasource-introspect-codegensteps[1],fixtures.knownGaps[2]cli.dev-automigrate-policysteps[4],acceptance[5].clause,acceptance[5].verify,source[3]cli.doctor-health-reportsteps[1],acceptance[5].clause,acceptance[5].verifycli.hook-body-extraction-gatessteps[0],acceptance[0].clause,acceptance[0].verify,acceptance[0].evidencecli.meta-package-flags-and-explainfixtures.requires,steps[0]cli.migrate-duplicates-inventorysteps[4],acceptance[3].verifycli.migrate-meta-write-stored-and-allfixtures.requires[1],steps[1]cli.migrate-plan-apply-jsonsteps[1],automated.refcli.qa-suite-executionsteps[6]cli.scaffold-console-first-paintfixtures.requires,fixtures.knownGaps[2]cli.verify-derived-proof-familiessteps[1],acceptance[2].clause,acceptance[2].verifycli.verify-verdict-exit-mappingautomated.refapi-backend (17 items)
api-backend.action-activation-door-contractfixtures.knownGaps,acceptance[4].verifyapi-backend.aggregate-contract-matrixsteps[3],steps[5],fixtures.knownGaps[1],negative[2]api-backend.api-methods-verb-gatefixtures.requires[1],steps[6],acceptance[2].verifyapi-backend.bulk-write-contractsteps[3],acceptance[2].verifyapi-backend.data-request-shape-and-query-aritysteps[4]api-backend.enforce-or-remove-authoring-gatessteps[1]api-backend.error-envelope-ledgeracceptance[3].clause,acceptance[3].verifyapi-backend.error-sentences-and-unique-violation-wire-codefixtures.requires[2],steps[0],steps[2],acceptance[1].clause,acceptance[1].verifyapi-backend.formula-stdlib-matrixsteps[2]api-backend.meta-read-doors-v18fixtures.requires[1],steps[4],acceptance[4].clause,acceptance[4].verifyapi-backend.packaged-action-disabled-dispatchsteps[5]api-backend.query-contract-matrixsteps[4]api-backend.rest-batch-config-contractfixtures.knownGaps[1],automated.refapi-backend.rest-crud-config-contractfixtures.knownGaps[1],automated.ref,acceptance[2]api-backend.rest-metadata-config-contractsteps[8],acceptance[4].clause,acceptance[4].verify,personas[1]api-backend.retired-def-refusalsteps[4]api-backend.second-object-exposure-and-internal-fieldssteps[0],steps[1],acceptance[1].clauseautomation (13 items)
automation.flow-authoring-refusals-v18steps[0],acceptance[1].clause,acceptance[1].verifyautomation.flow-error-handlingfixtures.requires[1],steps[4]automation.flow-node-type-matrixacceptance[1].clause,acceptance[1].verify,steps[1],automated.refautomation.flow-registration-verdict-on-readfixtures.requires[1]automation.flow-run-semantics-v18fixtures.requires[2],steps[0]automation.flow-run-step-nestingacceptance[1].clause,acceptance[1].verifyautomation.packaged-flow-clone-contractacceptance[1].clause,acceptance[1].verifyautomation.packaged-flow-subflow-disable-refusalacceptance[0].clauseautomation.paused-run-trigger-record-maskedfixtures.requires[2]automation.rollup-summary-filtersteps[6],acceptance[4].verifyautomation.setup-packaged-automation-boardsteps[2],steps[3],acceptance[1].clauseautomation.trigger-status-contractpersonas,steps[2],steps[5]automation.trigger-type-matrixacceptance[4].verify,automated.refi18n (2 items)
i18n.flow-copy-translation-and-host-overridefixtures.requires[2],steps[2],acceptance[4].verifyi18n.surface-matrixacceptance[2].verifyai (5 items)
ai.agent-tool-skill-metadata-roundtripsteps[1],acceptance[3].verifyai.mcp-coded-refusals-and-runtime-exposurefixtures.requires[2],steps[0]ai.mcp-http-surfacevariants[0],steps[5]ai.mcp-run-action-exposure-gateacceptance[4].clauseai.skill-instructions-mcp-promptsfixtures.requires[0]ux-conventions (3 items)
ux-conventions.disabled-control-reasonfixtures.knownGaps[1]ux-conventions.labels-over-machine-namesfixtures.knownGaps[0]ux-conventions.write-feedbackfixtures.knownGaps[1],steps[3],steps[4]No area exceeds 20 edited items. Each item's
historyrow states what the finding was, the source it was re-derived from, and whether any clause changed.Pins added to
automated.refor named in a clause (PM hypothesis 2): each was measured at base9a7838edf5under the verify lock before it was cited.rest-config-mount-table.pin.test.tshas 24 tests (rest-crud / rest-batch-config-contract).api-derivation.test.tshas 32 (api-methods-verb-gate).plugin.translations.test.tshas 10 (i18n.flow-copy). The five approvals pins are listed above. All passed. Four over-claiming refs are narrowed to the clause their pin covers, as round 2 did forscope-depth-asymmetry, and no pin is deleted:cli.migrate-plan-apply-json(acceptance[2] only),cli.verify-verdict-exit-mapping(acceptance[4] only),automation.trigger-type-matrix(acceptance[5] only) andautomation.flow-node-type-matrix(one variant of acceptance[1]).ux-conventions (objectui read): objectstack-ai/objectui#12690, #12303, #12691 and #12693 are each closed as completed. They landed through objectui PR #12830 (
0f42aaf8), #12324 (b64fda3f), #12833 (d0a00d79) and #12834 (cda4076b). Each merge is an ancestor of the console pin4016370aand of objectuimain2a75c83(merge-base --is-ancestorexit 0), and the fixed code is present on main. QA run #24570 at4016370ais the evidence that the old expected FAILs no longer reproduce.Findings left alone, with the reading that refuted each
cli.migrate-meta-codemodknownGaps[2] (QA run · cli (18/22) · 5b14b7f3 · 2026-10-19 · 17 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24551). The finding saidObjectSchema.create()anddefinePermissionSet()throw on a planted retired key before the chain runs. Underos migrate meta, the authored-source shim (packages/cli/src/utils/config.tsauthoredSourcePlugin, sinced2b188fb57, an ancestor of5b14b7f3) makes everydefine*helper and theSTRICT_AUTHORING_FACTORIES(ObjectSchema/App/Dashboard/Report/Action.create) tolerant, and hands the authored argument through. It wraps nothing only when@objectstack/specdoes not resolve from the config's directory (authoredSourceHelpersOfanswers empty), which is a fault in the scratch tree. The knownGap's wording holds.api-backend.batch-transactional-discoverystep 4 (QA run · api-backend (22/27) · 5b14b7f3 · 2026-10-19 · 20 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 5 NOT-RUN #24541), the claim that the step 'may not exercise a real rollback'.packages/rest/src/batch-routes.tsruns only the API gate beforeql.transaction, then runs each op'sengine.insertin order inside it. The first create is therefore written before the invalid invoice's required-field validation fails, and that failure rolls it back.OS_METADATA_WRITABLE=objecthalf ofapi-backend.api-methods-verb-gate's fixtures finding (QA run · api-backend (22/27) · 5b14b7f3 · 2026-10-19 · 20 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 5 NOT-RUN #24541), and theOS_METADATA_WRITABLE=flowhalf ofautomation.flow-registration-verdict-on-read's (QA run · automation (18/22) · 5b14b7f3 · 2026-10-19 · 15 PASS / 2 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24545). The registry declaresobjectandflowallowRuntimeCreate: true(metadata-plugin.zod.ts), andsaveMetaItem's code-only gate consults the hatch only for a type that is not runtime-creatable, so a NEW item needs no hatch. QA run QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558 authored scratch objects with no hatch. The other halves of both findings were taken.cli.build-own-contractacceptance[3] ('issues' vs 'errors', QA run · cli (18/22) · 5b14b7f3 · 2026-10-19 · 17 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24551). The verify already states{ success: false, … issues }, and the clause scopes parity to the warnings and conversions keys, which match (the run scored it pass).cli.organization-ownership-ceremony. The 'comment-reactions still runs' row (QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558) is consistent: the item already scoresos migrate comment-reactions --applytwice. The whole-item rewrite and therelease-refusalpin are on main via docs(qa): re-point five 18.0 sweep red-row clauses to the shipped contract #24622.cli.migrate-meta-write-stored-and-all--all leg (QA run · cli (18/22) · 5b14b7f3 · 2026-10-19 · 17 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24551). steps[2] already says 'on a stack without jobs/agents'.cli.validate-v18-authoring-verdicts(QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558, 'both non-zero, clause holds') andcli.dev-boot-contract(QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556, 'all as steps[8] states') are accurate as written.automation.flow-authoring-refusals-v18. Clause 2's PUT 422 and the job / api code-only 403 (QA run · automation (18/22) · 5b14b7f3 · 2026-10-19 · 15 PASS / 2 PARTIAL / 1 FAIL / 0 BLOCKED / 4 NOT-RUN #24545, QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558) are on main via docs(qa): re-point five 18.0 sweep red-row clauses to the shipped contract #24622 (revision 2).automation.packaged-flow-disable-durable(QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556, runslimitcapped at 100) andai.mcp-stdio-fail-closed(QA run · ai (8/10) · 5b14b7f3 · 2026-10-19 · 8 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24540,query_recordslimit capped at 50). No step in either item passes a limit, so the cap is never reached.ai.mcp-stdio-fail-closedtools/list (QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556, 9 tools includingaggregate_records). The knownGap is conditional ('if tools/list lacks aggregate_records') and holds.automation.scheduled-work-opt-in(QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558,=1vstrue). Both values are truthy (resolveScheduledWorkEnabled), so the item is accurate.i18n.surface-matrixtenant-locale route (QA run · i18n (4/6) · 5b14b7f3 · 2026-10-19 · 4 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24553). steps[17] and the clause verify already spellPUT /api/settings/localizationwith no/v1, whichservice-settings/src/settings-route-ledger.tsconfirms ('NOT under /api/v1').i18n.flow-copy-translation-and-host-override: the record-triggered refusal stays in English (QA run · i18n (4/6) · 5b14b7f3 · 2026-10-19 · 4 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24553 observation). acceptance[1] already states it ('record-trigger refusals stay in the source language').api-backend.query-contract-matrix(QA run · api-backend (22/27) · 5b14b7f3 · 2026-10-19 · 20 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 5 NOT-RUN #24541, two observations),api-backend.packaged-action-disabled-dispatch(QA run · api-backend (22/27) · 5b14b7f3 · 2026-10-19 · 20 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 5 NOT-RUN #24541, membershipCreated) andapi-backend.data-request-shape-and-query-aritycodes (QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558, 'both as stated'). None of them is an item claim.approvals.email-action-token-door. QA run · approvals (12/20) · 5b14b7f3 · 2026-10-19 · 10 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 8 NOT-RUN #24542's dead-slot and expired notes are moot: the live dead-slot leg is pin-scored now, and the expired leg was already pinned.pnpm dev -- --freshvs the canonical file-DB boot) oncli.qa-suite-execution,cli.meta-package-flags-and-explain,api-backend.error-sentences-and-unique-violation-wire-code,i18n.flow-copy-translation-and-host-override,automation.flow-registration-verdict-on-readandai.mcp-coded-refusals-and-runtime-exposure. Each record says the canonical boot 'works equally' or had 'no effect on verdict', so these are suggestions and the items are accurate. Round 2 treated them the same way.ux-conventions.write-feedback('package create and Save as draft give navigation feedback — not listed variants'), andux-conventions.labels-over-machine-names('Seen, not in the listed variants … a future revision decides scope').Named, not acted on
integration-system.json(open PR feat(plugin-webhooks,runtime)!: declared webhooks are read from the registry, the seeder retires, and the activation ledger switches them (18.x step 1, 8b-0g′) #24588):integration-system.connector-degraded-recovery('reload resets backoff'; card §3 lists it under automation),integration-system.notify-inbox-deliveryknownGaps[2] (round 2 comment 6272314386 calls itautomation.*), the Tier 1 ref note onconnector-declarative-boot, and QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558's / QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556's rows oninbound-mailbox-association,notification-org-and-redeliver-eligibilityanddatasource-credential-refusal-matrix.studio-authoring.save-door-runs-authoring-rules(the since:v18 bullet 'save-door spec refusals carry no rule id') andstudio-authoring.first-run-loop(QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556);records-forms.object-hook-lifecycle's hook-wrappers / hook-binder refs, which name source files, andrecords-forms.crud-roundtrip(the Tier 1 notes, QA run · priority:P0 (23/23) · 5b14b7f3 · 2026-10-19 · 17 PASS / 5 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #24556);dashboards.analytics-exposure-gate-and-measure-aggregate(QA run · since:v18 (48/48) · 5b14b7f3 · 2026-10-19 · 38 PASS / 7 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #24558).platform-core.serve-composition-v18(the P0 bullet) was taken in round 2.STORE_UNAVAILABLEarm ofautomation.trigger-status-contractand the member cell ofsetup-packaged-automation-boardacceptance[5];ai.mcp-oauth-private-host-transportstep 4 (the container has no RFC1918 address);ai.mcp-coded-refusals-and-runtime-exposurestep 3 (no stock action that is AI-exposed and permission-gated); the zh placeholder specimen ini18n.surface-matrix; and each record's seed and scratch-app gaps in its 'Fixture gaps' list (api-backend aggregate rows, query-contract contributor, second-object scratch app; cli v17 DB, verdaccio, introspect REVIEW notes; automation http egress, trigger cadence, inbound-hookproject).cli.verify-verdict-exit-mappingacceptance[4] is pin-only on 18.0; this PR narrows only its ref.Gates
The gate list was derived with
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackon this diff (13 families, 7 paths against merge base7c7741dcb). All 13 were run atf8fe79c742, with each exit code captured before any pipe, and every one exited 0:check-ci-filter-parity,check-closing-keyword-parity,check-closing-keyword-parity --self-test,check-comment-mask-corpus,@objectstack/lint check:doc-formula-expressions,check:cross-package-test-inputs,check:doc-authoring,check:driver-memory-census,check:gitlink-declared,check:nul-bytes,check:platform-checklist,check:refd-timer-probeandcheck:watch-hint-literal. The--ranreconciliation reads: '13 derived, 13 run, 0 NOT-MEASURED, 0 UNRUN'.check:platform-checklistruns in no per-PR CI, so this local reading is its evidence:check-platform-checklist: OK — 16 areas, 327 items (322 active, 1 planned). Symbol anchors went from 873/883 at base9a7838edf5to 875/885 at head: 2 added, 0 lost, 10 on the #16898 residual, and all 18 file floors held (PM hypothesis 3). The two new anchors come fromcli.dev-automigrate-policysource[3], which now names the decision's home and its three readers.approval-service.ts#approverbecame#remind, so that swap leaves the count unchanged.skip-changeset, re-measured:docs/qa/**is part of no package'sfiles[], so this diff publishes nothing. The full farm is CI's.Acceptance notes
docs/qa/platform-checklist/FOLLOW-UPS.mdrow E3 still says two of the three REST config items owe the mount pin inautomated.ref. This PR pays both, but the claim does not cover FOLLOW-UPS.md, so the row's refresh is left for the anchor (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).automation.paused-run-trigger-record-maskedknownGaps[0] callsshowcase_approver_bindings'draft on purpose'. The flow is authoredstatus: 'obsolete'(examples/app-showcase/src/automation/flows/approver-bindings.flow.ts), which is the fact the setup-board fix rests on. No record finding names this item, so it is noted for the anchor and not edited.packages/spec/src/api/endpoint-publish-gate.tsstill tells an 18.0 author that onlyobject_operationandflowendpoints 'execute in 17.x' (QA run QA run · api-backend (22/27) · 5b14b7f3 · 2026-10-19 · 20 PASS / 1 PARTIAL / 1 FAIL / 0 BLOCKED / 5 NOT-RUN #24541's observation, present at base9a7838edf5). It is handed back in the report for the seat to route.65a8eeb7d4, part (a)); the resume route, which now refusesinputs+variablestogether (fix(runtime)!: refuse a flow resume body that carries bothinputsandvariables#24594c3954057fe, the repair of Flow resume answers 200 and silently dropsvariableswhen the body also carriesinputs#24546) and so re-spelled trigger-status-contract steps[5]; a batch row that answers a hook's own words (fix(metadata-protocol): a batch row answers a sandboxed hook's refusal in the hook's words #24631, the repair of 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); and the in-memory bucket, which now keeps aField.dateon its day (fix(objectql): bucket a declared Field.date by its calendar day under every timezone (#24618) #24642787939130c, merged in from main, the repair of analytics: the in-memory date bucket shifts a timezone-naiveField.dateone day EARLIER under any negative-offsettimezone(America/New_York → 2026-10-01 buckets as 2026-09-30), so it disagrees with the SQL pushdown path #24618). Each of those items' history rows says which. The other cited sources changed only in code these findings do not read; the facts were spot-checked at the merged head.Generated by Claude Code