docs(roadmap): mark executed phases complete and add missing decimal rows

This commit is contained in:
Jakub Zych
2026-10-14 11:19:26 +02:00
parent 95e011accb
commit d369549740

View File

@@ -23,15 +23,15 @@ Decimal phases appear between their surrounding integers in numeric order.
- [x] **Phase 8: OAuth2.1 authorization server** - direct standard-library `wristband` server for fonoteka-mcp and the ChatGPT connector (completed 2026-09-23)
- [x] **Phase 9: Backend admin authentication and schema pipeline** - Admin roles, fields.yaml/columns.yaml, relation manager (completed 2026-10-01)
- [x] **Phase 10: Admin Vue SPA** - Login, navigation, lists, forms and relation manager for five controllers (completed 2026-09-27)
- [ ] **Phase 11: Jobs, realtime and search infrastructure** - River, Centrifugo and Typesense sync brought up before the API phases that need them
- [x] **Phase 11: Jobs, realtime and search infrastructure** - River, Centrifugo and Typesense sync brought up before the API phases that need them (completed 2026-10-06)
- [x] **Phase 12: Płytarium API — Collections and Albums** - Core content endpoints ported with byte-level parity (completed 2026-10-02)
- [ ] **Phase 13: Płytarium API — wishlist, notifications, CSV, credentials, public routes** - Remaining core API surface
- [ ] **Phase 14: Domain jobs and external integrations** - CSV/Discogs jobs, wishlist digest, reindex, Discogs client, AI recognition, feedback
- [x] **Phase 13: Płytarium API — wishlist, notifications, CSV, credentials, public routes** - Remaining core API surface (completed 2026-10-12)
- [x] **Phase 14: Domain jobs and external integrations** - CSV/Discogs jobs, wishlist digest, reindex, Discogs client, AI recognition, feedback (completed 2026-10-04)
- [x] **Phase 14.2: Local Fonoteka frontend on local SummerCMS backend** - vue-fonoteka-app locally against fonoteka.go (completed 2026-10-12)
- [ ] **Phase 15: Journal plugin** - Port Golem15.Journal to sm-journal-plugin
- [ ] **Phase 16: grzybyfunkcjonalne.pl on reusable blog views** - First blog on SummerCMS
- [ ] **Phase 17: Blog companions** - Port sitemap, menu and FAQ as shared plugins, with a framework menu-item type registry
- [ ] **Phase 18: Payment Gateway** - Port Golem15.PaymentGateway and its Stripe operator, with Horoskopia as the acceptance consumer
- [x] **Phase 15: Journal plugin** - Port Golem15.Journal to sm-journal-plugin (completed 2026-10-06)
- [x] **Phase 16: grzybyfunkcjonalne.pl on reusable blog views** - First blog on SummerCMS (completed 2026-10-09)
- [x] **Phase 17: Blog companions** - Port sitemap, menu and FAQ as shared plugins, with a framework menu-item type registry (completed 2026-10-13)
- [x] **Phase 18: Payment Gateway** - Port Golem15.PaymentGateway and its Stripe operator, with Horoskopia as the acceptance consumer (completed 2026-10-14)
- [ ] **Phase 19: Chat and ChatChannels** - Port Golem15.Chat and Golem15.ChatChannels on lighthouse
- [ ] **Phase 19.1: Chat satellites** - Port chatbots, chatvideo, forum, herald and userfriends
- [ ] **Phase 19.2: Chat polish against WavePath clients** - Replay WavePath's chat traffic through `tide` against the ported chat plugins until green
@@ -486,7 +486,7 @@ Plans:
4. A controller registers named toolbar actions listed in `toolbar.buttons`; a click POSTs the action and toasts while `create` and `delete` keep their behaviour; unknown YAML keys, missing templates, unregistered actions and unknown permissions fail boot.
5. The Albums list shows a statistics strip scoped to the admin's collection, the Albums form shows a "Load from Discogs" widget whose stub fills Release year and Format, and a "Sync with Discogs" toolbar action toasts from its stub.
**Plans:** 4/4 plans executed
**Plans:** 4/4 plans complete
Plans:
@@ -517,7 +517,7 @@ Plans:
4. A channel-namespace authorizer registry re-validates on every subscribe; a broadcastable model interface with bulk-write suppression emits exactly one summary event for a bulk operation.
5. Typesense sync is scoped by `collection_id` behind a settings kill-switch and degrades gracefully without DB/config.
**Plans:** 8/8 plans executed
**Plans:** 8/8 plans complete
**Research flag:** yes
Plans:
@@ -556,7 +556,7 @@ Plans:
4. Every Go example in a `docs/` page is compiled and run by `go test ./...` (Go code in ingested module READMEs is identifier-checked, not compiled — D-18). An identifier checker and an internal link/anchor checker also run there and fail on stale names or broken links.
5. A "Coming from WinterCMS" concept map and an `acme/blog` porting walkthrough exist, and the walkthrough's code is verified under criterion 4.
**Plans:** 7/7 plans executed
**Plans:** 7/7 plans complete
Plans:
**Wave 1**
@@ -598,7 +598,7 @@ Plans:
**Context:** `.planning/phases/11.2-ready-to-share-summercms-io-website-and-newsletter-plugin/11.2-CONTEXT.md` (D-01 to D-05, D-07, D-09 and D-12 still apply; see its supersession note)
**Plans:** 3/3 plans executed
**Plans:** 3/3 plans complete
Plans:
**Wave 1**
@@ -625,7 +625,7 @@ Plans:
4. Artists/genres/styles lookup endpoints used by the Albums UI pass the parity diff.
5. A request-DTO-level fuzz over every write endpoint asserts unknown and server-owned keys are never persisted (inherits the HTTP half of Phase 5 criterion 3; the HTTP layer does not exist until Phase 6/12).
**Plans**: 4/5 plans executed
**Plans**: 5/5 plans complete
Plans:
@@ -661,7 +661,7 @@ Plans:
5. The new code has unit tests, delivered in the phase's last plan.
**Open questions (discuss-phase):** impersonate user in or out of scope (security-sensitive); a separate permission for granting the `admin` group (it makes a site admin); whether convert-guest is needed for the application's data.
**Plans:** 5/5 plans executed
**Plans:** 5/5 plans complete
Plans:
@@ -696,7 +696,7 @@ 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:** 4/5 plans executed
**Plans:** 5/5 plans complete
Plans:
**Wave 1**
@@ -712,7 +712,7 @@ Plans:
- [x] 12.2-04-PLAN.md — Admin SPA: FileuploadField, DatepickerField (Reka), child and pivot modals, create-screen deferral, date/time cells, rebuilt dist
**Wave 5** *(blocked on Wave 4 completion)*
- [ ] 12.2-05-PLAN.md — Unit and security tests (D-15 suite, test map, SPA backstops), check-phase12.2.sh, security review, v0.1.1 tag checkpoint
- [x] 12.2-05-PLAN.md — Unit and security tests (D-15 suite, test map, SPA backstops), check-phase12.2.sh, security review, v0.1.1 tag checkpoint
**Cross-cutting constraints:**
- Calendar popover: Esc returns focus to the trigger and a disabled day cannot be selected
@@ -735,7 +735,7 @@ Plans:
4. Per-user and per-org Discogs/AI credentials CRUD store encrypted values, honor the org-lock flag, and resolve env-to-org-to-user correctly. The live `ai-credential/test` and `discogs-credential/test` routes move to Phase 14 (D-02).
5. Onboarding, public and invitation-inspection routes, including the anonymous collection views `public/{token}`, `public/{token}/albums` and `public/{token}/albums/{id}`, are reachable without auth and enforce their own public rate-limit buckets.
**Plans:** 6/6 plans executed
**Plans:** 6/6 plans complete
Plans:
@@ -774,7 +774,7 @@ Plans:
6. Feedback submissions, widget config and the hide preference work (sitemap dropped for this application, D-14); the oauth-client, prune-notifications and reindex commands all run correctly.
`oauth-identities` GET/DELETE and token `GET /api/v1/fonoteka/me` stay pending in this phase (D-09, todo orphan-pending-routes).
**Plans:** 6/6 plans executed
**Plans:** 6/6 plans complete
Plans:
@@ -863,7 +863,7 @@ Plans:
3. Cabana `markdown`/`mltext`/`mlmarkdown` compose; nested locale writes are not dropped; docs, OpenAPI, TS types and `boardwalk` `dist/` update in the same change.
4. Proof host `sm-grzybyfunkcjonalne-app` boots with user+translate; unit tests are the last plan.
**Plans:** 6/6 plans executed
**Plans:** 6/6 plans complete
Plans:
@@ -904,7 +904,7 @@ Plans:
5. `docs/setup/installation.md` leads with the one-liner, `go-modules-and-workspaces.md` and the console docs cover `summer new`, and `llms.txt`/`llms-full.txt` include the changes; docs checks pass.
6. Generator Go tests (golden output plus a real build of the scaffold in a temp dir) are the last plan.
**Plans:** 4/4 plans executed
**Plans:** 4/4 plans complete
Plans:
@@ -934,7 +934,7 @@ Plans:
3. Plugin README and docs stay application-neutral (`the application`, example names such as `blog`).
4. The new code has unit tests, delivered in the phase's last plan.
**Plans:** 4/4 plans executed
**Plans:** 4/4 plans complete
Plans:
@@ -964,7 +964,7 @@ Plans:
3. Public pages that PHP Journal + the current theme rendered have a named successor on Go; sitemap is in if the site still needs it.
4. The new code has unit tests, delivered in the phase's last plan.
**Plans:** 5/5 plans executed
**Plans:** 5/5 plans complete
Plans:
**Wave 1**
@@ -1075,7 +1075,7 @@ Plans:
4. grzybyfunkcjonalne.pl reads its menu and FAQ from the plugins instead of app config.
5. The new code has unit tests, delivered in the phase's last plan.
**Plans:** 6/6 plans executed
**Plans:** 6/6 plans complete
Plans:
**Wave 1**
@@ -1113,7 +1113,7 @@ Plans:
4. A host test proves the order-create, Stripe-pay and order-paid flow that Horoskopia relies on.
5. The new code has unit tests, delivered in the phase's last plan.
**Plans:** 8/8 plans executed
**Plans:** 8/8 plans complete
Plans:
**Wave 1**
@@ -1327,23 +1327,31 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
| 4. CLI scaffolding, i18n and mail | 4/4 | Complete | 2026-09-18 |
| 5. Data layer full fidelity | 6/6 | Complete | 2026-09-18 |
| 6. HTTP routing, auth groups and rate limiting | 14/14 | Complete | 2026-09-21 |
| 7. User plugin and authentication | 8/8 | Complete | 2026-09-23 |
| 7. User plugin and authentication | 8/8 | Complete | 2026-09-23 |
| 8. OAuth2.1 authorization server | 10/10 | Complete | 2026-09-23 |
| 9. Backend admin authentication and schema pipeline | 12/12 | Complete | 2026-10-01 |
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
| 11. Jobs, realtime and search infrastructure | 8/8 | In Progress| |
| 11.1. SummerCMS documentation for humans and AI agents | 7/7 | In Progress| |
| 11.2. summercms.io Alpha 0.1 landing page on SummerCMS | 3/3 | In Progress| |
| 9. Backend admin authentication and schema pipeline | 12/12 | Complete | 2026-10-01 |
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
| 10.1. Runtime admin extension point (INSERTED) | 4/4 | Complete | 2026-10-06 |
| 10.2. Nest framework packages under modules and write run docs (INSERTED) | 2/2 | Complete | 2026-10-06 |
| 11. Jobs, realtime and search infrastructure | 8/8 | Complete | 2026-10-06 |
| 11.1. SummerCMS documentation for humans and AI agents | 7/7 | Complete | 2026-10-06 |
| 11.2. summercms.io Alpha 0.1 landing page on SummerCMS | 3/3 | Complete | 2026-10-06 |
| 12. Płytarium API — Collections and Albums | 5/5 | Complete | 2026-10-02 |
| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 6/6 | In Progress| |
| 14. Domain jobs and external integrations | 6/6 | In Progress| |
| 14.1. OAuth identities and fonoteka me routes (INSERTED) | 2/2 | Complete | 2026-10-05 |
| 14.2. Local Fonoteka frontend on local SummerCMS backend (INSERTED) | 4/4 | Complete | 2026-10-12 |
| 14.3. One-command app scaffolding (INSERTED) | 4/4 | In Progress| |
| 12.1. User plugin admin screens (INSERTED) | 5/5 | Complete | 2026-10-12 |
| 12.2. Admin form fields: date, file upload, relation editing with deferred binding (INSERTED) | 5/5 | Complete | 2026-10-03 |
| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 6/6 | Complete | 2026-10-12 |
| 14. Domain jobs and external integrations | 6/6 | Complete | 2026-10-04 |
| 14.1. OAuth identities and fonoteka me routes (INSERTED) | 2/2 | Complete | 2026-10-05 |
| 14.2. Local Fonoteka frontend on local SummerCMS backend (INSERTED) | 4/4 | Complete | 2026-10-12 |
| 14.2.1. Translate plugin (INSERTED) | 6/6 | Complete | 2026-10-06 |
| 14.3. One-command app scaffolding (INSERTED) | 4/4 | Complete | 2026-10-08 |
| 15. Journal plugin | 4/4 | Complete | 2026-10-06 |
| 16. grzybyfunkcjonalne.pl on reusable blog views | 5/5 | In Progress| |
| 17. Blog companions | 6/6 | In Progress| |
| 18. Payment Gateway | 8/8 | In Progress| |
| 16. grzybyfunkcjonalne.pl on reusable blog views | 5/5 | Complete | 2026-10-09 |
| 16.1. Journal admin urgent fixes (INSERTED) | 3/3 | Complete | 2026-10-10 |
| 16.2. Plugin-provided field types and the Blog Editor formwidget (INSERTED) | 7/7 | Complete | 2026-10-10 |
| 16.3. Backend admin personal API tokens with scopes (INSERTED) | 4/4 | Complete | 2026-10-12 |
| 17. Blog companions | 6/6 | Complete | 2026-10-13 |
| 18. Payment Gateway | 8/8 | Complete | 2026-10-14 |
| 18.1. Payment Gateway Subscriptions | 0/TBD | Not started | - |
| 19. Chat and ChatChannels | 0/TBD | Not started | - |
| 19.1. Chat satellites | 0/TBD | Not started | - |