From 85a2b7788ca7cc0d2a43a87361e6b58f184111b8 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 14:32:59 -0800 Subject: [PATCH 1/8] Fix regression package.json task fail to re-run --- .../workbench/contrib/tasks/browser/abstractTaskService.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 6e2ddbcf2f240..5648c47ed882c 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2190,8 +2190,11 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer if (updatedTask) { await this.run(updatedTask); } else { - // Task no longer exists, show warning - this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been modified. Cannot restart.', task.configurationProperties.name)); + const success = await this.run(task); + if (success?.exitCode === 1) { + // Task no longer exists, show warning + this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been really modified. Cannot restart.', task.configurationProperties.name)); + } } } catch { // eat the error, we don't care about it here From f673ff14ee2c64e2e614d044d3b5a7deec523782 Mon Sep 17 00:00:00 2001 From: Anthony Kim <62267334+anthonykim1@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:47:54 -0800 Subject: [PATCH 2/8] Update src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 5648c47ed882c..8c8c1600d2c23 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,8 +2191,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (success?.exitCode === 1) { - // Task no longer exists, show warning + if (!success || success.exitCode !== 0) { + // Task no longer exists or failed to run, show warning this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been really modified. Cannot restart.', task.configurationProperties.name)); } } From 0115e81fcb5ac1a29e96d16ee787ec76af460db3 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 14:49:51 -0800 Subject: [PATCH 3/8] revert copilot changes --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 8c8c1600d2c23..5648c47ed882c 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,8 +2191,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (!success || success.exitCode !== 0) { - // Task no longer exists or failed to run, show warning + if (success?.exitCode === 1) { + // Task no longer exists, show warning this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been really modified. Cannot restart.', task.configurationProperties.name)); } } From e378241e4f7a3d4900067a7539637e35cddc3037 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 14:54:24 -0800 Subject: [PATCH 4/8] check for 1 or 127 for command not found --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 5648c47ed882c..33677817c5f77 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,9 +2191,9 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (success?.exitCode === 1) { + if (success?.exitCode === 1 || success?.exitCode === 127) { // Task no longer exists, show warning - this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been really modified. Cannot restart.', task.configurationProperties.name)); + this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been modified. Cannot restart.', task.configurationProperties.name)); } } } catch { From ac5797795ea6962f48b8d58bc3b3cc00eab67837 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 15:00:32 -0800 Subject: [PATCH 5/8] Check to see if exitCode is none zero when showing warning --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 33677817c5f77..22e274116123b 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,7 +2191,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (success?.exitCode === 1 || success?.exitCode === 127) { + if (!success || success.exitCode !== 0) { // Task no longer exists, show warning this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been modified. Cannot restart.', task.configurationProperties.name)); } From ee50519d57883f320cc421e048f2dea16e9face9 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 15:15:24 -0800 Subject: [PATCH 6/8] Update to only watch for 1 or 127 --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 22e274116123b..33677817c5f77 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,7 +2191,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (!success || success.exitCode !== 0) { + if (success?.exitCode === 1 || success?.exitCode === 127) { // Task no longer exists, show warning this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been modified. Cannot restart.', task.configurationProperties.name)); } From da17e368257b3f9d07619d8a4b203af12a7253c2 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 15:27:30 -0800 Subject: [PATCH 7/8] use !success || (success.exitCode !== undefined && success.exitCode !== 0) --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 33677817c5f77..deda0204ea317 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,7 +2191,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (success?.exitCode === 1 || success?.exitCode === 127) { + if (!success || (success.exitCode !== undefined && success.exitCode !== 0)) { // Task no longer exists, show warning this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been modified. Cannot restart.', task.configurationProperties.name)); } From 1d51916fc1b7994c01c515a9aef37d4f77227cf1 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 6 Jan 2026 15:29:42 -0800 Subject: [PATCH 8/8] Use typeof success.exitCode number --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index deda0204ea317..de488aa295976 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -2191,7 +2191,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer await this.run(updatedTask); } else { const success = await this.run(task); - if (!success || (success.exitCode !== undefined && success.exitCode !== 0)) { + if (!success || (typeof success.exitCode === 'number' && success.exitCode !== 0)) { // Task no longer exists, show warning this._notificationService.warn(nls.localize('TaskSystem.taskNoLongerExists', 'Task {0} no longer exists or has been modified. Cannot restart.', task.configurationProperties.name)); }