72 lines
4.8 KiB
Markdown
72 lines
4.8 KiB
Markdown
---
|
|
phase: 12.2-admin-form-fields-date-file-upload-relation-editing-with-def
|
|
verified: 2026-10-02T21:15:00Z
|
|
status: human_needed
|
|
score: 5/5 roadmap success criteria verified; 4 UI-SPEC backstops verified by SPA tests; browser UAT and the v0.1.1 tag remain human
|
|
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: "Unit tests cover Esc and disabled days; visual fit against Direction C needs a browser"
|
|
- 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: "XHR progress and pointer drag are mocked in vitest; live feel is a human check"
|
|
- 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: "The deferred smoke test is mocked; the assembled admin UI against a real plugin is a human check"
|
|
- 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. Remaining human items are BM browser UAT after the plugin wires the new fields."
|
|
---
|
|
|
|
# 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:** human_needed
|
|
**Re-verification:** No — first verification after the review-fix commit.
|
|
|
|
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 in automated must-haves. Remaining work is the four human items above.
|
|
|
|
_Verifier: the agent (inline, targeted; did not re-run the nine-stage gate or 137-file review)_
|