diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index c1d0844..ef7ea43 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -982,11 +982,11 @@ Plans: **Goal:** The Journal posts list and post form in the admin work on real imported data, found on UAT (uat.grzybyfunkcjonalne.pl/gfadmin/golem15/journal/posts): (1) list search no longer fails with "Server error" — the Go log shows `ERROR: column Categories.post_id does not exist (SQLSTATE 42703)` from summercms@v0.1.9 modules/cabana/query.go:129, i.e. search across a belongsToMany (pivot) relation builds a hasMany join; (2) list sort and filters are remembered after opening a record and going back, as WinterCMS persisted list state; (3) the post form shows the stored content (DB has content/content_html on 104/104 posts, the form shows it empty); (4) the post form shows the stored excerpt (100/104 posts have it in the DB). Fixes span summercms.go core (modules/cabana — coordinate with the concurrent session working in modules/) and sm-journal-plugin; release a summercms tag, bump the host, redeploy to UAT and re-run the staging smoke. **Requirements**: TBD **Depends on:** Phase 16 -**Plans:** 3 plans +**Plans:** 1/3 plans executed Plans: **Wave 1** -- [ ] 16.1-01-PLAN.md — All fixes: cabana relation search and to-many sort through EXISTS/correlated subqueries (D-02), default locale first in form enabledLocales (D-03), Journal FormatHTML keeps raw HTML behind the gate (D-03), admin list state in the URL and browser storage (D-01) +- [x] 16.1-01-PLAN.md — All fixes: cabana relation search and to-many sort through EXISTS/correlated subqueries (D-02), default locale first in form enabledLocales (D-03), Journal FormatHTML keeps raw HTML behind the gate (D-03), admin list state in the URL and browser storage (D-01) **Wave 2** *(blocked on Wave 1 completion)* - [ ] 16.1-02-PLAN.md — Release gate (human), summercms tag, journal and host bumps, UAT redeploy and on-server smoke, re-save posts 53 and 64 (D-04) diff --git a/.planning/STATE.md b/.planning/STATE.md index 6ed3e19..dd2d3fa 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,18 +2,18 @@ msd_state_version: "1.0" milestone: v1.0 current_phase: "16.1" -current_phase_name: "Journal admin urgent fixes: relation search, list state, post form content and excerpt" +current_phase_name: "Journal admin urgent fixes: relation search, list state, post form content and excerpt (INSERTED)" status: executing -stopped_at: Phase 19.1 context gathered -last_updated: "2026-10-09T18:51:01.702Z" +stopped_at: Completed 16.1-01-PLAN.md +last_updated: "2026-10-09T19:05:48.037Z" last_activity: 2026-10-09 -last_activity_desc: Phase 16 execution started -state_head: ef6feb3441380eb0814d9a082b0a755c027b91a7 +last_activity_desc: Phase 16.1 execution started +state_head: 0ec2e31ffa19b38470109a4ff0eefa518ec0e803 progress: total_phases: 34 completed_phases: 13 total_plans: 151 - completed_plans: 144 + completed_plans: 145 gsd_state_version: "1.0" milestone_name: milestone --- @@ -25,14 +25,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 16 — grzybyfunkcjonalne.pl on reusable blog views +**Current focus:** Phase 16.1 — Journal admin urgent fixes: relation search, list state, post form content and excerpt (INSERTED) ## Current Position -Phase: 16.1 (Journal admin urgent fixes: relation search, list state, post form content and excerpt) — READY TO EXECUTE -Plan: 5 of 5 +Phase: 16.1 (Journal admin urgent fixes: relation search, list state, post form content and excerpt (INSERTED)) — EXECUTING +Plan: 2 of 3 Status: Ready to execute -Last activity: 2026-10-09 - Completed 16-04: staging deploy at uat.grzybyfunkcjonalne.pl, smoke ok (98 urls) +Last activity: 2026-10-09 — Phase 16.1 execution started Progress: [██████████] 100% @@ -199,6 +199,7 @@ Progress: [██████████] 100% | Phase 16 P03 | 22 min | 3 tasks | 32 files | | Phase 16 P04 | 40min | 3 tasks | 10 files | | Phase 16 P05 | 19 min | 3 tasks | 27 files | +| Phase 16.1 P01 | 11 min | 4 tasks | 20 files | ## Accumulated Context @@ -644,6 +645,10 @@ Recent decisions affecting current work: - [Phase 16]: No layer util needed a fix in 16-05, so vue-journal-layer gets no v0.1.1 tag; the app keeps v0.1.0 - [Phase 16]: The malformed-GA-id SSR test asserts the id appears only as the JSON string in window.__NUXT__.config, since Nuxt serializes public runtime config - [Phase 16]: The grzyby console test harness creates an ICU pl-PL database via GRZYBY_TEST_ADMIN_DSN or testcontainers and fails, not skips, without one outside -short +- [Phase 16.1]: Relation list search uses correlated EXISTS for every relation type (no outer JOIN); to-many sort uses a correlated string_agg subquery; names come from GORM's parsed relationship +- [Phase 16.1]: meta.enabledLocales lists the default content locale first, then the writer's order +- [Phase 16.1]: Journal FormatHTML renders raw HTML (goldmark WithUnsafe) behind the unchanged rejectUnsafe gate +- [Phase 16.1]: List state: URL plus per-list localStorage key summer-admin.list:, restored before the first list request, cleared on logout ### Pending Todos @@ -713,6 +718,6 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-10-09T18:10:21.245Z -Stopped at: Phase 19.1 context gathered -Resume file: .planning/phases/19.1-chat-satellites/19.1-CONTEXT.md +Last session: 2026-10-09T19:05:47.263Z +Stopped at: Completed 16.1-01-PLAN.md +Resume file: None