Skip to content

QA run · records-forms (api subset) · a86db175 · 2026-08-10 · 2/2 PASS #7399

Description

@baozhoutao

Selectorarea: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

frameworka86db175 — branch claude/platform-test-checklist-ocwugl (PR #7304)
app · drivershowcase · SqlDriver(better-sqlite3) · db file:/tmp/qa-rf-run/data.db (isolated, fresh) · port 3468
personaadmin@objectos.ai · when 2026-08-10T09:39Z

Item verdicts

itemrevverdictnotes
records-forms.validation-rule-type-matrix (P1)1✅ pass4/4 acceptance clauses; negative malformed-CEL sub-case not exercised (no stock fixture)
records-forms.named-import-mapping (P2)1✅ pass3/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, Channel value-mapped Webform → 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 #1created:2 (inquiry 3→5); import ✨ Set up Copilot instructions #2 same file → count still 5, no duplicates (upsert on email).
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions