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
zwitschi
d823763dc3
feat: Phase 2+3 frontend coverage — responsive + accessibility tests + CI threshold
...
CI / test (push) Failing after 9s
CI / docker (push) Skipped
- Viewer accessibility: 5 tests (aria-labels, aria-expanded, label association, alert role)
- Viewer responsive: 3 tests (chat-collapsed, CSS grid, now-playing aria-live)
- Admin accessibility: 3 tests (nav aria-label, aria-current, focusability)
- Admin responsive: 2 tests (tab visibility, essential tabs)
- Coverage: vitest v8 provider, 40% stmt/lines, 30% branches/funcs
- CI: test:coverage step between lint and build
- Total: 44 frontend tests (31 + 13 new)
- Updated TODO.md (Phase 2+3 done), DONE.md, MEMORY.md
2026-08-10 17:37:51 +02:00
zwitschi
9178b7b295
fix: TypeScript errors + workflow pipeline ordering
...
CI / test (push) Successful in 1m28s
CI / docker (push) Successful in 1m0s
- Fix hls! null assertions in error handler (TS18047)
- Fix test mock type errors: remove unused errorCall, use (as any) cast
- Pipeline ordering: CD + Pages deploy now run after CI completes (workflow_run: [CI])
- Add GOFLAGS=-mod=mod to playout Docker build for new fsnotify dep
2026-08-10 17:29:46 +02:00
zwitschi
18459a9811
feat: close STREAMING.md production readiness gaps
...
CI / test (push) Failing after 9s
CI / docker (push) Skipped
Deploy to Cloudflare Pages / deploy (push) Failing after 10s
CD / deploy (push) Successful in 47s
- Added run ID + unique segment naming (r-{ISOTIME}/seg-{seq}.m4s)
- Added fsnotify watcher for real-time R2 segment upload (~7s)
- Added atomic manifest publication (temp key → CopyObject)
- Fixed manifest Cache-Control: public, max-age=1, s-maxage=2, must-revalidate
- Added hls.js error recovery: bounded retries (5x), exponential backoff, reconnecting UI
- Enriched /health endpoint: run_id, active_item, last_segment_seq, last_r2_pub, consecutive_failures, unhealthy detection
- Updated tests: HealthHandler (new fields + unhealthy), player error recovery test
- Updated TODO.md, BACKLOG.md, DONE.md, MEMORY.md
2026-08-10 17:20:54 +02:00
zwitschi
f6ca89747e
docs: add agent tracking files, update task management and dev checklist to .github folder
Deploy to Cloudflare Pages / deploy (push) Successful in 11s
CD / deploy (push) Successful in 46s
CI / test (push) Successful in 1m40s
CI / docker (push) Successful in 21s
2026-08-10 17:04:18 +02:00
zwitschi
98fafcd93c
docs: adding more details for monitoring and operations
2026-08-10 16:53:52 +02:00
zwitschi
8b8f2335e1
chore: remove .github agent files from gitignore
2026-08-10 16:50:11 +02:00
zwitschi
80f4d9f198
docs: add cloudflare pages, cache rules docs and fix relative links
2026-08-10 12:44:46 +02:00
zwitschi
87e9eff1bd
fix: add checkout and build steps to Cloudflare Pages deploy workflow
CD / deploy (push) Successful in 47s
Deploy to Cloudflare Pages / deploy (push) Successful in 12s
CI / test (push) Successful in 1m36s
CI / docker (push) Successful in 22s
2026-08-10 11:36:55 +02:00
zwitschi
24273b5513
fix: replace Cloudflare Pages action with direct API deploy using artifact
Deploy to Cloudflare Pages / deploy (push) Failing after 1s
CD / deploy (push) Canceled after 51s
CI / docker (push) Canceled after 0s
CI / test (push) Canceled after 1m10s
2026-08-10 11:36:06 +02:00
zwitschi
31882f6b73
docs: add Cloudflare Pages deploy workflow and update pipeline documentation
Deploy to Cloudflare Pages / deploy (push) Failing after 12s
CD / deploy (push) Successful in 52s
CI / test (push) Successful in 1m43s
CI / docker (push) Successful in 43s
2026-08-10 11:31:52 +02:00
zwitschi
f73928103a
fix: linting and go test
CD / deploy (push) Successful in 55s
CI / test (push) Successful in 1m32s
CI / docker (push) Successful in 2m51s
Release / release (push) Successful in 37s
1.0.11
2026-08-10 09:30:29 +02:00
zwitschi
b427353672
test: remove unused playSpy variable in player startup test
CD / deploy (push) Successful in 53s
CI / test (push) Failing after 57s
CI / docker (push) Skipped
2026-08-10 00:29:41 +02:00
zwitschi
f9aba11b90
feat: add metrics, observability, test fixtures, and scaling playbook artifacts
CD / deploy (push) Successful in 57s
CI / test (push) Failing after 1m29s
CI / docker (push) Skipped
2026-08-10 00:23:50 +02:00
zwitschi
926a663c23
Add comprehensive documentation for Linear Void project
...
- Created README.md in docs folder outlining project structure and documentation links.
- Added SECURITY.md detailing the security model, threat model, authentication, transport security, network isolation, and incident response procedures.
- Introduced SETUP.md providing a detailed setup guide for local and production environments, including prerequisites, environment setup, and Gitea integration.
- Added STREAMING.md outlining the streaming pipeline, including production flow, source-media contract, playout and HLS packaging, cache contract, player behavior, and monitoring.
- Updated architecture documentation to include links to new SETUP.md and STREAMING.md files for better navigation.
2026-08-08 14:52:19 +02:00
zwitschi
6b9830de05
feat: add comprehensive Streaming Pipeline documentation
CI / test (push) Successful in 1m45s
CI / docker (push) Successful in 23s
CD / deploy (push) Successful in 2m24s
2026-08-08 14:41:10 +02:00
zwitschi
914a518f20
fix: downgrade Go version to 1.25.0 in playout go.mod
CD / deploy (push) Successful in 45s
CI / test (push) Successful in 1m42s
CI / docker (push) Successful in 1m39s
2026-08-07 17:31:58 +02:00
zwitschi
8064e459f2
fix: playout Dockerfile use existing go.mod instead of init
CI / test (push) Successful in 1m43s
CI / docker (push) Failing after 24s
CD / deploy (push) Successful in 1m1s
2026-08-07 16:24:21 +02:00
zwitschi
587561f9fc
fix: data race in PushChatHistory WebSocket writes
CD / deploy (push) Successful in 57s
CI / test (push) Successful in 1m34s
CI / docker (push) Failing after 25s
2026-08-07 16:20:14 +02:00
zwitschi
887023a491
fix: remove unused panel variable in main.test.ts
CD / deploy (push) Successful in 50s
CI / test (push) Failing after 1m38s
CI / docker (push) Skipped
2026-08-07 16:12:17 +02:00
zwitschi
994c433fc8
chore: bump version to 1.0.10
Release / release (push) Failing after 27s
CD / deploy (push) Successful in 45s
CI / test (push) Failing after 8s
CI / docker (push) Skipped
1.0.10
2026-08-07 16:06:59 +02:00
zwitschi
6632df0bc7
test(frontend): add vitest test suite and apply code formatting
2026-08-07 16:05:02 +02:00
zwitschi
e4ffa0b356
feat: adding formatter
2026-08-07 16:04:00 +02:00
zwitschi
e8a43b8a79
test(chat,playout): enable test suite, coverage gate, switch to pure-Go SQLite driver
2026-08-07 14:06:30 +02:00
zwitschi
b3a10ba3ef
refactor: modularize chat backend, update docs for .m4s segments
2026-08-07 13:16:44 +02:00
zwitschi
46e878bef6
chore: update URL to linearvoid.tv
2026-08-07 09:42:39 +02:00
zwitschi
39cca5d235
fix: adding MEMORY.md to gitignore
2026-08-07 09:42:16 +02:00
zwitschi
2ed89760d6
docs: align CI/CD and release policy wording
CI / test (push) Successful in 51s
CD / deploy (push) Successful in 58s
CI / docker (push) Successful in 21s
2026-08-07 09:14:32 +02:00
zwitschi
a8df164cc2
fix: seed correct monitoring volumes and verify monitoring deployment
CD / deploy (push) Successful in 2m16s
CI / test (push) Successful in 2m48s
CI / docker (push) Successful in 37s
2026-08-07 09:01:12 +02:00
zwitschi
0a8221cf83
fix: ignore reorg
2026-08-07 08:58:29 +02:00
zwitschi
e7fc921d6a
fix: force-recreate containers on deploy to pick up volume changes
Release / release (push) Successful in 33s
CI / test (push) Successful in 55s
CI / docker (push) Successful in 26s
CD / deploy (push) Successful in 47s
1.0.9
2026-08-06 22:42:08 +02:00
zwitschi
04bb783a12
fix: docker login on remote host before pull private images
Release / release (push) Successful in 36s
CD / deploy (push) Successful in 50s
CI / test (push) Successful in 58s
CI / docker (push) Successful in 25s
2026-08-06 22:22:27 +02:00
zwitschi
68bd241f2c
fix: use named volume for prometheus config, populate on remote host
Release / release (push) Successful in 29s
CI / test (push) Successful in 53s
CI / docker (push) Successful in 22s
CD / deploy (push) Failing after 10s
2026-08-06 22:13:24 +02:00
zwitschi
4c02ab9d55
fix: parallel CD trigger, remove env blocker, cleanup release pipeline
CD / deploy (push) Failing after 10s
CI / test (push) Successful in 52s
CI / docker (push) Successful in 21s
Release / release (push) Successful in 26s
2026-08-06 22:01:29 +02:00
zwitschi
74bf7e19db
chore: add BACKLOG.md to gitignore
2026-08-06 21:45:50 +02:00
zwitschi
92e074b6d0
chore: remove BACKLOG.md
Release / release (push) Successful in 25s
2026-08-06 21:39:25 +02:00
zwitschi
a70bad1528
chore: release v1.0.9 - monitoring provisioning + cleanup tracking files
CI / test (push) Successful in 56s
Release / release (push) Successful in 3m20s
CI / docker (push) Successful in 2m52s
CI / release (push) Skipped
2026-08-06 21:28:53 +02:00
zwitschi
b47f2621e1
docs: update backlog
2026-08-06 20:46:54 +02:00
zwitschi
7244c1d658
feat: enhance chat service with Redis pub/sub for multi-instance message handling, add instance ID for deduplication
2026-08-06 20:44:29 +02:00
zwitschi
d991d6b6c7
chore: changelog 1.0.8 — doc polish
CI / test (push) Successful in 51s
CI / docker (push) Successful in 22s
CI / release (push) Skipped
2026-08-06 20:01:11 +02:00
zwitschi
db3bf96847
docs: complete API error codes, deploy troubleshooting, monitoring/security rewrite, L2+L3 building blocks
2026-08-06 20:00:45 +02:00
zwitschi
0f81a81029
feat: monitoring exporters, alerting, rate limiting, backups, incident runbook
...
CI / test (push) Successful in 58s
CI / docker (push) Successful in 2m22s
CI / release (push) Skipped
- Add 4 Prometheus exporters: nginx (9113), redis (9121), postgres (9187), node (9100)
- Create 8 alerting rules in monitoring/prometheus/alerts.yml
- Update prometheus.yml with all scrape targets + rule_files
- WS connection rate limiting: max 5/IP/60s (Redis INCR)
- Admin login rate limiting: max 5/IP/5min (Redis INCR)
- 3 backup scripts: daily to R2 (14d), weekly full (8w), verify with restore test
- docs/incident-runbook.md with 5-tier triage + escalation
- Update CD workflow: full prometheus config + alerts seeding
2026-08-06 19:31:40 +02:00
zwitschi
b5710548b1
fix: botched edit
CI / test (push) Successful in 2m21s
CI / docker (push) Successful in 3m2s
CI / release (push) Skipped
Release / release (push) Successful in 26s
1.0.7
2026-08-06 18:08:23 +02:00
zwitschi
d2e5b64ece
fix: chat build syntax errors, disable GitHub cache on Gitea runner
...
CI / test (push) Failing after 57s
CI / docker (push) Skipped
CI / release (push) Skipped
- Fix 3 orphaned function bodies in main.go (handleAdminSchedule,
handleAdminSystemSummary, probeMediaDurationSeconds) caused by
insertions that split function headers from bodies
- Remove cache: true from setup-go and cache: npm from setup-node
(Gitea runner times out 135s trying to reach GitHub cache API)
- Add go vet ./... step replacing placeholder echo
- Remove || echo fallback from lint (tsc --noEmit is working)
2026-08-06 18:01:34 +02:00
zwitschi
5b5cdc4cd8
chore: release v1.0.7
...
CI / test (push) Successful in 9m11s
CI / docker (push) Failing after 2m39s
CI / release (push) Skipped
Release / release (push) Canceled after 2m11s
Playout: slate fallback, strict ffprobe validation, Prometheus metrics
Chat: history on join, DM offline delivery, env-config rate limits,
Redis auto-reconnect, heartbeat, ban/mute enforcement, DM metrics
Viewer: presence indicators, schedule overlay, public /api/schedule
Admin: playlist drag-reorder, schedule overrides CRUD, user actions,
inline mod buttons, CSV export, config editor, restart buttons,
upload normalization gate, analytics time range
nginx: CORS preflight, JSON health, stub_status
Docs: test-lab vs production distinction across all configs/docs
Infra: Redis maxmemory, CD health IP-agnostic, slate volume mount
2026-08-06 17:41:52 +02:00
zwitschi
17ac04856b
feat: redesign color system to monochrome palette with sharp corners
Release / release (push) Successful in 1m0s
CI / test (push) Successful in 11m6s
CI / docker (push) Successful in 41s
CI / release (push) Skipped
1.0.6
2026-08-05 17:26:30 +02:00
zwitschi
69df0e51b8
release version 1.0.6
CI / test (push) Successful in 9m23s
CI / docker (push) Successful in 3m14s
CI / release (push) Skipped
2026-08-05 17:09:03 +02:00
zwitschi
9a06dc389d
feat: update css with new color scheme
CI / test (push) Successful in 7m11s
CI / docker (push) Successful in 51s
CI / release (push) Skipped
2026-08-05 16:31:18 +02:00
zwitschi
51f3e98816
feat: CI pipeline improvements
...
CI / test (push) Successful in 7m17s
CI / docker (push) Successful in 7m49s
CI / release (push) Skipped
- remove image build duplication
- update workflows to use caching
2026-08-05 16:10:15 +02:00