From c721dc23b6b2c14b2bd53561bd5c921cb9a2f002 Mon Sep 17 00:00:00 2001 From: AndyMik90 Date: Thu, 18 Dec 2025 16:37:41 +0100 Subject: [PATCH] fix: correct git status parsing in merge preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed parsing bug where .trim() on entire output removed leading space from git status --porcelain format, causing filenames to be truncated. - Removed .trim() from git status output (line 536) - Check for empty status using gitStatus.trim() in condition - Correctly parse XYfilename format without truncation - Removed diagnostic logging 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .../src/main/ipc-handlers/task/worktree-handlers.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/auto-claude-ui/src/main/ipc-handlers/task/worktree-handlers.ts b/auto-claude-ui/src/main/ipc-handlers/task/worktree-handlers.ts index c606c4d4..200c02dd 100644 --- a/auto-claude-ui/src/main/ipc-handlers/task/worktree-handlers.ts +++ b/auto-claude-ui/src/main/ipc-handlers/task/worktree-handlers.ts @@ -533,15 +533,17 @@ export function registerWorktreeHandlers( const gitStatus = execSync('git status --porcelain', { cwd: project.path, encoding: 'utf-8' - }).trim(); + }); - if (gitStatus) { + if (gitStatus && gitStatus.trim()) { // Parse the status output to get file names - uncommittedFiles = gitStatus.split('\n') + // Format: XY filename (where X and Y are status chars, then space, then filename) + uncommittedFiles = gitStatus + .split('\n') .filter(line => line.trim()) - .map(line => line.substring(3).trim()); // Remove status prefix (e.g., "M ", " M ", "?? ") + .map(line => line.substring(3)); // Skip 2 status chars + 1 space + hasUncommittedChanges = uncommittedFiles.length > 0; - console.warn('[IPC] Uncommitted changes detected:', uncommittedFiles.length, 'files'); } } catch (e) { console.error('[IPC] Failed to check git status:', e);