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>
- 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>
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>
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>
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>
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>
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>
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>
- 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>
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>
- 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>
- 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>
- VERSION-Datei als Single Source of Truth (startet bei 1.5.1)
- CI liest Version aus Datei statt hardcoded
- Patch-Version wird nach Deploy automatisch gebumpt
- Commit mit [skip ci] verhindert Endlosschleife
Runner laeuft auf adriahub - nutzt Docker-Socket direkt.
Secrets (Discord Tokens, Admin PWD) als CI-Variablen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Deploy-Stage in CI: SSH auf adriahub nach Build
- deploy.sh auf adriahub: pull + recreate Container
- Nur auf main Branch, nach erfolgreichem Build
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
setDisplayMediaRequestHandler hinzugefügt damit getDisplayMedia
in der Electron App funktioniert (Streaming/Bildschirmfreigabe).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>