Commit graph

145 commits

Author SHA1 Message Date
Daniel
d6973c811c Entferne Plattform-Badges aus Game Library
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 02:01:46 +01:00
Daniel
9f2ea74189 v1.7.0 — IGDB-Integration, Streaming, Electron Updates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 02:00:40 +01:00
Daniel
4994d5c245 IGDB auto-enrichment: Server-Start + Frontend auto-trigger
- Server enriched bestehende User beim Plugin-Start automatisch (fire-and-forget)
- Frontend triggert IGDB-Enrichment automatisch beim Öffnen einer User-Bibliothek
- Reduzierte Log-Ausgabe (kein Spam pro Cache-Hit mehr)
- IGDB-Button zeigt Lade-Animation während Enrichment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:58:11 +01:00
GitLab CI
916006e815 v1.6.15 [skip ci] 2026-03-08 00:51:38 +00:00
Daniel
b404c20eca IGDB-Integration für Game Library + Electron Update-Button im Version-Modal
- Neues IGDB-Service-Modul (igdb.ts): Token-Management, Rate-Limiting, Game-Lookup per Steam-AppID/Name, Batch-Enrichment mit In-Memory-Cache
- Server: 2 neue Routes (/igdb/enrich/:steamId, /igdb/game/:appid), Auto-Enrichment bei Steam-Login und Refresh
- Frontend: IGDB-Cover, Genre-Tags, Plattform-Badges, farbcodiertes Rating, IGDB-Anreichern-Button
- Version-Modal: Update-Button für Electron-App (checkForUpdates/installUpdate), Desktop-App-Version anzeigen
- CSS: Styles für IGDB-Elemente und Update-UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:48:27 +01:00
GitLab CI
aec1142bff v1.6.14 [skip ci] 2026-03-07 23:31:11 +00:00
Daniel
2a81bc216b Fix: Electron Screen-Picker nutzt jetzt temp-Datei statt data: URL
- data:text/html URLs werden in Electron BrowserWindows blockiert
- Picker-HTML wird jetzt als temp-Datei geschrieben und via loadFile geladen
- IPC-Kommunikation statt page-title-updated für die Source-Auswahl
- nodeIntegration nur im Picker-Fenster aktiviert (nicht im Hauptfenster)
- Temp-Datei wird nach Auswahl/Abbruch automatisch gelöscht

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:26:39 +01:00
GitLab CI
5f756a5404 v1.6.13 [skip ci] 2026-03-07 23:21:20 +00:00
Daniel
e146a28416 Streaming: Bildschirmauswahl-Picker, Passwort optional, Windows-Toast-Notifications
- Electron: setDisplayMediaRequestHandler zeigt jetzt immer einen modalen Picker
  mit Thumbnails statt automatisch die letzte Quelle zu verwenden
- Passwort bei Streams ist jetzt optional (Server + Frontend)
- Streams ohne Passwort: direkter Beitritt ohne Modal
- hasPassword wird korrekt im stream_available Event übertragen
- Windows Toast-Notifications via Electron Notification API für
  "Stream gestartet" und "Neuer Stream" Events
