Repository navigation
QA run · release-18.3.0-w4-c3b2 (27/27) · 7fa9873f · 2026-11-02 · 23 PASS / 0 PARTIAL / 4 FAIL / 0 BLOCKED / 0 NOT-RUN #28981
Description
domain:devx#1 · os-warren · session_01JQwxbWJDYbbtH6dhJNoboN
Part of #27377 (wave 4, W4-C3b2)
QA run record for the 18.3.0 release-candidate sweep, wave 4 card W4-C3b2: the unpinned manual set on the browser and mixed surfaces for every area other than studio-authoring, records-forms, approvals, automation and dashboards (those are W4-C3b1). 27 items. Every clause was driven live (Playwright chromium plus the API, DB and log halves) against the Console built in-repo from the subject. Item verdicts are derived from clause verdicts, never hand-assigned. Run under .claude/skills/checklist-test/SKILL.md and docs/qa/platform-checklist/RUNNER.md.
Environment fingerprint
- Framework:
7fa9873f38f7a0158e3ce17338dcc0f446b113e3(main, 2026-11-02 02:44Z), detached and pinned; it never followed main or the Version PR chore: version packages #26517.ui/is the same commit.pnpm install --frozen-lockfile, thenpnpm exec turbo run build --concurrency=2(118/118 tasks, exit 0, 26m33s), thenpnpm console:build --concurrency=2(cache hit plus copy).check-dev-prereqs: 106 build artifacts present. - Boot (per item): a scratch copy of
examples/app-showcaseunder the run dir withnode_modulessymlinked to the tree.OS_PORT=PORT OS_STORAGE_LOCAL_ROOT=RUN/uploads OS_HOME=RUN/home setsid node packages/cli/bin/run.js dev --ui --seed-admin --no-watch -p PORT -d file:RUN/data.db, from the copy. A canary boot reached/_console/homeas the seeded admin before any runner started. - Ports 42100–42619, one block of 20 per runner, a fresh port and file DB per boot. Extra boots, each on its own port and DB: zero-user
--no-seed-adminwith and withoutOS_DISABLE_SIGNUP=true(first-run-owner-bootstrap);OS_DISABLE_SIGNUP=true(self-signup-gate);OS_SEARCH_PINYIN_ENABLED=falsewithOS_LOG_LEVEL=debug(pinyin-flag-both-sides); env-lockOS_LOCALIZATION_TIMEZONE+OS_MAIL_SMTP_PASSWORDplus a local capture SMTP (settings-hub-roundtrip);OS_AUTOMATION_SCHEDULED_WORK_ENABLED=1(job-scheduled-run, notification-center); a walledgroupboot with two organizations (OS_TENANCY_POSTURE=group OS_PLATFORM_OWNER_EMAIL OS_AUTH_MEMBERSHIP_POLICY=invite-only) for webhook-lifecycle A4's cross-org arm; a scratch app copy declaring a bulk-opted webhook (webhook-lifecycle A2); a local verdaccio 6.11.1 registry with the 109 public workspace packages packed at the subject and no upstream for@objectstack/*,@object-ui/*orcreate-objectstack(cli.scaffold-console-first-paint). - Seed:
--seed-admin(admin@objectos.ai), the stock showcase seed and demo personas. Members were minted by invite then sign-up, or admin create-user then the persona's own change-password. Each persona's identity was proved withGET /api/v1/auth/get-sessionbefore its cells. - Execution: 6 runner subagents (opus, effort high), at most 3 running at once, each driving its items one after another with one browser. The orchestrator checked every FAIL against its runner's reproduction rule and source, and reproduced the re-judged i18n FAIL itself on two fresh browser contexts.
- Hygiene: after the run,
git statusis clean,examples/app-showcase/.objectstackdoes not exist, every scratch package and translation probe was deleted, and no listener remains on any run port. - Time: environment prep about 91 min (orchestrator 30: install 1, build 27, console and canary 2; runners 61 for scratch boots, fixtures and the verdaccio registry) against about 236 min of testing summed across runners, of which about 165 min were off-clause probes. Prep to testing is about 1 : 2.6. Wall clock 03:33Z to 05:40Z.
Scope
Selector release-18.3.0-w4-c3b2: the item list of card W4-C3b2 in the wave-4 brief of anchor #27377, computed from the ledger at the subject. No planned items. Revisions pinned from the ledger at the subject (all matched the file):
access-security.audit-log-browser r7 · access-security.public-form-intake r3 · access-security.permission-matrix-edit-loop r6 · access-security.capability-declaration-lifecycle r7 · api-backend.formula-stdlib-matrix r7 · cli.scaffold-console-first-paint r7 · i18n.notification-localized-and-clears r6 · i18n.strict-translation-key-rejection r5 · identity-auth.session-list-revoke r3 · identity-auth.api-key-ui-lifecycle r5 · identity-auth.self-service-profile-password r3 · identity-auth.org-membership-team-management r6 · identity-auth.first-run-owner-bootstrap r5 · identity-auth.self-signup-gate r7 · integration-system.webhook-lifecycle r13 · integration-system.job-scheduled-run r6 · integration-system.notify-inbox-delivery r7 · platform-core.settings-hub-roundtrip r7 · platform-core.package-lifecycle-enable-disable r3 · platform-core.notification-center r5 · platform-core.docs-portal-render r3 · platform-core.home-admin-cluster-links r5 · search.pinyin-flag-both-sides r6 · search.console-global-search r6 · ux-conventions.write-feedback r9 · ux-conventions.disabled-control-reason r4 · ux-conventions.labels-over-machine-names r4
The per-clause verdict table is in the two comments below this body.
Derived item verdicts
23 PASS / 0 PARTIAL / 4 FAIL / 0 BLOCKED / 0 NOT-RUN (27 of 27 judged).
- FAIL (4): i18n.notification-localized-and-clears (A1), platform-core.home-admin-cluster-links (A2), ux-conventions.write-feedback (A0, A1), ux-conventions.disabled-control-reason (A0, A1, A2)
- PASS (23): every other item.
Delta against wave 3
18 of the 27 items were in W3-C3b's record #27441 (at c4c515ad):
| item | #27441 | here | why |
|---|---|---|---|
| api-backend.formula-stdlib-matrix | FAIL (r5) | PASS (r7) | r7 re-pointed A0 to 30 functions; registry, validate.ts and docs agree; 73-row matrix against the built dist, 0 failures |
| integration-system.webhook-lifecycle | PARTIAL (r11) | PASS (r13) | A2 scored on a declared bulk-opted webhook (deployment-wide under ADR-0131 ruling A); A4's cross-org arm driven on a walled group boot. The in-organization subscription still gets no bulk event (#23166's open question); see the fixture gaps |
| i18n.notification-localized-and-clears | PASS (r5) | FAIL (r6) | the deep-link target is the seeded in-review task, whose detail page shows an English record:alert on a zh-CN session (R-2) |
| ux-conventions.write-feedback | PASS (r7) | FAIL (r9) | r9 (ruling 6545938831 ② on #28345) scores Studio's "Saved" status as not write feedback; the autosave row now fails. A first measurement of the ruling, not a regression |
| cli.scaffold-console-first-paint | PASS (r7) | PASS (r7) | this time the candidate console was exercised: the pre-release registry route ran, served console index-DqtqClJh.js = the tree's build (published 18.2.0 serves index-BJwcizUn.js); lockfile integrities match the candidate tarballs |
| the other 13 | PASS | PASS | unchanged |
Not in #27441 (9): access-security.audit-log-browser PASS, identity-auth.session-list-revoke PASS, identity-auth.org-membership-team-management PASS, identity-auth.self-signup-gate PASS, platform-core.docs-portal-render PASS, search.pinyin-flag-both-sides PASS, ux-conventions.labels-over-machine-names PASS, platform-core.home-admin-cluster-links FAIL (last judged in #24603), ux-conventions.disabled-control-reason FAIL (last judged in #24570).
Reproduction rule for every fail
R-1 · platform-core.home-admin-cluster-links · A2 (stale spec)
- Stock boot; form sign-in as admin@objectos.ai.
- Open
/_console/apps/setup/system/roles,/system/positions,/system/permissions(also via/_console/apps/com.objectstack.setup/system/…). - Expected (clause): one hop to
/apps/setup/metadata/position?scope=environmentand/apps/setup/metadata/permission?scope=environment. Actual: one hop to/_console/studio/~all/metadata/position?scope=environmentand/_console/studio/~all/metadata/permission?scope=environment, Studio's All metadata lists rendering (Position; Permission Set, 18 items). Reproduced twice and once from the canonical prefix.
Both sides act on their own declarations: feat(setup): Setup's metadata pages open Studio's All metadata area; the catalog's Active switch moves to each item's page #28818 (ADR-0146 D1) moved the Setup metadata catalog into Studio, and the routing pins at this SHA assert the new landing (AppContent.systemHubRoutes/legacyRedirects, 38 passed, routing layer only). The item still names the Setup catalog URL, and still counts 9 Administration targets where the shell now has 8.
R-2 · i18n.notification-localized-and-clears · A1 (product defect, showcase content)
- Stock boot (the showcase declares
enandzh-CN). A zh-CN user (or a zh-CN browser locale as admin). - Reassign the seeded in-review task "Design system" to the zh-CN user; click the entry in the bell.
- Expected: the target page renders in zh-CN, not mixed-language. Actual: object, path, action, highlight, section and field labels are zh, but the callout reads "Awaiting review / This task is in review — confirm the work before marking it done." in English. Reproduced by the runner and twice more on fresh browser contexts by the orchestrator (
/_console/apps/com.example.showcase/showcase_task/record/IDfor anystatus = in_reviewtask).
Mechanism:examples/app-showcase/src/ui/pages/task-detail.page.tsdeclares thatrecord:alertwith no componentid, sopages.showcase_task_detail.components.IDcannot address it, and the zh bundle carries no copy for it. A leftover of showcase (zh-CN): pages, objects and actions outside the bundle render in English beside translated navigation — the 414-key coverage baseline is user-visible on the first screens #25505.
R-3 · ux-conventions.write-feedback · A0, A1 (product defect under ruling 6545938831 ②)
- As admin
POST /api/v1/packages {"manifest":{"id":"com.qa.r6wf","name":"QA R6 Scratch","version":"0.1.0","type":"app","namespace":"qrsix"}};PUT /api/v1/meta/object/qrsix_widget?package=com.qa.r6wfwith fieldsnameandnote(label "Note"), sharingModel private. - Form sign-in;
/_console/studio/com.qa.r6wf/data?surface=object:qrsix_widget→ Form → field "Note" → Properties → Label "QA Remark", Tab. - Network:
PUT /api/v1/meta/object/qrsix_widget?mode=draft&package=com.qa.r6wf&surface=studio→ 200state:"draft". - Expected: a toast or inline text naming the field or object. Actual: no toast and no role=status/alert text within 6 s; only the top bar's "Saved HH:MM", the "Draft · 1 unpublished" chip and "Changes 1". Reproduced twice (Note → QA Remark; Name → Widget Name). The other 14 write surfaces passed, including Studio publish and discard.
R-4 · ux-conventions.disabled-control-reason · A0, A1, A2, flow node inspector (product defect)
- Stock boot, admin.
/_console/studio/com.example.showcase/automations?surface=flow:showcase_task_completed(header "Read-only", Publish disabled with its reason). - Click the canvas node "Compose Summary". ID, Label, Node Type, Function, Inputs, Output variable, Timeout and Remove node are all
disabled. - Expected: the reason on hover, on keyboard focus and as an accessible description. Actual: no tooltip on hover; Tab never reaches the controls or a described ancestor;
aria-describedbynull andtitleempty on Remove node and the Label input; no adjacent text. Reproduced on two fresh loads. The field rail (objectui#12303) and the validation editor (objectui#12691) carry the described wrapper;FlowNodeInspector.tsxpassesdisabled={readOnly}with none.
R-5 · ux-conventions.disabled-control-reason · A0 (partly), A1, field inspector in base-field display-patch mode (product defect, regression)
- Same boot.
/_console/studio/com.example.showcase/data?surface=object:showcase_task→ Form → field "Priority". - The rail opens in display-patch mode (
[data-testid=field-base-patch-only]): Label, Description, Help text, Placeholder and option labels enabled; API name, Type, Required, Unique, Default value, option values, Track history, the CEL editors, Move up/down and Remove "Priority" disabled. - Expected: each disabled control explains itself on hover, focus and to AT. Actual: no
aria-describedby, notitle, no focusable described wrapper ([data-disabled-reason]absent from the rail), no tooltip; the explanatory sentence at the top of BASIC is linked to no control and is off-screen when Remove, Track history or the CEL editors are hovered. Reproduced on two fresh loads.
Mechanism:StudioDesignSurface.tsxfieldRailReadOnly = readOnly && !(extWritable && fieldSel?.kind === 'field')turns false for a base field with a writable pair, so objectui#12303's described wrapper is skipped whileObjectFieldInspector.tsx(displayPatchOnly→locked) disables the non-whitelisted controls. Introduced by feat(studio): add a field to a read-only base object as an extension in its pair #28860 (this subject's head commit, Studio: add a field to a read-only base object — written as an extension in <base>.custom named xxx__c, base fields editable only within the display-property whitelist #28575). knownGaps[1]'s field-inspector regression row no longer holds.
Fixture gaps and partial coverage
- integration-system.webhook-lifecycle · A2: scored on a declared bulk-opted webhook in a scratch app copy. An in-organization webhook still receives no bulk event from a flow multi-write ("names no organization"), the open question of run record QA run · surface:mixed (90/90) · 36b2889c · 2026-10-12 · 72 PASS / 10 PARTIAL / 8 FAIL / 0 BLOCKED / 0 NOT-RUN #23166, which no open card carries. A4's 503 and stale-membership arms rest on
webhook-redeliver-entitlement.test.ts(21 passed, plugin HTTP face over a security-service double); removing a member revokes its session, so the stale claim has no live recipe. The parked-row arm was made by corrupting a sys_secret ciphertext in the run's own DB. - platform-core.settings-hub-roundtrip · A8: no stock manifest declares a user-scope secret (carried).
- platform-core.docs-portal-render · A5: the stock corpus prunes nothing for a member (member subset = admin's, 9/9); only anonymous is pruned, and anonymous has no console tree, so the UI mirror never exercised pruning.
- ux-conventions.disabled-control-reason: variants 4 (form submit disabled) and 5 (member toolbar disabled) have no stock instance; both dialogs validate on submit, and a member gets controls removed, not disabled.
- identity-auth.api-key-ui-lifecycle · A1: the key owner held one live session (1 = 1 against the admin's 4); still discriminating.
Checklist-accuracy findings (for the anchor, not extracted)
- platform-core.home-admin-cluster-links: title, steps[0], acceptance[0], knownGaps[1], source[1]/[2] still say 9 Administration targets onto the Setup catalog; 8 at this SHA, landing in Studio (feat(setup): Setup's metadata pages open Studio's All metadata area; the catalog's Active switch moves to each item's page #28818). acceptance[3]'s "Keyboard shortcuts" is in the member's Help menu only inside an app, not on /home. The item is on QA checklist: rewrite the Setup-designer items to the Studio door and add the .custom customization journey, with one live e2e through Studio #28579's list of Setup → Metadata items to rewrite.
- ux-conventions.write-feedback: variants[5]/knownGaps[0] quote the Invite toast as the
Invitation sent to …successMessage; since invite-member answersoutcomeby mail delivery andsys_invitationgains a servercopy_invitation_linkaction that answers the accept URL (ruling E on #27797) #27843outcomeMessageswins, and a mail-less boot shows thelink_onlycopy. variants[10]'s/apps/setup/metadata/object/OBJnow redirects to/studio/~all/metadata/object/OBJ(feat(setup): Setup's metadata pages open Studio's All metadata area; the catalog's Active switch moves to each item's page #28818). An update-mode import CSV must carry every required column. - ux-conventions.disabled-control-reason: knownGaps[0] says Archive has no author reason; it now declares
disabledReason: 'Mark the task done first.', and it has no record_section placement. knownGaps[1]'s automation Enabled toggle is now enabled on the read-only package. Import Next shows its reason as an adjacent banner, not a hover tooltip. - ux-conventions.labels-over-machine-names: knownGaps[0]'s objectui#13056 caveat no longer reproduces (Explain's chips show labels); variant 7's "user values" has no instance on the task record page.
- identity-auth.session-list-revoke: steps[3]/source[1] say
revoke_sessionkeys ontoken; it now targets/api/v1/auth/sys-session/revokewithrecordIdParam: 'sessionId'. The toolbar action goes throughPOST /api/v1/actions/sys_session/revoke_my_other_sessions. - identity-auth.api-key-ui-lifecycle: revoke/restore go through
POST /api/v1/actions/sys_api_key/revoke_api_key|restore_api_key, not a data PATCH. - identity-auth.first-run-owner-bootstrap: knownGaps[1]/source[2] are stale; bootstrap-status answers from
hasBootstrapWindow()→isBootstrapCreation()(human users only), so the described divergence cannot happen. The owner's first/setupvisit opens a timezone dialog. - identity-auth.org-membership-team-management: the Members tab shows no row actions without interaction (steps[1]).
- integration-system.webhook-lifecycle: knownGaps[1] should name the declared-webhook route; steps[3]'s "api trigger" is simpler as an autolaunched flow via
POST /api/v1/automation/NAME/trigger; a retriable failure readspendingwithnext_retry_at, neverfailed. - integration-system.job-scheduled-run: the handler-not-found WARN says only
os start --artifactresolves handlers, yetos devran every other handler job;os devlogs at warn, so A2's per-attempt log needs a debug boot (run rows carry the attempts). - integration-system.notify-inbox-delivery: there is no
GET /notifications/IDdoor, so a "by id 404" proves nothing about scoping. - platform-core.notification-center: "View approvals" is a button;
?view=my_pendingis not a data-API parameter (400), so the verify should name the view's filter. - platform-core.package-lifecycle-enable-disable: the app-level not-found is a full-screen named verdict without header or sidebar ("inside the shell" is ambiguous); the console canonicalises the stale link's app segment to the package id.
- platform-core.docs-portal-render: with one book, the per-app docs index opens the reader directly.
- search.pinyin-flag-both-sides: debug logs need
OS_LOG_LEVEL=debug(dev defaults to warn); plugin counts now 54 vs 53. - search.console-global-search: the palette sends an
objects=allow-list andlimit=24, so its counts differ from a bare API call. - cli.scaffold-console-first-paint: the pre-release route works in about 6 min;
npm publish tarballs/x.tgzis read as a GitHub shorthand (use./tarballs/x.tgz); candidate and published both say 18.2.0, so provenance must be proven by integrity with a run-local npm cache. - access-security.audit-log-browser: the page lives at
/_console/apps/com.objectstack.setup/system/audit-log. - access-security.permission-matrix-edit-loop: the Setup door redirects to
/_console/studio/~all/metadata/permission/S; matrix rows carry noperm-row-*test ids; S must also grant create on showcase_project for M to create tasks. - access-security.capability-declaration-lifecycle: no seeded persona holds showcase_ops (a minted member was granted it).
- api-backend.formula-stdlib-matrix: a draft refused at promotion stays pending, and publish-drafts is all-or-nothing, so steps[6] should run publish-drafts last.
- i18n.strict-translation-key-rejection: the bundle door reports a bad locale as
invalid_keyon the record key, notinvalid_formatatlocale. - i18n.notification-localized-and-clears: the bell's accessible name is "Open inbox" / 「打开消息中心」.
Off-clause probes (RUNNER rule 8)
About 165 minutes across the 27 items (5–8 min each), on the same boots and as the same personas.
Doors probed: sys_session / sys_audit_log / sys_api_key / sys_user_permission_set data doors; auth revoke-session, sys-session revoke, update-user, change-password, set-password, organization member/role/team and invitation doors; public forms; capability and permission metadata doors; packages enable/disable/delete/publish-drafts/commits/revert; settings namespaces; notifications read/read-all; webhooks redeliver and activation; job compile; translations; search; console routes under /apps/setup/… and /apps/APP/system/…; the scaffolder's os validate.
Boundary classes: empty, missing and unknown ids and tokens; another user's id; another package's commit id; malformed role names; case variants of a valid locale; unknown objects in a grant or translation; repeat and no-op writes; a member and anonymous on admin doors; the alias vs canonical app id; six parallel sign-ups on a zero-user boot.
Findings extracted as cards are listed in the close-out comment. Observations not filed (by design, or below the filing gate): update-user accepts an image that is any https or data:image/… URL (javascript: refused; the console never sends either); GET /packages/UNINSTALLED/commits answers 200 with history while a never-existed id answers 404; a translation's objects.no_such_object saves 200; DELETE /api/v1/meta/capability/showcase.export_data answers 200 reset:false with nothing removed; a failed import's toast says "skipped 1" while the response counts it under errors; Setup → Users shows Email Verified/Banned as disabled checkboxes with no reason (display-only, scope question for ux-conventions); replacing a palette query in one input event leaves cmdk with nothing selected (seen only with Playwright's fill).
No security finding in this run.
Generated by Claude Code
Activity
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbWJDYbbtH6dhJNoboN
Per-clause verdicts, part 1 of 2 (items 1–13)
Clause ids:
A#= acceptance[#],N#= negative[#], zero-based. One line of text evidence each; the full per-runner evidence (requests, response strings, row values) was kept in the run environment.access-security.audit-log-browser rev 7 — PASS
access-security.public-form-intake rev 3 — PASS
access-security.permission-matrix-edit-loop rev 6 — PASS
access-security.capability-declaration-lifecycle rev 7 — PASS
capabilities:os validateexit 0,os buildexit 0 (artifact written in the copy);os dev --no-compile -p 42307refused at boot, process exit 1 …os validateexit 1 "✗ capabilities.2.scope: Invalid value 'galaxy'. Expected one of: platform, org." …api-backend.formula-stdlib-matrix rev 7 — PASS
cli.scaffold-console-first-paint rev 7 — PASS
npx os validatein the untouched scaffold → VALIDATE_EXIT=0, "✓ Validation passed (160ms)", "Data: 1 Objects 2 Fields". (One ⚠ warning printed — see off-clause probes; exit 0, not a refusal.)os dev --ui) GET /_console/ → 200 text/html 19151 bytes (title ObjectOS, #root, module script assets/index-DqtqClJh.js); browser: 200, lands /_console/login …npm run dev, bareobjectstack dev -p 42211, no --ui) GET /_console/ → 200 text/html 19151 bytes; B2 → 200 19151 bytes; the two HTML bodies are identical except the per-response CSP nonce (same asset hash) …i18n.notification-localized-and-clears rev 6 — FAIL
record:alertcallout reads "Awaiting review / This task is in review — confirm the work before marking it done." in English (R-2)notifications…i18n.strict-translation-key-rejection rev 5 — PASS
unrecognized_keysnaming the surface and echoing the key; locale variantsinvalid_formatat pathlocale. Raw output /tmp/qa-w4c3b2/R6/i18n/item-door.out.zh-CN, surface "this locale of the translation bundle"); valid control returns at both.root.defineTranslationis undefined, as the step warns (system subpath used) …helpText→help; widgetlabel→title; object-level probelabell→label.dashboards, nested navigation path, ADR-0049 removal version for validationMessages, top-level locale for_meta, no-replacement wording forerrors).identity-auth.session-list-revoke rev 3 — PASS
identity-auth.api-key-ui-lifecycle rev 5 — PASS
records.identity-auth.self-service-profile-password rev 3 — PASS
identity-auth.org-membership-team-management rev 6 — PASS
identity-auth.first-run-owner-bootstrap rev 5 — PASS
Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbWJDYbbtH6dhJNoboN
Per-clause verdicts, part 2 of 2 (items 14–27)
Clause ids:
A#= acceptance[#],N#= negative[#], zero-based. One line of text evidence each; the full per-runner evidence (requests, response strings, row values) was kept in the run environment.identity-auth.self-signup-gate rev 7 — PASS
integration-system.webhook-lifecycle rev 13 — PASS
webhooks: [...]on showcase_status_api → exit 2 "connector.webhookswas removed in @objectstack/spec 17 (ADR-0049 enforce-or-remove) … Delete the key …" …integration-system.job-scheduled-run rev 6 — PASS
id: 'x'on showcase_health_sweep → exit 2, unrecognized_keys [id], message "job.idwas removed in @objectstack/spec 17.0.0 (ADR-0049) …nameIS the job's identity everywhere … This edit leftos migrate metawith the protocol-16.x conversio …integration-system.notify-inbox-delivery rev 7 — PASS
platform-core.settings-hub-roundtrip rev 7 — PASS
platform-core.package-lifecycle-enable-disable rev 3 — PASS
platform-core.notification-center rev 5 — PASS
inbox-bell-badge= "5" …platform-core.docs-portal-render rev 3 — PASS
platform-core.home-admin-cluster-links rev 5 — FAIL
search.pinyin-flag-both-sides rev 6 — PASS
PinyinSearchPluginpresent on ON and missing on OFF …[pinyin-search] companion reconcile walked an object {"object":"showcase_contact","mode":"full","scanned":32,"pages":1,"updated":3}…search.console-global-search rev 6 — PASS
ux-conventions.write-feedback rev 9 — FAIL
Task "QA R6 create probe" created,1 row saved,Deleted 2 Task records,Warehouse schema marked done., invitee email,Approved "EXP-2001",2 created/Imported 2 rows.…Warehouse schema marked done.(exact interpolation). Invite User: declared successMessage "Invitation sent to" + result.email is the fallback …Title is required/Project is required, no toast (console-block shape) …Undone. Update mode matching Title (imp_mvysg6uw7w80nzm7 …Import failed · 0 imported 1 skipped · Row 1: Project: No matching record for "No Such Project"+ warning toast …ux-conventions.disabled-control-reason rev 4 — FAIL
ux-conventions.labels-over-machine-names rev 4 — PASS
no_such_fieldonqrsl_gadget") and the Advanced (JSON) panes use identifiers — developer/expression context, out of scope.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbWJDYbbtH6dhJNoboN
Close-out (RUNNER extraction obligation, checklist-test §5). Every FAIL has a disposition; probe findings that passed the filing gate are extracted with a
QA-source:line.Extracted: #28982 · i18n.notification-localized-and-clears · A1
Extracted: #28984 · ux-conventions.write-feedback · A0, A1
Extracted: #28985 · ux-conventions.disabled-control-reason · A0, A1, A2
Extracted: #28986 · ux-conventions.disabled-control-reason · A0, A1
Extracted: #28579 · platform-core.home-admin-cluster-links · A2
Extracted: #28987 · platform-core.package-lifecycle-enable-disable · observed beside the clauses
Extracted: #28988 · platform-core.home-admin-cluster-links · observed beside the clauses
Extracted: #28990 · access-security.permission-matrix-edit-loop · observed beside the clauses
Extracted: #28992 · cli.scaffold-console-first-paint · observed beside the clauses
Extracted: #28993 · i18n.strict-translation-key-rejection · observed beside the clauses
Parked-on: #27377 · checklist-accuracy findings and fixture gaps listed in this record's body
Dispositions: R-1 stale spec (re-point owed by #28579, which already lists the item; measured detail posted there). R-2, R-3, R-4 product defects. R-5 product defect, a regression from #28860.
Generated by Claude Code