docs(roadmap): reorder — demo at 20, Płytarium cutover 20→30, chat polish 19.2→31
New Phase 20 is a public demo instance on sm-demo-app with every shared plugin. Phases 21-29 stay off the roadmap until their goals firm up. The cutover (closing v1.0) moves to 30; WavePath work starts at 31 with the former 19.2, Horoskopia follows at 36-40. Seeds, notes and the 30-CONTEXT now point at the new numbers.
This commit is contained in:
@@ -10,6 +10,8 @@ WavePath's agent wrote a list of what it needs from SummerCMS (section A) and wh
|
||||
|
||||
## Decisions
|
||||
|
||||
> **Updated 2026-10-18** (`.planning/notes/2026-10-18-roadmap-reorder-demo-release-wavepath.md`): the Płytarium cutover is now Phase 30, after a demo instance at Phase 20. Chat parity against WavePath's clients moved from 19.2 to Phase 31 and opens the WavePath phases (31 to 35). The other 19.x phases still land before the cutover. Phase numbers below are as of 2026-10-11.
|
||||
|
||||
- **The 19.x block comes before the cutover.** Chat first, then chat polish, then the other framework and user-plugin asks. Phase 20 waits for 19 to 19.6. The WavePath migration milestone opens after Phase 20.
|
||||
- **Chat is ported from the WavePath copy**, with `root_id` threading and `thread_summaries`. This settles the open chat-source question for Phase 19.
|
||||
- **The seed's trigger is now "Phase 20 complete".** The WavePath milestone no longer waits for the Horoskopia port.
|
||||
@@ -20,19 +22,19 @@ WavePath's agent wrote a list of what it needs from SummerCMS (section A) and wh
|
||||
|---|---|
|
||||
| A9: chat and chatchannels | Phase 19 |
|
||||
| A9: chatbots, chatvideo (LiveKit, reconcile job), forum, herald (web push), userfriends | Phase 19.1 |
|
||||
| Chat parity against WavePath's clients | Phase 19.2 |
|
||||
| Chat parity against WavePath's clients | Phase 19.2, now Phase 31 |
|
||||
| A3 cookie refresh and CORS, A6 cache and Redis `surf.Store`, A8 S3 option, `/api-docs`, Turnstile | Phase 19.3 (`summercms.go`) |
|
||||
| A1 OIDC provider | Phase 19.4 (`wristband`) |
|
||||
| A2 social login | Phase 19.5 (`sm-user-plugin`) |
|
||||
| A4 2FA, A5 device flow | Phase 19.6 (`sm-user-plugin`) |
|
||||
| A7 `summer import:winter` | Phase 20 (D-02 runner), with the WavePath stress cases below |
|
||||
| A7 `summer import:winter` | Phase 20, now Phase 30 (D-02 runner), with the WavePath stress cases below |
|
||||
|
||||
## Corrections to the hand-off list
|
||||
|
||||
- **The user plugin is already shared.** `sm-user-plugin` (`git.golem15.com/golem15/sm-user-plugin`) is its own repo, checked out by both fonoteka.go and sm-bm-app. Phases 19.5 and 19.6 add to it directly. Both consuming apps must still build after each change.
|
||||
- **Plugin-registrable token scopes (A8) are dropped for now.** `sm-user-plugin` already mints scoped tokens (`MintAPIToken`, `HasScope`). Its allowed list (`read`, `write`, `ai`) is a static package variable. WavePath's `wave.scope.public:*` scopes belong to its own `wave_token` guard and `golem15_wavepath_api_tokens` table, which section B ports on the WavePath side. Add a `RegisterAPITokenScope` hook only if WavePath confirms that its user-plugin tokens carry custom scopes.
|
||||
|
||||
## `import:winter` stress cases from WavePath (for Phase 20)
|
||||
## `import:winter` stress cases from WavePath (for Phase 30, formerly 20)
|
||||
|
||||
- The source is MariaDB. That is the same MySQL wire protocol, but check type coercion.
|
||||
- About 90 tables, including large chat and channel message tables. Batching must handle them.
|
||||
|
||||
Reference in New Issue
Block a user