bc27d8924b
- Use trimEnd() instead of trim() in git() to preserve leading whitespace in porcelain output (fixes status parsing for ' M file' lines) - Remove unused 'untracked' from FileChange status union - Use repository.rootUri.fsPath instead of workspaceFolders[0] - Add explicit null-check for client after try/catch - Fix test mocks: add isActive/activate, use mockImplementation to throw, fix expected error message to match production code