mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-09-04 23:06:48 +00:00
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
This commit is contained in:
@@ -36,7 +36,7 @@ function ensureState() {
|
|||||||
if (data.currentTabTitle !== undefined) currentTabTitle = data.currentTabTitle;
|
if (data.currentTabTitle !== undefined) currentTabTitle = data.currentTabTitle;
|
||||||
// Merge data from storage with any early-arriving state
|
// Merge data from storage with any early-arriving state
|
||||||
// New entries (added during boot) must stay at the top (index 0)
|
// New entries (added during boot) must stay at the top (index 0)
|
||||||
if (data.logs) logs = [...logs, ...data.logs].slice(0, 50);
|
if (data.logs) logs = [...logs, ...data.logs].slice(0, 200);
|
||||||
if (data.history) history = [...history, ...data.history].slice(0, 20);
|
if (data.history) history = [...history, ...data.history].slice(0, 20);
|
||||||
if (data.currentRoom) currentRoom = data.currentRoom;
|
if (data.currentRoom) currentRoom = data.currentRoom;
|
||||||
if (data.lastActionState) lastActionState = data.lastActionState;
|
if (data.lastActionState) lastActionState = data.lastActionState;
|
||||||
@@ -82,7 +82,7 @@ function ensureState() {
|
|||||||
|
|
||||||
// Process any early logs/history that weren't captured in the spread
|
// Process any early logs/history that weren't captured in the spread
|
||||||
if (pendingLogs.length > 0) {
|
if (pendingLogs.length > 0) {
|
||||||
logs = [...pendingLogs, ...logs].slice(0, 50);
|
logs = [...pendingLogs, ...logs].slice(0, 200);
|
||||||
chrome.storage.session.set({ logs });
|
chrome.storage.session.set({ logs });
|
||||||
pendingLogs = [];
|
pendingLogs = [];
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ function addLog(message, type = 'info') {
|
|||||||
pendingLogs.unshift(log);
|
pendingLogs.unshift(log);
|
||||||
} else {
|
} else {
|
||||||
logs.unshift(log);
|
logs.unshift(log);
|
||||||
if (logs.length > 50) logs.pop();
|
if (logs.length > 200) logs.pop();
|
||||||
chrome.storage.session.set({ logs });
|
chrome.storage.session.set({ logs });
|
||||||
}
|
}
|
||||||
chrome.runtime.sendMessage({ type: 'LOG_UPDATE', log }).catch(() => {});
|
chrome.runtime.sendMessage({ type: 'LOG_UPDATE', log }).catch(() => {});
|
||||||
|
|||||||
+11
-2
@@ -414,12 +414,17 @@
|
|||||||
if (expectedEvents.has('seek')) {
|
if (expectedEvents.has('seek')) {
|
||||||
expectedEvents.delete('seek');
|
expectedEvents.delete('seek');
|
||||||
lastReportedSeekTime = current; // Update baseline so next user seek is relative to here
|
lastReportedSeekTime = current; // Update baseline so next user seek is relative to here
|
||||||
|
// No log — this is routine programmatic behavior (Force Sync, lobby, peer command)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const delta = lastReportedSeekTime !== null ? Math.abs(current - lastReportedSeekTime) : null;
|
||||||
|
const deltaStr = delta !== null ? `Δ${delta.toFixed(2)}s` : 'Δ?';
|
||||||
|
|
||||||
// Step 2: Delta check — skip micro-seeks (buffering, chapter markers, etc.)
|
// Step 2: Delta check — skip micro-seeks (buffering, chapter markers, etc.)
|
||||||
if (lastReportedSeekTime !== null && Math.abs(current - lastReportedSeekTime) < MIN_SEEK_DELTA) {
|
if (lastReportedSeekTime !== null && delta < MIN_SEEK_DELTA) {
|
||||||
return; // Too small — likely an internal player seek, not user-initiated
|
reportLog(`[Seek] Filtered (${deltaStr} < ${MIN_SEEK_DELTA}s threshold) @ ${current.toFixed(2)}s — not relayed`, 'warn');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 3: Debounce rapid consecutive seeks (e.g. scrubbing)
|
// Step 3: Debounce rapid consecutive seeks (e.g. scrubbing)
|
||||||
@@ -430,11 +435,15 @@
|
|||||||
const v = findVideo();
|
const v = findVideo();
|
||||||
if (!v) return;
|
if (!v) return;
|
||||||
const settled = v.currentTime;
|
const settled = v.currentTime;
|
||||||
|
const finalDelta = lastReportedSeekTime !== null ? Math.abs(settled - lastReportedSeekTime) : null;
|
||||||
|
const finalDeltaStr = finalDelta !== null ? `Δ${finalDelta.toFixed(2)}s` : 'Δ?';
|
||||||
lastReportedSeekTime = settled;
|
lastReportedSeekTime = settled;
|
||||||
|
reportLog(`[Seek] Relayed @ ${settled.toFixed(2)}s (${finalDeltaStr})`, 'info');
|
||||||
reportEvent(EVENTS.SEEK);
|
reportEvent(EVENTS.SEEK);
|
||||||
}, 800);
|
}, 800);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
let lastVideoSrc = null;
|
let lastVideoSrc = null;
|
||||||
|
|
||||||
// Episode detection handler for loadeddata event
|
// Episode detection handler for loadeddata event
|
||||||
|
|||||||
Reference in New Issue
Block a user