mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-08-07 18:03:15 +00:00
4909a86a13
- Add central toast notification system (popup.html, popup.js) - Add browser notifications toggle (opt-in) with event toasts - Fix interpolation memory leak (unload listener) - Add /health endpoint with IP-based rate limiting (server) - Improve tab sorting (current tab first, matches, alphabetical) - Add copy-to-clipboard visual feedback with toast - Show targetTime in last action card for seek/force sync - Add explicit video cleanup when element removed (content.js) - Update ROADMAP.md to remove implemented features
47 lines
2.6 KiB
Markdown
47 lines
2.6 KiB
Markdown
# KoalaSync Roadmap
|
|
|
|
This document tracks planned features, improvements, and their implementation details.
|
|
|
|
---
|
|
|
|
## Antworten auf offenen Fragen
|
|
|
|
### 1. Graceful Shutdown
|
|
**Korrektur:** Der Server hat bereits Graceful Shutdown implementiert (`server/index.js:481-499`). Bei SIGTERM/SIGINT wird allen Clients eine Neustart-Nachricht gesendet, der HTTP-Server geschlossen und nach 5s erzwungen beendet. **Kein Handlungsbedarf.**
|
|
|
|
### 3. `setInterval(refreshLogs, 5000)` Last
|
|
5 Sekunden ist technisch wenig Last (~0.2 IPC calls/sec). Aber es ist **architektonisch unsauber** — der Interval läuft auch wenn der Dev-Tab nicht sichtbar ist. Besser: Nur pollen wenn Dev-Tab aktiv, oder auf `chrome.runtime.onMessage` umstellen (Push statt Poll).
|
|
|
|
### 6. Service Worker Fallback bei Room-State Verlust
|
|
Manifest V3 suspendiert den Service Worker nach ~30s Inaktivität. `chrome.alarms` weckt ihn auf, aber:
|
|
- **Problem:** Wenn der SW neu startet, sind alle Variablen (`currentRoom`, `socket`, `isNamespaceJoined`) weg
|
|
- **Aktueller Stand:** `chrome.storage.session` persistiert `currentRoom`, `peerId`, `eventQueue` — der SW stellt diese beim Start wieder her (`restoreSession()`)
|
|
- **Lücke:** Der WebSocket muss neu aufgebaut werden. Das passiert automatisch via `connect()`, aber es gibt eine **Zeitlücke** von 2-5 Sekunden in der Events verloren gehen können. **Verbesserung:** Queue-Events während Reconnect, visualisiere "Reconnecting..." im Popup.
|
|
|
|
### 7. Tests für Extensions
|
|
Stimmt, sind aufwändig. Praktische Ansätze:
|
|
- **Unit Tests:** `jest` + `jest-chrome` (mockt `chrome.*` APIs) — testet `popup.js` Logik, Server-Logik
|
|
- **Integration Tests:** `puppeteer` mit `--load-extension` Flag — testet Extension im echten Browser
|
|
- **Server Tests:** `supertest` + `socket.io-client` — testet WebSocket-Flows
|
|
- **Aufwand:** ~400-600 LOC für sinnvolle Testabdeckung der Kernlogik
|
|
|
|
---
|
|
|
|
## Zukünftige Features (spätere Releases)
|
|
|
|
Diese Features wurden evaluiert aber sind nicht Teil der nächsten Release:
|
|
|
|
| Feature | Aufwand | Nutzen | Status |
|
|
|---------|---------|--------|--------|
|
|
| Verbesserte Empty States | ~40 LOC | 7/10 | Backlog |
|
|
| Onboarding Tour | ~120 LOC | 8/10 | Backlog |
|
|
| Dev-Tab Logs nur bei Sichtbarkeit pollen | ~10 LOC | 5/10 | Backlog |
|
|
| Chat im Room | ~400 LOC | 9/10 | Geplant v1.6 |
|
|
| Playback Speed Sync | ~150 LOC | 8/10 | Geplant v1.5 |
|
|
| Room Host/Owner | ~350 LOC | 8/10 | Geplant v1.6 |
|
|
| Auto-Reconnect mit State | ~250 LOC | 9/10 | Teilweise implementiert |
|
|
| Multi-Video Support | ~300 LOC | 7/10 | Geplant v2.0 |
|
|
| Volume Sync | ~120 LOC | 6/10 | Backlog |
|
|
| Stats Dashboard | ~200 LOC | 6/10 | Backlog |
|
|
| Custom Themes | ~80 LOC | 5/10 | Backlog |
|