Commit graph

25 commits

Author SHA1 Message Date
Daniel
a05f3a0163 Auto-Updater: Separate Update-URL entfernt
/downloads ist per Pangolin Path-Rule ohne Auth erreichbar,
daher braucht der Auto-Updater keine eigene Subdomain mehr.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:17:40 +01:00
Daniel
e4c3586ef3 Auto-Updater: Separate Update-URL (updates.daddelolymp.de) fuer Pangolin-Bypass
- UPDATE_URL getrennt von HUB_URL (kein Pangolin-Auth fuer Squirrel)
- GOG Exchange laeuft jetzt ueber Renderer-Fetch (hat Pangolin-Session-Cookie)
- Konfigurierbar via GAMING_HUB_UPDATE_URL env var

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:48:37 +01:00
Daniel
3e8febb851 GOG Login: Nahtloser Auth-Flow wie Steam (kein Code-Paste noetig)
- Electron: Fängt GOG Redirect automatisch ab (will-redirect Interceptor)
- Code-Exchange passiert im Hintergrund, User sieht nur Erfolgs-Popup
- GOG Auth-URLs (auth.gog.com, login.gog.com, embed.gog.com) in Popup erlaubt
- Server: GET /gog/login Redirect + POST /gog/exchange Endpoint
- Browser-Fallback: Code-Paste Dialog falls nicht in Electron
- gog.ts: Feste redirect_uri (embed.gog.com/on_login_success)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:41:21 +01: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
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
4bab8b7317 v1.6.5 [skip ci] 2026-03-07 19:12:26 +00:00
GitLab CI
8b8a905343 v1.6.4 [skip ci] 2026-03-07 19:03:24 +00: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
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
Daniel
ce2a26ddeb Add: Check-for-Updates Button in Electron App
- Manueller Update-Check per Button im Header
- Modal-Zustaende: checking, downloading, ready, uptodate, error
- IPC: check-for-updates, update-not-available Events
2026-03-07 14:27:09 +01:00
Daniel
c2942737bd Add: Update-Modal mit Download-Fortschritt in Electron App
- Modal-Overlay statt Banner fuer Update-Benachrichtigung
- 3 Zustaende: Downloading (Ladeanimation), Ready (OK-Button), Error
- IPC-Events: update-available, update-ready, update-error
2026-03-07 14:24:59 +01:00
Daniel
7bebb7db9a Fix: Stream-close-warning via IPC statt async executeJavaScript
- Renderer meldet Streaming-Status synchron per IPC
- main.js prueft Status synchron im close-Handler
- Kein async Race mehr, Dialog erscheint zuverlaessig
2026-03-07 14:14:51 +01:00
Daniel
7ef4eefc55 Add: Update-Dialog fuer Electron Auto-Updater
- main.js: IPC-Events an Renderer senden wenn Update bereit
- main.js: install-update IPC Handler (quitAndInstall)
- App.tsx: Update-Banner "Neues Update verfuegbar!" mit Restart-Button
- styles.css: Update-Bar Styling passend zum Design-System

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:53:26 +01:00
Daniel
06ab7f523b Add: Stream-Warnung beim Beenden der Electron App
Dialog "Stream laeuft noch!" erscheint nur wenn ein aktiver
Video-Stream erkannt wird. Ohne Stream schliesst die App normal.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:49:53 +01:00
Daniel
5eab3c1956 Add: Auto-Updater fuer Electron App
- Server: /updates Endpoint fuer Squirrel.Windows Update-Feed
- Electron: autoUpdater mit 30min Check-Intervall
- Preload: IPC-Events fuer Update-Status ans Frontend

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:45:27 +01:00
Daniel
c8799710ac Fix: Screen Capture in Electron App aktivieren
setDisplayMediaRequestHandler hinzugefügt damit getDisplayMedia
in der Electron App funktioniert (Streaming/Bildschirmfreigabe).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:17:32 +01:00
Daniel
0646a1b46e Fix: Downloads aus /data/downloads servieren + Electron Build fixen
- Downloads-Pfad von relativem App-Pfad auf DATA_DIR/downloads geändert
- Electron package.json: author Feld ergänzt (Squirrel-Requirement)
- forge.config.js: fehlende Icon-Referenzen entfernt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:51:53 +01:00
Daniel
17dcd6073f V1.5.0: Version bump + Download-Button Redesign
- Version auf 1.5.0 in allen Packages, CI, Dockerfile, Electron
- Download-Button im gleichen Design wie Version-Badge (bg-secondary, radius, hover accent)
- CI Registry auf adriahub (192.168.1.100:9080) umgestellt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:38:51 +01:00
Daniel
73f247ada3 Watch Together Plugin + Electron Desktop App mit Ad-Blocker
Neuer Tab: Watch Together - gemeinsam Videos schauen (w2g.tv-Style)
- Raum-System mit optionalem Passwort und Host-Kontrolle
- Video-Queue mit Hinzufuegen/Entfernen/Umordnen
- YouTube (IFrame API) + direkte Video-URLs (.mp4, .webm)
- Synchronisierte Wiedergabe via WebSocket (/ws/watch-together)
- Server-autoritative Playback-State mit Drift-Korrektur (2.5s Sync-Pulse)
- Host-Transfer bei Disconnect, Room-Cleanup nach 30s

Electron Desktop App (electron/):
- Wrapper fuer Gaming Hub mit integriertem Ad-Blocker
- uBlock-Style Request-Filtering via session.webRequest
- 100+ Ad-Domains + YouTube-spezifische Filter
- Download-Button im Web-Header (nur sichtbar wenn nicht in Electron)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 02:40:59 +01:00