From a265c5941882eb8e202d9bbf663ca76e8b1655b1 Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Fri, 27 Mar 2026 20:43:56 -0500 Subject: [PATCH] fix(regression): preserve transcript session ownership metadata --- src/gateway/server.impl.ts | 5 +++++ src/gateway/session-message-events.test.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/gateway/server.impl.ts b/src/gateway/server.impl.ts index e74b1fb69d9..a7b26e0ad3e 100644 --- a/src/gateway/server.impl.ts +++ b/src/gateway/server.impl.ts @@ -949,6 +949,11 @@ export async function startGatewayServer( chatType: sessionRow.chatType, origin: sessionRow.origin, spawnedBy: sessionRow.spawnedBy, + spawnedWorkspaceDir: sessionRow.spawnedWorkspaceDir, + forkedFromParent: sessionRow.forkedFromParent, + spawnDepth: sessionRow.spawnDepth, + subagentRole: sessionRow.subagentRole, + subagentControlScope: sessionRow.subagentControlScope, label: sessionRow.label, displayName: sessionRow.displayName, deliveryContext: sessionRow.deliveryContext, diff --git a/src/gateway/session-message-events.test.ts b/src/gateway/session-message-events.test.ts index 2269207d1b1..6fa6352bba1 100644 --- a/src/gateway/session-message-events.test.ts +++ b/src/gateway/session-message-events.test.ts @@ -310,6 +310,11 @@ describe("session.message websocket events", () => { sessionFile: transcriptPath, updatedAt: Date.now(), spawnedBy: "agent:main:main", + spawnedWorkspaceDir: "/tmp/subagent-workspace", + forkedFromParent: true, + spawnDepth: 2, + subagentRole: "orchestrator", + subagentControlScope: "children", parentSessionKey: "agent:main:main", }, }, @@ -369,12 +374,22 @@ describe("session.message websocket events", () => { expect(messageEvent.payload).toMatchObject({ sessionKey: "agent:main:child", spawnedBy: "agent:main:main", + spawnedWorkspaceDir: "/tmp/subagent-workspace", + forkedFromParent: true, + spawnDepth: 2, + subagentRole: "orchestrator", + subagentControlScope: "children", parentSessionKey: "agent:main:main", }); expect(changedEvent.payload).toMatchObject({ sessionKey: "agent:main:child", phase: "message", spawnedBy: "agent:main:main", + spawnedWorkspaceDir: "/tmp/subagent-workspace", + forkedFromParent: true, + spawnDepth: 2, + subagentRole: "orchestrator", + subagentControlScope: "children", parentSessionKey: "agent:main:main", }); } finally {