diff --git a/.github/instructions/BACKLOG.md b/.github/instructions/BACKLOG.md index e2ccc4d..32dfd93 100644 --- a/.github/instructions/BACKLOG.md +++ b/.github/instructions/BACKLOG.md @@ -2,16 +2,6 @@ > All current work is planned in [TODO](./TODO.md) (2026-08-13). This file lists backlog items; new unplanned work is added here. -## Chat improvements (remaining) - -- [ ] Manual smoke: viewer join/leave shows a 3s flash (not a chat row); reconnect <5s shows no duplicate; admin chat-log table has no system rows - -## Playout improvements (remaining) - -- [ ] Test in Firefox: live playback, rebuffer/recovery, chat sync; record quirks in `docs/STREAMING.md` -- [ ] Rebuild + run playout; confirm `playlist.m3u8` lists ~12 segments at 2s each -- [ ] Manual: verify viewer latency and cache-hit behavior after the change - ## Setup phases remaining ### Phase 5: complete manual Cloudflare and external-service setup @@ -91,28 +81,6 @@ - [ ] UptimeRobot: add keyword monitor for `https://linearvoid.tv/hls/playlist.m3u8` (keyword: `#EXTM3U`, 5min) - [ ] Alert on 2 consecutive failures, notify via email + Discord/Slack webhook -## Frontend Tests - -### User Frontend - -- [ ] Test coverage for all critical frontend components and interactions -- [ ] Add code coverage reporting and enforce minimum coverage threshold in CI/CD pipeline -- [ ] Document test cases and expected outcomes - -### Admin Frontend - -- [ ] Test coverage for all critical admin UI components and interactions -- [ ] Add code coverage reporting and enforce minimum coverage threshold in CI/CD pipeline -- [ ] Document test cases and expected outcomes - -## Backend Integration Tests - -### Cloudflare R2 - -- [ ] Test retrieval of segments and manifests from R2 via Cloudflare edge -- [ ] Validate cache hit/miss behavior and performance metrics -- [ ] Validate edge cache hit/miss behavior with repeat requests — script `scripts/validate-edge-cache.sh` created - ## External Services > Evidence tracker: `docs/operations/cloudflare-uptimerobot-checklist.md` diff --git a/.github/instructions/DONE.md b/.github/instructions/DONE.md index 4a4d9ab..adf974d 100644 --- a/.github/instructions/DONE.md +++ b/.github/instructions/DONE.md @@ -27,3 +27,13 @@ - **2026-08-13 viewer crash**: `index.html` was missing the `#messages` container, so `addMessage` threw `Cannot read properties of null (reading 'appendChild')` on WebSocket open/message. Restored the chat panel structure and made `addMessage` defensive. - **2026-08-15 chat reconnect loop**: after a registered user logged in, the chat panel repeatedly filled with old messages. `connectWebSocket` left the replaced socket's `onclose` handler attached, so each intentional reconnect scheduled another reconnect and every connection re-pulled the room's 50-message history on a 3s loop. Fixed by detaching the old socket's `onclose` before closing and guarding the handler against stale sockets. Regression test added; `npm --prefix frontend test` → 58 tests passing. + +## Chat improvements + +- Manual smoke: viewer join/leave shows a 3s flash (not a chat row); reconnect <5s shows no duplicate; admin chat-log table has no system rows + +## Playout improvements + +- Test in Firefox: live playback, rebuffer/recovery, chat sync; record quirks in `docs/STREAMING.md` +- Rebuild + run playout; confirm `playlist.m3u8` lists ~12 segments at 2s each +- Manual: verify viewer latency and cache-hit behavior after the change diff --git a/.github/instructions/TODO.md b/.github/instructions/TODO.md index 9ae3cec..8fe6395 100644 --- a/.github/instructions/TODO.md +++ b/.github/instructions/TODO.md @@ -1,3 +1,29 @@ # TODO > Completed tasks moved to [DONE](./DONE.md). Remaining tasks in [BACKLOG](./BACKLOG.md). + +## R2 Data Retention + +- [ ] Adjust internal data retention for R2: remove folders /hls/r-{ISOTIME} after next run, keep only the last 2 runs or max. 10GB of data + +## Frontend Tests + +### User Frontend + +- [ ] Test coverage for all critical frontend components and interactions +- [ ] Add code coverage reporting and enforce minimum coverage threshold in CI/CD pipeline +- [ ] Document test cases and expected outcomes + +### Admin Frontend + +- [ ] Test coverage for all critical admin UI components and interactions +- [ ] Add code coverage reporting and enforce minimum coverage threshold in CI/CD pipeline +- [ ] Document test cases and expected outcomes + +## Backend Integration Tests + +### Cloudflare R2 + +- [ ] Test retrieval of segments and manifests from R2 via Cloudflare edge +- [ ] Validate cache hit/miss behavior and performance metrics +- [ ] Validate edge cache hit/miss behavior with repeat requests — script `scripts/validate-edge-cache.sh` created