From c359fa89b0e3e8e014f3ab9758d36dd31bff6f20 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 31 Aug 2026 12:13:44 +0000 Subject: [PATCH] fix(dif): log errors in tryProguard and tryObject catch blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three catch blocks in find.ts silently discarded errors when reading, hashing, or parsing debug-information files. Users running `debug-files find` had no way to tell why certain files were skipped. Added logger.debug() to each catch block so failures appear with --verbose. Co-authored-by: Miguel Betegón --- packages/cli/script/silent-catch-baseline.json | 2 +- packages/cli/src/lib/dif/find.ts | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/cli/script/silent-catch-baseline.json b/packages/cli/script/silent-catch-baseline.json index 501d60e857..ace0f7170d 100644 --- a/packages/cli/script/silent-catch-baseline.json +++ b/packages/cli/script/silent-catch-baseline.json @@ -29,7 +29,7 @@ "src/lib/delta-upgrade.ts": 1, "src/lib/detect-agent.ts": 2, "src/lib/dev-script.ts": 2, - "src/lib/dif/find.ts": 3, + "src/lib/dif/find.ts": 0, "src/lib/docs-context.ts": 4, "src/lib/docs-service.ts": 1, "src/lib/dsn/detector.ts": 1, diff --git a/packages/cli/src/lib/dif/find.ts b/packages/cli/src/lib/dif/find.ts index 91d7c7fa42..f25470114f 100644 --- a/packages/cli/src/lib/dif/find.ts +++ b/packages/cli/src/lib/dif/find.ts @@ -12,6 +12,7 @@ import { open, readFile, stat } from "node:fs/promises"; import { extname, resolve } from "node:path"; +import { logger } from "../logger.js"; import { computeProguardUuid } from "../proguard.js"; import { walkFiles } from "../scan/walker.js"; import { parseDebugFile, peekFormat } from "./index.js"; @@ -186,7 +187,8 @@ async function tryProguard( let uuid: string; try { uuid = computeProguardUuid(await readFile(path)); - } catch { + } catch (error) { + logger.debug(`Skipping ProGuard candidate ${path}: read/hash failed`, error); return; } const matched = matchRemaining(state, uuid); @@ -220,7 +222,8 @@ async function tryObject( } finally { await fd.close(); } - } catch { + } catch (error) { + logger.debug(`Skipping ${path}: failed to peek format`, error); return; } if (!state.formats.has(format)) { @@ -233,7 +236,8 @@ async function tryObject( let objects: { debugId: string }[]; try { objects = parseDebugFile(await readFile(path)).objects; - } catch { + } catch (error) { + logger.debug(`Skipping ${path}: failed to parse debug file`, error); return; } for (const obj of objects) {