Repository navigation
Commit b36f1b4
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
0 commit comments