summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorBrandon <[email protected]>2025-10-30 13:15:21 -0400
committerGitHub <[email protected]>2025-10-30 12:15:21 -0500
commitc68607fb2bfdcfb09ba5cd9f339e2c86f2e27c0c (patch)
tree773ec0396435f017ccf388cd292c97287b35963d /packages
parente944ff028639de0e3263aa57cc0c6bafea64e292 (diff)
downloadopencode-c68607fb2bfdcfb09ba5cd9f339e2c86f2e27c0c.tar.gz
opencode-c68607fb2bfdcfb09ba5cd9f339e2c86f2e27c0c.zip
feat: Adds session id to Agent context metadata (#3559)
Co-authored-by: Brandon Wisnicki <[email protected]>
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/tool/task.ts10
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts
index 830c298a5..342645c30 100644
--- a/packages/opencode/src/tool/task.ts
+++ b/packages/opencode/src/tool/task.ts
@@ -33,6 +33,14 @@ export const TaskTool = Tool.define("task", async () => {
})
const msg = await Session.getMessage({ sessionID: ctx.sessionID, messageID: ctx.messageID })
if (msg.info.role !== "assistant") throw new Error("Not an assistant message")
+
+ ctx.metadata({
+ title: params.description,
+ metadata: {
+ sessionId: session.id,
+ },
+ })
+
const messageID = Identifier.ascending("message")
const parts: Record<string, MessageV2.ToolPart> = {}
const unsub = Bus.subscribe(MessageV2.Event.PartUpdated, async (evt) => {
@@ -44,6 +52,7 @@ export const TaskTool = Tool.define("task", async () => {
title: params.description,
metadata: {
summary: Object.values(parts).sort((a, b) => a.id?.localeCompare(b.id)),
+ sessionId: session.id,
},
})
})
@@ -87,6 +96,7 @@ export const TaskTool = Tool.define("task", async () => {
title: params.description,
metadata: {
summary: all,
+ sessionId: session.id,
},
output: (result.parts.findLast((x: any) => x.type === "text") as any)?.text ?? "",
}