diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index dc89db409e..1813346cdc 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -25,6 +25,7 @@ export namespace LLM { export type StreamInput = { user: MessageV2.User sessionID: string + parentSessionID?: string model: Provider.Model agent: Agent.Info permission?: Permission.Ruleset @@ -301,6 +302,8 @@ export namespace LLM { "x-opencode-client": Flag.OPENCODE_CLIENT, } : { + "x-session-affinity": input.sessionID, + ...(input.parentSessionID ? { "x-parent-session-id": input.parentSessionID } : {}), "User-Agent": `opencode/${Installation.VERSION}`, }), ...input.model.headers, diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 8facf7aba7..e4709ef47e 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1512,6 +1512,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the agent, permission: session.permission, sessionID, + parentSessionID: session.parentID, system, messages: [...modelMsgs, ...(isLastStep ? [{ role: "assistant" as const, content: MAX_STEPS }] : [])], tools,