From 6f748e934f2a382ce79319907294be556f073e15 Mon Sep 17 00:00:00 2001 From: Robby Date: Sat, 6 Jun 2026 19:11:40 +0200 Subject: [PATCH] fix: remove DEEPSEEK_DEBUG gate, always write debug log #8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - No env var required — logger always active - console.error fallback on write failure (no more silent catch) - Tiny output: ~2 lines per session (init + first fetch) --- src/debug-logger.ts | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/debug-logger.ts b/src/debug-logger.ts index c48c034..16643ae 100644 --- a/src/debug-logger.ts +++ b/src/debug-logger.ts @@ -10,33 +10,41 @@ export interface DebugEvent { const CACHE_DIR = join(homedir(), ".cache", "opencode", "four-opencode-deepseek-meter"); +let dirReady = false; +function ensureDir(): boolean { + if (dirReady) return true; + try { + if (!existsSync(CACHE_DIR)) { + mkdirSync(CACHE_DIR, { recursive: true }); + } + dirReady = true; + return true; + } catch (err) { + console.error("[deepseek-meter] cannot create log dir:", CACHE_DIR, err); + return false; + } +} + function getLogPath(): string { const date = new Date().toISOString().split("T")[0]; return join(CACHE_DIR, `debug-${date}.jsonl`); } -function ensureDir(): void { - if (!existsSync(CACHE_DIR)) { - mkdirSync(CACHE_DIR, { recursive: true }); - } -} - /** * Writes a JSON debug event to a daily JSONL file. - * No-op unless DEEPSEEK_DEBUG === "true". Never throws. + * Always active (tiny output). Errors surface to stderr. */ export function logDebugEvent( type: string, payload: Record, ): void { - if (process.env.DEEPSEEK_DEBUG !== "true") return; + if (!ensureDir()) return; try { - ensureDir(); const event: DebugEvent = { ts: Date.now(), type, ...payload }; const line = JSON.stringify(event) + "\n"; appendFileSync(getLogPath(), line, "utf-8"); - } catch { - // Silent — never throw from debug logger + } catch (err) { + console.error("[deepseek-meter] log write failed:", err); } }