docs(16.2-05): update state, roadmap and windows ledger after plan 05

This commit is contained in:
2026-10-10 13:36:19 +02:00
parent aba1ef7391
commit ea955b39ae
4 changed files with 59 additions and 13 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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"
}
]
````

View File

@@ -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"
}