From 381c8fc60d843e15bcf21a0e9a8827b1d042a19e Mon Sep 17 00:00:00 2001 From: Nicky Leach Date: Wed, 8 Jul 2026 17:06:51 +0000 Subject: [PATCH] fix: preserve issue workspace environment selection Preserve execution workspace environmentId values through normal issue updates so explicit operator selections survive workspace setting serialization and reused workspace metadata sync. Co-Authored-By: Paperclip --- server/src/services/heartbeat.ts | 5 +---- server/src/services/issues.ts | 6 ++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/server/src/services/heartbeat.ts b/server/src/services/heartbeat.ts index 2ead3691d35..86ff9b3bf12 100644 --- a/server/src/services/heartbeat.ts +++ b/server/src/services/heartbeat.ts @@ -11108,10 +11108,7 @@ export function heartbeatService(db: Db, options: HeartbeatServiceOptions = {}) }; } if (Object.keys(nextIssuePatch).length > 0) { - await issuesSvc.update(issueId, { - ...nextIssuePatch, - preserveExecutionWorkspaceEnvironmentId: true, - }); + await issuesSvc.update(issueId, nextIssuePatch); } } if (persistedExecutionWorkspace) { diff --git a/server/src/services/issues.ts b/server/src/services/issues.ts index eafb00b8b34..2dc352302ca 100644 --- a/server/src/services/issues.ts +++ b/server/src/services/issues.ts @@ -6167,7 +6167,6 @@ export function issueService(db: Db) { blockedByIssueIds?: string[]; actorAgentId?: string | null; actorUserId?: string | null; - preserveExecutionWorkspaceEnvironmentId?: boolean; }, dbOrTx: any = db, ) => { @@ -6183,7 +6182,6 @@ export function issueService(db: Db) { blockedByIssueIds, actorAgentId, actorUserId, - preserveExecutionWorkspaceEnvironmentId, ...issueData } = data; const isolatedWorkspacesEnabled = (await instanceSettings.getExperimental()).enableIsolatedWorkspaces; @@ -6248,11 +6246,11 @@ export function issueService(db: Db) { issueData.executionWorkspaceSettings !== undefined ? parseIssueExecutionWorkspaceSettings( issueData.executionWorkspaceSettings, - { includeEnvironmentId: preserveExecutionWorkspaceEnvironmentId === true }, + { includeEnvironmentId: true }, ) : parseIssueExecutionWorkspaceSettings( existing.executionWorkspaceSettings, - { includeEnvironmentId: preserveExecutionWorkspaceEnvironmentId === true }, + { includeEnvironmentId: true }, ); if (issueData.executionWorkspaceSettings !== undefined) { patch.executionWorkspaceSettings = nextExecutionWorkspaceSettings