Commit Graph
161 Commits
Author SHA1 Message Date
zwitschi 474da7418e fix(frontend): consolidate chat sidebar and modal auth flow
CI / test (push) Successful in 1m55s
CI / docker (push) Successful in 28s
2026-08-16 13:40:16 +02:00
zwitschi d267173e30 fix(admin): render service health details as structured HTML
CI / test (push) Successful in 1m32s
CI / docker (push) Successful in 33s
2026-08-16 11:57:58 +02:00
zwitschi e7bff8b9c0 fix(admin): render service health details as structured HTML
CI / test (push) Successful in 1m53s
CI / docker (push) Successful in 36s
2026-08-16 11:12:21 +02:00
zwitschi 9a0511b36b fix(admin): use absolute API URL for cross-origin admin fetches
CI / test (push) Successful in 1m39s
CI / docker (push) Successful in 33s
2026-08-16 10:44:01 +02:00
zwitschi c2f9f9ed62 perf(playout): parallelize playlist validation with dedup and worker pool
CI / test (push) Successful in 1m52s
CI / docker (push) Successful in 55s
2026-08-16 10:30:15 +02:00
zwitschi bde3dc3a46 fix(infrastructure): add nginx map_hash_bucket_size directive for CORS origin map
CI / test (push) Successful in 1m40s
CI / docker (push) Successful in 33s
2026-08-16 09:59:35 +02:00
zwitschi 21a70dcf0f fix(ops): increase post-deploy service stabilization wait from 20s to 30s
CI / test (push) Successful in 1m40s
CI / docker (push) Successful in 1m51s
2026-08-16 09:49:18 +02:00
zwitschi 4fe09a0a3d fix(auth): set SameSite=None for viewer session cookie over HTTPS and update docs 2026-08-16 09:45:58 +02:00
zwitschi 85454610f4 fix(infrastructure): add dynamic CORS origin mapping and preflight handling for admin API endpoints
CI / test (push) Successful in 1m31s
CI / docker (push) Successful in 25s
2026-08-16 09:41:06 +02:00
zwitschi 5585a6ecc3 fix(frontend): prefix auth API requests with VITE_PUBLIC_APP_URL for cross-origin Workers hosting
CI / test (push) Successful in 1m32s
CI / docker (push) Successful in 54s
2026-08-16 09:26:35 +02:00
zwitschi 53a0c3c825 fix(ops): increase playout health check retry interval from 5s to 10s 2026-08-16 08:59:30 +02:00
zwitschi 9e56ff7859 feat(ops): replace Cloudflare Pages with Workers for frontend hosting
CI / test (push) Successful in 2m55s
CI / docker (push) Successful in 46s
2026-08-16 08:17:23 +02:00
zwitschi 9ac1a8b79d fix(chat): use configured API base URL and include credentials for auth and DM search fetch calls 2026-08-16 07:47:51 +02:00
zwitschi 6950bba85d feat(playout): replace time-based R2 retention with run-count and size caps
CI / test (push) Successful in 1m33s
CI / docker (push) Successful in 51s
2026-08-15 18:59:26 +02:00
zwitschi 06b277e9c1 docs: reorganize TODO, DONE, and BACKLOG task tracking
CI / test (push) Successful in 1m44s
CI / docker (push) Successful in 2m22s
2026-08-15 18:21:52 +02:00
zwitschi 1cc44282bc docs: clean up TODO and DONE, updating BACKLOG 2026-08-15 16:36:17 +02:00
zwitschi b6705e6dbd fix(chat): prevent stale websocket close handler from triggering reconnect loop 2026-08-15 16:28:32 +02:00
zwitschi cef002862e feat(chat): add transient presence flash and 5s reconnect grace period
CI / test (push) Successful in 1m33s
CI / docker (push) Successful in 2m10s
2026-08-13 20:45:52 +02:00
zwitschi 4eb88a4594 fix(frontend): reduce system message font size and padding
CI / test (push) Successful in 1m38s
CI / docker (push) Successful in 30s
2026-08-13 18:54:25 +02:00
zwitschi 9cf3956c28 fix(frontend): add chat log table class and compact filter/table styles 2026-08-13 18:52:36 +02:00
zwitschi a15a9f2df0 refactor(frontend): standardize HTML formatting and update font families
CI / test (push) Successful in 1m42s
CI / docker (push) Successful in 32s
2026-08-13 18:40:03 +02:00
zwitschi 76397d52d7 fix(frontend): restore chat DOM structure and guard addMessage against null
CI / test (push) Successful in 1m39s
CI / docker (push) Successful in 49s
2026-08-13 14:57:18 +02:00
zwitschi 70a5159f81 fix(backend): serialize SQLite test connections and await async normalize
CI / test (push) Successful in 1m44s
CI / docker (push) Successful in 2m45s
2026-08-13 13:40:03 +02:00
zwitschi 568112b85a test(frontend): simplify fetch mock signatures in auth tests
CI / test (push) Failing after 2m49s
CI / docker (push) Skipped
2026-08-13 13:24:56 +02:00
zwitschi 02ff53229c test(frontend): expand admin and viewer test coverage for auth, typing, reconnect, and playlist badges 2026-08-13 13:22:08 +02:00
zwitschi 68a4d35334 chore: update todo list 2026-08-13 13:14:39 +02:00
zwitschi 7afab6658b chore: bump version to 1.0.13
CI / test (push) Failing after 13s
CI / docker (push) Skipped
2026-08-13 13:12:35 +02:00
zwitschi 121fdbacdc feat: runtime config, Matomo analytics, chat accounts, DM history/search, and Prometheus retention 2026-08-13 13:12:35 +02:00
zwitschi 06ab5b4655 feat: add automatic media normalization, R2 retention cleanup, and seamless playout loops 2026-08-13 11:59:46 +02:00
zwitschi e15d89edfe fix(playout): differentiate FFmpeg crashes from clean exits and enrich health metrics
CI / test (push) Successful in 1m44s
CI / docker (push) Successful in 56s
2026-08-12 14:26:18 +02:00
zwitschi 044851a43e Add Grafana dashboards for monitoring various services
- Created a new dashboard for NGINX monitoring with panels for status, active connections, request rates, and connection drop ratio.
- Added a Node dashboard to monitor CPU usage, memory usage, disk I/O, and network traffic.
- Introduced a Playout dashboard to track service status, mode, FFmpeg restarts, and scrape duration.
- Implemented a PostgreSQL dashboard featuring active connections, database size, transaction rates, and cache hit ratio.
- Developed a Prometheus dashboard to visualize scrape duration, targets status, and rule evaluation metrics.
- Established a Redis dashboard to monitor connected clients, memory usage, command latency, and keyspace statistics.
2026-08-12 13:55:23 +02:00
zwitschi 926d70dc3c fix: rename R2 object key prefix from live/ to hls/ for consistency
CI / test (push) Successful in 1m37s
CI / docker (push) Successful in 48s
2026-08-11 17:21:53 +02:00
zwitschi cca8d77325 chore: bump version to 1.0.12
CI / test (push) Successful in 1m40s
CI / docker (push) Successful in 19s
Release / release (push) Successful in 22s
1.0.12
2026-08-11 15:57:10 +02:00
zwitschi 528a7fffc0 chore: remove obsolete DEVELOPMENT.md and consolidate task tracking docs 2026-08-11 15:54:00 +02:00
zwitschi 3742859489 docs: align CD env vars with deployment guide and add gitea secrets reference
CI / test (push) Successful in 1m38s
CI / docker (push) Successful in 25s
2026-08-11 15:01:55 +02:00
zwitschi 27c74f1663 chore: move feature list from TODO to BACKLOG and reorg admin/chat analytics items
CI / test (push) Successful in 3m45s
CI / docker (push) Successful in 1m8s
2026-08-11 14:46:58 +02:00
zwitschi 2a718e4652 fix: guard all R2 operations behind nil client checks for local dev support 2026-08-11 14:46:50 +02:00
zwitschi 1019972e25 docs: fix filename typo and add Cloudflare Pages deploy details across docs 2026-08-11 11:10:33 +02:00
zwitschi 7be66a703c docs: update gitea-cloudflare pages deploy snippet to inline manifest as form arg
CI / test (push) Successful in 1m31s
CI / docker (push) Successful in 20s
2026-08-10 21:35:37 +02:00
zwitschi 4d627e13b9 fix: inline manifest JSON into form args instead of uploading as separate file 2026-08-10 21:35:02 +02:00
zwitschi c0356a26f6 chore: add debug logging for Cloudflare Pages deploy form arguments
CI / test (push) Successful in 1m30s
CI / docker (push) Successful in 21s
2026-08-10 21:22:30 +02:00
zwitschi 4aac5f9009 fix: remove explicit multipart content-type header from Cloudflare Pages deploy step
CI / test (push) Successful in 1m49s
CI / docker (push) Successful in 23s
2026-08-10 21:18:03 +02:00
zwitschi af2e94aa46 fix: switch Cloudflare Pages deploy from tar+octet-stream to multipart+manifest API
CI / test (push) Successful in 1m49s
CI / docker (push) Successful in 21s
2026-08-10 21:11:00 +02:00
zwitschi 187d288e2e chore: fix Cloudflare Pages project name and add troubleshooting doc + loadtest readme link
CI / test (push) Successful in 1m41s
CI / docker (push) Successful in 22s
2026-08-10 21:03:16 +02:00
zwitschi 377dc69859 chore: fix Cloudflare project name to linearvoid-frontend in deploy workflow
CI / test (push) Successful in 1m42s
CI / docker (push) Successful in 51s
2026-08-10 19:50:16 +02:00
zwitschi 5eb5edcac4 chore: bump Node.js version to 22 across CI, docs, and package manifest
CI / test (push) Successful in 1m59s
CI / docker (push) Successful in 1m16s
2026-08-10 18:03:11 +02:00
zwitschi 55a128dc3a fix: flat local HLS paths for nginx compat + edge cache validation script
CI / test (push) Failing after 11s
CI / docker (push) Skipped
- Revert local HLS to flat /app/hls/seg-{seq}.m4s (nginx serves from this dir)
- runID only used in R2 keys (live/{runID}/seg-{seq}.m4s)
- This fixes 404 on linearvoid.tv/hls/playlist.m3u8 caused by r-{runID} subdir
- Added scripts/validate-edge-cache.sh: MISS→HIT, immutable headers, manifest freshness
- Phase 4 marked complete. Cleaned up LEGACY streaming gaps in TODO.md
2026-08-10 18:01:55 +02:00
zwitschi 1f11baa949 fix: lower vitest coverage thresholds to match current test coverage baseline
CI / test (push) Failing after 11s
CI / docker (push) Skipped
2026-08-10 17:55:55 +02:00
zwitschi 89ddfb3528 extend package-lock.json
CI / test (push) Failing after 11s
CI / docker (push) Skipped
2026-08-10 17:46:57 +02:00
zwitschi 99f75eb9ed fix: add missing @vitest/coverage-v8 dev dependency
CI / test (push) Failing after 6s
CI / docker (push) Skipped
2026-08-10 17:39:39 +02:00