- Browser-Variante nutzt weiterhin Web Notification API

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:16:48 +01:00
GitLab CI
fa964318f2 v1.6.12 [skip ci] 2026-03-07 22:58:49 +00:00
Daniel
dec6be5476 Fix: Seek funktioniert jetzt für alle User — report_time überschreibt Seek nicht mehr
- Server: report_time ignoriert Host-Updates für 2s nach einem Seek
- Frontend: seekingRef Guard auf 3s erhöht um Sync-Pulse-Rücksetzung zu verhindern

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:56:04 +01:00
GitLab CI
463b92dc38 v1.6.11 [skip ci] 2026-03-07 22:52:23 +00:00
Daniel
253a249fc7 Watch Together: alle User haben Stream-Kontrolle, Dailymotion-Support, YouTube-Qualitätswahl
- Host-Only-Beschränkung für play/pause/resume/seek/skip entfernt — alle Raum-Mitglieder können jetzt die Wiedergabe steuern
- Dailymotion-Videos können jetzt abgespielt werden (postMessage API, iframe-basiert)
- YouTube-Videoqualität einstellbar (Standard: 1080p, wird in localStorage gespeichert)
- Queue-Items sind für alle User klickbar
- "Gesehene entfernen"-Button für alle sichtbar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:49:31 +01:00
GitLab CI
7abd5551d0 v1.6.10 [skip ci] 2026-03-07 22:34:28 +00:00
Daniel
87b4467995 Feature: Game Library Plugin - Steam Spielebibliothek
- Neues Plugin: game-library mit Steam OpenID 2.0 Login
- Steam GetOwnedGames API zum Abrufen der Spielebibliothek
- Gemeinsame Spiele finden (Schnittmenge mehrerer Bibliotheken)
- Spielesuche ueber alle verbundenen User
- User-Profil mit Spielzeit-Sortierung
- JSON-basierte Persistenz in /data/game-library.json
- Steam API Key als CI/CD Variable konfiguriert
- Frontend: User Cards, Common Games Finder, Suchfunktion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:31:40 +01:00
GitLab CI
b2d7019b49 v1.6.9 [skip ci] 2026-03-07 21:46:45 +00:00
Daniel
33e718ddf6 Remove: Electron Desktop-App Versionsnummer und Update-Check
Desktop App ist nur ein Wrapper - Web-Inhalte updaten sich automatisch.
Separate Version verwirrt User wenn sie nicht übereinstimmt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:44:00 +01:00
GitLab CI
961a947e91 v1.6.8 [skip ci] 2026-03-07 21:41:54 +00:00
Daniel
8aefb49ff3 Feature: Watch Together - Chat, Voting, Sync-Indicator, Join-per-Link
- Raumliste zeigt jetzt Teilnehmernamen
- Join per Link (?wt=roomId) für einfaches Teilen
- Sync-Indikator (grün/gelb/rot) zeigt Synchronstatus
- Pause/Skip-Voting für Nicht-Host-Teilnehmer
- In-Room Chat mit Nachrichtenverlauf
- "Gesehene entfernen" Button für Host in der Queue
- REST endpoint GET /api/watch-together/room/:id

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:38:56 +01:00
GitLab CI
c79a8675b0 v1.6.7 [skip ci] 2026-03-07 21:26:47 +00:00
Daniel
963bb1b775 Watch Together: Videos bleiben in Queue mit Watched-Haken
Statt Videos nach dem Abspielen aus der Warteschlange zu entfernen,
bleiben sie drin und werden mit einem gruenen Haken markiert.
Separate History-Section entfernt — die Queue IST die History.
Videos bleiben klickbar zum erneuten Abspielen.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:23:45 +01:00
GitLab CI
22b4c6b187 v1.6.6 [skip ci] 2026-03-07 21:17:32 +00:00
Daniel
77f62e77e5 Electron build only on shell changes, not every version bump
Electron is a wrapper — web content auto-updates from server.
Shell only needs rebuild when electron/ code changes.
Removed VERSION from electron-build triggers and version sync
from bump-version (no more jq dependency).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:14:33 +01:00
GitLab CI
4bab8b7317 v1.6.5 [skip ci] 2026-03-07 19:12:26 +00:00
Daniel
9d5f177bd5 Merge electron-build + deploy into single job, skip artifacts
Build + deploy in one step via Docker socket (docker cp).
Fixes 413 Request Entity Too Large on artifact upload.
Installs Docker CLI + mono-devel in before_script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:09:24 +01:00
GitLab CI
8b8a905343 v1.6.4 [skip ci] 2026-03-07 19:03:24 +00:00
Daniel
73d6049feb Install mono-devel in electron-build CI job
Squirrel maker needs Mono + Wine to create Windows installer on Linux.
Added diagnostic output for Wine/Mono versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:00:40 +01:00
GitLab CI
d44760e43d v1.6.3 [skip ci] 2026-03-07 18:59:41 +00:00
Daniel
c86538e2a2 Remove maker-zip from Electron build (only Squirrel needed)
Fix CI: zip binary not available in builder image, and we only
distribute via Squirrel installer anyway.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:56:35 +01:00
GitLab CI
ef96d8b22c v1.6.2 [skip ci] 2026-03-07 18:55:29 +00:00
Daniel
8fd1ea6628 Add electron/package-lock.json for CI builds
npm ci requires a lockfile — commit it for reproducible builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:52:15 +01:00
GitLab CI
f7fff4d473 v1.6.1 [skip ci] 2026-03-07 18:51:22 +00:00
Daniel
e063a15c66 v1.6.0 — Minor Release
Build-Optimierung, Electron CI Pipeline, Version-Modal, Auto-Update Fix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:47:13 +01:00
GitLab CI
b1e1f5f88e v1.5.10 [skip ci] 2026-03-07 18:41:23 +00:00
Daniel
0ef2a2899a Electron CI Build + Version Info Modal
CI Pipeline:
- New electron-build stage (electronuserland/builder:wine) builds Windows installer
- New electron-deploy stage copies artifacts to container /data/downloads/
- Triggers on electron/ or VERSION changes + manual trigger
- bump-version now syncs electron/package.json via jq

