docs(phase-19.1): complete phase transition
This commit is contained in:
@@ -55,6 +55,10 @@ Validated in Phase 8: OAuth2.1 authorization server
|
||||
- [x] Direct standard-library OAuth 2.1-style authorization server (`wristband`): RFC 8414 metadata, RFC 7591 dynamic registration, authorize with S256 PKCE and JWT-guarded consent, authorization_code and rotating refresh_token grants with replay lineage-kill, RFC 8707 resource handling, connected-app list/revoke, `fonoteka:oauth-client` operator command, and the `/me` bootstrap the unchanged fonoteka-mcp process uses
|
||||
- [x] Byte parity with recorded PHP across all nine OAuth routes and a 17-step MCP lifecycle; the real unmodified fonoteka-mcp completes discovery, DCR, PKCE, consent, token, tool call, refresh, replay rejection and revoke against the Go binary; `scripts/check-phase8.sh` is the sign-off gate (its Playwright UI matrix stage is a named carried-forward follow-up)
|
||||
|
||||
Validated in Phase 19.1: Chat satellites
|
||||
|
||||
- [x] Shared plugins sm-chatbots-plugin, sm-chatvideo-plugin (LiveKit), sm-forum-plugin (breakwater-sanitized markdown), sm-herald-plugin (web push, SSRF-guarded) and sm-userfriends-plugin run on SummerCMS behind JWT APIs, with GDPR cascades on `user.Deleting`; `scripts/check-phase19.1.sh` is the fail-closed gate (UAT and security 2026-10-18)
|
||||
|
||||
### Active
|
||||
|
||||
Framework kernel
|
||||
@@ -172,6 +176,7 @@ Validated in Phase 18.1: Payment Gateway Subscriptions
|
||||
| Framework serves public uploads itself (`storage.uploads.serve`, opt-in) with nosniff, a sandboxing CSP and attachment disposition for non-images | Local runs need WinterCMS upload URLs without nginx; the hardening keeps uploaded HTML or SVG from running on the app origin (review WR-03) | ✓ Good (Phase 14.2) |
|
||||
| The opt-in request log (`http.access_log`) records method, matched pattern, status and duration, never the URL path | Share and invitation tokens travel in paths (review WR-01); an unported route shows as a 404 with an empty pattern | ✓ Good (Phase 14.2) |
|
||||
| Subscription state comes from Stripe, not the event snapshot (Phase 18.1, D-21 amended) | Out-of-order webhooks regressed rows; the job re-retrieves the subscription under a per-subscription advisory lock, and a portal `cancel_at` counts as cancel at period end | ✓ Good (Phase 18.1 UAT, 2026-10-16) |
|
||||
| A soft (optional) plugin dependency still requires the provider module in `go.mod`; only `Requires()` omits it | A typed `Lookup` needs the package that declares the interface; optional means "skipped at Boot when absent", not "not compiled in" (`docs/plugins/extending.md`) | ✓ Good (Phase 19.1 UAT override, 2026-10-18) |
|
||||
|
||||
## Evolution
|
||||
|
||||
@@ -191,4 +196,4 @@ This document evolves at phase transitions and milestone boundaries.
|
||||
4. Update Context with current state
|
||||
|
||||
---
|
||||
*Last updated: 2026-10-16 after Phase 18.1 completion*
|
||||
*Last updated: 2026-10-18 after Phase 19.1 completion*
|
||||
|
||||
@@ -33,7 +33,7 @@ Decimal phases appear between their surrounding integers in numeric order.
|
||||
- [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)
|
||||
- [x] **Phase 19: Chat and ChatChannels** - Port Golem15.Chat and Golem15.ChatChannels on lighthouse (completed 2026-10-17)
|
||||
- [ ] **Phase 19.1: Chat satellites** - Port chatbots, chatvideo, forum, herald and userfriends
|
||||
- [x] **Phase 19.1: Chat satellites** - Port chatbots, chatvideo, forum, herald and userfriends (completed 2026-10-18)
|
||||
- [ ] **Phase 19.2: Chat polish against WavePath clients** - Replay WavePath's chat traffic through `tide` against the ported chat plugins until green
|
||||
- [ ] **Phase 19.3: Framework transport and infrastructure for WavePath** - Cookie refresh, credentialed CORS, cache and Redis rate limits, S3 option, OpenAPI page, Turnstile
|
||||
- [ ] **Phase 19.4: OIDC provider on wristband** - Discovery, JWKS with key rotation, id_token, userinfo, consent and pairwise subjects
|
||||
@@ -1235,7 +1235,7 @@ Plans:
|
||||
3. Already met: fonoteka's PHP userfriends tree equals Wavepath 182b514; fonoteka.go has no port and Wavepath's copy is the single source.
|
||||
4. 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**
|
||||
@@ -1434,7 +1434,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
|
||||
| 18. Payment Gateway | 8/8 | Complete | 2026-10-14 |
|
||||
| 18.1. Payment Gateway Subscriptions | 9/9 | Complete | 2026-10-16 |
|
||||
| 19. Chat and ChatChannels | 7/7 | Complete | 2026-10-17 |
|
||||
| 19.1. Chat satellites | 6/6 | In Progress| |
|
||||
| 19.1. Chat satellites | 6/6 | Complete | 2026-10-18 |
|
||||
| 19.2. Chat polish against WavePath clients | 0/TBD | Not started | - |
|
||||
| 19.3. Framework transport and infrastructure for WavePath | 6/6 | In Progress| |
|
||||
| 19.4. OIDC provider on wristband | 0/TBD | Not started | - |
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
---
|
||||
msd_state_version: "1.0"
|
||||
milestone: v1.0
|
||||
current_phase: "19.1"
|
||||
current_phase_name: Chat satellites
|
||||
status: executing
|
||||
stopped_at: Completed 19.1-06-PLAN.md
|
||||
last_updated: "2026-10-18T16:05:35.637Z"
|
||||
current_phase: "19.2"
|
||||
current_phase_name: Chat polish against WavePath clients
|
||||
status: planning
|
||||
stopped_at: Phase 19.1 complete, ready to plan Phase 19.2
|
||||
last_updated: "2026-10-18T17:25:43.450Z"
|
||||
last_activity: 2026-10-18
|
||||
last_activity_desc: "Completed quick task 261018-k9s: add the D-17 module in summercms.go (modules/breakwater); 19.1-02 forum plan unblocked"
|
||||
state_head: 8553cd2afe2fd4f0fa4c41994eef7b4d7dc3edb9
|
||||
last_activity_desc: Phase 19.1 complete, transitioned to Phase 19.2
|
||||
state_head: f1ff2f940bc60281ec0f58cb07978516df7c1a8f
|
||||
progress:
|
||||
total_phases: 41
|
||||
completed_phases: 33
|
||||
completed_phases: 34
|
||||
total_plans: 204
|
||||
completed_plans: 204
|
||||
percent: 83
|
||||
gsd_state_version: "1.0"
|
||||
milestone_name: milestone
|
||||
---
|
||||
@@ -29,18 +30,18 @@ See: .planning/PROJECT.md (updated 2026-10-12)
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: 19.1 (Chat satellites) — EXECUTING
|
||||
Plan: 6 of 6
|
||||
Status: Ready to execute
|
||||
Last activity: 2026-10-18 — Completed quick task 261018-k9s: add the D-17 module in summercms.go (modules/breakwater); 19.1-02 forum plan unblocked
|
||||
Phase: 19.2 — Chat polish against WavePath clients
|
||||
Plan: Not started
|
||||
Status: Ready to plan
|
||||
Last activity: 2026-10-18 — Phase 19.1 complete, transitioned to Phase 19.2
|
||||
|
||||
Progress: [████████░░] 80%
|
||||
Progress: [████████░░] 83%
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
**Velocity:**
|
||||
|
||||
- Total plans completed: 95
|
||||
- Total plans completed: 101
|
||||
- Average duration: 21 min
|
||||
- Total execution time: 104 min
|
||||
|
||||
@@ -64,6 +65,7 @@ Progress: [████████░░] 80%
|
||||
| 14.2 | 4 | - | - |
|
||||
| 18.1 | 9 | - | - |
|
||||
| 19 | 7 | - | - |
|
||||
| 19.1 | 6 | - | - |
|
||||
|
||||
**Recent Trend:**
|
||||
|
||||
@@ -957,5 +959,5 @@ Items acknowledged and carried forward from previous milestone close:
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-10-18T14:01:53.356Z
|
||||
Stopped at: Completed 19.1-06-PLAN.md
|
||||
Stopped at: Phase 19.1 complete, ready to plan Phase 19.2
|
||||
Resume file: None
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
{
|
||||
"number": "19.1",
|
||||
"name": "Chat satellites",
|
||||
"status": "in_progress"
|
||||
"status": "complete"
|
||||
},
|
||||
{
|
||||
"number": "19.2",
|
||||
@@ -211,8 +211,8 @@
|
||||
],
|
||||
"next": {
|
||||
"command": "/msd:progress --next",
|
||||
"label": "Advance to the next step",
|
||||
"reason": "Phase 19.1 of 41 · executing"
|
||||
"label": "Advance to the next step (plan phase 19.2)",
|
||||
"reason": "Phase 19.2 of 41 — needs a plan"
|
||||
},
|
||||
"updated_at": "2026-10-18T13:41:48.501Z"
|
||||
"updated_at": "2026-10-18T17:25:43.481Z"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user