Repository navigation
QA run · records-forms (api subset) · a86db175 · 2026-08-10 · 2/2 PASS #7399
Description
Selector area:records-forms → the api-surface subset (2 of 32 runnable items) — the part that runs without the vendored console dist. Result: ✅ 2/2 PASS.
Partial-area run per the one-issue-per-run model (results stay out of the repo tree; convention label qa-run). The other 30 browser/mixed items are NOT-RUN here — they need the vendored console dist built + real Chromium driving (a separate, larger sweep). 1 item blocked (fixture): records-forms.import-job-undo-cancel.
Environment
| framework | a86db175 — branch claude/platform-test-checklist-ocwugl (PR #7304) |
| app · driver | showcase · SqlDriver(better-sqlite3) · db file:/tmp/qa-rf-run/data.db (isolated, fresh) · port 3468 |
| persona | admin@objectos.ai · when 2026-08-10T09:39Z |
Item verdicts
| item | rev | verdict | notes |
|---|---|---|---|
records-forms.validation-rule-type-matrix (P1) |
1 | ✅ pass | 4/4 acceptance clauses; negative malformed-CEL sub-case not exercised (no stock fixture) |
records-forms.named-import-mapping (P2) |
1 | ✅ pass | 3/3 acceptance clauses + negative (no duplicate re-import) |
validation-rule-type-matrix — evidence
All six rule types enforce on the write path with the exact ledgered code, each targeting its declared field; no rejected write persisted (projects 6→7 = only the happy create); every happy twin landed 2xx.
variant result
invalid_initial_state (project) 400 field=status code=invalid_initial_state
invalid_transition (account) 400 field=status code=invalid_transition
invalid_format regex (tax_id) 400 field=tax_id code=invalid_format
invalid_format named-email 400 field=billing_email code=invalid_format
json_schema_violation 400 field=support_config code=json_schema_violation
invalid_json (string blob) 400 field=support_config code=invalid_json
rule_violation cross_field 400 field=start_date code=rule_violation
rule_violation script(budget) 400 field=_record code=rule_violation
rule_violation conditional 400 field=_record code=rule_violation
happy twins (×5) 2xx (planned create / valid tax_id / valid email / valid support_config / legal prospect→active)
named-import-mapping — evidence
- Mapped, not positional:
Full Name → name,Channelvalue-mappedWebform → website/Partner Referral → referral,E-mail → email,Company → company. Read-back:name="Jane Doe" source="website",name="John Roe" source="referral". - Idempotent: import Add metamodel interfaces for ObjectQL/ObjectUI contract #1
created:2(inquiry 3→5); import ✨ Set up Copilot instructions #2 same file → count still 5, no duplicates (upsert onemail). - Unknown mapping fails loudly:
mappingName:"no_such_mapping"→404 MAPPING_NOT_FOUND— "No mapping artifact named "no_such_mapping" is registered" (no silent positional fallback).
Not-run in this run (need a separate browser sweep)
30 items on browser/mixed surfaces (e.g. crud-roundtrip P0, field-type-matrix, list-view-capabilities, object-hook-lifecycle, cascading-options, …) require the vendored console dist + Chromium driving. 1 blocked (import-job-undo-cancel, fixture).
Screenshots
None — both items are api oracles (server truth); report is text-only per RUNNER.md.
Activity
os-zhuang commentedon Aug 10, 2026
Triage: QA run record (2/2 PASS), not dispatchable work — closing as completed to archive it, following the convention already in evidence: #7326 ("QA run · platform-core.seed-integrity · PASS") is closed with no further thread.
qa-run, but no such label exists in this repo today (alabel:qa-runsearch returns zero, and no query consumes it). Flagged in the round brief rather than invented here — a label exists iff something reads it.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code