From ea955b39aeb7692c2a9070ddccab68517788a1b5 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Sat, 10 Oct 2026 13:36:19 +0200 Subject: [PATCH] docs(16.2-05): update state, roadmap and windows ledger after plan 05 --- .planning/ROADMAP.md | 4 ++-- .planning/STATE.md | 18 ++++++++++------- .planning/WINDOWS.md | 48 +++++++++++++++++++++++++++++++++++++++++--- .planning/state.json | 2 +- 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 5d36ad4..f83ebb1 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -999,7 +999,7 @@ Plans: **Goal:** Plugins can register their own admin form field types (todo: cabana-richeditor-field-type), and the Journal plugin ships a first-class Blog Editor formwidget for post content — beyond the current markdown field or a plain rich editor — that edits imported HTML posts losslessly. **Requirements**: TBD **Depends on:** Phase 16.1 -**Plans:** 4/6 plans executed +**Plans:** 5/6 plans executed Plans: **Wave 1** @@ -1011,7 +1011,7 @@ Plans: - [x] 16.2-04-PLAN.md — vue-journal-layer: sanitize-html mirror extended for the editor's own output (corpus copy), expandEmbeds as the last step after sanitizeJournalHtml, SSR proof, tag v0.2.0 (human push gate), pin in vue-grzybyfunkcjonalne-app **Wave 3** *(blocked on Wave 2 completion)* -- [ ] 16.2-05-PLAN.md — Release gate (human), summercms tag v0.1.18 (next free), journal and host bumps, UAT redeploy and on-server smoke, UAT acceptance: untouched re-saves byte-identical, editor edit with upload and embed, unsafe markup stripped and reported +- [x] 16.2-05-PLAN.md — Release gate (human), summercms tag v0.1.18 (next free), journal and host bumps, UAT redeploy and on-server smoke, UAT acceptance: untouched re-saves byte-identical, editor edit with upload and embed, unsafe markup stripped and reported **Wave 4** *(blocked on Wave 3 completion)* - [ ] 16.2-06-PLAN.md — Unit tests: resave contract at every layer, strip-and-report and notices, policy cross-check corpus (both policies, identical copies), category strip, full Go and JS coverage, Postgres tests for a Docker host, phase gate scripts/check-phase16.2.sh, validation map diff --git a/.planning/STATE.md b/.planning/STATE.md index f33fd6b..07e88d9 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -4,16 +4,16 @@ milestone: v1.0 current_phase: "16.2" current_phase_name: Plugin-provided field types and the Blog Editor formwidget status: executing -stopped_at: Completed 16.2-04-PLAN.md -last_updated: "2026-10-10T11:07:23.353Z" +stopped_at: Completed 16.2-05-PLAN.md +last_updated: "2026-10-10T11:36:13.581Z" last_activity: 2026-10-10 last_activity_desc: Phase 16.2 execution started -state_head: 2786faade3761c2121d5dbf780a48fcf211b4abf +state_head: aba1ef73910fae904daa870554d75cea4bcfc08e progress: total_phases: 34 completed_phases: 13 total_plans: 157 - completed_plans: 151 + completed_plans: 152 gsd_state_version: "1.0" milestone_name: milestone --- @@ -30,7 +30,7 @@ See: .planning/PROJECT.md (updated 2026-09-16) ## Current Position Phase: 16.2 (Plugin-provided field types and the Blog Editor formwidget) — EXECUTING -Plan: 5 of 6 +Plan: 6 of 6 Status: Ready to execute Last activity: 2026-10-10 — Phase 16.2 execution started @@ -206,6 +206,7 @@ Progress: [██████████] 100% | Phase 16.2 P02 | 25min | 3 tasks | 24 files | | Phase 16.2 P03 | 13min | 3 tasks | 21 files | | Phase 16.2 P04 | 50 min | 3 tasks | 15 files | +| Phase 16.2 P05 | 25 min | 3 tasks | 7 files | ## Accumulated Context @@ -672,6 +673,8 @@ Recent decisions affecting current work: - [Phase 16.2]: Plan 03: admin saves of post content write the Decode output to content and content_html per written locale (FormBefore*/FormAfter* hooks), no goldmark; category 422 gate retired - [Phase 16.2]: 16.2-04: vue-journal-layer mirrors exactly the four Go editor-output rules; embeds expand only at the v-html sinks, after sanitizeJournalHtml - [Phase 16.2]: 16.2-04: vue-journal-layer v0.2.0 published (tag 042b65d0 -> 759e684e, human reply "push"); vue-grzybyfunkcjonalne-app main 465286a pins it; a defect gets v0.2.1 +- [Phase 16.2]: 16.2-05: summercms v0.1.18 released (human: release v0.1.18); a later defect gets v0.1.19 +- [Phase 16.2]: 16.2-05: UAT Nuxt rollback copy is nuxt/.output.prev; the site-ok log check reads /var/log/supervisor/grzybyfunkcjonalne-go.log from the restart River anchor (supervisorctl tail fails on UAT) ### Pending Todos @@ -699,6 +702,7 @@ Recent decisions affecting current work: - Phase 11 (River dual-driver split) is documented but unverified against a real build — plan with `--research-phase` and budget a timed-latency test. - Phase 8 UI gate: scripts/check-phase8-ui.mjs --final-gate's real Playwright browser matrix (32 UI-SPEC scenarios) is unimplemented (deliberate fatal() at check-phase8-ui.mjs:458, never authored by 08-05); stage_ui_harness must keep failing closed until a Playwright spec is authored. User approved Phase 8 closure on 2026-09-24 with this gap carried forward -- see 08-10-SUMMARY.md and .planning/phases/08-oauth2-1-authorization-server/deferred-items.md. - pending: push sm-user-plugin — 12.1-05 Task 3 condition (c) failed (`git ls-remote --tags origin v0.1.3` empty). Push summercms.go master and annotated tag v0.1.3 (local on df5cace) first, then the plugin, then fonoteka.go. Recorded in 12.1-05-SUMMARY.md. +- 16.2-05 open UAT items: re-save HTML post 1 untouched (D-03 evidence vacuous), D-19 category edit check, root vhost install (frame-src), unpublish/delete test post 105 ### Quick Tasks Completed @@ -741,6 +745,6 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-10-10T11:07:22.612Z -Stopped at: Completed 16.2-04-PLAN.md +Last session: 2026-10-10T11:36:12.850Z +Stopped at: Completed 16.2-05-PLAN.md Resume file: None diff --git a/.planning/WINDOWS.md b/.planning/WINDOWS.md index e3c3216..db686f9 100644 --- a/.planning/WINDOWS.md +++ b/.planning/WINDOWS.md @@ -1,10 +1,10 @@ --- schema_version: 1 -open_count: 10 +open_count: 13 waived_count: 0 fixed_count: 6 -total_count: 16 -last_updated: 2026-10-10T10:12:10.986Z +total_count: 19 +last_updated: 2026-10-10T11:35:57.234Z --- # Broken Windows Ledger @@ -31,6 +31,9 @@ last_updated: 2026-10-10T10:12:10.986Z | 14 | 16.2 | unrun-verify | plugin_test.go | | sm-journal-plugin: TestJournalSVGEmbed now asserts AdminFS embeds assets/dist/blogeditor.js and .css; the root package TestMain needs Docker, so it was not run here; run go -C ../sm-journal-plugin test -count=1 . on a Docker host (plan 06) | open | | 2026-10-10T09:54:57.583Z | | | 15 | 16.2 | unrun-verify | .planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-03-PLAN.md | | sm-journal-plugin posts_admin_smoke_test.go: TestPostsFormCompiles, TestPostsAdminCreateSmoke, TestPostsAdminResaveKeepsHTML, TestPostsAdminSaveSanitizesHTML compile under go vet but need a Docker host (plan 06) | open | | 2026-10-10T10:12:10.725Z | | | 16 | 16.2 | unrun-verify | .planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-03-PLAN.md | | sm-journal-plugin journal_api_categories_test.go TestCategoriesAdminContent (strip assertions) and journal_api_task3_test.go media upload route tests after the StoreMedia refactor need a Docker host (plan 06) | open | | 2026-10-10T10:12:10.986Z | | +| 17 | 16.2 | unmet-truth | .planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-05-SUMMARY.md | | 16.2-05 D-03 on an HTML post unproven on UAT: post 1 (HTML_POST) was not written after RESTART_TS (updated_at still 2026-10-09), so posts-unchanged passed vacuously for it; a human must re-save post 1 untouched and the SELECT be re-run | open | | 2026-10-10T11:35:56.721Z | | +| 18 | 16.2 | unmet-truth | .planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-05-SUMMARY.md | | 16.2-05 D-19 human check pending: a one-word category edit in the Blog Editor saves without a removal notice and shows on the site; post 1 source tab shows the stored HTML unchanged | open | | 2026-10-10T11:35:56.955Z | | +| 19 | 16.2 | todo | .planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-05-SUMMARY.md | | 16.2-05 UAT root step: install the staging vhost with frame-src https://www.youtube-nocookie.com, nginx -t and reload; unpublish or delete test post uat-16-2-blog-editor (id 105) | open | | 2026-10-10T11:35:57.234Z | | ````json [ @@ -241,6 +244,45 @@ last_updated: 2026-10-10T10:12:10.986Z "recorded_at": "2026-10-10T10:12:10.986Z", "resolved_at": null, "milestone": "v1.0" + }, + { + "id": 17, + "kind": "unmet-truth", + "phase": "16.2", + "file": ".planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-05-SUMMARY.md", + "line": null, + "description": "16.2-05 D-03 on an HTML post unproven on UAT: post 1 (HTML_POST) was not written after RESTART_TS (updated_at still 2026-10-09), so posts-unchanged passed vacuously for it; a human must re-save post 1 untouched and the SELECT be re-run", + "status": "open", + "reason": "", + "recorded_at": "2026-10-10T11:35:56.721Z", + "resolved_at": null, + "milestone": "v1.0" + }, + { + "id": 18, + "kind": "unmet-truth", + "phase": "16.2", + "file": ".planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-05-SUMMARY.md", + "line": null, + "description": "16.2-05 D-19 human check pending: a one-word category edit in the Blog Editor saves without a removal notice and shows on the site; post 1 source tab shows the stored HTML unchanged", + "status": "open", + "reason": "", + "recorded_at": "2026-10-10T11:35:56.955Z", + "resolved_at": null, + "milestone": "v1.0" + }, + { + "id": 19, + "kind": "todo", + "phase": "16.2", + "file": ".planning/phases/16.2-plugin-provided-field-types-and-the-blog-editor-formwidget/16.2-05-SUMMARY.md", + "line": null, + "description": "16.2-05 UAT root step: install the staging vhost with frame-src https://www.youtube-nocookie.com, nginx -t and reload; unpublish or delete test post uat-16-2-blog-editor (id 105)", + "status": "open", + "reason": "", + "recorded_at": "2026-10-10T11:35:57.234Z", + "resolved_at": null, + "milestone": "v1.0" } ] ```` diff --git a/.planning/state.json b/.planning/state.json index c667e2b..f53cbd9 100644 --- a/.planning/state.json +++ b/.planning/state.json @@ -144,5 +144,5 @@ "label": "Advance to the next step", "reason": "Phase 16.2 of 34 · executing" }, - "updated_at": "2026-10-10T11:07:18.598Z" + "updated_at": "2026-10-10T11:36:07.796Z" }