From 4de417663c9e31bc3e1d05b8eae4b80c00fda59f Mon Sep 17 00:00:00 2001 From: Alex Newman Date: Sat, 4 Apr 2026 14:29:08 -0700 Subject: [PATCH] fix: catch corrupt JSON in Gemini CLI status command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit readGeminiSettings() throws on corrupt JSON since ae6915b, but checkGeminiCliHooksStatus() called it without catching — violating its "returns 0 always" contract. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/services/integrations/GeminiCliHooksInstaller.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/services/integrations/GeminiCliHooksInstaller.ts b/src/services/integrations/GeminiCliHooksInstaller.ts index e3a9a03a..f620126c 100644 --- a/src/services/integrations/GeminiCliHooksInstaller.ts +++ b/src/services/integrations/GeminiCliHooksInstaller.ts @@ -418,7 +418,13 @@ export function checkGeminiCliHooksStatus(): number { return 0; } - const settings = readGeminiSettings(); + let settings: GeminiSettingsJson; + try { + settings = readGeminiSettings(); + } catch (error) { + console.log(`Gemini CLI settings: ${(error as Error).message}\n`); + return 0; + } if (!settings.hooks) { console.log('Gemini CLI settings: Found, but no hooks configured\n');