From ca7a6630cde656ea976f17ed67b3f22598bab81c Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Sat, 3 Oct 2026 09:52:43 +0200 Subject: [PATCH] docs(13-04): record plan completion in state and roadmap --- .planning/REQUIREMENTS.md | 4 ++-- .planning/ROADMAP.md | 6 +++--- .planning/STATE.md | 18 +++++++++++------- .planning/state.json | 2 +- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 9cdcde2..9b715c1 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -77,7 +77,7 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b - [x] **API-02**: Albums: CRUD, ratings, photo upload and manual cover URL, Discogs cover import (cover_urls), artists/genres/styles lookups, search that treats Typesense as a pre-filter with both the items and the total re-gated in SQL - [ ] **API-03**: Wishlist: items, subscriptions, public-wishlist/{token} views, album reservations (reserve/reveal), purchase and digest triggers (the wishlist Discogs match/apply-release routes are Phase 14, with INTG-01) - [ ] **API-04**: Notifications: list, unread count, mark read (one and all); pruning is the Phase 14 `fonoteka:prune-notifications` console command; realtime token endpoint owned by the websockets plugin -- [ ] **API-05**: CSV import as a multi-step session (store, show/poll, mapping patch, per-row edit, commit, cancel) and CSV export on both authenticated groups +- [x] **API-05**: CSV import as a multi-step session (store, show/poll, mapping patch, per-row edit, commit, cancel) and CSV export on both authenticated groups - [ ] **API-06**: Per-user and per-org Discogs and AI credentials CRUD with encrypted storage, org-lock flag, and env-to-org-to-user resolution (the live ai-credential/test and discogs-credential/test routes are Phase 14, with INTG-01 and INTG-02) - [ ] **API-07**: Onboarding, public and invitation inspection routes, including the anonymous collection public-token views (public/{token}, its albums and album detail), with their public rate-limit buckets - [ ] **API-08**: Feedback submissions and sitemap output from the stack plugins @@ -216,7 +216,7 @@ Which phases cover which requirements. Updated during roadmap creation. | API-02 | Phase 12 | Complete | | API-03 | Phase 13 | Pending | | API-04 | Phase 13 | Pending | -| API-05 | Phase 13 | Pending | +| API-05 | Phase 13 | Complete | | API-06 | Phase 13 | Pending | | API-07 | Phase 13 | Pending | | API-08 | Phase 14 | Pending | diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 2343cca..79e0891 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -709,7 +709,7 @@ Plans: 4. Per-user and per-org Discogs/AI credentials CRUD store encrypted values, honor the org-lock flag, and resolve env-to-org-to-user correctly. The live `ai-credential/test` and `discogs-credential/test` routes move to Phase 14 (D-02). 5. Onboarding, public and invitation-inspection routes, including the anonymous collection views `public/{token}`, `public/{token}/albums` and `public/{token}/albums/{id}`, are reachable without auth and enforce their own public rate-limit buckets. -**Plans:** 3/6 plans executed +**Plans:** 4/6 plans executed Plans: @@ -723,7 +723,7 @@ Plans: - [x] 13-03-PLAN.md — Wishlist (30 routes): resolver, visibility, subscriptions, secret reservations, share/settings/household, purchase with transactional mail, item-added bell and digest queue, nuxt-wishlist and mcp-wishlist flows, publication goldens **Wave 4** *(blocked on Wave 3 completion)* -- [ ] 13-04-PLAN.md — CSV (8 routes): fputcsv export on both groups, parser package with PHP truth tables, private uploads, import session with commit CAS, queued import/match jobs, D-05 seam, nuxt-csv flow +- [x] 13-04-PLAN.md — CSV (8 routes): fputcsv export on both groups, parser package with PHP truth tables, private uploads, import session with commit CAS, queued import/match jobs, D-05 seam, nuxt-csv flow **Wave 5** *(blocked on Wave 4 completion)* - [ ] 13-05-PLAN.md — Public views (6 routes): token resolution, pubfail lockout, public search and facets, public album field set, D-14 per-route buckets, header fix, public flows @@ -787,7 +787,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → | 11.1. SummerCMS documentation for humans and AI agents | 7/7 | In Progress| | | 11.2. summercms.io Alpha 0.1 landing page on SummerCMS | 3/3 | In Progress| | | 12. Płytarium API — Collections and Albums | 5/5 | Complete | 2026-10-02 | -| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 3/6 | In Progress| | +| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 4/6 | In Progress| | | 14. Domain jobs and external integrations | 0/TBD | Not started | - | | 15. Cutover | 0/TBD | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index f66b52f..ea69b6c 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -4,16 +4,16 @@ milestone: v1.0 current_phase: 13 current_phase_name: Płytarium API — wishlist, notifications, CSV, credentials, public routes status: executing -stopped_at: Completed 13-03-PLAN.md -last_updated: "2026-10-03T06:24:48.114Z" +stopped_at: Completed 13-04-PLAN.md +last_updated: "2026-10-03T07:52:34.262Z" last_activity: 2026-10-03 last_activity_desc: Phase 13 execution started -state_head: d1d5ee20121767525583aa5b35b90458688550cf +state_head: 47168ed9092225df27057dd9d39fc12401e3ee90 progress: total_phases: 21 completed_phases: 11 total_plans: 112 - completed_plans: 109 + completed_plans: 110 milestone_name: milestone --- @@ -29,7 +29,7 @@ See: .planning/PROJECT.md (updated 2026-09-16) ## Current Position Phase: 13 (Płytarium API — wishlist, notifications, CSV, credentials, public routes) — EXECUTING -Plan: 4 of 6 +Plan: 5 of 6 Status: Ready to execute Last activity: 2026-10-03 — Phase 13 execution started @@ -163,6 +163,7 @@ Progress: [██████░░░░] 60% | Phase 13 P01 | 29 min | 4 tasks | 31 files | | Phase 13 P02 | 42min | 3 tasks | 30 files | | Phase 13 P03 | 51 min | 4 tasks | 132 files | +| Phase 13 P04 | 80min | 3 tasks | 141 files | ## Accumulated Context @@ -489,6 +490,9 @@ Recent decisions affecting current work: - [Phase 13]: 13-03: the wishlist item-added branch extends albumAddedCallback; the digest upsert is ON CONFLICT ... RETURNING (xmax = 0) and only the row-creating insert dispatches the 1800 s wishlist_digest job (no worker until Phase 14) - [Phase 13]: 13-03: job queues called inside GORM callbacks get jobDB (a fresh statement); a bare cleanSession handle replays the triggering insert under WithContext+Create - [Phase 13]: 13-03: the purchase emits the moved album's updated event before the bells (PHP sync order); multi-publication goldens compare order-insensitively +- [Phase 13]: 13-04: PHP decodes ISO-8859-2 CSV uploads as Windows-1250 (iconv //IGNORE never fails); the Go parser keeps that, so letters that differ between the encodings import wrongly in both +- [Phase 13]: 13-04: ReleaseFetcher returns the mapped Discogs draft; the Phase 13 default fails (discogs_unavailable), Phase 14 installs the real one with SetReleaseFetcher +- [Phase 13]: 13-04: CSV uploads live in the private bucket golem15.fonoteka.csv.bucket_url (default file://./storage/app) under fonoteka-csv//.csv ### Pending Todos @@ -537,6 +541,6 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-10-03T06:24:47.620Z -Stopped at: Completed 13-03-PLAN.md +Last session: 2026-10-03T07:52:33.762Z +Stopped at: Completed 13-04-PLAN.md Resume file: None diff --git a/.planning/state.json b/.planning/state.json index a86c1a3..3250ab9 100644 --- a/.planning/state.json +++ b/.planning/state.json @@ -94,5 +94,5 @@ "label": "Advance to the next step", "reason": "Phase 13 of 21 · executing" }, - "updated_at": "2026-10-03T06:24:44.069Z" + "updated_at": "2026-10-03T07:52:30.119Z" }