6.6 KiB
6.6 KiB
MEMORY
2026-08-07
- Completed runtime validation section from TODO.
- Runtime video normalization tests executed in running
linearvoid-playoutcontainer using ffmpeg/ffprobe. - Verified normalized outputs for MOV, MKV, VFR, and 5.1 inputs:
h264,yuv420p,30/1,aac,48000,2 channels. - Concat continuity check passed with
CONCAT_OK; output duration25.344667seconds. - Responsive viewport test on live viewer (
390x844,412x915) detected 8px horizontal overflow from100vwusage in viewer container styles. - Fixed overflow in source by changing
.lv-bodyand.viewer-shellwidth from100vwto100%infrontend/src/style.css. - Redis restart test:
- Admin session endpoint returned 200 before and after Redis restart.
- Presence key survived Redis restart in test-lab configuration.
- Redis health returned to
healthypost-restart.
- Files changed:
.github/instructions/TODO.md.github/instructions/DONE.mdfrontend/src/style.cssCHANGELOG.md
2026-08-07 (continued)
- Completed documentation half of recovery runbook TODO item.
- Expanded
docs/incident-runbook.mdwith quarterly DR drill: prerequisites, outage simulation, restore validation, pass/fail criteria, and evidence template. - Split TODO item into:
- documented drill (
[x]) - manual rehearsal execution (
[ ])
- documented drill (
- Updated
CHANGELOG.mdwith incident runbook drill documentation entry.
2026-08-07 (continued 2)
- Added manual operations checklist
docs/operations/cloudflare-uptimerobot-checklist.mdfor Cloudflare + UptimeRobot task execution and evidence capture. - Linked checklist from
SETUP.mdCloudflare section and TODO manual sections. - Did not mark manual dashboard items complete; checklist is preparation only.
2026-08-07 (continued 3)
- Added
docs/operations/scaling-performance-playbook.mdcovering manifest TTL tuning, TTFB baseline method, WebSocket/API benchmarking approach, cache ratio tracking, capacity triggers, and Phase 2/3 plans. - Updated TODO and BACKLOG to mark playbook creation done while keeping execution/measurement tasks pending.
- Linked scaling playbook in
README.mdresources.
2026-08-09
- Added WebSocket benchmark summary helper
scripts/loadtest/summarize-artillery.ps1. - Updated
scripts/loadtest/run-loadtests.ps1to auto-generatews-chat-summary.txtforwsandallscenarios. - Updated
scripts/loadtest/summarize-k6.ps1to produce pipeline-friendly output and integrated automaticadmin-api-endpoint-summary.txtgeneration. - Expanded
scripts/loadtest/README.mdwith PowerShell-first artifact capture and helper usage for both ws and admin scenarios. - Updated
.gitignoreto ignore loadtest artifacts (artifacts/andscripts/loadtest/artifacts/). - Added artifact-to-worksheet field mapping section in
docs/operations/scaling-performance-playbook.mdso ws/admin worksheet entries map directly to generated summary files. - Updated
docs/DEVELOPMENT.mdand.github/instructions/TODO.mdto mark ws/admin benchmark scaffolding complete while live benchmark execution remains pending. - Added
CHANGELOG.mdentry1.0.10summarizing loadtest helper automation and playbook mapping updates.
2026-08-09 (continued)
- Completed Phase 1 (test fixtures): documented ffmpeg fixture-generation commands in
playlist_test.goheader comments (valid_720p30, invalid_h265, invalid_24fps). - Completed Phase 4 (R2 integration):
- Enhanced
SyncToR2inplaylist.goto set CacheControl + ContentType based on file extension:.m4s,.ts,.mp4,.m4a->public, max-age=31536000, immutable+video/MP2T.m3u8->public, max-age=2+application/vnd.apple.mpegurl- unknown extension -> no cache headers
- Added three tests:
TestSyncToR2(segment upload with cache verification),TestSyncToR2_ManifestCacheHeaders(manifest upload),TestSyncToR2_NoCacheHeadersForUnknownExt(unknown extension). - All 17 playout tests pass (16 pass, 1 pre-existing skip).
- Enhanced
- Updated TODO.md: Phase 1 marked complete, Phase 4 partially complete (edge cache hit/miss remains manual).
- Updated DEVELOPMENT.md: Test Fixtures marked complete, R2 Integration Test marked partially complete.
2026-08-09 (continued 2)
- Completed Phase 2 chat tests in
frontend/src/main.test.ts:- Presence updates: join/leave system messages add and remove users from presence list, sorted rendering.
- Private DM flow: togglePrivateDM creates correct dm: room name from sorted usernames.
- Message rendering: system messages, self messages (message-self), and other-user messages (message-other) all render correctly.
- Total frontend tests: 27 passing (2 test files).
- Marked Phase 4 "Document stubs/mocks" done (putObject injection pattern).
- Updated TODO.md: Phase 2 chat tests checked, Phase 4 stubs checked.
- Updated DEVELOPMENT.md: User Frontend Tests marked partially complete, R2 stubs checked.
- Updated CHANGELOG.md with Phase 2 presence/DM/message tests.
2026-08-09 (continued 3)
- Completed Phase 3 admin frontend tests in
frontend/src/admin.test.ts:- Exported
savePlaylistandrenderPlaylistSortablefromadmin.ts. - Added playlist save test (verifies PUT /api/admin/playlist with JSON body).
- Added playlist save error handling test (verifies failure status).
- Added sortable rendering test (verifies index, paths, remove buttons, comment/blank line skip).
- Total frontend tests: 31 passing (2 test files).
- Exported
- Updated TODO.md: Phase 3 playlist/dashboard/API integration all checked.
- Updated DEVELOPMENT.md: Admin Frontend Tests marked partially complete.
2026-08-10
- Fixed
go vetissue inmetrics.go:time.Sinceinsidedeferwas evaluated at registration time. Wrapped in closurefunc() { ObserveRequestDuration(time.Since(startedAt)) }(). - Tagged version
1.0.11: updatedpackage.json,README.mdbadge,CHANGELOG.mdwith Phase 1-4 entries. - Cloudflare Pages/Workers documentation:
- Created
docs/operations/gitea-cloudflare.pages.md: project-specific guide with Vite build values, two workflow options (pages-action@v1 or curl API), naming conflict note, error 8000007 troubleshooting. - Created
docs/operations/cloudflare-pages-setup.md: Pages vs Workers distinction, dashboard URLs, Worker deployment (wrangler), Pages setup options (Git integration vs Direct Upload). - Updated
docs/SETUP.mdCloudflare Pages section to reference the new guide. - Updated
docs/DEPLOYMENT.mdpipeline table to includepages-deploy.ymlworkflow.
- Created
- Created
.gitea/workflows/pages-deploy.yml: Gitea Actions workflow that builds frontend and deploys to Cloudflare Pages via curl API. - Updated
docs/STREAMING.md(user edit). - All Go vet, Go tests, and frontend tests (31) passing.