Skip to content

Commit 02ea44d

Browse files
Handles cancellation of AI commands (#4380)
* No-ops on AI commands when user cancels * Combined conditionals
1 parent 3aba7a6 commit 02ea44d

File tree

13 files changed

+86
-26
lines changed

13 files changed

+86
-26
lines changed

src/commands/explainBranch.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ export class ExplainBranchCommand extends ExplainCommandBase {
114114
},
115115
);
116116

117+
if (result === 'cancelled') return;
118+
117119
if (result == null) {
118120
void showGenericErrorMessage(`Unable to explain branch ${branch.name}`);
119121
return;

src/commands/explainCommit.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ export class ExplainCommitCommand extends ExplainCommandBase {
9090
},
9191
);
9292

93+
if (result === 'cancelled') return;
94+
9395
if (result == null) {
9496
void showGenericErrorMessage('Unable to explain commit');
9597
return;

src/commands/explainStash.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ export class ExplainStashCommand extends ExplainCommandBase {
7676
},
7777
);
7878

79+
if (result === 'cancelled') return;
80+
7981
if (result == null) {
8082
void showGenericErrorMessage('No changes found to explain for stash');
8183
return;

src/commands/explainWip.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ export class ExplainWipCommand extends ExplainCommandBase {
112112
},
113113
);
114114

115+
if (result === 'cancelled') return;
116+
115117
if (result == null) {
116118
void showGenericErrorMessage(`Unable to explain ${label} changes`);
117119
return;

src/commands/generateChangelog.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ export async function generateChangelogAndOpenMarkdownDocument(
9595
): Promise<void> {
9696
const result = await container.ai.generateChangelog(changes, source, options);
9797

98+
if (result === 'cancelled') return;
99+
98100
const { range, changes: { length: count } = [] } = await changes.value;
99101

100102
let content = `# Changelog for ${range.head.label ?? range.head.ref}\n`;

src/commands/generateCommitMessage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export class GenerateCommitMessageCommand extends ActiveEditorCommand {
7474
progress: { location: ProgressLocation.Notification, title: 'Generating commit message...' },
7575
},
7676
);
77-
if (result == null) return;
77+
if (result == null || result === 'cancelled') return;
7878

7979
void executeCoreCommand('workbench.view.scm');
8080
scmRepo.inputBox.value = `${currentMessage ? `${currentMessage}\n\n` : ''}${result.parsed.summary}${

src/commands/generateRebase.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ export async function generateRebase(
343343

344344
const repo = svc.getRepository()!;
345345
const result = await container.ai.generateRebase(repo, base.ref, head.ref, source, aiOptions);
346-
if (result == null) return;
346+
if (result == null || result === 'cancelled') return;
347347

348348
try {
349349
// Extract the diff information from the reorganized commits

src/commands/git/stash.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,8 @@ export class StashGitCommand extends QuickCommand<State> {
677677
resume?.dispose();
678678
input.validationMessage = undefined;
679679

680+
if (result === 'cancelled') return;
681+
680682
const message = result?.parsed.summary;
681683
if (message != null) {
682684
state.message = message;

src/env/node/git/commitMessageProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ class AICommitMessageProvider implements CommitMessageProvider, Disposable {
6262
},
6363
);
6464

65-
if (result == null) return;
65+
if (result == null || result === 'cancelled') return;
66+
6667
return `${currentMessage ? `${currentMessage}\n\n` : ''}${result.parsed.summary}${
6768
result.parsed.body ? `\n\n${result.parsed.body}` : ''
6869
}`;

src/git/utils/-webview/pullRequest.utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ export async function describePullRequestWithAI(
3939
...options,
4040
},
4141
);
42+
if (result === 'cancelled') return undefined;
43+
4244
return result?.parsed ? { title: result.parsed.summary, description: result.parsed.body } : undefined;
4345
} catch (ex) {
4446
void window.showErrorMessage(ex.message);

0 commit comments

Comments
 (0)