docs(05-05): record plan close-out in STATE and ROADMAP

- Advance to plan 6 of 6; mark DATA-11 and CLI-03 complete
This commit is contained in:
Jakub Zych
2026-09-18 20:28:00 +02:00
parent 62f3ae563f
commit 67434f5185
3 changed files with 18 additions and 13 deletions

View File

@@ -23,7 +23,7 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
- [x] **CLI-01**: The `summer` binary (cobra) discovers commands registered by plugins and offers rich output (spinner, progress bar, table, prompts) with non-TTY degradation, following the summer-bonfire design
- [x] **CLI-02**: Scaffolding commands generate a plugin, model, migration, command, job and admin controller with stubs that compile
- [ ] **CLI-03**: Migration commands run up, status, and roll back the last migration of a named plugin
- [x] **CLI-03**: Migration commands run up, status, and roll back the last migration of a named plugin
- [ ] **CLI-04**: Plugins register recurring commands (daily or interval) that a scheduler runs in-process or via `summer schedule:run`
- [ ] **CLI-05**: Płytarium commands are ported: oauth-client (create, list without reprinting secrets, add redirect URIs, set scope ceiling), prune-notifications, reindex with drop-old-index flag
- [ ] **CLI-06**: Queue worker runs in-process or via `summer queue:work`
@@ -46,7 +46,7 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
- [x] **DATA-08**: A polymorphic file attachment table (owner type, owner id, field, disk path, sort order, public/private) backs attachOne and attachMany, stored via gocloud.dev/blob with the same public URL shape
- [x] **DATA-09**: All 25 Płytarium models and their squashed migration set are ported with matching table names, columns, indexes and defaults (migration count is not itself an acceptance number — squashed per plan-time decision D-01 in 05-CONTEXT.md)
- [x] **DATA-10**: Paginated responses use the exact `{data, meta{current_page, last_page, per_page, total}}` envelope without a links key
- [ ] **DATA-11**: Other plugins can hook a model's lifecycle through the GORM callback registry and extend its schema with a companion migration
- [x] **DATA-11**: Other plugins can hook a model's lifecycle through the GORM callback registry and extend its schema with a companion migration
### HTTP and routing (HTTP)
@@ -165,7 +165,7 @@ Which phases cover which requirements. Updated during roadmap creation.
| KERN-09 | Phase 1 | Complete |
| CLI-01 | Phase 1 | Complete |
| CLI-02 | Phase 4 | Complete |
| CLI-03 | Phase 5 | Pending |
| CLI-03 | Phase 5 | Complete |
| CLI-04 | Phase 11 | Pending |
| CLI-05 | Phase 14 | Pending |
| CLI-06 | Phase 11 | Pending |
@@ -182,7 +182,7 @@ Which phases cover which requirements. Updated during roadmap creation.
| DATA-08 | Phase 5 | Complete |
| DATA-09 | Phase 5 | Complete |
| DATA-10 | Phase 5 | Complete |
| DATA-11 | Phase 5 | Pending |
| DATA-11 | Phase 5 | Complete |
| HTTP-01 | Phase 3 | Complete |
| HTTP-02 | Phase 3 | Complete |
| HTTP-03 | Phase 6 | Pending |

View File

@@ -202,7 +202,7 @@ Plans:
**Wave 4** *(blocked on Wave 3 completion)*
- [ ] 05-05-PLAN.md — Remaining models, D-02 schema-diff proof, test-only DATA-11 fixture plugin, CLI-03 verification
- [x] 05-05-PLAN.md — Remaining models, D-02 schema-diff proof, test-only DATA-11 fixture plugin, CLI-03 verification
**Wave 5** *(blocked on Wave 4 completion)*
@@ -391,7 +391,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
| 2. API parity harness bootstrap | 5/5 | Complete | 2026-09-17 |
| 3. First vertical slice — genres end to end | 4/4 | Complete | 2026-09-17 |
| 4. CLI scaffolding, i18n and mail | 4/4 | Complete | 2026-09-18 |
| 5. Data layer full fidelity | 4/6 | In Progress| |
| 5. Data layer full fidelity | 5/6 | In Progress| |
| 6. HTTP routing, auth groups and rate limiting | 0/TBD | Not started | - |
| 7. User plugin and authentication | 0/TBD | Not started | - |
| 8. OAuth2.1 authorization server | 0/TBD | Not started | - |

