Skip to content

Commit b36f1b4

Browse files
docs(qa): platform-core ledger edits from the 18.2.0 sweep run records (#26119)
<!-- claude-projects-attribution: {"github_login":"os-steve"} --> _Requested by **Steve** · [project thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9S4j5Fe1JxXZWhW3uo3wKxR)_ 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 at `6679644a`. ## 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 its `revision` bumped and a new `history` row that cites the run record its line came from (`ref` is the run record). Every line was re-read against `origin/main` (base `9753d163`, merged forward to `b50f5cf0`) before it was edited. The file has not changed since the run sha `6679644a` (`git diff 6679644 9753d16` on 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. | # | Card line | Disposition | |:--|:--|:--| | 1 | #25812 · `boot-health` c2 (ℹ, not ⚠) | Applied, rev 9→10. `acceptance[2].verify` quotes the deployment-policy line under ℹ (`isDeploymentPolicyClass` in `packages/cli/src/utils/format.ts`). The clause was already correct. | | 2 | #25812 · `nav-surfaces-render` ("All reports", `test:smoke` collects 3 specs) | Applied, rev 6→7. `steps[2]` and `acceptance[1]` hand-walk the console-added `…/reports` entry (`UnifiedSidebar.tsx`, `data-testid sidebar-report-index`). `steps[0]` names `e2e/showcase-smoke.spec.ts`, because testDir `./e2e` also holds `bulk-capability-gate.spec.ts` and `detail-shapes.spec.ts`. | | 3 | #25812 · `builtin-apps-nav-render` (marketplace cause, Approvals entry, member url-type entries) | Applied, rev 7→8. knownGaps[2] names 502 `MARKETPLACE_PROXY_FAILED` / "HTTP 502 · fetch failed" and keeps "Forbidden" as the older reading. `steps[5]` names `nav_account_approvals` → `component/approvals/inbox`. New `negative[3]`: the server's per-namespace 403 `SETTINGS_FORBIDDEN` is the gate. | | 4 | #25812 · `seed-integrity` (time form, 9 of 19 datasets) | Applied, rev 4→5. The Specimen diff expects `'14:30'` → `'14:30:00'` (`canonicalTimeOfDay`). `steps[1]` lists all 19 datasets, 132 rows, re-derived from `ShowcaseSeedData` at `9753d163`. | | 5 | #25812 · `v18-boot-refusals` step 1 (`--dev --no-server`) | Applied, rev 6→7. `steps[1]` names `os serve --dev --no-server` and says why a production `--preset minimal` is refused earlier (`serve.ts`, "This stack mounts no auth…"). The "not yet replayed live" note is dropped. | | 6 | #25815 · `activation-ledger-registration-home` a4 | Applied, rev 6→7. `platform-object-names.test.ts` ('registers exactly the objects each package declares') is added to the ref and cited in `acceptance[4].verify`. | | 7 | #25815 · `activation-ledger-registration-home` n2 | Applied (same revision). `negative[2]` says no pin drives a second registrant. The throw is pinned only generically (`registry-ownership-refusal-envelope.test.ts`). | | 8 | #25815 · `activation-ledger-row-contract` n5/a4 door half | Applied, rev 6→7. `catalog-activation-door.dogfood.test.ts` and `catalog-activation-door.test.ts` are added to the ref. | | 9 | #25815 · `activation-ledger-row-contract` a2 | Applied (same revision). The ref and `acceptance[2].verify` say the dogfood key-set reading scores only the column-absence half. | | 10 | #25815 · `activation-ledger-row-contract` a3 | Applied (same revision). With the door pins in the ref, position and permission re-enable are carried. `sharing_rule` is named as the live read. | | 11 | #25815 · `lifecycle-retention-sweep` "ref is accurate on scope" | No edit. The line confirms the ref, and the history row says so. | | 12 | #25815 · `lifecycle-retention-sweep` a3 | Applied, rev 6→7. The ref says the reaped-count corroboration stays the run's. | | 13 | #25815 · `lifecycle-retention-sweep` n0 | Applied (same revision). The ref says the unit reaches the reap filter and the candidate read, not real surviving rows. | | 14 | #25815 · `metadata-authoring-roundtrip` "ref is accurate" | No edit. The line confirms the ref: `package-first-authoring.dogfood.test.ts` and `studio-object-designer.spec.ts` are declared as scoring no clause, and `studio-record-page.spec.ts` scores a2 only. | | 15 | #25815 · `metadata-registry-serving` a0 | Applied, rev 2→3. The ref and `acceptance[0].verify` say the pin never checks kinds against `DEFAULT_METADATA_TYPE_REGISTRY`. | | 16 | #25815 · `nav-surfaces-render` a0/n0/n1/n3 | Applied (in rev 7). These clauses score only from a live suite run, otherwise they are recorded not-run (browser). | | 17 | #25815 · `nav-surfaces-render` a1 | Applied (in rev 7). Nothing automates the served-nav vs SURFACES diff. The ref names the clauses the spec scores. | | 18 | #25815 · `serve-composition-v18` run note | Applied, rev 2→3. `serve-organization-record-page.e2e.test.ts` collects only under `OS_TEST_TIERS=nightly`. Without it, 0 tests means not-run, not a stale ref. | | 19 | #25815 · `v18-boot-refusals` a3 | Applied (in rev 7). When a3 rests on the pin, the run record says the live `steps[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-health` `acceptance[5].verify` now names `pnpm console:build` instead of `pnpm objectui:build`. `keyboard-shortcut-surface` `acceptance[2].verify` (rev 4→5) no longer says to run the pin "from an objectui checkout at the .objectui-sha revision": it names `ui/packages/app-shell/src/chrome/KeyboardShortcutsDialog.wiredOnly-11674.test.tsx` at 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 to `1bbb7bf4`). - `pnpm check:platform-checklist` → exit 0. The verdict line reads `OK — 16 areas, 329 items (324 active, 1 planned)` and `symbol anchors: 988/998 resolved` (996 → 998, from the two new anchors `format.ts#isDeploymentPolicyClass` and `temporal-storage-form.ts#canonicalTimeOfDay`). - `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derived 13 families, and every one exited 0. The families are `check-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-probe` and `check:watch-hint-literal`. `check:doc-formula-expressions` first exited 3 (PREREQUISITE: lint not built). It went green after `turbo run build --filter=@objectstack/formula --filter=@objectstack/lint`. - The `--ran` reconciliation reads `13 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/docs` is not touched, so this PR carries `skip-changeset`. ## Acceptance notes These are noted here and not filed. They are outside the 19 lines and outside what this card asked for. - **Resolved in this PR: the `activation-ledger-row-contract` scope wall was missing `webhook`.** Fixed in the first patch round (rev 7→8), see below. - **Resolved in this PR: the objectui-only fact was stale after the ui/ import.** The four items that asserted it are fixed in the patch rounds (see below). The `RUNNER.md` side is #26109. - About 20 "at the console pin" phrases remain in non-history text. They record where a reading was taken, not a step to run, so they were left. ## Patch rounds These follow the seat's REVISE on this PR. Each touched item has its `revision` bumped and a `history` row citing #25845. - **`activation-ledger-row-contract`** (rev 7→8). `CATALOG_ACTIVATION_SUBJECTS` in `packages/runtime/src/domains/catalog-activation.ts` closes the door's type to `position`, `permission`, `sharing_rule` and `webhook`. 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 own `isActive` (`declared-webhooks.ts#readWebhookActivation`), not ACTIVE. `steps[4]` switches the showcase webhook `showcase_task_changed` on and back off, so it ends in its declared state and posts nothing to the placeholder `hooks.example`. A webhook variant is added. - **`boot-health`** (rev 10→11). `source[4]` and `source[5]` now point at `ui/e2e/console-boot-indicator.spec.ts` and `ui/e2e/console-rendering.spec.ts` in this checkout. The "objectui …" provenance labels stay. - **`url-overlay-contract`** (rev 2→3). `knownGaps[0]`: the pin is `ui/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 are `ui/apps/console/src/__tests__/AppContent.systemHubRoutes.test.tsx` and `AppContent.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](https://claude.ai/code/session_01VoWrGZipReMqGbFdsvCLsX)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1382a23 commit b36f1b4

1 file changed

Lines changed: 150 additions & 58 deletions

File tree

0 commit comments

Comments
 (0)