Repository navigation
Commit f0eb9bb
qa(checklist): 18.2.0 sweep ledger edits — i18n, search, studio-authoring, ux-conventions, RUNNER (#26109)
<!-- claude-projects-attribution: {"github_login":"os-steve"} -->
_Requested by **Steve** · [project
thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9YMBrR5rVpt7qn3c2Z88yrb)_
Fixes #25842
Fixes #25847
Fixes #25848
Part of #25849 (4 of its 5 findings; the write-feedback acceptance[1]
reading waits on a maintainer ruling, so the card stays open)
Fixes #25850
Clause-②: no
Metadata-protocol: none
Checklist-accuracy findings from the 18.2.0 release sweep, applied to
five ledger files, one commit per card. Wave anchor: #25807 (it stays
open; this PR only links it). Docs only: nothing under `packages/`,
`ui/` or any governed surface moves, so the PR carries `skip-changeset`.
Every JSON edit revises the item text, bumps its `revision`, and appends
a `history` row that names the run record the finding came from (QA runs
#25815 `release-18.2.0-tier1` and #25817 `release-18.2.0-manual-set`,
both at `6679644a`; #25812 and #25823 for RUNNER). Each finding was
re-read against `origin/main` at `cc378e93` first, with objectui paths
read under `ui/`.
## Per card
**#25842, `areas/i18n.json` (9 findings, all applied, 5 items).**
- `i18n.flow-copy-translation-and-host-override`: the ref adds the three
`packages/cli/test/i18n-flow-*-coverage` tests; the verify for the
extract clause says they prove `extractTranslations`, not the command's
file write; the validate clause says `translation.test.ts` pins the rule
and its remedy while the exit code stays the run's.
- `i18n.surface-matrix`: the ref says the two objectui pins cover the
confirm copy and the successMessage handed to the toast, under stubbed
action, confirm and toast handlers (no round-trip), so the network
clause stays the run's. It also says acceptance 6, 7 and 9 have no pin:
the anonymous-deny dogfood's member 200 control asserts none of the
locale set, the group vocabulary or the zz-ZZ shape.
- `i18n.strict-translation-key-rejection`: the steps name a snake_case
item (the conventional name `zh-CN` is refused first with 400
`INVALID_REQUEST`), and the clause scores 422 `INVALID_METADATA`. A3
cites ADR-0049 and spec 17.0.0, as the live text does. A5 reads the
singular label on the record-page badge and the New dialog, and
`pluralLabel` on the list header and nav.
- `i18n.notification-localized-and-clears`: the steps and the clause
read the server's `unreadCount` (GET /api/v1/notifications), never the
header badge, which also counts pending approvals.
**#25847, `areas/search.json` (6 findings, all applied, 4 items).**
- `search.cross-field-object-search`: the pin proves the name-hit
control by substring, not by naming Acme Retail.
- `search.field-scoped-narrowing`: the ref is scoped to acceptance 0.
The pin has no `$searchFields` refusal case and drives only the POST
spelling, so acceptance 1 to 3 and both negatives are the run's. The
route-handler INVALID_FIELD evidence in `packages/rest` is named as
corroboration.
- `search.global-search-skips-unreadable`: the dogfood pin runs on
planted `skipsearch_*` objects, not the showcase objects, and its
unscoped case asserts no `totalObjects`.
- `search.pinyin-flag-both-sides`: the run's own paths must not spell
`pinyin` (they polluted the zero-hit grep), and the 6679644 counts are
recorded (53 on, 52 off).
**#25848, `areas/studio-authoring.json` (9 findings, all applied).**
Each `automated.ref` now says which clauses its pins score: jsdom and
unit pins that stop above HTTP score only the test-oracle clause.
Affected items are `expression-editors`,
`meta-save-preconditions-and-draft-rows`, `metadata-diagnostics-sweep`
(its pin's `[#8924]` describe is named as protocol-layer evidence for
acceptance 3 and negative 0), `object-designer-roundtrip` (F4 is
corroboration under a different fixture), `org-override-registry-gate`
and `save-door-runs-authoring-rules`. In `permission-matrix-editor-ux`,
the ref adds `PermissionMatrixEditor.artifactTier.test.tsx` for the
artifact gate. In `record-page-roundtrip`, the ref names the run's
objectui pin `b41ed7f68956` beside `cf153eb2e535`.
**#25849, `areas/ux-conventions.json` (5 findings: 4 applied, 1
answered).** `write-feedback`:
- Import Undo works in create and update modes, so the Undo clause is
scored on the import instead of `blocked(fixture)`.
- Discard draft is an in-app dialog.
- The approvals route has no drawer: a request opens on its record page.
- The member's refusal row is Mark Done, because the console offers a
member no inline edit, selection or drag.
- **Not applied:** the run asks for a ruling on object-only success
strings ("Task created successfully", "Settings saved", `Flow "Reassign
Task" completed`) under acceptance 1. That is a maintainer decision, so
the clause is unchanged and the question is raised in the report on
#25842.
**#25850, `RUNNER.md` (3 findings, all applied; re-read on top of
#26052).**
- Walled boot: `examples/app-showcase/package.json` declares
`@objectstack/organizations`, so a walled run boots from the tree with
three variables and no scratch copy.
- Playwright: `/opt/pw-browsers` holds chromium 1243, matching
playwright-core 1.63.0, and the alias resolves there (re-read in this
container at `cc378e93`). The entry now describes a mismatch as the case
to check for.
- `OS_PORT`: `os dev` serves the prebuilt `dist/objectstack.json`, so
the connector metadata's `baseUrl` can carry the build-time value while
the live dispatch reaches the exported port. The Check now reads the
self-ping flow's run.
- Walled personas: after #25626, Create User joins the operator's
current organization, so the operator creates an organization and runs
`set-active` before minting personas.
**Retired objectui-pin wording in the same files** (#26035 left the area
JSON to these cards). `.objectui-sha`, `objectui:refresh` and "not
runnable from this checkout" are rewritten to `ui/` paths and `pnpm
console:build`. That covers `i18n.studio-follows-app-locale`,
`studio-authoring.first-run-loop`, `packaged-automation-studio-lock`,
`packaged-display-class-direct-edit`, `doc-on-app-menu`,
`picklist-bound-select`, the four "AUTOMATION IS PINNED IN THE objectui
REPO" knownGaps in `studio-authoring.json`, and RUNNER's objectui-ref
standing fact. Re-scan of the five files' non-history text for
`objectui:(build|refresh|bump|clean)`, `build-console.sh`,
`.objectui-sha`, `objectui checkout` and "PINNED IN THE objectui REPO":
0 hits. History rows are records and are left as written.
## Acceptance notes
- **Same stale knownGap in other files, out of scope here.** 15 items in
`records-forms.json` (12), `automation.json` (2) and
`attachments-storage.json` (1) still say their objectui pins are not
runnable from this checkout. RUNNER's rewritten fact now tells a runner
to read that wording as stale. The items themselves belong to their
files' cards, and the report on #25842 names this for the seat.
- `packages/qa/dogfood/test/search-conformance.ledger.ts` names
`showcase-search.dogfood.test.ts` as the proof for
`search-fields-override` (400 INVALID_FIELD), but that file has no
refusal case. Noted, not filed.
- `examples/app-showcase/src/system/self-url.ts`'s header still says the
`os dev` value follows the live environment; at `6679644a` the served
metadata did not. This goes to the seat with the OS_PORT finding.
## Verification
At head `bc394208`:
- `pnpm check:platform-checklist`: exit 0, "OK — 16 areas, 329 items".
- `node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` derives 13 families. All 13 ran with exit 0:
`check:doc-formula-expressions` refused with exit 3 until
`@objectstack/formula` and `@objectstack/lint` were built, then passed.
- `--ran` reconciliation: 13 derived, 13 run, 0 NOT-MEASURED.
- `node scripts/check-commit-card-trailers.mjs --range
origin/main..HEAD`: 5 commits, no card relation, no model identifier.
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 8de7c50 commit f0eb9bb
5 files changed
Lines changed: 238 additions & 160 deletions
File tree
- docs/qa/platform-checklist
- areas
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
217 | 220 | | |
218 | 221 | | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
232 | 234 | | |
233 | 235 | | |
234 | 236 | | |
| |||
273 | 275 | | |
274 | 276 | | |
275 | 277 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
285 | 294 | | |
286 | 295 | | |
287 | 296 | | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
292 | 302 | | |
293 | 303 | | |
294 | 304 | | |
| |||
491 | 501 | | |
492 | 502 | | |
493 | 503 | | |
494 | | - | |
495 | | - | |
496 | | - | |
497 | | - | |
498 | | - | |
499 | | - | |
500 | | - | |
501 | | - | |
502 | | - | |
503 | | - | |
504 | | - | |
505 | | - | |
506 | | - | |
507 | | - | |
508 | | - | |
509 | | - | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
510 | 518 | | |
511 | 519 | | |
512 | 520 | | |
513 | | - | |
514 | | - | |
515 | | - | |
| 521 | + | |
| 522 | + | |
516 | 523 | | |
517 | 524 | | |
518 | 525 | | |
519 | 526 | | |
520 | | - | |
| 527 | + | |
| 528 | + | |
521 | 529 | | |
522 | 530 | | |
523 | 531 | | |
| |||
531 | 539 | | |
532 | 540 | | |
533 | 541 | | |
534 | | - | |
535 | | - | |
536 | | - | |
537 | | - | |
538 | | - | |
539 | | - | |
540 | | - | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | | - | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
545 | 551 | | |
546 | 552 | | |
547 | 553 | | |
| |||
558 | 564 | | |
559 | 565 | | |
560 | 566 | | |
561 | | - | |
| 567 | + | |
562 | 568 | | |
563 | 569 | | |
564 | 570 | | |
| |||
576 | 582 | | |
577 | 583 | | |
578 | 584 | | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
589 | 599 | | |
590 | 600 | | |
591 | 601 | | |
| |||
0 commit comments