docs(14-02): update state, roadmap and requirements after the plan
This commit is contained in:
@@ -25,7 +25,7 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
|
|||||||
- [x] **CLI-02**: Scaffolding commands generate a plugin, model, migration, command, job and admin controller with stubs that compile
|
- [x] **CLI-02**: Scaffolding commands generate a plugin, model, migration, command, job and admin controller with stubs that compile
|
||||||
- [x] **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-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
|
- [x] **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`
|
- [ ] **CLI-06**: Queue worker runs in-process or via `summer queue:work`
|
||||||
|
|
||||||
### Internationalization and mail (I18N)
|
### Internationalization and mail (I18N)
|
||||||
@@ -86,8 +86,8 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
|
|||||||
### Background jobs (JOBS)
|
### Background jobs (JOBS)
|
||||||
|
|
||||||
- [ ] **JOBS-01**: River runs on the shared *sql.DB with riverdatabasesql for transactional enqueue and riverpgxv5 for LISTEN/NOTIFY; job outcomes (complete, fail, skip) are recorded and queryable through a job manager service
|
- [ ] **JOBS-01**: River runs on the shared *sql.DB with riverdatabasesql for transactional enqueue and riverpgxv5 for LISTEN/NOTIFY; job outcomes (complete, fail, skip) are recorded and queryable through a job manager service
|
||||||
- [ ] **JOBS-02**: CSV import write job and Discogs match job (240 s timeout) are ported; the match job re-enqueues itself with a delay on a Discogs rate-limit error instead of failing the batch
|
- [x] **JOBS-02**: CSV import write job and Discogs match job (240 s timeout) are ported; the match job re-enqueues itself with a delay on a Discogs rate-limit error instead of failing the batch
|
||||||
- [ ] **JOBS-03**: Wishlist digest coalesces notifications in a 30-minute window and deletes its queue row on completion
|
- [x] **JOBS-03**: Wishlist digest coalesces notifications in a 30-minute window and deletes its queue row on completion
|
||||||
|
|
||||||
### Realtime (RT)
|
### Realtime (RT)
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
|
|||||||
### Search (SRCH)
|
### Search (SRCH)
|
||||||
|
|
||||||
- [x] **SRCH-01**: Album documents sync to Typesense scoped by collection_id, behind a settings kill-switch, degrading gracefully when the DB or config is absent
|
- [x] **SRCH-01**: Album documents sync to Typesense scoped by collection_id, behind a settings kill-switch, degrading gracefully when the DB or config is absent
|
||||||
- [ ] **SRCH-02**: The reindex command asserts zero documents with collection_id 0 before and after, and can drop the legacy index
|
- [x] **SRCH-02**: The reindex command asserts zero documents with collection_id 0 before and after, and can drop the legacy index
|
||||||
|
|
||||||
### Integrations (INTG)
|
### Integrations (INTG)
|
||||||
|
|
||||||
@@ -179,7 +179,7 @@ Which phases cover which requirements. Updated during roadmap creation.
|
|||||||
| CLI-02 | Phase 4 | Complete |
|
| CLI-02 | Phase 4 | Complete |
|
||||||
| CLI-03 | Phase 5 | Complete |
|
| CLI-03 | Phase 5 | Complete |
|
||||||
| CLI-04 | Phase 11 | Gaps Found |
|
| CLI-04 | Phase 11 | Gaps Found |
|
||||||
| CLI-05 | Phase 14 | Pending |
|
| CLI-05 | Phase 14 | Complete |
|
||||||
| CLI-06 | Phase 11 | Gaps Found |
|
| CLI-06 | Phase 11 | Gaps Found |
|
||||||
| I18N-01 | Phase 4 | Complete |
|
| I18N-01 | Phase 4 | Complete |
|
||||||
| I18N-02 | Phase 7 | Complete |
|
| I18N-02 | Phase 7 | Complete |
|
||||||
@@ -222,13 +222,13 @@ Which phases cover which requirements. Updated during roadmap creation.
|
|||||||
| API-08 | Phase 14 | Pending |
|
| API-08 | Phase 14 | Pending |
|
||||||
| API-09 | Phase 15 | Pending |
|
| API-09 | Phase 15 | Pending |
|
||||||
| JOBS-01 | Phase 11 | Gaps Found |
|
| JOBS-01 | Phase 11 | Gaps Found |
|
||||||
| JOBS-02 | Phase 14 | Pending |
|
| JOBS-02 | Phase 14 | Complete |
|
||||||
| JOBS-03 | Phase 14 | Pending |
|
| JOBS-03 | Phase 14 | Complete |
|
||||||
| RT-01 | Phase 11 | Gaps Found |
|
| RT-01 | Phase 11 | Gaps Found |
|
||||||
| RT-02 | Phase 11 | Gaps Found |
|
| RT-02 | Phase 11 | Gaps Found |
|
||||||
| RT-03 | Phase 11 | Gaps Found |
|
| RT-03 | Phase 11 | Gaps Found |
|
||||||
| SRCH-01 | Phase 11 | Complete |
|
| SRCH-01 | Phase 11 | Complete |
|
||||||
| SRCH-02 | Phase 14 | Pending |
|
| SRCH-02 | Phase 14 | Complete |
|
||||||
| INTG-01 | Phase 14 | Pending |
|
| INTG-01 | Phase 14 | Pending |
|
||||||
| INTG-02 | Phase 14 | Pending |
|
| INTG-02 | Phase 14 | Pending |
|
||||||
| ADMIN-01 | Phase 9 | Complete |
|
| ADMIN-01 | Phase 9 | Complete |
|
||||||
|
|||||||
@@ -748,7 +748,7 @@ Plans:
|
|||||||
6. Feedback submissions, widget config and the hide preference work (sitemap dropped for this application, D-14); the oauth-client, prune-notifications and reindex commands all run correctly.
|
6. Feedback submissions, widget config and the hide preference work (sitemap dropped for this application, D-14); the oauth-client, prune-notifications and reindex commands all run correctly.
|
||||||
`oauth-identities` GET/DELETE and token `GET /api/v1/fonoteka/me` stay pending in this phase (D-09, todo orphan-pending-routes).
|
`oauth-identities` GET/DELETE and token `GET /api/v1/fonoteka/me` stay pending in this phase (D-09, todo orphan-pending-routes).
|
||||||
|
|
||||||
**Plans:** 1/6 plans executed
|
**Plans:** 2/6 plans executed
|
||||||
|
|
||||||
Plans:
|
Plans:
|
||||||
|
|
||||||
@@ -756,7 +756,7 @@ Plans:
|
|||||||
- [x] 14-01-PLAN.md — Framework (summercms.go): fetchguard guarded client with TrustedMode and a code-only transport seam, tide upstream sidecars with an asserting replay fake and the `summer parity:upstream` recording proxy, the `sunscreen` redacting slog handler in generated mains, beachcomber IndexDropper/EnsureIndex; READMEs and docs; REQUIREMENTS/ROADMAP/PROJECT rewording (D-06, D-07, D-13, D-14)
|
- [x] 14-01-PLAN.md — Framework (summercms.go): fetchguard guarded client with TrustedMode and a code-only transport seam, tide upstream sidecars with an asserting replay fake and the `summer parity:upstream` recording proxy, the `sunscreen` redacting slog handler in generated mains, beachcomber IndexDropper/EnsureIndex; READMEs and docs; REQUIREMENTS/ROADMAP/PROJECT rewording (D-06, D-07, D-13, D-14)
|
||||||
|
|
||||||
**Wave 2** *(blocked on Wave 1 completion)*
|
**Wave 2** *(blocked on Wave 1 completion)*
|
||||||
- [ ] 14-02-PLAN.md — Discogs client with the Postgres UNLOGGED limiter and domain classes, real ReleaseFetcher, WR-02 locks, CSV match/import workers with write-service CSV variants, digest worker and mail, prune-notifications and reindex commands, row-edit pick parity cases
|
- [x] 14-02-PLAN.md — Discogs client with the Postgres UNLOGGED limiter and domain classes, real ReleaseFetcher, WR-02 locks, CSV match/import workers with write-service CSV variants, digest worker and mail, prune-notifications and reindex commands, row-edit pick parity cases
|
||||||
|
|
||||||
**Wave 3** *(blocked on Wave 2 completion)*
|
**Wave 3** *(blocked on Wave 2 completion)*
|
||||||
- [ ] 14-03-PLAN.md — Discogs routes: album and wishlist match/apply-release, albums/match, albums/import/discogs, token cover-price (AlbumCoverFetcher, host-locked), discogs-credential/test; inbound limiters; recordings with sidecars (165 ported)
|
- [ ] 14-03-PLAN.md — Discogs routes: album and wishlist match/apply-release, albums/match, albums/import/discogs, token cover-price (AlbumCoverFetcher, host-locked), discogs-credential/test; inbound limiters; recordings with sidecars (165 ported)
|
||||||
@@ -828,7 +828,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
|
|||||||
| 11.2. summercms.io Alpha 0.1 landing page on SummerCMS | 3/3 | 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 |
|
| 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| |
|
| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 6/6 | In Progress| |
|
||||||
| 14. Domain jobs and external integrations | 1/6 | In Progress| |
|
| 14. Domain jobs and external integrations | 2/6 | In Progress| |
|
||||||
| 14.1. OAuth identities and fonoteka me routes (INSERTED) | 0/TBD | Not started | - |
|
| 14.1. OAuth identities and fonoteka me routes (INSERTED) | 0/TBD | Not started | - |
|
||||||
| 15. Cutover | 0/TBD | Not started | - |
|
| 15. Cutover | 0/TBD | Not started | - |
|
||||||
|
|
||||||
|
|||||||
@@ -4,16 +4,16 @@ milestone: v1.0
|
|||||||
current_phase: 14
|
current_phase: 14
|
||||||
current_phase_name: Domain jobs and external integrations
|
current_phase_name: Domain jobs and external integrations
|
||||||
status: executing
|
status: executing
|
||||||
stopped_at: Completed 14-01-PLAN.md
|
stopped_at: Completed 14-02-PLAN.md
|
||||||
last_updated: "2026-10-03T18:03:25.034Z"
|
last_updated: "2026-10-03T19:26:16.437Z"
|
||||||
last_activity: 2026-10-03
|
last_activity: 2026-10-03
|
||||||
last_activity_desc: Phase 14 execution started
|
last_activity_desc: Phase 14 execution started
|
||||||
state_head: 7700c6da28cf98db6ff54a0965a2a4b9f195e984
|
state_head: f22c9144e67b54b5b16275430f47ea46392581e4
|
||||||
progress:
|
progress:
|
||||||
total_phases: 22
|
total_phases: 22
|
||||||
completed_phases: 11
|
completed_phases: 11
|
||||||
total_plans: 118
|
total_plans: 118
|
||||||
completed_plans: 113
|
completed_plans: 114
|
||||||
milestone_name: milestone
|
milestone_name: milestone
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ See: .planning/PROJECT.md (updated 2026-09-16)
|
|||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 14 (Domain jobs and external integrations) — EXECUTING
|
Phase: 14 (Domain jobs and external integrations) — EXECUTING
|
||||||
Plan: 2 of 6
|
Plan: 3 of 6
|
||||||
Status: Ready to execute
|
Status: Ready to execute
|
||||||
Last activity: 2026-10-03 — Phase 14 execution started
|
Last activity: 2026-10-03 — Phase 14 execution started
|
||||||
|
|
||||||
@@ -167,6 +167,7 @@ Progress: [██████░░░░] 60%
|
|||||||
| Phase 13 P05 | 34 min | 3 tasks | 53 files |
|
| Phase 13 P05 | 34 min | 3 tasks | 53 files |
|
||||||
| Phase 13 P06 | 70 min | 3 tasks | 59 files |
|
| Phase 13 P06 | 70 min | 3 tasks | 59 files |
|
||||||
| Phase 14 P01 | 25min | 5 tasks | 42 files |
|
| Phase 14 P01 | 25min | 5 tasks | 42 files |
|
||||||
|
| Phase 14 P02 | 80 min | 4 tasks | 81 files |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
@@ -507,6 +508,12 @@ Recent decisions affecting current work:
|
|||||||
- [Phase 14]: 14-01: upstream sidecars refuse unmasked Authorization/X-Api-Key; multipart file parts stored as sha256 only
|
- [Phase 14]: 14-01: upstream sidecars refuse unmasked Authorization/X-Api-Key; multipart file parts stored as sha256 only
|
||||||
- [Phase 14]: 14-01: generated mains call sunscreen.InstallDefault(os.Stderr) before compass.Load; sunscreen also redacts dashed sk- keys
|
- [Phase 14]: 14-01: generated mains call sunscreen.InstallDefault(os.Stderr) before compass.Load; sunscreen also redacts dashed sk- keys
|
||||||
- [Phase 14]: 14-01: INTG-01/INTG-02/API-08/SRCH-02 stay Pending until 14-02..14-06 deliver them
|
- [Phase 14]: 14-01: INTG-01/INTG-02/API-08/SRCH-02 stay Pending until 14-02..14-06 deliver them
|
||||||
|
- [Phase 14]: 14-02: ReleaseFetcher.FetchRelease takes the request's db and config and returns *csv.Map (stateless fetcher, no app captured at Boot)
|
||||||
|
- [Phase 14]: 14-02: Discogs pick cases use a separate csv-discogs seed state so existing csv fixtures keep alice without a token
|
||||||
|
- [Phase 14]: 14-02: every parity case replays through an upstream fake; no sidecar means an empty fake, so unrecorded vendor calls fail
|
||||||
|
- [Phase 14]: 14-02: digest worker mails only when its DELETE removed the queue row (once per window under races)
|
||||||
|
- [Phase 14]: 14-02: reindex prefixes both the album and the legacy items index with search.prefix
|
||||||
|
- [Phase 14]: 14-02: INTG-01 stays Pending until 14-03 mounts the Discogs routes
|
||||||
|
|
||||||
### Pending Todos
|
### Pending Todos
|
||||||
|
|
||||||
@@ -555,6 +562,6 @@ Items acknowledged and carried forward from previous milestone close:
|
|||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-10-03T18:03:24.486Z
|
Last session: 2026-10-03T19:26:15.839Z
|
||||||
Stopped at: Completed 14-01-PLAN.md
|
Stopped at: Completed 14-02-PLAN.md
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
{
|
{
|
||||||
"number": "14",
|
"number": "14",
|
||||||
"name": "Domain jobs and external integrations",
|
"name": "Domain jobs and external integrations",
|
||||||
"status": "pending"
|
"status": "in_progress"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"number": "14.1",
|
"number": "14.1",
|
||||||
@@ -99,5 +99,5 @@
|
|||||||
"label": "Advance to the next step",
|
"label": "Advance to the next step",
|
||||||
"reason": "Phase 14 of 22 · executing"
|
"reason": "Phase 14 of 22 · executing"
|
||||||
},
|
},
|
||||||
"updated_at": "2026-10-03T18:03:20.151Z"
|
"updated_at": "2026-10-03T19:26:09.725Z"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user