View File

@@ -3,14 +3,14 @@ gsd_state_version: 1.0
milestone: v1.0
milestone_name: milestone
status: executing
stopped_at: Completed 05-04-PLAN.md
last_updated: "2026-09-18T18:05:28.925Z"
stopped_at: Completed 05-05-PLAN.md
last_updated: "2026-09-18T18:27:42.970Z"
last_activity: 2026-09-18
progress:
total_phases: 15
completed_phases: 4
total_plans: 23
completed_plans: 21
completed_plans: 22
percent: 27
---
@@ -26,11 +26,11 @@ See: .planning/PROJECT.md (updated 2026-09-16)
## Current Position
Phase: 05 (data-layer-full-fidelity) — EXECUTING
Plan: 5 of 6
Plan: 6 of 6
Status: Ready to execute
Last activity: 2026-09-18
Progress: [█████████░] 91%
Progress: [██████████] 96%
## Performance Metrics
@@ -67,6 +67,7 @@ Progress: [█████████░] 91%
| Phase 05 P02 | 27 min | 3 tasks | 32 files |
| Phase 05-data-layer-full-fidelity P03 | 15 min | 3 tasks | 28 files |
| Phase 05 P04 | 18 min | 3 tasks | 18 files |
| Phase 05 P05 | 18 min | 3 tasks | 18 files |
## Accumulated Context
@@ -140,6 +141,10 @@ Recent decisions affecting current work:
- [Phase 05]: Blob keys are partition+disk_name (no public/protected prefix); fileblob roots at storage/app/uploads — StaticHandler reconstructs keys from PartitionDirectory+disk_name; cutover can point bucket_url at uploads/public
- [Phase 05]: DeleteForOwner afterCommit is an in-tx key collector; DeleteKeys removes originals and thumb_<id>_ prefixes after commit — GORM has no post-commit hook; a rollback must not have already deleted bytes
- [Phase 05]: Album/Collection MorphName returns the PHP class string and does not import attach (models stay a leaf) — models-leaf rule; interface satisfaction is implicit
- [Phase 05]: Settings is golem15_fonoteka_settings singleton with typed search_use_typesense BOOLEAN (RESEARCH Open Question 2) — PHP SettingsModel over system_settings is not ported; dedicated typed table is the user-resolved storage
- [Phase 05]: notifications/wishlist_subscriptions/wishlist_digest_queue have no FK on user_id/collection_id, matching PHP (Open Question 3 / T-05-18) — PHP migrations omit ->foreign() on these tables; D-02 matches actual constraints rather than fixing them
- [Phase 05]: D-02 allow-list is settings table, users column-count (no widen_users), and the shipped extra oauth_refresh_tokens.user_id FK — Intended gaps only: Open Question 2, D-03/AUTH-02, and P3 D-17 freeze of 05-03 extra FK
- [Phase 05]: DATA-11 fixture plugin is test-only: no process-wide Register, not in app.PluginIDs or plugins.gen.go — CONTEXT.md discretion: fixture plugin in tests is acceptable; production binary must not load it
### Pending Todos
@@ -161,6 +166,6 @@ Items acknowledged and carried forward from previous milestone close:
## Session Continuity
Last session: 2026-09-18T18:05:28.907Z
Stopped at: Completed 05-04-PLAN.md
Last session: 2026-09-18T18:27:05.252Z
Stopped at: Completed 05-05-PLAN.md
Resume file: None