From 06d6fdc758c57528ae4f9fc3a4bdfbd1cacf9dfa Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Sat, 3 Oct 2026 19:35:52 +0200 Subject: [PATCH] docs(roadmap): insert phase 14.1 for oauth identities and fonoteka me routes --- .planning/ROADMAP.md | 22 +++++++++++++++++++++- .planning/STATE.md | 7 ++++--- .planning/state.json | 2 +- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index a5a5d0c..0edf377 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -769,11 +769,30 @@ Plans: **Wave 6** *(blocked on Wave 5 completion)* - [ ] 14-06-PLAN.md — Unit tests last: PHP Discogs truth tables, full coverage, threat and edge tests, route table and fuzz, scripts/check-phase14.sh, security review, validation and requirement evidence +### Phase 14.1: OAuth identities and fonoteka me routes (INSERTED) + +**Goal:** The three manifest routes no phase owned (14-CONTEXT D-09) are ported and pass the parity diff, so that no route is left `pending` before cutover. They are `GET /_fonoteka/api/v1/oauth-identities`, `DELETE /_fonoteka/api/v1/oauth-identities/{provider}` (social-login identities, deferred since Phase 7) and `GET /api/v1/fonoteka/me` (the full contract, not only the minimal Phase 8 D-20 version). +**Mode:** mvp +**Requirements**: TBD +**Depends on:** Phase 14 +**Repos:** fonoteka.go (plus sm-user-plugin if the identities live in the user plugin) +**Success Criteria** (what must be TRUE): + + 1. `GET oauth-identities` lists the signed-in user's linked social identities exactly as PHP returns them. + 2. `DELETE oauth-identities/{provider}` unlinks one identity with PHP's status codes and error shapes. + 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:** 0 plans + +Plans: +- [ ] TBD (run /gsd-plan-phase 14.1 to break down) + ### Phase 15: Cutover **Goal**: The parity harness is green on all 154 routes and `vue-fonoteka-app` and `fonoteka-mcp` run unchanged against the Go backend in daily use — the project's definition of done. **Mode:** mvp -**Depends on**: Phase 2, Phase 8, Phase 9, Phase 10, Phase 12, Phase 13, Phase 14 +**Depends on**: Phase 2, Phase 8, Phase 9, Phase 10, Phase 12, Phase 13, Phase 14, Phase 14.1 **Repos:** fonoteka.go, summercms.go **Requirements**: API-09, QA-05 **Success Criteria** (what must be TRUE): @@ -809,6 +828,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 | 0/6 | Planned | - | +| 14.1. OAuth identities and fonoteka me routes (INSERTED) | 0/TBD | Not started | - | | 15. Cutover | 0/TBD | Not started | - | ## Backlog diff --git a/.planning/STATE.md b/.planning/STATE.md index 8a06dc8..0388d0d 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -5,12 +5,12 @@ current_phase: 14 current_phase_name: domain-jobs-and-external-integrations status: executing stopped_at: Phase 14 context gathered -last_updated: "2026-10-03T16:56:39.498Z" +last_updated: "2026-10-03T17:16:09.658Z" last_activity: 2026-10-03 last_activity_desc: Phase 13 execution started -state_head: de5b01266b4919206905dd8174e7e50d4546726a +state_head: ed4d4c380cf50b6d683fd221a29166e550deae25 progress: - total_phases: 21 + total_phases: 22 completed_phases: 11 total_plans: 118 completed_plans: 112 @@ -181,6 +181,7 @@ Progress: [██████░░░░] 60% - Phase 11.3 deferred to the backlog as Phase 999.1 (2026-10-02): the Journal plugin and delivering Płytarium take priority - Phase 12.1 inserted after Phase 12: User plugin admin screens (sm-user-plugin): Users, User Groups, Organisations admin, before Phase 15 cutover - Phase 12.2 inserted after Phase 12: Admin form fields: date picker, file upload and relation-manager create/update/delete with Winter-like deferred binding (RelationController parity); framework only, ships as tag v0.1.1; blocks a downstream project on v0.1 (URGENT) +- Phase 14.1 inserted after Phase 14: OAuth identities (GET/DELETE oauth-identities) and GET /api/v1/fonoteka/me: the 3 orphan pending routes (14-CONTEXT D-09), so Phase 15 can reach all routes green (URGENT) ### Decisions diff --git a/.planning/state.json b/.planning/state.json index 65345cf..ef3d3ae 100644 --- a/.planning/state.json +++ b/.planning/state.json @@ -94,5 +94,5 @@ "label": "Advance to the next step", "reason": "Phase 14 of 21 · executing" }, - "updated_at": "2026-10-03T16:56:39.517Z" + "updated_at": "2026-10-03T17:16:08.905Z" }