From 887456ead8a7743db8cbaa9348266d6753c55448 Mon Sep 17 00:00:00 2001 From: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:52:51 -0800 Subject: [PATCH] Fix bug where new files won't show up in files dropdown (#1704) * Fix bug where new files won't show up in files dropdown * Create small-gifts-count.md --- .changeset/small-gifts-count.md | 5 +++++ src/core/Cline.ts | 9 +++++++++ src/core/webview/ClineProvider.ts | 4 ++-- src/integrations/workspace/WorkspaceTracker.ts | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 .changeset/small-gifts-count.md diff --git a/.changeset/small-gifts-count.md b/.changeset/small-gifts-count.md new file mode 100644 index 0000000000..e5b5e523a9 --- /dev/null +++ b/.changeset/small-gifts-count.md @@ -0,0 +1,5 @@ +--- +"claude-dev": patch +--- + +Fix bug where new files won't show up in files dropdown diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 3c6821f63c..9f5af06f3f 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -1835,6 +1835,11 @@ export class Cline { `${newProblemsMessage}`, ) } + + if (!fileExists) { + this.providerRef.deref()?.workspaceTracker?.populateFilePaths() + } + await this.diffViewProvider.reset() await this.saveCheckpoint() break @@ -2387,6 +2392,10 @@ export class Cline { if (userRejected) { this.didRejectTool = true } + + // Re-populate file paths in case the command modified the workspace (vscode listeners do not trigger unless the user manually creates/deletes files) + this.providerRef.deref()?.workspaceTracker?.populateFilePaths() + pushToolResult(result) await this.saveCheckpoint() break diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index d55851d171..397e11eb80 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -102,7 +102,7 @@ export class ClineProvider implements vscode.WebviewViewProvider { private disposables: vscode.Disposable[] = [] private view?: vscode.WebviewView | vscode.WebviewPanel private cline?: Cline - private workspaceTracker?: WorkspaceTracker + workspaceTracker?: WorkspaceTracker mcpHub?: McpHub private authManager: FirebaseAuthManager private latestAnnouncementId = "jan-20-2025" // update to some unique identifier when we add a new announcement @@ -379,7 +379,7 @@ export class ClineProvider implements vscode.WebviewViewProvider { switch (message.type) { case "webviewDidLaunch": this.postStateToWebview() - this.workspaceTracker?.initializeFilePaths() // don't await + this.workspaceTracker?.populateFilePaths() // don't await getTheme().then((theme) => this.postMessageToWebview({ type: "theme", diff --git a/src/integrations/workspace/WorkspaceTracker.ts b/src/integrations/workspace/WorkspaceTracker.ts index 10dfac8f9e..e148312cba 100644 --- a/src/integrations/workspace/WorkspaceTracker.ts +++ b/src/integrations/workspace/WorkspaceTracker.ts @@ -16,7 +16,7 @@ class WorkspaceTracker { this.registerListeners() } - async initializeFilePaths() { + async populateFilePaths() { // should not auto get filepaths for desktop since it would immediately show permission popup before cline ever creates a file if (!cwd) { return