--- phase: 12.2-admin-form-fields-date-file-upload-relation-editing-with-def verified: 2026-10-02T21:15:00Z status: passed score: 5/5 roadmap success criteria verified; 4 UI-SPEC backstops verified by SPA tests; BM browser UAT approved 2026-10-03 overrides_applied: 0 human_verification: - test: "Calendar keyboard and visual fit (UI-SPEC backstop + Direction C)" expected: "Esc returns focus to the datepicker trigger; a disabled day cannot be selected; the popover fits the existing control height and calendar cell size" why_human: "Approved on BM /backend 2026-10-03 after the v0.1.2 datetime popover time field." - test: "Drag reorder and upload progress on a fileupload field" expected: "Tiles and rows show queued/uploading/done; Save stays disabled while an upload is in flight; drag or keyboard reorder keeps the latest order" why_human: "Approved on BM /backend 2026-10-03." - test: "Child create/edit/delete and pivot edit on an unsaved parent" expected: "Create-screen relation managers with deferrable: true work at record id 0; the pending note shows; the first parent save commits children, pivots and files" why_human: "Approved on BM /backend 2026-10-03 after the v0.1.2 confirm-dialog and list datetime fixes." - test: "Create and push the v0.1.1 tag (12.2-05 Task 4)" expected: "git tag -a v0.1.1 on the phase head, then git push origin master v0.1.1; downstream TODO items for date, file upload and related-record editing can resolve on that tag" why_human: "Done: tagged and pushed 2026-10-02. BM UAT approved 2026-10-03." --- # Phase 12.2: Admin form fields Verification Report **Phase Goal:** A plugin's admin forms cover date/datetime, file upload, and related-record create/edit/delete with Winter-like deferred binding. **Verified:** 2026-10-02T21:15:00Z **Status:** passed **Re-verification:** BM browser UAT approved 2026-10-03 (v0.1.2 follow-up: datetime popover time, unsaved confirm, inferred list date types). All five plans have SUMMARYs. The prior Codex run already passed the nine-stage `scripts/check-phase12.2.sh` suite, Nyquist validation, and the 41-threat security ledger (`12.2-SECURITY.md` `threats_open: 0`). This pass closed the seven code-review findings instead of re-running that 137-file review. ## Goal Achievement | # | Success criterion | Status | Evidence | | --- | --- | --- | --- | | SC1 | `type: datepicker` with Winter modes stores date, timestamp and time | ✓ | `modules/cabana/datepicker_test.go`, `modules/lagoon/date_test.go`, `admin/tests/form/DatepickerField.test.ts`, `admin/tests/app/dateFormat.test.ts` (UTC-day bounds after 516f9c9) | | SC2 | `type: fileupload` on attachOne/attachMany, saved and unsaved | ✓ | `modules/cabana/fileupload_test.go` including `TestFileuploadUploadID` and WR-01 boot headroom; SPA `FileuploadField.test.ts` (18 tests) | | SC3 | Relation child CRUD scoped to the parent | ✓ | `modules/cabana/relation_child_test.go`, `relation_child_scope_test.go` (D-15); `TestPendingPivotFillError` after 516f9c9 | | SC4 | Deferred bind/commit/purge | ✓ | `modules/lagoon/deferred_test.go` (envelope now stores `upload_id`), `purge_test.go`, `modules/cabana/deferred_commit_test.go`, deferred smoke | | SC5 | Unit tests in the last plan; docs checker passes | ✓ | `12.2-05-SUMMARY.md`; this session `go test ./cmd/summer -run TestDocsTree` and `go run ./cmd/summer docs:build --check` exit 0 | ## Review findings (516f9c9) | ID | Status | Check run this session | | --- | --- | --- | | CR-01 | fixed | `admin/tests/smoke/deferred.smoke.test.ts` "does not save while an upload is still in flight"; FormView/RelationChildModal disable Save | | CR-02 | fixed | `TestFileuploadUploadID`; FileuploadField abort-delete and network-adopt tests; `TestDeferred/envelope` stores `upload_id` | | CR-03 | fixed | `TestJSONBodyCaps` (create, update, link, unlink, settings → 413) | | WR-01 | fixed | `TestFileuploadCompile` equality and 64 KiB headroom | | WR-02 | fixed | `admin/tests/app/dateFormat.test.ts` UTC-day bounds | | WR-03 | fixed | FileuploadField "sends only the latest order"; `visibleFilesLocked(..., true)` | | WR-04 | fixed | `TestPendingPivotFillError` | `12.2-REVIEW-DISPOSITION.md` records all 7 as `fixed`. The 137-file review was not re-run. ## Artifacts | Artifact | Status | | --- | --- | | Five plan SUMMARYs | ✓ | | `12.2-SECURITY.md` threats_open 0 | ✓ (prior run) | | `12.2-VALIDATION.md` nyquist_compliant | ✓ (prior run) | | `12.2-REVIEW.md` + disposition | ✓ disposition updated | | Docs checker | ✓ this session | | Admin `vue-tsc --noEmit` | ✓ this session | | v0.1.1 tag | ✓ pushed at 5c38d96 | ## Gaps None. Human UAT 1–4 passed on BM /backend 2026-10-03. _Verifier: the agent (inline, targeted; did not re-run the nine-stage gate or 137-file review)_