diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md index 785413e..d041f05 100644 --- a/.planning/PROJECT.md +++ b/.planning/PROJECT.md @@ -162,6 +162,7 @@ Quality | WinterCMS websockets plugin dissolved into the framework `lighthouse` package (Phase 11 D-16) | Realtime is transport-neutral framework code (drivers, authorizer registry, broadcasts); the app only binds config, the collection/wishlist authorizers, the Mount call, the ws-api bucket and the Album binding, so a separate app plugin would be an empty shell | ✓ Good (Phase 11 plan 11-03) | | Framework and application in two repos from day one (`summercms.go`, `fonoteka.go`) | Retrofitting the split later is more disruptive; shared stack plugins can be extracted for keios.eu without touching the framework; the framework never imports an app | ✓ Good (Phase 3: fonoteka.go workspace, user + fonoteka plugins, app.Handler test seam) | | Shared core plugins live in their own `sm--plugin` repos, mounted into each application as git submodules (first: sm-user-plugin, module `git.golem15.com/golem15/sm-user-plugin`) | A second application (sm-summercmsio-app) exists and the Journal port is next; one copy per core plugin instead of forks; supersedes the Phase 1 keios.eu trigger (`.planning/notes/core-plugins-own-repos.md`) | ✓ Good (2026-10-02, quick 261002-esz) | +| OAuth identities live in sm-user-plugin; Index/Destroy are host-mounted on the JWT group | Social-login rows are a user-plugin table (D-01); routes stay off `/_user` so the host owns Winter 404 and `throttle:10,1` | ✓ Good (Phase 14.1, 2026-10-05; corpus 175/175/0) | ## Evolution @@ -181,4 +182,4 @@ This document evolves at phase transitions and milestone boundaries. 4. Update Context with current state --- -*Last updated: 2026-09-24 after Phase 8 completion* +*Last updated: 2026-10-05 after Phase 14.1 completion* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index fc7959c..859e090 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -798,7 +798,7 @@ Plans: 3. `GET /api/v1/fonoteka/me` matches the PHP response for fonoteka-mcp token callers. 4. All three manifest entries flip from `pending` to ported with recorded PHP cases, leaving zero pending routes. -**Plans:** 2/2 plans executed +**Plans:** 2/2 plans complete Plans: @@ -848,7 +848,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → | 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 | In Progress| | +| 14.1. OAuth identities and fonoteka me routes (INSERTED) | 2/2 | Complete | 2026-10-05 | | 15. Cutover | 0/TBD | Not started | - | ## Backlog diff --git a/.planning/STATE.md b/.planning/STATE.md index b2ae4a9..21e8950 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -1,19 +1,20 @@ --- gsd_state_version: "1.0" milestone: v1.0 -current_phase: "14.1" -current_phase_name: OAuth identities and fonoteka me routes -status: executing -stopped_at: Completed 14.1-02-PLAN.md -last_updated: "2026-10-05T19:38:03.055Z" +current_phase: 11 +current_phase_name: Jobs, realtime and search infrastructure +status: planning +stopped_at: Phase 14.1 complete, ready to plan Phase 11 +last_updated: "2026-10-05T19:48:21.998Z" last_activity: 2026-10-05 -last_activity_desc: Completed 14.1-02-PLAN.md -state_head: 0d1b5caf3dff811c11abd6c010d10f68d30fe3bf +last_activity_desc: Phase 14.1 complete, transitioned to Phase 11 +state_head: eb848257247504f5d1b583c0231b2862781a7dcf progress: total_phases: 22 - completed_phases: 11 + completed_phases: 12 total_plans: 125 completed_plans: 125 + percent: 67 milestone_name: milestone --- @@ -24,22 +25,22 @@ milestone_name: milestone See: .planning/PROJECT.md (updated 2026-09-16) **Core value:** An existing WinterCMS-shaped app can be ported plugin by plugin to a single Go binary without its frontend noticing: the PHP version's API contract is the acceptance test. -**Current focus:** Phase 14.1 — OAuth identities and fonoteka me routes +**Current focus:** Phase 11 — Jobs, realtime and search infrastructure ## Current Position -Phase: 14.1 (OAuth identities and fonoteka me routes) — EXECUTING -Plan: 2 of 2 complete -Status: Phase 14.1 plans complete; next is /gsd-verify-work 14.1 -Last activity: 2026-10-05 — Completed 14.1-02-PLAN.md +Phase: 11 — Jobs, realtime and search infrastructure +Plan: Not started +Status: Ready to plan +Last activity: 2026-10-05 — Phase 14.1 complete, transitioned to Phase 11 -Progress: [██████████] 100% +Progress: [███████░░░] 67% ## Performance Metrics **Velocity:** -- Total plans completed: 62 +- Total plans completed: 64 - Average duration: 21 min - Total execution time: 104 min @@ -57,6 +58,7 @@ Progress: [██████████] 100% | 08 | 10 | - | - | | 10 | 5 | - | - | | 10.2 | 2 | - | - | +| 14.1 | 2 | - | - | **Recent Trend:** @@ -202,6 +204,8 @@ Decisions are logged in PROJECT.md Key Decisions table. Recent decisions affecting current work: - [Phase 14.1]: 14.1-01 Task 1 `ship-shared-full` — create `golem15_user_oauth_identities` in the shared sm-user-plugin with the full PHP column set (locked D-01 and D-07). +- [Phase 14.1]: Identity Index/Destroy are host-mounted on the JWT group; the user plugin does not register them under `/_user`. `/me` unrestricted `collection_ids` is JSON null (D-09); `scopes` stay `[]`. +- [Phase 14.1]: Corpus is 175/175/0 with zero pending routes. Live Nuxt Connected accounts and fonoteka-mcp `me()` stay Phase 15 UAT. - Roadmap: gormigrate (not goose) is the migration tool, per STACK.md's more recent reasoning — ARCHITECTURE.md/PITFALLS.md text still says goose in places; treat gormigrate as authoritative when phases 3 and 5 are planned. - Roadmap: two repos from day one — `summercms.go` (framework, no app knowledge) and `fonoteka.go` (sibling app repo, go.work workspace of plugins). Every phase states which repo(s) it writes to. - Roadmap: the parity harness (Phase 2) and the first vertical slice (Phase 3) are sequenced immediately after kernel foundation, ahead of any further kernel broadening, to avoid the documented Scala-era bottom-up-kernel failure mode. @@ -616,6 +620,6 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-10-05T19:38:02.502Z -Stopped at: Completed 14.1-02-PLAN.md +Last session: 2026-10-05T19:49:11.000Z +Stopped at: Phase 14.1 complete, ready to plan Phase 11 Resume file: None