Files
linearvoid/CHANGELOG.md
T
zwitschi 69df0e51b8
CI / test (push) Successful in 9m23s
CI / docker (push) Successful in 3m14s
CI / release (push) Skipped
release version 1.0.6
2026-08-05 17:09:03 +02:00

6.1 KiB

Change Log for linearvoid

[1.0.6] - 2026-08-05

Added

  • GET /api/admin/chat-log endpoint with ?room=, ?limit=, ?before=, ?username=, ?text= filter/pagination support.
  • GET /api/admin/chat-log/:id endpoint returning a single chat log entry as JSON.
  • DELETE /api/admin/chat-log/:id endpoint returning 204 No Content on success.
  • DELETE /api/admin/chat-log/bulk endpoint accepting {"ids": [...]} for bulk deletion (max 500).
  • Chat Log admin tab with table, individual delete with confirmation dialog, pagination (prev/next), search/filter by room/username/text, select-all checkbox, and bulk delete button.
  • Added "lint": "tsc --noEmit" script to frontend/package.json.
  • /api/admin/media/{id} GET/PUT/DELETE handlers for media metadata retrieval, updates, and file+record deletion.
  • Resumable chunked admin media upload flow with upload-session endpoints and client progress indicators.
  • Prometheus-format /metrics endpoint for chat runtime and admin-session monitoring.
  • Dedicated operational documentation: API.md, DEPLOYMENT.md, MONITORING.md, SECURITY.md.

Changed

  • Split frontend/admin/index.html into a template shell plus 9 per-tab page HTML files loaded dynamically via loadPageContent / switchTab / bindPageEvents.
  • Rebuilt viewer, admin, and admin-login pages around custom semantic class structures with accessibility-focused landmarks, tab semantics, and keyboard-focus behavior.
  • Replaced legacy and Tailwind-based stylesheet rules with a custom design-token CSS system covering responsive layouts, forms, tables, and reduced-motion behavior.
  • Switched frontend theme to dark-mode-first token defaults with light-scheme override.
  • Applied new color palette (#32292f dark, #b4c4ae light, #587792 brand, #2ebfa5 focus, #04650d ok) across all 22 CSS custom properties in dark and light themes.
  • Replaced hardcoded admin sidebar and tab-trigger colors with CSS custom properties.
  • Optimized CI pipeline: removed duplicate docker compose build --no-cache from test job, removed broken playlist validation step, fixed Go module cache path, added Docker Buildx registry cache to docker/release jobs.
  • Bumped chat healthcheck start_period from 10s to 30s in docker-compose.prod.yml.
  • CD workflow now verifies nginx (port 8080) + chat (3000) + playout (8081); dumps container logs for all failing services.
  • Updated Prometheus scrape targets and Grafana dashboard queries to use live chat metrics.

Fixed

  • Go module cache in CI now correctly references only backend/chat/go.sum (playout go.sum did not exist); added go mod download step to seed cache.
  • Removed broken playlist validation step (go run src/playlist.go without go.mod) from CI test job.
  • Converted nginx CI build from custom shell docker buildx to docker/build-push-action@v5 for cache consistency.
  • Enforced 2GB upload ceiling plus server-side media file type/size validation for admin uploads.
  • Increased nginx client_max_body_size to allow resumable admin upload chunks without 413 errors.
  • Removed unused data-admin-* Vite env var attributes from admin HTML template.
  • Removed Tailwind and Alpine runtime/build dependencies; eliminated Tailwind directives/warnings during production build.

[1.0.3] - 2026-08-03

Added

  • Added Prometheus-format /metrics endpoint for chat runtime and admin-session monitoring.

Changed

  • Updated Prometheus scrape targets and Grafana dashboard queries to use live chat metrics.

Fixed

  • Fixed nginx routing so /metrics is reachable through localhost and linearvoid.tv.

[1.0.2] - 2026-08-03

Changed

  • Updated local environment documentation and examples to prefer real-domain local routing through linearvoid.tv and compose-safe internal service hostnames.

Fixed

  • Fixed admin production build output and nginx routing so /admin/ serves its own entrypoint.
  • Fixed static asset serving so hashed JS/CSS files return correct MIME types and stale asset URLs return 404 instead of SPA HTML.
  • Fixed chat database configuration so DATABASE_URL is honored for compose-safe Postgres or SQLite local development.

[1.0.1] - 2026-08-03

Changed

  • Expanded the setup guide with current .env.example variables, development prerequisites, Cloudflare R2 setup, Gitea registry setup, and a production deployment guide.
  • Aligned frontend, nginx, and deployment docs with the linearvoid.tv app domain and media.linearvoid.tv HLS domain model.

[1.0.0] - 2026-08-02

Added

Full backend and frontend implementation complete.

  • Playout Service (backend/playout/): Go-based playlist management, ffprobe normalization validation, continuous HLS with immutable segment naming, automatic R2 sync, health check endpoint, and Docker integration (ADR-001, ADR-003).
  • Chat Backend (backend/chat/): Go + Gorilla WebSocket, Redis for presence/rate limiting/pub/sub, SQLite persistence for message history and ModerationLog (ADR-006/ADR-007), public rooms, private DM routing, moderation commands with immutable audit logging, health check endpoint, and docker-compose integration.
  • Frontend (frontend/): Vite + TypeScript + Tailwind + Alpine.js, HLS player with hls.js, chat sidebar with room switching and private messaging, "Now Playing" overlay, and modern UI (ADR-002, ADR-003).
  • Complete docker-compose.yml for local development with all services, volumes, and healthchecks.
  • All ADRs (001-007) created and linked in documentation.
  • TODO.md, DONE.md, and CHANGELOG.md updated with full traceability.
  • Git repository initialized with comprehensive initial commit.

The project is a fully functional, self-hosted 24/7 linear video channel with synchronized playback, custom chat, R2 delivery, moderation, and admin-ready structure. It matches the architecture defined in the arc42 template and all ADRs.

Next Steps (Future ADRs):

  • ADR-008: Admin Interface Implementation (ADR-004/ADR-005).
  • ADR-009: CI/CD, monitoring (Prometheus/Grafana), and production deployment.
  • Tests, admin UI, and final polish.

See docs/architecture/README.md and the ADR files for complete documentation. The system is ready for use and further extension.