docs(14-01): reword INTG-02, API-08 and the Phase 14 scope (D-06, D-07, D-13, D-14)
- INTG-02 names hand-rolled Anthropic and OpenAI-compatible adapters over the guarded client - API-08 is feedback only; sitemap dropped for this application - Phase 14 criteria list the album Discogs and recognize routes; Repos names the new core-plugin repos - PROJECT moves golem and feedback to sm-*-plugin submodules
This commit is contained in:
@@ -26,7 +26,7 @@ Decimal phases appear between their surrounding integers in numeric order.
|
||||
- [ ] **Phase 11: Jobs, realtime and search infrastructure** - River, Centrifugo and Typesense sync brought up before the API phases that need them
|
||||
- [x] **Phase 12: Płytarium API — Collections and Albums** - Core content endpoints ported with byte-level parity (completed 2026-10-02)
|
||||
- [ ] **Phase 13: Płytarium API — wishlist, notifications, CSV, credentials, public routes** - Remaining core API surface
|
||||
- [ ] **Phase 14: Domain jobs and external integrations** - CSV/Discogs jobs, wishlist digest, reindex, Discogs client, AI recognition, feedback, sitemap
|
||||
- [ ] **Phase 14: Domain jobs and external integrations** - CSV/Discogs jobs, wishlist digest, reindex, Discogs client, AI recognition, feedback
|
||||
- [ ] **Phase 15: Cutover** - Parity harness green on all 154 routes, both real clients run unchanged
|
||||
|
||||
## Phase Details
|
||||
@@ -736,16 +736,17 @@ Plans:
|
||||
**Goal**: The domain-specific River jobs (CSV import write, Discogs match, wishlist digest), the reindex command, the Discogs client and AI cover recognition are ported on top of the Phase 11 jobs/realtime/search infrastructure and the Phase 13 API surface they serve.
|
||||
**Mode:** mvp
|
||||
**Depends on**: Phase 11, Phase 13
|
||||
**Repos:** fonoteka.go (plus summercms.go only if a framework helper is needed)
|
||||
**Repos:** fonoteka.go; summercms.go (14-01 framework helpers); sm-golem-plugin and sm-feedback-plugin (new core-plugin repos mounted as submodules)
|
||||
**Requirements**: JOBS-02, JOBS-03, SRCH-02, INTG-01, INTG-02, API-08, CLI-05
|
||||
**Success Criteria** (what must be TRUE):
|
||||
|
||||
1. The CSV import write job and the self-redispatching Discogs match job (240s timeout, self-redispatching with a delay on a Discogs rate-limit error) both complete correctly.
|
||||
2. The wishlist digest job coalesces a 30-minute window and deletes its queue row on completion.
|
||||
3. The `reindex` command asserts zero `collection_id`-0 documents before and after and can drop the legacy index.
|
||||
4. The Discogs client enforces its proactive rate threshold, bounded wait budget, retry-after fallback and host-locked cover fetch, and the `albums/{id}/cover-price/discogs` route, the wishlist `wishlist/albums/{id}/match` and `apply-release` routes, `discogs-credential/test` and the CSV row-edit Discogs pick (`selected_discogs_id`) pass the parity diff.
|
||||
5. AI cover recognition works through both Anthropic and OpenAI-compatible adapters with per-credential model/base-URL overrides; `ai-credential/test` passes the parity diff, and the AI resolver's admin tier uses the backend global vision model.
|
||||
6. Feedback submissions and sitemap output work; the ported `oauth-client`/`prune-notifications`/`reindex` commands all run correctly.
|
||||
4. The Discogs client enforces its proactive rate threshold, bounded wait budget, retry-after fallback and host-locked cover fetch, and the `albums/{id}/cover-price/discogs` route, the wishlist `wishlist/albums/{id}/match` and `apply-release` routes, the album `albums/match`, `albums/{id}/match`, `albums/{id}/apply-release` and `albums/import/discogs` routes, `discogs-credential/test` and the CSV row-edit Discogs pick (`selected_discogs_id`) pass the parity diff.
|
||||
5. AI cover recognition works through both Anthropic and OpenAI-compatible adapters, hand-rolled over the guarded client, with per-credential model/base-URL overrides; `albums/recognize` on the JWT and personal-token groups and `ai-credential/test` pass the parity diff, and the AI resolver's admin tier uses the backend global vision model.
|
||||
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).
|
||||
|
||||
**Plans:** 6 plans
|
||||
|
||||
|
||||
Reference in New Issue
Block a user