From be02562023cdbe07a1ec0988735772d0aabb1344 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:59:22 +0200 Subject: [PATCH] Background - handle empty git repositories --- .../chatSessionWorktreeCheckpointServiceImpl.ts | 8 ++++---- .../vscode-node/folderRepositoryManagerImpl.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/copilot/src/extension/chatSessions/vscode-node/chatSessionWorktreeCheckpointServiceImpl.ts b/extensions/copilot/src/extension/chatSessions/vscode-node/chatSessionWorktreeCheckpointServiceImpl.ts index d87c81dc29dd3..03d863bd090ed 100644 --- a/extensions/copilot/src/extension/chatSessions/vscode-node/chatSessionWorktreeCheckpointServiceImpl.ts +++ b/extensions/copilot/src/extension/chatSessions/vscode-node/chatSessionWorktreeCheckpointServiceImpl.ts @@ -48,7 +48,7 @@ export class ChatSessionWorktreeCheckpointService extends Disposable implements const repositoryUri = await this._getSessionRepository(sessionId); const repository = repositoryUri ? await this.gitService.getRepository(repositoryUri) : undefined; - if (!repository) { + if (!repository || !repository.headCommitHash) { this.logService.warn(`[ChatSessionWorktreeCheckpointService][handleRequest] No repository found for session ${sessionId}, skipping baseline checkpoint creation`); return; } @@ -83,7 +83,7 @@ export class ChatSessionWorktreeCheckpointService extends Disposable implements const repositoryUri = await this._getSessionRepository(sessionId); const repository = repositoryUri ? await this.gitService.getRepository(repositoryUri) : undefined; - if (!repository) { + if (!repository || !repository.headCommitHash) { this.logService.warn(`[ChatSessionWorktreeCheckpointService][handleRequestCompleted] No repository found for session ${sessionId}, skipping post-turn checkpoint`); return; } @@ -165,7 +165,7 @@ export class ChatSessionWorktreeCheckpointService extends Disposable implements } const repoUri = Uri.file(props.worktreePath); const repository = await this.gitService.getRepository(repoUri); - if (!repository) { + if (!repository || !repository.headCommitHash) { this.logService.warn(`[ChatSessionWorktreeCheckpointService][handleAdditionalWorktreesRequest] No repository found for additional worktree ${props.worktreePath}`); continue; } @@ -187,7 +187,7 @@ export class ChatSessionWorktreeCheckpointService extends Disposable implements } const repoUri = Uri.file(props.worktreePath); const repository = await this.gitService.getRepository(repoUri); - if (!repository) { + if (!repository || !repository.headCommitHash) { return; } diff --git a/extensions/copilot/src/extension/chatSessions/vscode-node/folderRepositoryManagerImpl.ts b/extensions/copilot/src/extension/chatSessions/vscode-node/folderRepositoryManagerImpl.ts index 28b93d1693b61..58cc6cb503b81 100644 --- a/extensions/copilot/src/extension/chatSessions/vscode-node/folderRepositoryManagerImpl.ts +++ b/extensions/copilot/src/extension/chatSessions/vscode-node/folderRepositoryManagerImpl.ts @@ -168,7 +168,7 @@ export abstract class FolderRepositoryManager extends Disposable implements IFol repositoryUri = vscode.Uri.file(worktreeProperties.repositoryPath); } else { const repoContext = await this.gitService.getRepository(selectedFolder); - const branchBase = repoContext?.headBranchName + const branchBase = repoContext?.headBranchName && repoContext.headCommitHash ? await this.gitService.getBranchBase(repoContext.rootUri, repoContext.headBranchName) : undefined;