Version Modal:
- Click version badge to open info modal
- Shows Hub Version, Desktop App Version, Server status
- Hint when versions differ (update available)
- Download link when not using Electron app
- Escape + overlay click to close

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:38:37 +01:00
GitLab CI
76a2487d70 v1.5.9 [skip ci] 2026-03-07 18:26:20 +00:00
Daniel
9fd0992fc4 Fix Electron update: Squirrel feed URL, version display, error details
- Fix: Squirrel.Windows feed URL /updates → /downloads (Squirrel appends /RELEASES)
- Show Desktop App + Server version in update modal
- Display actual error message in failed state
- Dynamic Electron version via app.getVersion() instead of hardcoded
- Sync electron/package.json version with VERSION file (1.5.8)
- Add "Später" button on update-ready, timeout error message
- Style: version info, error detail box, secondary button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:23:30 +01:00
GitLab CI
56ac2d0079 v1.5.8 [skip ci] 2026-03-07 14:44:39 +00:00
Daniel
987e03a590 Fix bump-version: override alpine/git entrypoint for shell execution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:43:04 +01:00
Daniel
259c87bfd3 Optimize build: Kaniko cache flags, split Dockerfile stages, install-tools script
- Kaniko: --cache-ttl=168h, --snapshot-mode=redo, --compressed-caching=false
- Dockerfile: Split server-build into server-deps + server-build for better layer caching
- Replace rm+reinstall node_modules with npm prune --omit=dev
- Move ffmpeg/yt-dlp install to tools/install-tools.sh (single RUN layer)
- Remove separate ffmpeg-fetch stage and inline curl/yt-dlp install
- Remove $CI_COMMIT_SHA tag destination (unused, saves push time)
- bump-version: alpine/git image instead of alpine + apk add git

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:39:01 +01:00
Daniel
6c57419959 Feature: Watch Together - History, Titel-Fetch, Next-Button
Server:
- Video-History Tracking (max 50 Einträge pro Raum)
- History wird bei Skip und Play-Video gespeichert
- Server-seitiger Titel-Fetch via noembed.com als Fallback

Client:
- Aufklappbare History-Sektion im Queue-Panel
- "Weiter" Button mit Text-Label statt nur Icon
- YouTube-Thumbnails in der Warteschlange
- History in RoomState integriert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:31:57 +01:00
GitLab CI
a1a1f31c8e v1.5.7 [skip ci] 2026-03-07 14:08:32 +00:00
Daniel
3455e20a96 Feature: Live Stream-Liste + Toast Notifications
- stream_available/stream_ended WS-Events verarbeiten
- WS sofort beim Mount verbinden (nicht nur beim Broadcasting)
- WS reconnect immer aktiv (nicht nur bei aktivem Stream)
- Toast Notifications: neuer Stream, Update verfügbar/bereit
- Notification Permission beim App-Start anfragen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:05:42 +01:00
GitLab CI
939137cc77 v1.5.6 [skip ci] 2026-03-07 14:01:52 +00:00
GitLab CI
a174e39861 v1.5.5 [skip ci] 2026-03-07 14:01:52 +00:00
Daniel
4947191cb3 Fix: bump-version Reihenfolge - erst checkout, dann VERSION ändern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:00:28 +01:00
Daniel
fa4b379a90 Fix: Stream in gleichem Fenster öffnen + Update-Dialog Abbrechen-Button
- Stream-Tile Klick öffnet Join-Modal statt neues Fenster
- checkForUpdates optional chaining für alte Electron App
- Abbrechen-Button im Update-Check Dialog
- 15s Timeout falls Electron nicht antwortet

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 14:57:41 +01:00
Daniel
83a8382a6c Fix: bump-version git pull --rebase vor Push
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 14:53:19 +01:00
Daniel
e057a61c55 Fix: optional chaining für setStreaming (alte Electron App Kompatibilität)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 14:47:43 +01:00
GitLab CI
4153d9059b v1.5.4 [skip ci] 2026-03-07 13:33:15 +00:00