Chat Message Admin Improvements: 3 API endpoints, 9 page HTML split, chat-log UI with delete/confirm/pagination/filter/bulk delete CI/CD Improvements: Go cache fix, lint script, Vite env cleanup, chat start_period 30s, nginx health check, log dump on fail
5.4 KiB
5.4 KiB
Change Log for linearvoid
[1.0.5] - 2026-08-05
Added
GET /api/admin/chat-logendpoint with?room=,?limit=,?before=,?username=,?text=filter/pagination support.GET /api/admin/chat-log/:idendpoint returning a single chat log entry as JSON.DELETE /api/admin/chat-log/:idendpoint returning 204 No Content on success.DELETE /api/admin/chat-log/bulkendpoint 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 tofrontend/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
/metricsendpoint for chat runtime and admin-session monitoring. - Dedicated operational documentation:
API.md,DEPLOYMENT.md,MONITORING.md,SECURITY.md.
Changed
- Split
frontend/admin/index.htmlinto a template shell plus 9 per-tab page HTML files loaded dynamically vialoadPageContent/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.
- Bumped chat healthcheck
start_periodfrom 10s to 30s indocker-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
backend/playout/go.sumandbackend/chat/go.sum. - Enforced 2GB upload ceiling plus server-side media file type/size validation for admin uploads.
- Increased nginx
client_max_body_sizeto 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
/metricsendpoint 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
/metricsis reachable through localhost andlinearvoid.tv.
[1.0.2] - 2026-08-03
Changed
- Updated local environment documentation and examples to prefer real-domain local routing through
linearvoid.tvand 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
404instead of SPA HTML. - Fixed chat database configuration so
DATABASE_URLis honored for compose-safe Postgres or SQLite local development.
[1.0.1] - 2026-08-03
Changed
- Expanded the setup guide with current
.env.examplevariables, development prerequisites, Cloudflare R2 setup, Gitea registry setup, and a production deployment guide. - Aligned frontend, nginx, and deployment docs with the
linearvoid.tvapp domain andmedia.linearvoid.tvHLS 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.ymlfor local development with all services, volumes, and healthchecks. - All ADRs (001-007) created and linked in documentation.
TODO.md,DONE.md, andCHANGELOG.mdupdated 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.