diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 1d2fbc8..26ae61a 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -670,11 +670,11 @@ Plans: 4. Deferred binding: on an unsaved parent, uploads and related-record changes bind to a session key, are committed in the parent's create transaction, and are discarded with the session. Orphaned deferred bindings and their files are purged. 5. The new code has unit tests, delivered in the phase's last plan, and the docs checker passes. -**Plans:** 5 plans +**Plans:** 1/5 plans executed Plans: **Wave 1** -- [ ] 12.2-01-PLAN.md — Foundations: deferred_bindings table and store, attach.Store with image guard, attach.Relation, lagoon.Date/TimeOfDay with Fill and required, deferred:purge with the daily framework schedule, pact relation hooks +- [x] 12.2-01-PLAN.md — Foundations: deferred_bindings table and store, attach.Store with image guard, attach.Relation, lagoon.Date/TimeOfDay with Fill and required, deferred:purge with the daily framework schedule, pact relation hooks **Wave 2** *(blocked on Wave 1 completion)* - [ ] 12.2-02-PLAN.md — cabana fileupload (seven file routes, protected download) and datepicker fields, session key, commit of file bindings in the save transaction, OpenAPI diff --git a/.planning/STATE.md b/.planning/STATE.md index 1bbeb03..b3bcf6c 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,18 +2,18 @@ gsd_state_version: "1.0" milestone: v1.0 current_phase: "12.2" -current_phase_name: admin-form-fields-date-file-upload-relation-editing-with-def +current_phase_name: "Admin form fields: date, file upload, relation editing with deferred binding (INSERTED)" status: executing -stopped_at: Phase 12.2 UI-SPEC approved -last_updated: "2026-10-02T14:53:28.651Z" +stopped_at: Completed 12.2-01-PLAN.md +last_updated: "2026-10-02T15:48:16.544Z" last_activity: 2026-10-02 -last_activity_desc: Phase 12 execution started -state_head: 6f4386c2f9ff8670205b2521eebe7556e5d0b510 +last_activity_desc: Phase 12.2 execution started +state_head: f004d7d4fc16f7a02d7f8b06c7a969e39d6145a7 progress: total_phases: 21 - completed_phases: 10 + completed_phases: 11 total_plans: 106 - completed_plans: 101 + completed_plans: 102 milestone_name: milestone --- @@ -24,14 +24,14 @@ milestone_name: milestone See: .planning/PROJECT.md (updated 2026-09-16) **Core value:** An existing WinterCMS-shaped app can be ported plugin by plugin to a single Go binary without its frontend noticing: the PHP version's API contract is the acceptance test. -**Current focus:** Phase 12 — Płytarium API — Collections and Albums +**Current focus:** Phase 12.2 — Admin form fields: date, file upload, relation editing with deferred binding (INSERTED) ## Current Position -Phase: 12.2 (admin-form-fields-date-file-upload-relation-editing-with-def) — READY TO EXECUTE -Plan: 5 of 5 +Phase: 12.2 (Admin form fields: date, file upload, relation editing with deferred binding (INSERTED)) — EXECUTING +Plan: 2 of 5 Status: Ready to execute -Last activity: 2026-10-02 — Phase 12 execution started +Last activity: 2026-10-02 — Phase 12.2 execution started Progress: [██████░░░░] 60% @@ -156,6 +156,7 @@ Progress: [██████░░░░] 60% | Phase 12 P03 | 36 min | 3 tasks | 72 files | | Phase 12 P04 | 82 min | 3 tasks | 226 files | | Phase 12 P05 | 2h15m | 3 tasks | 85 files | +| Phase 12.2 P01 | 20min | 3 tasks | 32 files | ## Accumulated Context @@ -456,6 +457,10 @@ Recent decisions affecting current work: - [Phase 12]: 12-05: attach Thumb stores WinterCMS's broken-image picture for an unusable original instead of erroring (T-12-16) - [Phase 12]: 12-05: check-phase12.sh --removal runs separately from --all because it edits tracked source; all 25 RC rows recorded in 12-SECURITY-REVIEW.md - [Phase 12]: 12-05 complete (5/5 plans): Phase 12 ready for /gsd-verify-work 12; sm-user-plugin master is 3 commits ahead of origin and needs a push +- [Phase 12.2]: 12.2-01: Fill's TextUnmarshaler fallback skips sql.Scanner types except lagoon.Date/TimeOfDay, so values that filled through Scan keep that path +- [Phase 12.2]: 12.2-01: empty text fills a zero lagoon.Date/TimeOfDay (NULL); required rejects zero dates and times +- [Phase 12.2]: 12.2-01: PurgeDeferred keeps created-child bindings whose slave type no plugin model resolves (Skipped) instead of deleting blind +- [Phase 12.2]: 12.2-01: framework schedule entry summercms.lagoon[0]:deferred:purge at database.deferred_bindings.purge_at (default 03:00, empty disables) ### Pending Todos @@ -504,6 +509,6 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-10-02T13:52:22.629Z -Stopped at: Phase 12.2 UI-SPEC approved -Resume file: .planning/phases/12.2-admin-form-fields-date-file-upload-relation-editing-with-def/12.2-UI-SPEC.md +Last session: 2026-10-02T15:48:16.010Z +Stopped at: Completed 12.2-01-PLAN.md +Resume file: None diff --git a/.planning/state.json b/.planning/state.json index f7a4153..2f54652 100644 --- a/.planning/state.json +++ b/.planning/state.json @@ -71,7 +71,7 @@ { "number": "12", "name": "Płytarium API — Collections and Albums", - "status": "in_progress" + "status": "complete" }, { "number": "13", @@ -94,5 +94,5 @@ "label": "Advance to the next step", "reason": "Phase 12.2 of 21 · executing" }, - "updated_at": "2026-10-02T14:53:28.681Z" + "updated_at": "2026-10-02T15:48:11.308Z" }