Files
summercms/.planning/phases/12.2-admin-form-fields-date-file-upload-relation-editing-with-def/12.2-VERIFICATION.md
Jakub Zych 6525d967c5 docs(12.2): record BM UAT approval after v0.1.2 fixes
Browser checks on sm-bm-app passed: datetime popover time, discard confirm, and list date formatting. Phase 12.2 UAT is complete.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 05:59:06 +02:00

72 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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)_