Repository navigation
QA run · records-forms.field-unique-enforcement (1/1) · 55a806a7 · 2026-10-17 · 1 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 0 NOT-RUN #24098
Description
Run record for the re-run #24036 (half B) asks for after revising this item. Runner: an os-dev subagent dispatched by the domain:devx seat 2 PM (session session_016PVjjuVPte5XEJvaQx1E4t). Protocol: .claude/skills/checklist-test/SKILL.md + docs/qa/platform-checklist/RUNNER.md. Executed sequentially (no subagent tool in this runner).
Environment fingerprint
- framework:
55a806a78c0442243a8ac22e7dbc6f7b2c4b3bb0on branchclaude/issue-24036-ledger-b, the commit the app was built from. Its product tree isorigin/main8a83cebc1; the branch addsdocs/qa/platform-checklist/areas/*.jsononly, and its later commits touch those files alone. Built withpnpm install --frozen-lockfileandturbo run build(75/75 tasks). .objectui-sha:f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56(no browser leg in this item).- boot:
OS_PORT=41921 objectstack dev --ui --seed-admin -p 41921 -d file:(run dir)/api2/data.dbfromexamples/app-showcase, its own port and file DB (the CLI also provisioned the siblingdata.telemetry.db), stopped by its own process-group id afterwards. Scratch objectqa_unique(skuunique: true, gskuunique: 'global', nick) authored in a writable packagecom.qa.uniq(namespace qa) byPOST /api/v1/packages+PUT /api/v1/meta/object/qa_unique?package=com.qa.uniq. - persona(s): the seeded admin (
admin@objectos.ai), identity proven withGET /api/v1/auth/get-sessionbefore the first cell - timestamps: 2026-10-17, 00:15Z to 00:17Z
Scope
Selector records-forms.field-unique-enforcement resolves to 1 runnable item: records-forms.field-unique-enforcement at revision 3, P1, surface api. No planned or blocked-hidden item.
Per-clause verdicts
| # | clause (short) | verdict | evidence |
|---|---|---|---|
| 0 | colliding create refused 409, object named in developerMessage | pass | second sku A-1 → 409 UNIQUE_VIOLATION; developerMessage "Duplicate record refused on 'qa_unique': a unique constraint already holds these values. No record was written."; error generic "A record with this value already exists"; no driver prefix, statement or bound value in the body; count 1→1 |
| 1 | NULL-distinct | pass | two POSTs with no sku → 201, 201; both read back |
| 2 | update onto a taken value refused; no self-collision | pass | PATCH r2 sku B-1→A-1 → 409 UNIQUE_VIOLATION, re-read B-1; PATCH r1 nick only → 200 |
| 3 | updateMany refuses the whole batch first | pass | POST /api/v1/data/qa_unique/updateMany atomic, stamping C-1 onto two rows → succeeded 0, failed 2 (ROLLED_BACK + UNIQUE_VIOLATION); both rows byte-identical on re-read. The predicate-update driver path rests on the memory pin, as the verify text allows |
| 4 | scope matrix on both families | pass | memory-unique-constraint.test.ts 26 passed; sql-driver-8577 + organization-respelling 65 passed; live: a second gsku G-1 → 409 UNIQUE_VIOLATION. The two-organization live probe was not provisioned (knownGaps[2]); the per-org leg rests on the pins |
| 5 | autonumber collision converges (pin) | pass | memory-unique-constraint.test.ts resync case green within the 26 |
Automated pins run (RUNNER rule 6)
packages/drivers/driver-memory/src/memory-unique-constraint.test.ts: 26 passed.packages/drivers/driver-sql/src/sql-driver-8577-tenant-scoped-declared-unique.test.ts+sql-driver-declared-index-organization-respelling.test.ts: 65 passed.
Reproduction rules
No clause scored fail, so none is owed. No authentication or authorization hole was found; nothing here is withheld under the RUNNER rule-2 carve-out.
Derived item verdict
records-forms.field-unique-enforcement r3: pass (6 pass of 6 clauses).
- The revised clause 0 holds as written: the object-naming sentence is in
developerMessage, and the user-facingerrorstays generic.
Checklist-accuracy findings and fixture gaps from this run close out on #24036.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 17, 2026
Close-out (
domain:devxseat 2): every clause PASS; nothing to extract. Ruling C on #24127 (maintainer): a verification re-run of a ledger edit no longer carries aqa-runrecord, and the existing ones close out now. The revised itemrecords-forms.field-unique-enforcementlanded with #24141 (9ffe8af094), Part of #24036; itshistoryrow names #24036.Generated by Claude Code