3.1 KiB
3.1 KiB
title, date, context
| title | date | context |
|---|---|---|
| How the WavePath framework asks divide between SummerCMS and WavePath | 2026-10-11 | /msd-explore on the WavePath hand-off list `/media/nvme/dev/jz/wavepath.org/.planning/notes/summercms-framework-asks-for-wavepath.md`. Seed `SEED-261007-0tb`. |
How the WavePath framework asks divide between SummerCMS and WavePath
WavePath's agent wrote a list of what it needs from SummerCMS (section A) and what it will do itself (section B). Section B stays on the WavePath side as its migration milestone. Section A lands here as the 19.x phases, all before the Płytarium cutover (Phase 20).
Decisions
- 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_idthreading andthread_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.
Where each ask lands
| Ask | Where |
|---|---|
| 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 |
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 |
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-pluginalready mints scoped tokens (MintAPIToken,HasScope). Its allowed list (read,write,ai) is a static package variable. WavePath'swave.scope.public:*scopes belong to its ownwave_tokenguard andgolem15_wavepath_api_tokenstable, which section B ports on the WavePath side. Add aRegisterAPITokenScopehook only if WavePath confirms that its user-plugin tokens carry custom scopes.
import:winter stress cases from WavePath (for Phase 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.
- APP_KEY-encrypted columns go through the Laravel-decrypt hook.
- Zero-knowledge encryption-key blobs are copied byte for byte and never decoded.
system_filesacross 16 attaching models, and 9system_settingsrows.
Scope reminder
The WavePath backend is about 350 routes, about 90 tables and 164 migrations across wavepath and its shared plugins. The PHP routes are not frozen, so re-count when the milestone opens.