fix(mpv): gate socket logs by debug level

- Gate MPV socket reconnect-attempt, close, and error logs behind SUBMINER_LOG_LEVEL=debug.\n- Preserve MPV reconnect behavior and success-path logging unaffected.\n- Update TASK-33 metadata/status with implementation summary.
This commit is contained in:
2026-02-15 19:15:12 -08:00
parent 667bde944c
commit 8c8f828b59
2 changed files with 23 additions and 6 deletions

View File

@@ -1,9 +1,10 @@
--- ---
id: TASK-33 id: TASK-33
title: Restrict mpv socket connection logs to debug mode in Electron title: Restrict mpv socket connection logs to debug mode in Electron
status: To Do status: Done
assignee: [] assignee: []
created_date: '2026-02-13 19:39' created_date: '2026-02-13 19:39'
updated_date: '2026-02-16 03:05'
labels: labels:
- electron - electron
- logging - logging
@@ -30,6 +31,12 @@ In normal operation, Electron should not spam logs while waiting for mpv socket
- [ ] #6 If connection fails and retries continue, keep a debug-only or final-error log policy consistent with existing logging severity conventions. - [ ] #6 If connection fails and retries continue, keep a debug-only or final-error log policy consistent with existing logging severity conventions.
<!-- AC:END --> <!-- AC:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Implemented debug-gated MPV socket noise suppression in normal mode while preserving reconnect behavior. Added an internal check for SUBMINER_LOG_LEVEL==='debug' and wrapped socket reconnect-attempt, close, and error logs so regular startup/reconnect loops no longer emit per-interval messages unless debug logging is enabled. Kept existing connection-success flow unchanged. Validation: `pnpm run build`, `node --test dist/core/services/mpv-service.test.js`.
<!-- SECTION:FINAL_SUMMARY:END -->
## Definition of Done ## Definition of Done
<!-- DOD:BEGIN --> <!-- DOD:BEGIN -->
- [ ] #1 No connection-attempt/connect-wait logs are produced in non-debug mode. - [ ] #1 No connection-attempt/connect-wait logs are produced in non-debug mode.

View File

@@ -19,6 +19,10 @@ import {
} from "./mpv-transport"; } from "./mpv-transport";
import { resolveCurrentAudioStreamIndex } from "./mpv-state"; import { resolveCurrentAudioStreamIndex } from "./mpv-state";
const isDebugLoggingEnabled = (): boolean => {
return (process.env.SUBMINER_LOG_LEVEL || "").toLowerCase() === "debug";
};
export { export {
MPV_REQUEST_ID_SECONDARY_SUB_VISIBILITY, MPV_REQUEST_ID_SECONDARY_SUB_VISIBILITY,
} from "./mpv-protocol"; } from "./mpv-protocol";
@@ -129,11 +133,15 @@ export class MpvIpcClient implements MpvClient {
this.processBuffer(); this.processBuffer();
}, },
onError: (err: Error) => { onError: (err: Error) => {
console.error("MPV socket error:", err.message); if (isDebugLoggingEnabled()) {
console.error("MPV socket error:", err.message);
}
this.failPendingRequests(); this.failPendingRequests();
}, },
onClose: () => { onClose: () => {
console.log("MPV socket closed"); if (isDebugLoggingEnabled()) {
console.log("MPV socket closed");
}
this.connected = false; this.connected = false;
this.connecting = false; this.connecting = false;
this.socket = null; this.socket = null;
@@ -194,9 +202,11 @@ export class MpvIpcClient implements MpvClient {
getReconnectTimer: () => this.deps.getReconnectTimer(), getReconnectTimer: () => this.deps.getReconnectTimer(),
setReconnectTimer: (timer) => this.deps.setReconnectTimer(timer), setReconnectTimer: (timer) => this.deps.setReconnectTimer(timer),
onReconnectAttempt: (attempt, delay) => { onReconnectAttempt: (attempt, delay) => {
console.log( if (isDebugLoggingEnabled()) {
`Attempting to reconnect to MPV (attempt ${attempt}, delay ${delay}ms)...`, console.log(
); `Attempting to reconnect to MPV (attempt ${attempt}, delay ${delay}ms)...`,
);
}
}, },
connect: () => { connect: () => {
this.connect(); this.connect();