GitHub Action
d5241b19e8
chore(release): update versions to v1.9.3 [skip ci]
2026-05-30 00:01:24 +00:00
Timo
f7096edd30
Refactor: Behebung Force-Sync ACK-Zaehler-Inflation, SHA-256 Hashing, Room-ID-Desinfizierung, Reduzierung MIN_SEEK_DELTA auf 2s und seekDebounce auf 300ms
2026-05-30 02:00:17 +02:00
GitHub Action
e2b76b05a1
chore(release): update versions to v1.9.2 [skip ci]
2026-05-29 23:35:36 +00:00
Timo
93acd0b44c
fix: resolve F-01 to F-08 audit bugs and QoL improvements
2026-05-30 01:34:48 +02:00
GitHub Action
ce7b5c47f2
chore(release): update versions to v1.9.1 [skip ci]
2026-05-29 22:08:39 +00:00
Timo
92fb8e2d00
Roll back network latency compensation to maximize simplicity and clock skew safety
2026-05-30 00:06:52 +02:00
Timo
43cde9bbef
Optimize network latency compensation cap to protect against system clock skew
2026-05-30 00:03:56 +02:00
Timo
56955027f9
Fix critical sync lockouts, zombie disconnects, play-seek debounces, active lobbies, SW keep-alives, branding matches and ESLint warnings
2026-05-30 00:02:19 +02:00
Koala
98b4fc5fb4
release: v1.9.0 — command sequencing, episode-aware sync, echo suppression
...
- Add per-peer monotonically increasing seq numbers (localSeq + lastSeqBySender)
- Server relays seq for stale command detection (backward compatible)
- Replace expectedEvents (1500ms timeout) with _suppressTimers (per-type, 300ms)
- Fix FORCE_SYNC_ACK missing seq (stale-ACK guard)
- Fix episode lobby readyPeers asymmetry (initiator now included)
- Add extractEpisodeId() parsing S01E01, Season 1 Ep 1, Folge 5, Ep. 3, #42
- Add isDifferentEpisode() guard blocking cross-episode sync commands
- Add sameEpisode() for format-tolerant lobby title matching
- Guard controlled via autoSyncNextEpisode setting
- Reduce reactive lock 1000ms → 300ms
- Fix routeToContent unbounded retry (max 3 attempts)
- Fix server bcrypt.hash failure crashing join flow
- Fix sameEpisode(null, title) returning true
- Fix forceSyncTimeout leak on rapid force sync clicks
- Persist lastSeqBySender across service worker restarts
- Bump version: 1.8.10 → 1.9.0
2026-05-28 04:54:54 +02:00
Koala
762d6425be
fix: audit corrections for sameEpisode, CMD_ACK, lastSeqBySender, forceSyncTimeout
...
- sameEpisode: return false when one title is null (prevent false lobby completions)
- Episode guard: skip CMD_ACK for FORCE_SYNC_EXECUTE on mismatch (H1)
- Persist lastSeqBySender in chrome.storage.session (M3, survives SW restart)
- Clear forceSyncTimeout before overwriting (H3, pre-existing timer leak)
2026-05-28 04:45:52 +02:00
Koala
1fba2fb69c
perf: add command sequence numbers, episode-aware sync guard, fix echo suppression
...
- Add monotonically increasing seq per peer (localSeq + lastSeqBySender)
- Server relays seq field for stale command detection (backward compatible)
- Replace expectedEvents (1500ms timeout) with _suppressTimers (per-type, 300ms)
- Fix FORCE_SYNC_ACK missing seq (stale-ACK could trigger premature exec)
- Fix episode lobby readyPeers asymmetry (initiator never broadcasted readiness)
- Add extractEpisodeId() parsing S01E01/Season 1 Episode 1/Folge 5 patterns
- Add isDifferentEpisode() guard blocking sync commands across different episodes
- add sameEpisode() for format-tolerant lobby title matching
- Guard controlled by autoSyncNextEpisode setting with disable hint in warning
- Reduce reactive lock from 1000ms to 300ms (seq numbers handle ordering)
2026-05-28 04:30:32 +02:00
Koala
eca259281a
feat: expand emoji/name system with comprehensive animal mapping
...
- Create shared/names.js as single source of truth for emoji maps, noun
lists, adjectives, and username generation (215 animal emoji entries)
- Remove duplicated inline lists from popup.js and background.js; both
now import getAvatarForName / generateUsername from shared/names.js
- Add names.js to the build script sync list so it stays DRY across
extension builds
- Fix missing cat emoji: CoolCat now correctly resolves to 🐱
- Sort emoji map keys by length at lookup time to prevent substring
false-matches (e.g. 'caterpillar' before 'cat')
2026-05-28 03:35:17 +02:00
Koala
cc0265c836
v1.8.10: fix description length, solo peer detection, tab-close peer notify, lastHeartbeat guard, time interpolation stale guard
2026-05-26 17:42:11 +02:00
GitHub Action
6ebff9ab4c
chore(release): update versions to v1.8.9 [skip ci]
2026-05-26 01:07:16 +00:00
Koala
35e779c1ff
move version link outside h1 to avoid inherited heading styles
2026-05-26 03:00:29 +02:00
Koala
09f0e04891
add clickable version with GitHub icon to popup header
2026-05-26 02:58:36 +02:00
GitHub Action
bde2f7ea55
chore(release): update versions to v1.8.8 [skip ci]
2026-05-26 00:34:04 +00:00
Koala
901861269a
fix: Firefox invite — cloneInto() for CustomEvent detail (XrayWrapper)
2026-05-26 02:33:54 +02:00
GitHub Action
ba91e2744c
chore(release): update versions to v1.8.7 [skip ci]
2026-05-26 00:06:39 +00:00
Koala
b7a44024ab
fix: suppress ghost seek events on tab re-focus (Firefox tab throttling)
2026-05-26 02:06:23 +02:00
Koala
3c49bfe54c
feat: SEO — add Emby/Jellyfin to descriptions, optimize meta tags, fix APP_VERSION
2026-05-26 01:51:34 +02:00
GitHub Action
d2ea7c7423
chore(release): update versions to v1.8.6 [skip ci]
2026-05-25 23:07:55 +00:00
Koala
db11812bd6
fix: suppress seek events when solo, add moz-extension CORS, add server logging
2026-05-26 01:06:04 +02:00
Koala
d23c37f87f
chore(release): v1.8.5
2026-05-25 23:56:50 +02:00
Koala
acd428d4f7
fix: audit fixes — auto-match title corruption, duplicate HTML attrs, stale ℹ️ icons, missing tooltip, remove fix_ui.js
2026-05-25 23:56:14 +02:00
Koala
c0a6f0adc2
ui: clipboard emoji for invite button, movie emoji for audible tab indicator
2026-05-25 23:56:14 +02:00
Koala
dc36bfdded
chore(release): v1.8.3
2026-05-25 23:43:41 +02:00
Koala
06db850387
fix(ui): add comprehensive tooltips to all labels, buttons and inputs
2026-05-25 23:43:09 +02:00
Koala
0de92b5b61
fix(ui): tooltips, full emoji map, and onboarding layout
2026-05-25 23:37:21 +02:00
Koala
8317099072
chore(release): prep for v1.8.1
2026-05-25 23:32:07 +02:00
Koala
04c63dcf68
fix(ui): add missing avatar emoji in episode lobby UI
2026-05-25 23:30:26 +02:00
Koala
fd23ccc23a
feat(ui): v1.8.1 visual upgrades (emojis, animations, audio indicator)
2026-05-25 23:29:06 +02:00
Koala
4d5caeda9e
style(ui): redesign sync button layout and rename to SYNC
2026-05-25 23:20:37 +02:00
Koala
f1f41e5cac
fix(ui): apply tooltip to full label text for settings
2026-05-25 23:19:23 +02:00
Koala
42029f86bf
chore(release): prep for v1.8.0
2026-05-25 23:08:55 +02:00
Koala
62fdffa5ee
UX Improvements: Onboarding, UI Feedback, Auto-Copy Invite
2026-05-25 22:59:54 +02:00
Koala
82c09a5328
fix(popup): use hostname-aware domain matching to prevent false positives
...
The noise filter used naive String.includes() on the full URL, causing
blacklist entry 'x.com' to match netflix.com (since 'netflix.com'
contains 'x.com' as substring). This made Netflix tabs disappear when
the filter was enabled.
Fixed by extracting the URL hostname and matching at domain boundaries:
- Domain entries (x.com): hostname === domain || endsWith('.' + domain)
- Prefix entries (amazon.): startsWith || includes('.' + domain)
- Keyword entries (jira): substring fallback on full URL
Release v1.7.5
2026-05-25 13:26:01 +02:00
GitHub Action
7d3965a9fd
chore(release): update versions to v1.7.4 [skip ci]
2026-05-25 10:59:16 +00:00
GitHub Action
aa740592dd
chore(release): update versions to v1.7.3 [skip ci]
2026-05-25 10:52:55 +00:00
Koala
6f8bcf8478
fix(popup): replace innerHTML with DOM API to fix Firefox warnings
...
Firefox flagged unsafe innerHTML assignments:
- renderEmpty() container.innerHTML with template literal
- renderOnboardingStep() dots.innerHTML with mapped content
- updateLastActionUI() lastActionCard.innerHTML static string
- refreshRooms click handler publicRooms.innerHTML
Replaced all with createElement + textContent/replaceChildren.
2026-05-25 12:52:33 +02:00
GitHub Action
807a620fe9
chore(release): update versions to v1.7.2 [skip ci]
2026-05-25 10:46:16 +00:00
Koala
48bd503b5c
fix(popup): seed lastKnownPeers in init() to prevent false join toasts
...
init() called updatePeerList() directly but never set lastKnownPeers.
On the first PEER_UPDATE message (heartbeat, play/pause, any state
change), detectPeerChanges() saw lastKnownPeers=[] and treated ALL
peers including self as newly joined — triggering 'name joined the room'
toast on every action while the popup was open.
2026-05-25 12:40:05 +02:00
GitHub Action
35351bdacd
chore(release): update versions to v1.7.0 [skip ci]
2026-05-25 10:30:48 +00:00
Koala
8b3f9e1242
fix: sync FORCE_SYNC_TIMEOUT constant with actual usage, tokenize showError cleanup, fix EVENT_ACK indent
...
- FORCE_SYNC_TIMEOUT in shared/constants.js was 5000 but all code uses
8500ms. Update constant to 8500 and reference it in background.js
instead of hardcoded values (4 occurrences)
- Add errorToken counter in popup showError() so stale 5s timeout
doesn't clear styling of a newer error that arrived in between
- Fix EVENT_ACK handler indentation in server/index.js to match
surrounding socket.on handlers
2026-05-25 12:28:22 +02:00
Koala
eb5515fc1b
fix(extension): ensureState timeout guard, skip queued LEAVE_ROOM, persist onclose state, cleanup forceSync timer
...
- Add 10s timeout to ensureState() so extension doesn't hang forever if
chrome.storage.session.get() never calls back (storage API failure)
- Skip emit(LEAVE_ROOM) in leaveOldRoomIfSwitching when socket is down;
server already cleaned up via disconnect handler, avoid queued no-op
- Persist cleared peers to storage in socket.onclose to prevent stale
peer list restoration on service worker restart
- Store and clean up forceSyncReset setTimeout in popup unload handler
and when force_sync_execute completes
2026-05-25 12:26:21 +02:00
Koala
c621685aae
fix: use real client IP for auth rate limiting; preserve lobby across socket disconnect
...
- Store real client IP from x-forwarded-for on socket for use in JOIN_ROOM
auth rate limiting (was using proxy IP, breaking brute-force protection)
- Remove clearEpisodeLobbyState() from socket.onclose to preserve lobby
across brief disconnects; ensureState() recovers lobby + timeout on reconnect
- Lobby is still properly cleared on intentional LEAVE_ROOM and room switch
2026-05-25 12:24:14 +02:00
Koala
ed24a4c263
fix: commandSenderMap race - embed senderId in SERVER_COMMAND/CMD_ACK instead of global Map
2026-05-25 11:52:05 +02:00
Koala
284b82a910
fix: v1.7.0 - critical bug fixes, race conditions, memory leaks, null guards, server hardening
2026-05-25 11:48:54 +02:00
Koala
f59d30569e
perf: optimize reconnect flow - aggressive backoff (500ms→5s), reconnect UI status, 30s keepAlive
2026-05-25 10:29:19 +02:00
Koala
2067f76ced
improve onboarding copy - add welcome step, friendlier text, 5 steps
2026-05-25 10:08:02 +02:00