Repository navigation
docs(qa): platform-core ledger edits from the 18.2.0 sweep run records - #26119
Merged
Merged
Conversation
Eleven platform-core items revised against main, each with its revision bumped and a history row citing the run record its line came from: QA run #25812 (boot-health, nav-surfaces-render, builtin-apps-nav-render, seed-integrity, v18-boot-refusals) and QA run #25815 (activation-ledger-registration-home, activation-ledger-row-contract, lifecycle-retention-sweep, metadata-registry-serving, serve-composition-v18, nav-surfaces-render, v18-boot-refusals). The file's two remaining prescriptions of the retired objectui pin (`pnpm objectui:build` in boot-health, the .objectui-sha revision in keyboard-shortcut-surface) now name `pnpm console:build` and the ui/ path. Claude-Session: https://claude.ai/code/session_01VoWrGZipReMqGbFdsvCLsX Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对 · REVISE · devx seat 2 · 2026-10-26T12:54ZSeat
Each touched item gets a revision bump and a history row citing #25845. Re-run Generated by Claude Code |
…#25845) activation-ledger-row-contract (rev 8): the catalog door admits position, permission, sharing_rule and webhook; the item now names the webhook writer, counts six values, and reads a missing webhook row as the declaration's own isActive. boot-health (rev 11) and url-overlay-contract (rev 3): drop the retired objectui-repo-only assertions; the pins are in this checkout under ui/. Claude-Session: https://claude.ai/code/session_01VoWrGZipReMqGbFdsvCLsX Co-authored-by: Claude <noreply@anthropic.com>
…#25845) home-admin-cluster-links (rev 5): knownGaps[0] drops the retired objectui-repo-only assertion; the two AppContent route pins are in this checkout under ui/apps/console/src/__tests__/ and score the routing layer they drive. Claude-Session: https://claude.ai/code/session_01VoWrGZipReMqGbFdsvCLsX Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对 · ACCEPT · devx seat 2 · 2026-10-26T13:21ZSeat
Generated by Claude Code |
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 Steve · project thread
Fixes #25845
Clause-②: no
Metadata-protocol: none
Wave anchor: #25807 (the 18.2.0 release test sweep). The two run records the lines come from are QA run #25812 (
priority:P0) and QA run #25815 (release-18.2.0-tier1), both at6679644a.What changes
One file,
docs/qa/platform-checklist/areas/platform-core.json. Eleven items are revised for the card lines, and four more in the patch rounds below. Each card-line item has itsrevisionbumped and a newhistoryrow that cites the run record its line came from (refis the run record).Every line was re-read against
origin/main(base9753d163, merged forward tob50f5cf0) before it was edited. The file has not changed since the run sha6679644a(git diff 6679644a 9753d163on this path is empty), so the dispatch's assumption that the file was untouched since filing holds.All 19 card lines are covered: 17 were applied, and 2 were confirmations that need no edit.
boot-healthc2 (ℹ, not ⚠)acceptance[2].verifyquotes the deployment-policy line under ℹ (isDeploymentPolicyClassinpackages/cli/src/utils/format.ts). The clause was already correct.nav-surfaces-render("All reports",test:smokecollects 3 specs)steps[2]andacceptance[1]hand-walk the console-added…/reportsentry (UnifiedSidebar.tsx,data-testid sidebar-report-index).steps[0]namese2e/showcase-smoke.spec.ts, because testDir./e2ealso holdsbulk-capability-gate.spec.tsanddetail-shapes.spec.ts.builtin-apps-nav-render(marketplace cause, Approvals entry, member url-type entries)MARKETPLACE_PROXY_FAILED/ "HTTP 502 · fetch failed" and keeps "Forbidden" as the older reading.steps[5]namesnav_account_approvals→component/approvals/inbox. Newnegative[3]: the server's per-namespace 403SETTINGS_FORBIDDENis the gate.seed-integrity(time form, 9 of 19 datasets)'14:30'→'14:30:00'(canonicalTimeOfDay).steps[1]lists all 19 datasets, 132 rows, re-derived fromShowcaseSeedDataat9753d163.v18-boot-refusalsstep 1 (--dev --no-server)steps[1]namesos serve --dev --no-serverand says why a production--preset minimalis refused earlier (serve.ts, "This stack mounts no auth…"). The "not yet replayed live" note is dropped.activation-ledger-registration-homea4platform-object-names.test.ts('registers exactly the objects each package declares') is added to the ref and cited inacceptance[4].verify.activation-ledger-registration-homen2negative[2]says no pin drives a second registrant. The throw is pinned only generically (registry-ownership-refusal-envelope.test.ts).activation-ledger-row-contractn5/a4 door halfcatalog-activation-door.dogfood.test.tsandcatalog-activation-door.test.tsare added to the ref.activation-ledger-row-contracta2acceptance[2].verifysay the dogfood key-set reading scores only the column-absence half.activation-ledger-row-contracta3sharing_ruleis named as the live read.lifecycle-retention-sweep"ref is accurate on scope"lifecycle-retention-sweepa3lifecycle-retention-sweepn0metadata-authoring-roundtrip"ref is accurate"package-first-authoring.dogfood.test.tsandstudio-object-designer.spec.tsare declared as scoring no clause, andstudio-record-page.spec.tsscores a2 only.metadata-registry-servinga0acceptance[0].verifysay the pin never checks kinds againstDEFAULT_METADATA_TYPE_REGISTRY.nav-surfaces-rendera0/n0/n1/n3nav-surfaces-rendera1serve-composition-v18run noteserve-organization-record-page.e2e.test.tscollects only underOS_TEST_TIERS=nightly. Without it, 0 tests means not-run, not a stale ref.v18-boot-refusalsa3steps[1]boot was not run.Retired objectui pin wording in this file: #26035 left these to this card, and the current spellings follow #26052. Two non-history prescriptions remained.
boot-healthacceptance[5].verifynow namespnpm console:buildinstead ofpnpm objectui:build.keyboard-shortcut-surfaceacceptance[2].verify(rev 4→5) no longer says to run the pin "from an objectui checkout at the .objectui-sha revision": it namesui/packages/app-shell/src/chrome/KeyboardShortcutsDialog.wiredOnly-11674.test.tsxat the run's own SHA. History rows are append-only and were left as written.No line turned out to be a product defect, so no line was diverted to a card.
Gates
All gates were re-run at head
42c2a959(main merged forward to1bbb7bf4).pnpm check:platform-checklist→ exit 0. The verdict line readsOK — 16 areas, 329 items (324 active, 1 planned)andsymbol anchors: 988/998 resolved(996 → 998, from the two new anchorsformat.ts#isDeploymentPolicyClassandtemporal-storage-form.ts#canonicalTimeOfDay).node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 13 families, and every one exited 0. The families arecheck-ci-filter-parity,check-closing-keyword-parity(and its--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.check:doc-formula-expressionsfirst exited 3 (PREREQUISITE: lint not built). It went green afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lint.--ranreconciliation reads13 derived, 13 run, 0 NOT-MEASURED, 0 UNRUN, and that zero is derived from the recorded exit codes.No package and no published file changes.
content/docsis not touched, so this PR carriesskip-changeset.Acceptance notes
These are noted here and not filed. They are outside the 19 lines and outside what this card asked for.
activation-ledger-row-contractscope wall was missingwebhook. Fixed in the first patch round (rev 7→8), see below.RUNNER.mdside is qa(checklist): 18.2.0 sweep ledger edits — i18n, search, studio-authoring, ux-conventions, RUNNER #26109.Patch rounds
These follow the seat's REVISE on this PR. Each touched item has its
revisionbumped and ahistoryrow citing #25845.activation-ledger-row-contract(rev 7→8).CATALOG_ACTIVATION_SUBJECTSinpackages/runtime/src/domains/catalog-activation.tscloses the door's type toposition,permission,sharing_ruleandwebhook. The item now names the webhook writer and counts six values. Writer sites are still three. With no ledger row, a declared webhook reads as its declaration's ownisActive(declared-webhooks.ts#readWebhookActivation), not ACTIVE.steps[4]switches the showcase webhookshowcase_task_changedon and back off, so it ends in its declared state and posts nothing to the placeholderhooks.example. A webhook variant is added.boot-health(rev 10→11).source[4]andsource[5]now point atui/e2e/console-boot-indicator.spec.tsandui/e2e/console-rendering.spec.tsin this checkout. The "objectui …" provenance labels stay.url-overlay-contract(rev 2→3).knownGaps[0]: the pin isui/apps/console/src/components/FormPage.recordObject.test.tsx. It runs here at the run's own SHA, and it scores the component layer only, because fetch is stubbed. The live trace stays a hand drive.home-admin-cluster-links(rev 4→5).knownGaps[0]: the pins areui/apps/console/src/__tests__/AppContent.systemHubRoutes.test.tsxandAppContent.legacyRedirects.test.tsx. They run here and score the routing layer only, because page bodies are stubbed. That each target renders live stays the browser walk.Generated by Claude Code