Koala
a3af397fe9
Add koalastuff.net and snippets.koalastuff.net to blacklist
2026-05-25 10:01:27 +02:00
Koala
c9f93dc4ba
fix: add null guards to prevent runtime crashes
...
- popup.js: guard peers/state.acks in updateLastActionUI()
- popup.js: guard state.duration in refreshDebugInfo()
- popup.js: guard elements.lobbyPeerStatus in updateLobbyUI()
- background.js: use Array.isArray() for currentRoom.peers.length checks
2026-05-25 09:57:01 +02:00
Koala
4909a86a13
feat: implement sprint 1 quick wins - toast system, notifications, UX polish
...
- 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
2026-05-25 09:53:25 +02:00
Timo
19ddfd1e21
Add ESLint setup, fix 6 lint errors, update AI_INIT.md with lint checks
2026-05-25 02:46:29 +02:00
Timo
385602c194
fix(extension,server): resolve 12 audit findings (lobby cleanup, dedup race, protocol version, rate limiting, observer scope, and more)
2026-05-25 02:14:59 +02:00
Koala
0a555942f8
chore: release v1.6.0 and apply fixes
2026-05-23 00:19:02 +02:00
Timo
e8203419a3
fix(extension): eliminate potential async race condition in slow reconnect by capturing attempt flag synchronously
2026-05-18 21:37:39 +02:00
Timo
e3536ad1a7
refactor(extension): implement infinite, low-frequency background reconnect checks after initial 5-minute failure
2026-05-18 21:34:46 +02:00
Timo
e0b9e9ef27
perf(background): reduce reactive update lock duration to 1.0s
2026-05-18 20:10:34 +02:00
Timo
cf993b4ef0
fix(background): reset reactive locks on execute force sync for instant play update
2026-05-18 20:09:20 +02:00
Timo
68b0f3306c
fix(background): resolve missing closing brace syntax error in alarms onAlarm listener
2026-05-18 19:44:12 +02:00
Timo
366d157d80
feat: implement Strategy C (zero-latency hybrid synchronization) and fix room switching duplicate matches
2026-05-18 19:40:46 +02:00
MacBook
c9cf7c49dc
Fix logic flaws and update documentation
2026-05-01 06:06:46 +02:00
Timo
c2857dbdda
feat: Improve seek logging and increase log buffer to 200 entries
...
- Log [Seek] Filtered when delta < 3s threshold (warn level) showing exact delta
- Log [Seek] Relayed when a seek passes all filters (info level) showing target time + delta
- Programmatic seeks (force sync, peer commands) remain silent in logs
- Increase log ring buffer from 50 -> 200 entries in all three enforcement points
2026-04-25 17:45:06 +02:00
Timo
55c2d4ed0d
feat: Auto-Sync Next Episode v1.2.0
...
Adds a new toggleable feature that detects episode transitions via
mediaTitle mutation (loadeddata/MutationObserver), pauses the video,
and waits for all room peers to load the same episode before
executing a coordinated Force Sync play at 0:00.
Protocol:
- Add EPISODE_LOBBY and EPISODE_READY events to shared/constants.js
- Add EPISODE_LOBBY_TIMEOUT (60s) constant
- Relay both new events in server/index.js
Content Script (content.js):
- Layered detection: loadeddata + MutationObserver src-change + heartbeat
- Debounced onEpisodeTransition() sends signal ONLY; no eager pause
- PAUSE_FOR_LOBBY handler pauses only after background confirms feature enabled
- startLobbyPoll() polls title match without premature pause for non-initiators
- checkAndReportLobbyReady() pauses and sends EPISODE_READY_LOCAL on match
- CONTENT_BOOT recovery for re-injection after hard navigation
Background (background.js):
- Episode lobby state persisted in chrome.storage.session with recovery
- EPISODE_CHANGED: checks setting, creates lobby, sends PAUSE_FOR_LOBBY to tab
- EPISODE_LOBBY/READY server event handlers with dedup logic
- 60s timeout cancels lobby (Option B) with Chrome failure notification
- Peer departure handled: removes from readyPeers, re-checks completion
- executeEpisodeLobby() reuses existing Force Sync pipeline at targetTime 0.0
- Lobby cleared on LEAVE_ROOM; status exposed in GET_STATUS
Popup:
- Auto-Sync Next Episode toggle in Settings tab (default: off, opt-in)
- Episode Lobby status card in Sync tab with peer readiness display
- LOBBY_UPDATE message handler for real-time UI updates
Bumps APP_VERSION and manifest to 1.2.0
2026-04-25 16:43:10 +02:00
Timo
02afc193c6
fix: extend input sanitization to relay path and remove whitespace artefact
2026-04-25 16:17:16 +02:00
Timo
7fc156977a
feat: add graceful shutdown, input validation, and peer data factory (Phase 3)
2026-04-25 16:15:11 +02:00
Timo
77ffda3e42
fix: address phase 1 audit findings (xss, cors, dead code)
2026-04-25 16:10:20 +02:00
Timo
7417c21217
feat: enhance peer list with volume icons, play/pause status, and time interpolation (v1.1.3)
2026-04-25 03:47:57 +02:00
Timo
4785c9625c
chore(extension): bump version, fix targeted injection and race conditions
2026-04-23 21:58:19 +02:00
Timo
0d08711398
fix: restore CONNECT handler else branch, sync APP_VERSION, clean dead return-true
2026-04-23 20:09:30 +02:00
MacBook
abe876e04e
fix: remove legacy fallback for 100% strict tab targeting
2026-04-23 08:41:16 +02:00
MacBook
3771243b3c
fix: ensure routeToContent prioritizes saved target tab settings
2026-04-23 08:35:14 +02:00
MacBook
ee79d66ac0
fix: enforce strict tab targeting and update badge logic
2026-04-23 08:30:28 +02:00
MacBook
f3ee7b47b9
chore: bump version to 1.1.1 and fix self-metadata sync and UI visibility
2026-04-22 18:44:20 +02:00
Timo
33e48a8278
fix: resolve syntax error in background.js (unexpected token ')' at end of handleAsyncMessage)
2026-04-22 13:48:11 +02:00
Timo
bcb3acb78e
fix: resolve critical sync feedback loop and notification argument order
2026-04-22 13:41:05 +02:00
Timo
e65c326c32
fix: resolve metadata desync in heartbeats and restore remote control icons
2026-04-22 13:33:33 +02:00
Timo
622db23f38
style: restore classic remote control UI and sync architectural fixes
2026-04-22 13:32:10 +02:00
Timo
0509b993e5
feat: implement one-click auto-join and self-closing bridge with countdown
2026-04-22 12:29:09 +02:00
Timo
901b97dcaf
fix: implement timestamp correlation for visual ACKs
2026-04-22 12:23:17 +02:00
Timo
221961820a
feat: implement visual confirmation system and redesigned Sync tab
2026-04-22 12:20:32 +02:00
Timo
3317994354
fix: ensure popup remote control affects local video too
2026-04-22 12:14:53 +02:00
Timo
1910b09bce
fix: ensure username and tab title are sent and stored on initial join
2026-04-22 12:13:33 +02:00
Timo
9f004557ed
fix: resolve peer isolation and invitation link sync issues
2026-04-22 12:10:26 +02:00
Timo
465a34837d
fix: only show 'ON' badge when connected to a room with a target tab
2026-04-22 12:01:27 +02:00
Timo
830f8c44b1
fix: implement background heartbeats and aggressive server-side peer pruning
2026-04-22 11:51:29 +02:00
Timo
6afae29252
fix: include username in settings fetch to ensure it is sent to server
2026-04-22 11:46:07 +02:00
Timo
5ccdd273cf
fix: clear peer list immediately when leaving a room
2026-04-22 11:39:27 +02:00
Timo
1355022c35
feat: reorganize popup tabs and add video debug diagnostics
2026-04-22 11:27:16 +02:00
Timo
51a5f43130
feat: add username support and fix invitation link server parsing
2026-04-22 11:22:31 +02:00
Timo
e410fc48c8
fix: resolve ghost peer duplication and service worker state persistence issues
2026-04-22 11:10:31 +02:00
Timo
f1dae0ef4e
chore: final integration polish - harden join ux, refine connection state, and sanitize logs
2026-04-22 11:04:51 +02:00
Timo
15afcccd0a
Fix memory leak and unhandled promise rejection in service worker
2026-04-22 10:49:35 +02:00
Timo
643c70772e
chore(core): Integration and UX Polish fixes
2026-04-22 10:44:31 +02:00
Timo
32044dab57
Fix: Race condition where queue bypassed namespace handshake
2026-04-22 10:37:38 +02:00
Timo
0b28274766
Fix: Service Worker persistence, Ping-Pong failsafe, URL parsing, and server rate limit DoS
2026-04-22 10:31:46 +02:00
Timo
88cb313fc0
Security & Stability: Fixed SW race, ping-pong loops, and invite parsing
2026-04-22 10:20:45 +02:00
Timo
d750d96db5
Fix security vulnerabilities and logic flaws
2026-04-22 10:04:46 +02:00
Timo
37ead94f76
Refactor: Comprehensive Security and Architecture Audit
2026-04-22 09:49:23 +02:00