docs(11-05): record plan 11-05 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.
|
||||
5. Typesense sync is scoped by `collection_id` behind a settings kill-switch and degrades gracefully without DB/config.
|
||||
|
||||
**Plans:** 3/7 plans executed
|
||||
**Plans:** 4/7 plans executed
|
||||
**Research flag:** yes
|
||||
|
||||
Plans:
|
||||
@@ -518,7 +518,7 @@ Plans:
|
||||
- [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)*
|
||||
- [ ] 11-05-PLAN.md — Search: beachcomber + Typesense engine, after-commit sync, fonoteka Album Searchable and settings kill-switch
|
||||
- [x] 11-05-PLAN.md — Search: beachcomber + Typesense engine, after-commit sync, fonoteka Album Searchable and settings kill-switch
|
||||
- [ ] 11-06-PLAN.md — tide Centrifugo recorder, PHP broadcast goldens (deleted + bulk proven; created/updated pending Phase 12), realtime routes recorded and replayed
|
||||
|
||||
**Wave 4** *(blocked on Wave 3 completion)*
|
||||
@@ -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 |
|
||||
| 9. Backend admin authentication and schema pipeline | 12/12 | In Progress| |
|
||||
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
|
||||
| 11. Jobs, realtime and search infrastructure | 3/7 | In Progress| |
|
||||
| 11. Jobs, realtime and search infrastructure | 4/7 | In Progress| |
|
||||
| 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 | - |
|
||||
| 12. Płytarium API — Collections and Albums | 0/TBD | Not started | - |
|
||||
|
||||
@@ -4,16 +4,16 @@ milestone: v1.0
|
||||
current_phase: 11
|
||||
current_phase_name: Jobs, realtime and search infrastructure
|
||||
status: executing
|
||||
stopped_at: Completed 11-03-PLAN.md
|
||||
last_updated: "2026-09-30T10:38:30.207Z"
|
||||
stopped_at: Completed 11-05-PLAN.md
|
||||
last_updated: "2026-09-30T11:07:31.694Z"
|
||||
last_activity: 2026-09-29
|
||||
last_activity_desc: Phase 11 execution started
|
||||
state_head: 499177a2425247d392f55bda51a39976beb3fac1
|
||||
state_head: 0a1fdb5aa0a81131565d296bafea0f01a4fcc873
|
||||
progress:
|
||||
total_phases: 19
|
||||
completed_phases: 9
|
||||
total_plans: 85
|
||||
completed_plans: 81
|
||||
completed_plans: 82
|
||||
milestone_name: milestone
|
||||
---
|
||||
|
||||
@@ -29,7 +29,7 @@ See: .planning/PROJECT.md (updated 2026-09-16)
|
||||
## Current Position
|
||||
|
||||
Phase: 11 (Jobs, realtime and search infrastructure) — EXECUTING
|
||||
Plan: 4 of 7
|
||||
Plan: 5 of 7
|
||||
Status: Ready to execute
|
||||
Last activity: 2026-09-29 — Phase 11 execution started
|
||||
|
||||
@@ -136,6 +136,7 @@ Progress: [██████░░░░] 60%
|
||||
| Phase 11 P01 | 37 min | 3 tasks | 50 files |
|
||||
| Phase 11 P02 | 385 min | 2 tasks | 21 files |
|
||||
| Phase 11 P03 | 12h 45m | 3 tasks | 31 files |
|
||||
| Phase 11 P05 | 24 min | 2 tasks | 14 files |
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
@@ -370,6 +371,10 @@ Recent decisions affecting current work:
|
||||
- [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)
|
||||
- [Phase 11]: 11-05: beachcomber sync callbacks are pinned After(gorm:after_*) and Before(gorm:commit_or_rollback_transaction); GORM appends After-only callbacks past the commit and past lagoon:after_commit
|
||||
- [Phase 11]: 11-05: code on a GORM callback's handle builds a clean session (Session NewDB+Context, Clauses(), Session NewDB); Session with a Context clones the write statement and a later WithContext queries through the written model
|
||||
- [Phase 11]: 11-05: search index name is search.prefix + SearchableAs(); SearchIDs returns candidates only and Phase 12 must re-gate in SQL
|
||||
- [Phase 11]: 11-05: sync is inline after commit on context.WithoutCancel, bounded by the Typesense timeout; errors are typesense.StatusError without bodies and are logged, never returned to the write
|
||||
|
||||
### Pending Todos
|
||||
|
||||
@@ -400,6 +405,6 @@ Items acknowledged and carried forward from previous milestone close:
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-09-30T10:38:29.769Z
|
||||
Stopped at: Completed 11-03-PLAN.md
|
||||
Last session: 2026-09-30T11:07:16.581Z
|
||||
Stopped at: Completed 11-05-PLAN.md
|
||||
Resume file: None
|
||||
|
||||
Reference in New Issue
Block a user