Repository navigation
Description
QA run record — objectstack 18.2.0, wave 2, card W2-C2b: Tier 1 half B (checklist-test §5 retest trigger 1, release candidate ⇒ full Tier 1). Wave anchor: #25807. Supersedes, for its own areas only, the wave-1 Tier 1 record #25815 (shared with card W2-C2a, which owns the other Tier 1 areas). Maintainer ordered the wave directly; this is a test run and lane/seat dispatch does not apply.
Environment fingerprint
- Framework
756220c4a7adcbb1228864607cb4b6a1ca486dc0(detached). The console builds fromui/in this same tree; there is no.objectui-shapin any more. - Cold container:
pnpm install --frozen-lockfile25 s (01:30:01–01:30:26Z);pnpm build --concurrency=2119/119 tasks, exit 0, 01:30:26–01:42:39Z;pnpm console:build --concurrency=2exit 0 at 01:42:39Z (cache hit + copy). Console build line:packages/console/distbuilt 01:42Z from 756220c, served at/_console/(200).node scripts/check-dev-prereqs.mjsgreen (108 package build artifacts present). - Chromium: playwright-core wants build 1243;
/opt/pw-browsersholdschromium-1243/chromium_headless_shell-1243— they agree, stock configs launch as-is. - vitest: one package per invocation,
--maxWorkers=1, JSON reporter; ui suites fromui/root (the objectui vitest guard refuses package-dir launches); the one cli*.e2e.test.*pin in its own invocation withOS_TEST_TIERS=nightly, every other cli pin without it. - Boots (each its own non-default port and its own file DB under the run scratch dir,
--seed-admin,OS_PORTexported beside-p, started withsetsid, stopped by process group, port confirmed free): pins stack showcase:41720+ console Vite dev server:5191(DEV_PROXY_TARGET) forui/e2e/live, the same:41720serving/_consoleforexamples/app-showcasePlaywright; live-leg runners L1:41711, L2:41712, L3:41713, L4:41714, L5:41715; fail verification:41730. Seed: stock showcase + seeded admin; personas minted per RUNNER (invite-then-sign-up / admin create-user). Every fixture a runner staged is named in its clause evidence. - Parallelism: 5 read-only clause-mapping subagents (by area group) re-derived every clause from the item text and pin source at this tree (QA run · release-18.2.0-tier1 (131/156) · 6679644a · 2026-10-25 · 6 PASS / 123 PARTIAL / 0 FAIL / 2 BLOCKED / 25 NOT-RUN #25815 read only for comparison); 5 live-leg runner subagents, each with its own port/DB/browser context, at most 3 browsers at once; the parent ran every pin, sequentially, after the build had finished.
- Timestamps (UTC, 2026-10-27): env prep 01:30–01:43; clause mapping 01:31–01:47; framework vitest pins 01:43–01:58; ui unit pins 01:58–02:00; extra pins 02:00–02:02;
ui/e2e/live02:03–02:09; showcase Playwright 02:09–02:11; live legs 01:44–02:38 (incl. probes); fail verification 02:40–02:44.
Scope
Selector release-18.2.0-w2-tier1-b: every active, unblocked item carrying automated.ref (read from areas/AREA.json at 756220c) in the areas dashboards · i18n · identity-auth · integration-system · platform-core · records-forms · search · studio-authoring · ux-conventions. 80 items, 657 clauses (dashboards 3, i18n 2, identity-auth 9, integration-system 11, platform-core 13, records-forms 30, search 3, studio-authoring 9, ux-conventions 0 — none of its 3 runnable items carries a ref). Each row of the item table carries the revision its verdict is valid for (all equal the resolver's revision). Blocked items are excluded by the resolver (records-forms.record-edit-undo, carried forward below). No planned item carries a ref; records-forms.picklist-shared-across-objects is planned and out of this selector.
The 15 wave-1 NOT-RUN items in these areas got a live leg this time (L1–L5): i18n.surface-matrix, integration-system.connector-descriptor-audit, platform-core.url-overlay-contract, records-forms.bulk-select-all-matching, records-forms.concurrent-edit-conflict, records-forms.conditional-rules-grid, records-forms.delete-behavior-matrix, records-forms.field-type-constraints, records-forms.gantt-interactions, records-forms.import-job-undo-cancel, records-forms.list-view-capabilities, records-forms.record-clone-contract, records-forms.record-discussion-mentions, studio-authoring.org-override-registry-gate, studio-authoring.permission-matrix-editor-ux.
Pin run
| pins | files | tests |
|---|---|---|
| framework vitest, every file the 80 refs name (31 package invocations) | 184 | 4,496 passed · 0 failed · 0 skipped |
| ui vitest (jsdom), files the refs name | 26 | 361 passed · 0 failed |
| extra pins the mapping found asserting a clause but missing from (or unresolvable in) a ref | 22 | 577 passed · 0 failed |
ui/e2e/live Playwright (console dev server over the :41720 showcase) |
15 specs | 25 passed · 0 failed |
examples/app-showcase showcase-smoke.spec.ts (served /_console) |
1 spec | 49 passed (49/49) |
Every ref-named vitest file (210) collected at least one passing test. Not run: ui/e2e/import-console/import-console-undo.spec.ts (self-skips unless IMPORT_CONSOLE_LIVE=1, targets app-crm) and ui/e2e/import-harness/import-undo.spec.ts (needs the :5200 harness over app-crm) — no clause rests on them: records-forms.import-job-undo-cancel was driven live on the showcase instead (L3, CSV built from showcase_task's required fields).
How a clause scores (RUNNER rule 6)
A pin scores a clause pass only when a named case asserts it at the oracle's layer (unit · in-process · http-in-process · live-boot · browser · component). A pin that asserts the expectation but stops above the oracle's layer scores the clause partial, naming the missing layer (the card's instruction and RUNNER's literal wording; #25815 recorded these as not-run, so its counts are not directly comparable). A clause no pin asserts is not-run. A live-leg verdict overrides the pin verdict for its clause; a live blocked sub-leg under a passed clause makes it partial. Clause evidence (pin file + layer, or the live oracle line) is in the detail comments below, one line per clause.
Result
Items: 15 PASS / 64 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN of 80. Clauses: 273 pass · 226 partial · 1 fail · 157 not-run, of 657. No pin went red.
| item | rev | pins (files run/named, tests or specs passed) | pass | partial | fail | live | verdict |
|---|---|---|---|---|---|---|---|
| dashboards.analytics-exposure-gate-and-measure-aggregate | 2 | 4/4, 66 | a0 | a1–a2 | - | PARTIAL | |
| dashboards.dataset-report-authoring | 4 | 1/1, 3 | a0 | - | - | PARTIAL | |
| dashboards.empty-null-bucket-boundaries | 2 | 2/2, 12 | a3–a4 | n0 | - | PARTIAL | |
| i18n.flow-copy-translation-and-host-override | 3 | 8/8, 256 | a0 | a1–a4 | - | PARTIAL | |
| i18n.surface-matrix | 10 | 3/3, 81 | a0–a10, n0, n2–n3 | - | n1 | live | FAIL |
| identity-auth.admin-lifecycle-operations | 10 | 7/7, 352 | a1–a3, a8, a10–a11, n0 | a0, a4–a6, a9, a12, n3 | - | PARTIAL | |
| identity-auth.api-key-expiry-lifecycle | 2 | 3/3, 21 | a0–a1 | a2–a3 | - | PARTIAL | |
| identity-auth.auth-gate-held-session-raw-host-families | 3 | 11/11, 229 | a0 | a1–a3, n0 | - | PARTIAL | |
| identity-auth.auth-method-matrix | 9 | 4/4, 24 | a7 | a3, a6, a9, n1 | - | PARTIAL | |
| identity-auth.cookie-session-renewal-in-process | 2 | 2/2, 14 | a0, a2 | a1 | - | PARTIAL | |
| identity-auth.default-organization-boot-invariant | 3 | 2/2, 61 | a0 | a1–a3, n0 | - | PARTIAL | |
| identity-auth.implicit-account-linking-ownership | 4 | 1/1, 23 | a4, n4 | a0–a3, n0–n3 | - | PARTIAL | |
| identity-auth.import-invitation-and-sso-domain-answers | 2 | 4/4, 61 | a0–a2 | a3 | - | PARTIAL | |
| identity-auth.invitation-scope-gates | 6 | 1/1, 6 | a1–a3, n0 | a0, n1 | - | PARTIAL | |
| integration-system.connector-auth-kind-application | 4 | 3/3, 75 | - | a0–a3, n1–n2 | - | PARTIAL | |
| integration-system.connector-declarative-boot | 5 | 3/3, 67 | n0 | a0–a5, n1 | - | PARTIAL | |
| integration-system.connector-descriptor-audit | 3 | 1/1, 9 | a0–a2, n0–n1 | - | - | live | PASS |
| integration-system.connector-stdio-default-deny | 3 | 3/3, 71 | a3 | a0–a2, n0–n1 | - | PARTIAL | |
| integration-system.datasource-admin-lifecycle | 7 | 11/11, 220 | a6–a7, n4–n5 | a0–a5, a8, n0–n3 | - | PARTIAL | |
| integration-system.email-template-render | 8 | 6/6, 266 | n0 | a0–a5, a7 | - | PARTIAL | |
| integration-system.external-schema-browser-ui | 6 | 2/2, 27 | a6 | a2–a5, n2 | - | PARTIAL | |
| integration-system.external-schema-drift-gate | 5 | 4/4, 52 | a4–a6, n2, n4 | a0–a3, n0–n1, n3, n5 | - | PARTIAL | |
| integration-system.external-schema-introspection | 6 | 6/6, 134 | a1, n0, n3 | a0, a2–a4, n1–n2 | - | PARTIAL | |
| integration-system.inbound-mailbox-association | 3 | 7/7, 99 | a0, a3 | a1–a2 | - | PARTIAL | |
| integration-system.notification-org-and-redeliver-eligibility | 3 | 4/4, 108 | a0 | a1–a3 | - | PARTIAL | |
| platform-core.activation-ledger-registration-home | 7 | 4/4, 47 | a0–a4, n0–n1, n3 | - | - | PARTIAL | |
| platform-core.activation-ledger-row-contract | 8 | 5/5, 148 | n2 | a1–a5, n1, n5 | - | PARTIAL | |
| platform-core.interrupted-migration-boot-report | 3 | 1/1, 11 | a3–a4, n1 | a0–a2, n0 | - | PARTIAL | |
| platform-core.lifecycle-retention-sweep | 7 | 1/1, 114 | a3 | a0–a2, a4, n0–n1 | - | PARTIAL | |
| platform-core.metadata-authoring-roundtrip | 6 | 2/2, 6 | a2 | a3, n0 | - | PARTIAL | |
| platform-core.metadata-registry-serving | 3 | 1/1, 6 | a1–a2 | a0, n0 | - | PARTIAL | |
| platform-core.nav-surfaces-render | 7 | 1/1, 49 | a0, n0–n1, n3 | - | - | PARTIAL | |
| platform-core.protocol-18-handshake-and-stored-replay | 2 | 5/5, 98 | a0 | a1–a3 | - | PARTIAL | |
| platform-core.serve-composition-v18 | 3 | 6/6, 41 | a0–a5 | - | - | PASS | |
| platform-core.settings-audit-secret-fingerprint | 4 | 1/1, 7 | a5, n2–n3 | a0–a4, n0–n1 | - | PARTIAL | |
| platform-core.settings-organization-isolation-and-platform-rung | 5 | 4/4, 91 | a0 | a1–a3 | - | PARTIAL | |
| platform-core.url-overlay-contract | 3 | 2/2, 17 | a0–a5, n0–n3 | - | - | live | PASS |
| platform-core.v18-boot-refusals | 7 | 3/3, 35 | a0 | a1–a3, n0 | - | PARTIAL | |
| records-forms.action-param-widgets | 4 | 1/1, 5 | n1 | a2–a3 | - | PARTIAL | |
| records-forms.adhoc-filter-sort-builder | 7 | 1/1, 5 | - | a4 | - | PARTIAL | |
| records-forms.bulk-select-all-matching | 5 | 4/4, 37 | a0–a4, n0–n2 | - | - | live | PASS |
| records-forms.cascading-multilevel-and-clear | 8 | 1/1, 2 | a1, n0–n1 | a0 | - | PARTIAL | |
| records-forms.cascading-options | 6 | 1/1, 2 | a1, n0 | a0 | - | PARTIAL | |
| records-forms.comment-reactions-and-edit-stamps | 3 | 5/5, 43 | a0 | a1–a3 | - | PARTIAL | |
| records-forms.concurrent-edit-conflict | 5 | 1/1, 8 | a0–a5, n0–n2 | - | - | live | PASS |
| records-forms.conditional-rules-grid | 9 | 2/2, 2 | a0–a4, n0–n1 | - | - | live | PASS |
| records-forms.conditional-rules-header | 5 | 2/2, 2 | a0, a3 | - | - | PARTIAL | |
| records-forms.delete-behavior-matrix | 4 | 4/4, 342 | a0–a5, n0–n3 | - | - | live | PASS |
| records-forms.encrypted-field-behavior | 5 | 2/2, 87 | a0–a1, n0 | a2–a4, n1–n3 | - | PARTIAL | |
| records-forms.field-history-tracking | 7 | 3/3, 33 | a4 | a0, a2, n2 | - | PARTIAL | |
| records-forms.field-type-constraints | 4 | 3/3, 92 | a0–a7, n0–n4 | - | - | live | PASS |
| records-forms.field-type-matrix | 6 | 1/1, 46 | a0, a3–a4, n2 | a5 | - | PARTIAL | |
| records-forms.field-unique-enforcement | 10 | 3/3, 92 | a5, n3 | a0–a4, n0–n2 | - | PARTIAL | |
| records-forms.form-dirty-guard | 4 | 1/1, 14 | a2 | a0, n0 | - | PARTIAL | |
| records-forms.gantt-interactions | 6 | 4/4, 38 | a0–a3, n0 | - | - | live | PASS |
| records-forms.import-job-undo-cancel | 7 | 0/2, 0 | a0–a3, n0–n2 | - | - | live | PASS |
| records-forms.import-wizard-encoding-and-hints | 7 | 3/3, 62 | a0–a2 | - | - | PARTIAL | |
| records-forms.list-view-capabilities | 7 | 3/3, 7 | a0–a9, n0–n2 | - | - | live | PASS |
| records-forms.master-detail-atomic-save | 8 | 2/2, 3 | a4 | a0, a5 | - | PARTIAL | |
| records-forms.object-hook-lifecycle | 10 | 6/6, 91 | - | a0, a2–a3, a5, a7–a8, n0–n4 | - | PARTIAL | |
| records-forms.predicate-relationship-traversal | 4 | 1/1, 48 | a3 | a0–a2, n0–n2 | - | PARTIAL | |
| records-forms.record-clone-contract | 3 | 3/3, 32 | a0–a4, n0–n3 | - | - | live | PASS |
| records-forms.record-discussion-mentions | 7 | 4/4, 93 | a0–a8, n0–n6 | a9 | - | live | PARTIAL |
| records-forms.related-list-server-pagination | 8 | 1/1, 1 | a2 | - | - | PARTIAL | |
| records-forms.v18-semantic-defaults | 3 | 3/3, 495 | a0 | a1–a3 | - | PARTIAL | |
| records-forms.view-type-gallery | 2 | 1/1, 49 | - | a5 | - | PARTIAL | |
| records-forms.write-answer-advisories-rollback-and-tree-delete | 2 | 5/5, 97 | a0, a3 | a1–a2, n0 | - | PARTIAL | |
| records-forms.write-time-option-and-element-shape-judgement | 1 | 7/7, 155 | a0 | a1–a4 | - | PARTIAL | |
| search.cross-field-object-search | 4 | 1/1, 5 | a0–a4, n0–n2 | - | - | PASS | |
| search.field-scoped-narrowing | 2 | 2/2, 58 | a0 | a1, n0–n1 | - | PARTIAL | |
| search.global-search-skips-unreadable | 4 | 2/2, 16 | a1–a2, n0–n2 | a0, a4, n4 | - | PARTIAL | |
| studio-authoring.expression-editors | 5 | 4/4, 80 | a7 | a0, a2–a5, n1–n2 | - | PARTIAL | |
| studio-authoring.meta-save-preconditions-and-draft-rows | 2 | 6/6, 78 | a0 | a1–a3 | - | PARTIAL | |
| studio-authoring.metadata-diagnostics-sweep | 9 | 2/2, 42 | a7, n1 | a3, n0 | - | PARTIAL | |
| studio-authoring.multi-package-item-rows | 2 | 10/10, 133 | a0 | a1–a4 | - | PARTIAL | |
| studio-authoring.object-designer-roundtrip | 8 | 1/1, 4 | a2 | a1, a3, n0 | - | PARTIAL | |
| studio-authoring.org-override-registry-gate | 5 | 4/4, 47 | a0–a4, n0 | - | - | live | PASS |
| studio-authoring.permission-matrix-editor-ux | 5 | 3/3, 30 | a0–a5, n0–n1 | - | - | live | PASS |
| studio-authoring.record-page-roundtrip | 9 | 2/2, 3 | a0–a1, n0 | - | - | PARTIAL | |
| studio-authoring.save-door-runs-authoring-rules | 3 | 8/8, 339 | a0 | a1–a3, n0 | - | PARTIAL |
Fail — reproduction rule
i18n.surface-matrix n1 (rev 10, P1) — "a surface whose group the spec declares … showing NO translation while the bundle carries one for it is a FAIL against the resolver". Found by L4, re-derived independently by the parent on a fresh boot (:41730), reproduced twice per browser locale.
- Boot the stock showcase; sign in as
admin@objectos.aithrough the console form, in a browser context whose locale is en-US. - Set the user's language to zh-CN: avatar menu → Language → 中文(中国), or
PATCH /api/v1/data/sys_user/USER_ID{"locale":"zh-CN"}→ 200. - Confirm the bundle:
GET /api/v1/i18n/translations/zh-CNcarriesobjects.showcase_task.fields.status.options={backlog: 待规划, todo: 待办, in_progress: 进行中, in_review: 评审中, done: 已完成}and priority options. - Open
/_console/forms/showcase_task.form?recordId=ANY_TASK_ID&recordObject=showcase_task; wait for the form to render. - Read
selectoption texts and the[role=combobox]values.
Expected: options 待规划/待办/进行中/评审中/已完成 and 低/中/高/紧急 (as field labels and sections are, on the same page). Actual: labels 标题*, 状态*, 优先级 are zh, but the selects read Backlog|To Do|In Progress|In Review|Done and Low|Medium|High|Urgent, combobox In Review / High. Control 1: the in-app overlay form /_console/apps/com.example.showcase/showcase_task?form=ID in the same session renders 进行中|评审中|已完成 / 低|中|高|紧急. Control 2: the same /forms URL in a zh-CN browser context renders zh options — the options are only translated when the server localizes the schema by Accept-Language, never from the user's chosen language. Source: ui/apps/console/src/components/FormPage.tsx ~L848 options: normalizeOptions(def.options) (no option-label translation; labels/placeholder go through the localizer). Traps ruled out: stale-console-bundle (dist built 01:42Z from this tree; source agrees), hydration-race (screenshot first, waited for the section heading), automation-input (read-only DOM reads). Not auth.
Item verdicts (derived) and gaps
- PASS (15):
integration-system.connector-descriptor-audit,platform-core.serve-composition-v18,platform-core.url-overlay-contract,records-forms.bulk-select-all-matching,records-forms.concurrent-edit-conflict,records-forms.conditional-rules-grid,records-forms.delete-behavior-matrix,records-forms.field-type-constraints,records-forms.gantt-interactions,records-forms.import-job-undo-cancel,records-forms.list-view-capabilities,records-forms.record-clone-contract,search.cross-field-object-search,studio-authoring.org-override-registry-gate,studio-authoring.permission-matrix-editor-ux. - FAIL (1):
i18n.surface-matrix(n1, above). - PARTIAL (64): every clause either passed or is
partial/not-runwith its reason in the detail comments.records-forms.record-discussion-mentionsa9's cross-organization leg isblocked(fixture)— walled boot (RUNNER "A stock single boot holds exactly one organization") — so a9 is partial. - Partial coverage (226 layer-limited clauses, 157 with no pin) is the handover to the next sweep; parked on [sweep] v18.2.0 release test sweep #25807 per item in the close-out comment.
- Fixture gaps: app-crm boot +
IMPORT_CONSOLE_LIVE=1(and the :5200 import harness) forrecords-forms.import-job-undo-cancel's two specs; a walled boot forrecords-forms.record-discussion-mentionsa9's cross-org leg; the wall and type gates ofstudio-authoring.permission-matrix-editor-uxa5 are not reachable on stock (the item's own verify text scores only the package and artifact gates there, which passed). - Staged fixtures (all named in clause evidence, reverted where possible): scratch objects/permission set/view overlays via the meta API (L1, L2, L5), 55 + 5010 scratch tasks for the select-all cap (L2, deleted after), an export grant (L2), a gantt view overlay with
dependenciesField/lockField(L5), a scratch feeds-disabled objectfeeds_qa_nofeeds(L3: the item'sqa_nofeedsrecipe now answers 422NAMESPACE_PREFIX).
Checklist-accuracy findings (≈160 one-liners from the mapping plus the live runners' notes: refs missing pins that exist, refs naming files that assert nothing, stale clause text such as field-type-constraints a2's currency scale gap, permission-matrix-editor-ux's min-w-[960px] now 1248px, i18n.surface-matrix a7's twelve-group face now fifteen, a10's feed premise after #26167) go to the wave anchor #25807, not to defect cards.
Off-clause probes (rule 8)
~25 min in total, 5 min per live runner, on the same boots and personas (admin, auditor.demo, phone.demo, admin-minted members, a contributor-bound member, anonymous). Doors and boundary classes: /data field-zoo boundaries (0/1000, empty string, [], '' lookup/select, 1e400), clone (string overrides, empty body, client id, empty id path), DELETE unknown/already-deleted id; OCC If-Match absent/garbage/*/weak W/; discussion empty body, unknown thread/mention id, member create/read; import double undo, unknown job, cancel on terminal job, member routes; /meta/permission as non-admins, unknown/bare/empty field keys, packaged set; /apps/showcase/recalc empty/unknown ids; export as unentitled personas; i18n routes anonymous and with zh/zh-cn/blank locale; console cold-loads of ?palette, ?shortcuts, unknown ?recordId/?form, bogus ?tab.
Passed the filing gate and extracted at close-out: (1) an authorization-class observation on record-discussion mention notifications, single-organization boot — detail withheld pending maintainer (RUNNER rule 2 carve-out); (2) the /forms route also hard-codes its refusal and missing-recordId messages in English (folded into the n1 card). Observed, not filed (not reproduced twice, or minor/by design): If-Match: * answers 409 rather than matching any current version; an unknown mention id is accepted silently; for ~30 s after an import cancel the job reports 0 written and undo answers 422 NOT_UNDOABLE, then self-corrects (seen on two jobs); a stock org_member can neither read nor create sys_comment (likely posture); the select-all banner keeps saying "All 5010 matching records are selected" while the fan-out stops at 5000; ?form=UNKNOWN_ID opens a blank edit form; the invoice detail drawer lists line position 1 above 0; recalc with empty _selectedIds fails inside the flow instead of a clean 400; auto-schedule says "All dependencies satisfied" while a locked task still violates its link; a task PATCH with end before start is accepted (no rule declared).
Timings
Env prep ~13 min (install + framework build + console build) against ~70 min of testing (clause mapping in parallel with the build tail; pins 01:43–02:11; live legs 01:44–02:38; verification 02:40–02:44).
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 27, 2026
Per-clause detail, part 1/3 — areas: records-forms. One line per clause:
aK= acceptance[K],nK= negative[K]; verdict; evidence.pin FILE [layer]= the passing pin(s) that assert it (all named pins passed on 756220c);partial:names the layer or half the pin does not reach;LIVE Ln:= the live-leg oracle line from that runner's boot, which decides the clause.records-forms
records-forms.action-param-widgets (rev 4) — PARTIAL
records-forms.adhoc-filter-sort-builder (rev 7) — PARTIAL
records-forms.bulk-select-all-matching (rev 5) — PASS
records-forms.cascading-multilevel-and-clear (rev 8) — PARTIAL
records-forms.cascading-options (rev 6) — PARTIAL
records-forms.comment-reactions-and-edit-stamps (rev 3) — PARTIAL
records-forms.concurrent-edit-conflict (rev 5) — PASS
records-forms.conditional-rules-grid (rev 9) — PASS
records-forms.conditional-rules-header (rev 5) — PARTIAL
records-forms.delete-behavior-matrix (rev 4) — PASS
records-forms.encrypted-field-behavior (rev 5) — PARTIAL
records-forms.field-history-tracking (rev 7) — PARTIAL
records-forms.field-type-constraints (rev 4) — PASS
records-forms.field-type-matrix (rev 6) — PARTIAL
records-forms.field-unique-enforcement (rev 10) — PARTIAL
records-forms.form-dirty-guard (rev 4) — PARTIAL
records-forms.gantt-interactions (rev 6) — PASS
records-forms.import-job-undo-cancel (rev 7) — PASS
records-forms.import-wizard-encoding-and-hints (rev 7) — PARTIAL
records-forms.list-view-capabilities (rev 7) — PASS
records-forms.master-detail-atomic-save (rev 8) — PARTIAL
records-forms.object-hook-lifecycle (rev 10) — PARTIAL
records-forms.predicate-relationship-traversal (rev 4) — PARTIAL
records-forms.record-clone-contract (rev 3) — PASS
records-forms.record-discussion-mentions (rev 7) — PARTIAL
records-forms.related-list-server-pagination (rev 8) — PARTIAL
records-forms.v18-semantic-defaults (rev 3) — PARTIAL
records-forms.view-type-gallery (rev 2) — PARTIAL
records-forms.write-answer-advisories-rollback-and-tree-delete (rev 2) — PARTIAL
records-forms.write-time-option-and-element-shape-judgement (rev 1) — PARTIAL
Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
Per-clause detail, part 2/3 — areas: integration-system, platform-core. One line per clause:
aK= acceptance[K],nK= negative[K]; verdict; evidence.pin FILE [layer]= the passing pin(s) that assert it (all named pins passed on 756220c);partial:names the layer or half the pin does not reach;LIVE Ln:= the live-leg oracle line from that runner's boot, which decides the clause.integration-system
integration-system.connector-auth-kind-application (rev 4) — PARTIAL
integration-system.connector-declarative-boot (rev 5) — PARTIAL
integration-system.connector-descriptor-audit (rev 3) — PASS
integration-system.connector-stdio-default-deny (rev 3) — PARTIAL
integration-system.datasource-admin-lifecycle (rev 7) — PARTIAL
integration-system.email-template-render (rev 8) — PARTIAL
integration-system.external-schema-browser-ui (rev 6) — PARTIAL
integration-system.external-schema-drift-gate (rev 5) — PARTIAL
integration-system.external-schema-introspection (rev 6) — PARTIAL
integration-system.inbound-mailbox-association (rev 3) — PARTIAL
integration-system.notification-org-and-redeliver-eligibility (rev 3) — PARTIAL
platform-core
platform-core.activation-ledger-registration-home (rev 7) — PARTIAL
platform-core.activation-ledger-row-contract (rev 8) — PARTIAL
platform-core.interrupted-migration-boot-report (rev 3) — PARTIAL
platform-core.lifecycle-retention-sweep (rev 7) — PARTIAL
platform-core.metadata-authoring-roundtrip (rev 6) — PARTIAL
platform-core.metadata-registry-serving (rev 3) — PARTIAL
platform-core.nav-surfaces-render (rev 7) — PARTIAL
platform-core.protocol-18-handshake-and-stored-replay (rev 2) — PARTIAL
platform-core.serve-composition-v18 (rev 3) — PASS
platform-core.settings-audit-secret-fingerprint (rev 4) — PARTIAL
platform-core.settings-organization-isolation-and-platform-rung (rev 5) — PARTIAL
platform-core.url-overlay-contract (rev 3) — PASS
platform-core.v18-boot-refusals (rev 7) — PARTIAL
os serveexit 1, no-listening line and printed message wording a…Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
Per-clause detail, part 3/3 — areas: identity-auth, studio-authoring, i18n, dashboards, search. One line per clause:
aK= acceptance[K],nK= negative[K]; verdict; evidence.pin FILE [layer]= the passing pin(s) that assert it (all named pins passed on 756220c);partial:names the layer or half the pin does not reach;LIVE Ln:= the live-leg oracle line from that runner's boot, which decides the clause.identity-auth
identity-auth.admin-lifecycle-operations (rev 10) — PARTIAL
generatePasswordkeeps its default (true) #3031 half pinned at HTTP; 属主守卫与级联 set_null 冲突:非特权删除 sys_user 时 owner_id 级联置空被 #3004 守卫拦截(级联中途失败) #3023 half only at the plugin-security unit (no engine, no door)identity-auth.api-key-expiry-lifecycle (rev 2) — PARTIAL
identity-auth.auth-gate-held-session-raw-host-families (rev 3) — PARTIAL
identity-auth.auth-method-matrix (rev 9) — PARTIAL
identity-auth.cookie-session-renewal-in-process (rev 2) — PARTIAL
identity-auth.default-organization-boot-invariant (rev 3) — PARTIAL
identity-auth.implicit-account-linking-ownership (rev 4) — PARTIAL
identity-auth.import-invitation-and-sso-domain-answers (rev 2) — PARTIAL
identity-auth.invitation-scope-gates (rev 6) — PARTIAL
studio-authoring
studio-authoring.expression-editors (rev 5) — PARTIAL
studio-authoring.meta-save-preconditions-and-draft-rows (rev 2) — PARTIAL
studio-authoring.metadata-diagnostics-sweep (rev 9) — PARTIAL
studio-authoring.multi-package-item-rows (rev 2) — PARTIAL
studio-authoring.object-designer-roundtrip (rev 8) — PARTIAL
studio-authoring.org-override-registry-gate (rev 5) — PASS
studio-authoring.permission-matrix-editor-ux (rev 5) — PASS
studio-authoring.record-page-roundtrip (rev 9) — PARTIAL
studio-authoring.save-door-runs-authoring-rules (rev 3) — PARTIAL
titel→title' at the protocol save door; the HTTP body is not readi18n
i18n.flow-copy-translation-and-host-override (rev 3) — PARTIAL
os validateexit code not runi18n.surface-matrix (rev 10) — FAIL
dashboards
dashboards.analytics-exposure-gate-and-measure-aggregate (rev 2) — PARTIAL
dashboards.dataset-report-authoring (rev 4) — PARTIAL
dashboards.empty-null-bucket-boundaries (rev 2) — PARTIAL
Field.datetime的 dateGranularity 分桶恒为 NULL —— 趋势图塌成一根柱子 #3773 seam is pinned at the driver layer, but the live trend chart (line_created one point per seeded month) is not observedsearch
search.cross-field-object-search (rev 4) — PASS
search.field-scoped-narrowing (rev 2) — PARTIAL
search.global-search-skips-unreadable (rev 4) — PARTIAL
Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
Close-out for this record (checklist-test §5). One FAIL, dispositioned: product defect → extracted. PARTIAL items park their coverage gaps on the wave anchor. The supersede of #25815 for this card's areas is below; #25815 itself is left open here: the wave-2 PM session closes it once both Tier 1 halves are posted.
Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Close-out (checklist-test §5) · 2026-10-28T15:34Z. The one FAIL,
i18n.surface-matrixn1, is a product defect extracted as #26452, fixed and closed. The authorization-class finding of this run is extracted as #26453 under RUNNER rule 2 (detail withheld), fixed and closed. The 64 PARTIAL items are parked on #25807; one verdict is carried forward from wave 1. Closingcompleted.Generated by Claude Code