From 28461bab181404d3ee553ee67aa7803b3ae7898a Mon Sep 17 00:00:00 2001 From: Zelin Zhou Date: Thu, 16 Oct 2025 10:25:43 -0700 Subject: [PATCH 1/2] feat: allow redriving a failed execution in ExecutionDetails tab. --- .../stepFunctions/executionDetails/handleMessage.ts | 13 +++++++++++++ .../core/src/stepFunctions/messageHandlers/types.ts | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/packages/core/src/stepFunctions/executionDetails/handleMessage.ts b/packages/core/src/stepFunctions/executionDetails/handleMessage.ts index c1e1c9f314f..f8d6e4ace2f 100644 --- a/packages/core/src/stepFunctions/executionDetails/handleMessage.ts +++ b/packages/core/src/stepFunctions/executionDetails/handleMessage.ts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ +import * as vscode from 'vscode' import { Command, Message, @@ -12,6 +13,7 @@ import { ApiCallRequestMessage, InitResponseMessage, StartExecutionMessage, + RedriveMessage, } from '../messageHandlers/types' import { loadStageMessageHandler, @@ -47,6 +49,9 @@ export async function handleMessage(message: Message, context: ExecutionDetailsC case Command.EDIT_STATE_MACHINE: void editStateMachineMessageHandler(context) break + case Command.REDRIVE: + void redriveExecutionMessageHandler(message as RedriveMessage, context) + break default: void handleUnsupportedMessage(context, message) break @@ -115,3 +120,11 @@ async function editStateMachineMessageHandler(context: ExecutionDetailsContext) const params = parseExecutionArnForStateMachine(context.executionArn) await openWorkflowStudio(params!.stateMachineArn, params!.region) } + +async function redriveExecutionMessageHandler(message: RedriveMessage, context: ExecutionDetailsContext) { + const executionArn = message.executionArn + if (!message.openInNewTab) { + await vscode.commands.executeCommand('workbench.action.closeActiveEditor') + } + await context.openExecutionDetails(executionArn) +} diff --git a/packages/core/src/stepFunctions/messageHandlers/types.ts b/packages/core/src/stepFunctions/messageHandlers/types.ts index 1e320ff07da..2164c3982c4 100644 --- a/packages/core/src/stepFunctions/messageHandlers/types.ts +++ b/packages/core/src/stepFunctions/messageHandlers/types.ts @@ -75,6 +75,7 @@ export enum Command { UNSUPPORTED_COMMAND = 'UNSUPPORTED_COMMAND', START_EXECUTION = 'START_EXECUTION', EDIT_STATE_MACHINE = 'EDIT_STATE_MACHINE', + REDRIVE = 'REDRIVE', } export type FileWatchInfo = { @@ -116,6 +117,11 @@ export interface StartExecutionMessage extends Message { executionInput?: string } +export interface RedriveMessage extends Message { + openInNewTab: boolean + executionArn: string +} + export enum ApiAction { IAMListRoles = 'iam:ListRoles', SFNTestState = 'sfn:TestState', From cb739ad7129f0ac2c9e43e852f96f278c52ebe69 Mon Sep 17 00:00:00 2001 From: Zelin Zhou Date: Thu, 16 Oct 2025 12:08:37 -0700 Subject: [PATCH 2/2] refactor: use dispose instead of global active editor close for Redrive. --- .../core/src/stepFunctions/executionDetails/handleMessage.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/core/src/stepFunctions/executionDetails/handleMessage.ts b/packages/core/src/stepFunctions/executionDetails/handleMessage.ts index f8d6e4ace2f..ea7138aa6fa 100644 --- a/packages/core/src/stepFunctions/executionDetails/handleMessage.ts +++ b/packages/core/src/stepFunctions/executionDetails/handleMessage.ts @@ -4,7 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ -import * as vscode from 'vscode' import { Command, Message, @@ -124,7 +123,7 @@ async function editStateMachineMessageHandler(context: ExecutionDetailsContext) async function redriveExecutionMessageHandler(message: RedriveMessage, context: ExecutionDetailsContext) { const executionArn = message.executionArn if (!message.openInNewTab) { - await vscode.commands.executeCommand('workbench.action.closeActiveEditor') + context.panel.dispose() } await context.openExecutionDetails(executionArn) }