chore: remove obsolete DEVELOPMENT.md and consolidate task tracking docs
This commit is contained in:
1 parent
3742859489
commit
528a7fffc0
7 files changed
+108
-69
No files matched your search
@@ -1,76 +1,71 @@
|
||||
# TODO
|
||||
|
||||
> Completed tasks moved to `.github/instructions/DONE.md`. Full remaining task list in `DEVELOPMENT.md`.
|
||||
> Completed tasks moved to [DONE](./DONE.md). Full remaining task list in [BACKLOG](./BACKLOG.md).
|
||||
|
||||
## Detailed Implementation Plan
|
||||
## Plan
|
||||
|
||||
- [x] Phase 1: unblock playout test fixtures and lock down the source-media contract
|
||||
- [x] Create small compliant fixture media in `backend/playout/testdata/` for the validator and playout tests
|
||||
- [x] Create invalid fixture media for codec, framerate, and audio rejection paths
|
||||
- [x] Create playlist fixtures for empty, comment-only, mixed-validity, and valid playlists
|
||||
- [x] Document the ffmpeg fixture-generation commands in the relevant test headers
|
||||
### Phase 1: unblock playout test fixtures and lock down the source-media contract
|
||||
|
||||
- [x] Phase 2: finish frontend coverage for the live viewer experience
|
||||
- [x] Add tests for HLS player startup, manifest resolution, and cross-origin/local fallback behavior
|
||||
- [x] Add tests for chat send/receive, presence updates, private DM flow, and reconnect behavior
|
||||
- [x] Add responsive-layout and accessibility checks for the viewer shell and chat sidebar
|
||||
- [x] Add coverage reporting and enforce a minimum threshold in CI
|
||||
- [x] Create small compliant fixture media in `backend/playout/testdata/` for the validator and playout tests
|
||||
- [x] Create invalid fixture media for codec, framerate, and audio rejection paths
|
||||
- [x] Create playlist fixtures for empty, comment-only, mixed-validity, and valid playlists
|
||||
- [x] Document the ffmpeg fixture-generation commands in the relevant test headers
|
||||
|
||||
- [x] Phase 3: finish admin frontend coverage
|
||||
- [x] Add tests for playlist management, moderation flows, and dashboard rendering
|
||||
- [x] Add tests for API integration points with mocked backend responses
|
||||
- [x] Add responsive-layout and accessibility checks for admin screens
|
||||
- [x] Add coverage reporting and enforce a minimum threshold in CI
|
||||
### Phase 2: finish frontend coverage for the live viewer experience
|
||||
|
||||
- [x] Phase 4: validate the R2 and edge-delivery path
|
||||
- [x] Add an integration test for upload and retrieval of HLS objects through the R2 path
|
||||
- [x] Verify segment and manifest cache headers, including immutable media and live manifest freshness
|
||||
- [x] Validate edge cache hit/miss behavior with repeat requests
|
||||
- [x] Document any required stubs or mocks so the test can run in CI (putObject mock pattern documented in test)
|
||||
- [x] Add tests for HLS player startup, manifest resolution, and cross-origin/local fallback behavior
|
||||
- [x] Add tests for chat send/receive, presence updates, private DM flow, and reconnect behavior
|
||||
- [x] Add responsive-layout and accessibility checks for the viewer shell and chat sidebar
|
||||
- [x] Add coverage reporting and enforce a minimum threshold in CI
|
||||
|
||||
- [ ] Phase 5: complete manual Cloudflare and external-service setup
|
||||
- [ ] Apply Cloudflare Pages, Tiered Cache, WAF, rate limiting, and HTTPS/HSTS settings in the dashboard
|
||||
- [ ] Create or verify UptimeRobot monitors for health and HLS manifest availability
|
||||
- [ ] Capture evidence in `docs/operations/cloudflare-uptimerobot-checklist.md`
|
||||
### Phase 3: finish frontend coverage for the admin experience
|
||||
|
||||
- [ ] Phase 6: rehearse production deployment end to end
|
||||
- [ ] Provision the Hetzner host and prepare the Docker/runtime baseline
|
||||
- [ ] Configure production secrets, remote deployment, and DNS cutover
|
||||
- [ ] Run health, HLS, chat, and admin smoke tests against production-like infrastructure
|
||||
- [ ] Verify backup creation, restore, and integrity checks on the production host
|
||||
- [x] Add tests for playlist management, moderation flows, and dashboard rendering
|
||||
- [x] Add tests for API integration points with mocked backend responses
|
||||
- [x] Add responsive-layout and accessibility checks for admin screens
|
||||
- [x] Add coverage reporting and enforce a minimum threshold in CI
|
||||
|
||||
- [ ] Phase 7: baseline scaling and performance
|
||||
- [ ] Measure manifest TTFB and cache-hit distribution from multiple US regions
|
||||
- [x] Prepare WebSocket load-test scaffolding and summary artifacts (`ws-chat.yml`, `run-loadtests.ps1`, `summarize-artillery.ps1`)
|
||||
- [ ] Execute WebSocket throughput and chat-latency benchmarks under growing connection counts
|
||||
- [x] Prepare Admin API benchmark scaffolding and endpoint summary artifacts (`admin-api.js`, `run-loadtests.ps1`, `summarize-k6.ps1`)
|
||||
- [ ] Execute Admin API benchmarks and identify slow paths
|
||||
- [x] Add saturation thresholds to monitoring (chat p95 latency + Redis memory usage)
|
||||
- [x] Add cache-hit threshold alert operationalization to monitoring
|
||||
### Phase 4: validate the R2 and edge-delivery path
|
||||
|
||||
- [x] Add an integration test for upload and retrieval of HLS objects through the R2 path
|
||||
- [x] Verify segment and manifest cache headers, including immutable media and live manifest freshness
|
||||
- [x] Validate edge cache hit/miss behavior with repeat requests
|
||||
- [x] Document any required stubs or mocks so the test can run in CI (putObject mock pattern documented in test)
|
||||
|
||||
### Phase 5: complete manual Cloudflare and external-service setup
|
||||
|
||||
- [ ] Apply Cloudflare Pages, Tiered Cache, WAF, rate limiting, and HTTPS/HSTS settings in the dashboard
|
||||
- [ ] Create or verify UptimeRobot monitors for health and HLS manifest availability
|
||||
- [ ] Capture evidence in `docs/operations/cloudflare-uptimerobot-checklist.md`
|
||||
|
||||
### Phase 6: rehearse production deployment end to end
|
||||
|
||||
- [ ] Provision the Hetzner host and prepare the Docker/runtime baseline
|
||||
- [ ] Configure production secrets, remote deployment, and DNS cutover
|
||||
- [ ] Run health, HLS, chat, and admin smoke tests against production-like infrastructure
|
||||
- [ ] Verify backup creation, restore, and integrity checks on the production host
|
||||
|
||||
### Phase 7: baseline scaling and performance
|
||||
|
||||
- [ ] Measure manifest TTFB and cache-hit distribution from multiple US regions
|
||||
- [x] Prepare WebSocket load-test scaffolding and summary artifacts (`ws-chat.yml`, `run-loadtests.ps1`, `summarize-artillery.ps1`)
|
||||
- [ ] Execute WebSocket throughput and chat-latency benchmarks under growing connection counts
|
||||
- [x] Prepare Admin API benchmark scaffolding and endpoint summary artifacts (`admin-api.js`, `run-loadtests.ps1`, `summarize-k6.ps1`)
|
||||
- [ ] Execute Admin API benchmarks and identify slow paths
|
||||
- [x] Add saturation thresholds to monitoring (chat p95 latency + Redis memory usage)
|
||||
- [x] Add cache-hit threshold alert operationalization to monitoring
|
||||
|
||||
## Status Update (2026-08-10)
|
||||
|
||||
- Phase 1 (test fixtures) complete.
|
||||
- Phase 2 (viewer frontend): player startup, URL resolution, chat send/receive, reconnect, presence, DM flow, message rendering all covered (27 tests).
|
||||
- Phase 3 (admin frontend): dashboard rendering, API integration, playlist management all covered (31 tests total).
|
||||
- Phase 4 (R2 validation) partially complete: SyncToR2 cache headers + integration tests done; edge cache hit/miss remains manual.
|
||||
- Phase 5 (Cloudflare): Pages deploy workflow (`.gitea/workflows/pages-deploy.yml`) created; Pages/Workers setup docs written; manual dashboard tasks remain.
|
||||
- Phase 7: Loadtest scaffolding complete; `run-loadtests.ps1` auto-generates ws-chat-summary.txt and admin-api-endpoint-summary.txt; live benchmark execution pending.
|
||||
- [x] Phase 1 (test fixtures) complete.
|
||||
- [x] Phase 2 (viewer frontend): player startup, URL resolution, chat send/receive, reconnect, presence, DM flow, message rendering all covered (27 tests).
|
||||
- [x] Phase 3 (admin frontend): dashboard rendering, API integration, playlist management all covered (31 tests total).
|
||||
- [x] Phase 4 (R2 validation) partially complete: SyncToR2 cache headers + integration tests done; edge cache hit/miss remains manual.
|
||||
- [ ] Phase 5 (Cloudflare): Pages deploy workflow (`.gitea/workflows/pages-deploy.yml`) created; Pages/Workers setup docs written; manual dashboard tasks remain.
|
||||
- [ ] Phase 6 (production deployment) pending: Hetzner provisioning, secrets, DNS cutover, smoke tests, backup/restore.
|
||||
- [ ] Phase 7: Loadtest scaffolding complete; `run-loadtests.ps1` auto-generates ws-chat-summary.txt and admin-api-endpoint-summary.txt; live benchmark execution pending.
|
||||
- Version tagged 1.0.11; go vet clean.
|
||||
|
||||
## Remaining (summary)
|
||||
|
||||
- **Test Fixtures**: media + playlist fixtures created; ffmpeg generation commands documented in test headers
|
||||
- **User Frontend Tests**: video player, chat integration, responsive, accessibility, coverage
|
||||
- **Admin Frontend Tests**: playlist UI, moderation UI, metrics dashboards, coverage
|
||||
- **Cloudflare R2 Integration Test**: upload + cache header validation done (SyncToR2 with CacheControl + ContentType); edge cache hit/miss validation remains manual
|
||||
- **Cloudflare Config**: Cloudflare Pages deploy workflow and setup docs created; manual dashboard setup (Tiered Cache, WAF, rate limiting, HTTPS/HSTS) remains pending; Pages project must be created in dashboard first.
|
||||
- **External Services**: UptimeRobot monitors + alerts
|
||||
- **Production Deployment**: Hetzner provisioning, CD pipeline, DNS cutover, smoke test
|
||||
- **Scaling & Performance**: TTFB baseline and live benchmark runs still pending; loadtest scaffolding now includes Artillery/k6 helpers with auto summaries plus worksheet field mapping; chat p95, Redis saturation, and cache-hit threshold alerting are implemented
|
||||
|
||||
See `DEVELOPMENT.md` for detailed checklist.
|
||||
|
||||
## Streaming Pipeline Gaps (2026-08-10 audit → 2026-08-10 implemented)
|
||||
|
||||
STREAMING.md contract vs playlist.go/main.ts implementation. See Backlog for full details.
|
||||
|
||||
Reference in new issue
Block a user