docs(11-03): record plan 11-03 progress and decisions
This commit is contained in:
@@ -505,7 +505,7 @@ Plans:
|
|||||||
4. A channel-namespace authorizer registry re-validates on every subscribe; a broadcastable model interface with bulk-write suppression emits exactly one summary event for a bulk operation.
|
4. A channel-namespace authorizer registry re-validates on every subscribe; a broadcastable model interface with bulk-write suppression emits exactly one summary event for a bulk operation.
|
||||||
5. Typesense sync is scoped by `collection_id` behind a settings kill-switch and degrades gracefully without DB/config.
|
5. Typesense sync is scoped by `collection_id` behind a settings kill-switch and degrades gracefully without DB/config.
|
||||||
|
|
||||||
**Plans:** 2/7 plans executed
|
**Plans:** 3/7 plans executed
|
||||||
**Research flag:** yes
|
**Research flag:** yes
|
||||||
|
|
||||||
Plans:
|
Plans:
|
||||||
@@ -515,7 +515,7 @@ Plans:
|
|||||||
|
|
||||||
**Wave 2** *(blocked on Wave 1 completion)*
|
**Wave 2** *(blocked on Wave 1 completion)*
|
||||||
- [x] 11-02-PLAN.md — Scheduler: pact.HasSchedule, Daily/Every, River periodic jobs, bonfire.Call, schedule:run (+ --once), fonoteka prune-notifications entry
|
- [x] 11-02-PLAN.md — Scheduler: pact.HasSchedule, Daily/Every, River periodic jobs, bonfire.Call, schedule:run (+ --once), fonoteka prune-notifications entry
|
||||||
- [ ] 11-03-PLAN.md — Realtime: lighthouse + Centrifugo driver (token route, subscribe proxy, HTTP client, broadcasts with suppression), fonoteka authorizers, Mount, ws-api bucket, Album binding
|
- [x] 11-03-PLAN.md — Realtime: lighthouse + Centrifugo driver (token route, subscribe proxy, HTTP client, broadcasts with suppression), fonoteka authorizers, Mount, ws-api bucket, Album binding
|
||||||
|
|
||||||
**Wave 3** *(blocked on Wave 2 completion)*
|
**Wave 3** *(blocked on Wave 2 completion)*
|
||||||
- [ ] 11-05-PLAN.md — Search: beachcomber + Typesense engine, after-commit sync, fonoteka Album Searchable and settings kill-switch
|
- [ ] 11-05-PLAN.md — Search: beachcomber + Typesense engine, after-commit sync, fonoteka Album Searchable and settings kill-switch
|
||||||
@@ -654,7 +654,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
|
|||||||
| 8. OAuth2.1 authorization server | 10/10 | Complete | 2026-09-23 |
|
| 8. OAuth2.1 authorization server | 10/10 | Complete | 2026-09-23 |
|
||||||
| 9. Backend admin authentication and schema pipeline | 12/12 | In Progress| |
|
| 9. Backend admin authentication and schema pipeline | 12/12 | In Progress| |
|
||||||
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
|
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
|
||||||
| 11. Jobs, realtime and search infrastructure | 2/7 | In Progress| |
|
| 11. Jobs, realtime and search infrastructure | 3/7 | In Progress| |
|
||||||
| 11.1. SummerCMS documentation for humans and AI agents | 0/TBD | Not started | - |
|
| 11.1. SummerCMS documentation for humans and AI agents | 0/TBD | Not started | - |
|
||||||
| 11.2. Ready to share: summercms.io website and newsletter plugin | 0/TBD | Not started | - |
|
| 11.2. Ready to share: summercms.io website and newsletter plugin | 0/TBD | Not started | - |
|
||||||
| 12. Płytarium API — Collections and Albums | 0/TBD | Not started | - |
|
| 12. Płytarium API — Collections and Albums | 0/TBD | Not started | - |
|
||||||
|
|||||||
@@ -4,16 +4,16 @@ milestone: v1.0
|
|||||||
current_phase: 11
|
current_phase: 11
|
||||||
current_phase_name: Jobs, realtime and search infrastructure
|
current_phase_name: Jobs, realtime and search infrastructure
|
||||||
status: executing
|
status: executing
|
||||||
stopped_at: Completed 11-02-PLAN.md
|
stopped_at: Completed 11-03-PLAN.md
|
||||||
last_updated: "2026-09-29T20:54:27.609Z"
|
last_updated: "2026-09-30T10:38:30.207Z"
|
||||||
last_activity: 2026-09-29
|
last_activity: 2026-09-29
|
||||||
last_activity_desc: Phase 11 execution started
|
last_activity_desc: Phase 11 execution started
|
||||||
state_head: 2237a640d2400e337d9e6c638a7b9534cd9c77b9
|
state_head: 499177a2425247d392f55bda51a39976beb3fac1
|
||||||
progress:
|
progress:
|
||||||
total_phases: 19
|
total_phases: 19
|
||||||
completed_phases: 9
|
completed_phases: 9
|
||||||
total_plans: 85
|
total_plans: 85
|
||||||
completed_plans: 80
|
completed_plans: 81
|
||||||
milestone_name: milestone
|
milestone_name: milestone
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ See: .planning/PROJECT.md (updated 2026-09-16)
|
|||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 11 (Jobs, realtime and search infrastructure) — EXECUTING
|
Phase: 11 (Jobs, realtime and search infrastructure) — EXECUTING
|
||||||
Plan: 3 of 7
|
Plan: 4 of 7
|
||||||
Status: Ready to execute
|
Status: Ready to execute
|
||||||
Last activity: 2026-09-29 — Phase 11 execution started
|
Last activity: 2026-09-29 — Phase 11 execution started
|
||||||
|
|
||||||
@@ -135,6 +135,7 @@ Progress: [██████░░░░] 60%
|
|||||||
| Phase 10.1 P04 | 42min | 3 tasks | 32 files |
|
| Phase 10.1 P04 | 42min | 3 tasks | 32 files |
|
||||||
| Phase 11 P01 | 37 min | 3 tasks | 50 files |
|
| Phase 11 P01 | 37 min | 3 tasks | 50 files |
|
||||||
| Phase 11 P02 | 385 min | 2 tasks | 21 files |
|
| Phase 11 P02 | 385 min | 2 tasks | 21 files |
|
||||||
|
| Phase 11 P03 | 12h 45m | 3 tasks | 31 files |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
@@ -365,6 +366,10 @@ Recent decisions affecting current work:
|
|||||||
- [Phase 11]: 11-01: an app with no jobs gets an internal summercms_conga_idle worker because River refuses to start without workers
|
- [Phase 11]: 11-01: an app with no jobs gets an internal summercms_conga_idle worker because River refuses to start without workers
|
||||||
- [Phase 11]: 11-01: lagoon.OnDatabase treats a published *gorm.DB as ready and derives the pool; fonoteka GORM hooks now register under serve
|
- [Phase 11]: 11-01: lagoon.OnDatabase treats a published *gorm.DB as ready and derives the pool; fonoteka GORM hooks now register under serve
|
||||||
- [Phase 11]: 11-01: River v7 tables are river_job, river_leader, river_migration, river_notification, river_queue (fonoteka schema allow-list)
|
- [Phase 11]: 11-01: River v7 tables are river_job, river_leader, river_migration, river_notification, river_queue (fonoteka schema allow-list)
|
||||||
|
- [Phase 11]: 11-03: broadcast job args carry the payload as a JSON string because River's JSONB args column reorders object keys
|
||||||
|
- [Phase 11]: 11-03: no broadcast job is enqueued (and Emit is a no-op) for the null driver or a driver whose Enabled() is false (Centrifugo without an API key)
|
||||||
|
- [Phase 11]: 11-03: the fonoteka test harness boots realtime.driver centrifugo so assembled route tables always carry the realtime routes
|
||||||
|
- [Phase 11]: 11-03: Phase 12 album store/update/bulk must use WithoutBroadcasting[models.Album] plus Service.Emit (the in-tx automatic payload can carry stale artists)
|
||||||
|
|
||||||
### Pending Todos
|
### Pending Todos
|
||||||
|
|
||||||
@@ -395,6 +400,6 @@ Items acknowledged and carried forward from previous milestone close:
|
|||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-09-29T20:54:27.162Z
|
Last session: 2026-09-30T10:38:29.769Z
|
||||||
Stopped at: Completed 11-02-PLAN.md
|
Stopped at: Completed 11-03-PLAN.md
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|||||||
@@ -329,3 +329,10 @@ None for development. For a deployment, set the `SUMMER_REALTIME__CENTRIFUGO__*`
|
|||||||
---
|
---
|
||||||
*Phase: 11-jobs-realtime-and-search-infrastructure*
|
*Phase: 11-jobs-realtime-and-search-infrastructure*
|
||||||
*Completed: 2026-09-30*
|
*Completed: 2026-09-30*
|
||||||
|
|
||||||
|
## Self-Check: PASSED
|
||||||
|
|
||||||
|
- All 21 key created files exist on disk.
|
||||||
|
- summercms.go commits cada7a4, 79fd705, 211c413 and eab2b00 (plus the SUMMARY commit 499177a) exist, and so do fonoteka.go commits c59fd76, cb78a76 and a223a72. The fonoteka.go working tree is clean.
|
||||||
|
- After Task 3, `go vet ./... && go test ./...` passed in summercms.go. The fonoteka.go vet and test command for all three modules passed, and so did the `-race -v` run of TestAlbumBroadcastSmoke, TestRealtimeSubscribeProxy and TestRealtimeTokenRoute (no SKIP, no DATA RACE).
|
||||||
|
- Every acceptance-criteria grep and `go doc` check of all three tasks passed.
|
||||||
|
|||||||
Reference in New Issue
Block a user