diff options
| author | Dax Raad <[email protected]> | 2025-10-22 15:01:13 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-10-22 15:01:13 -0400 |
| commit | 28d8af48a0d3753e0f844704b8834dcb7bda061d (patch) | |
| tree | e5e05e0c77fac874a64936d6c1dfbcddd406b926 /packages | |
| parent | 10ff6e9830f0ee8d6abe00212929872b33fe9028 (diff) | |
| download | opencode-28d8af48a0d3753e0f844704b8834dcb7bda061d.tar.gz opencode-28d8af48a0d3753e0f844704b8834dcb7bda061d.zip | |
add parent id to assistant messages
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/session/compaction.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/session/message-v2.ts | 2 | ||||
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 11 |
3 files changed, 10 insertions, 4 deletions
diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index e3041b40a..2209fda56 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -109,6 +109,7 @@ export namespace SessionCompaction { const msg = (await Session.updateMessage({ id: Identifier.ascending("message"), role: "assistant", + parentID: toSummarize.findLast((m) => m.info.role === "user")?.info.id!, sessionID: input.sessionID, system, mode: "build", diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 1c56cef37..1b17764a5 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -278,6 +278,7 @@ export namespace MessageV2 { ]) .optional(), system: z.string().array(), + parentID: z.string(), modelID: z.string(), providerID: z.string(), mode: z.string(), @@ -346,6 +347,7 @@ export namespace MessageV2 { if (v1.role === "assistant") { const info: Assistant = { id: v1.id, + parentID: "", sessionID: v1.metadata.sessionID, role: "assistant", time: { diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index fa9d7f633..717fbc241 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -235,7 +235,7 @@ export namespace SessionPrompt { modelID: model.info.id, }) step++ - await processor.next() + await processor.next(msgs.findLast((m) => m.info.role === "user")?.info.id!) await using _ = defer(async () => { await processor.end() }) @@ -900,9 +900,10 @@ export namespace SessionPrompt { let snapshot: string | undefined let blocked = false - async function createMessage() { + async function createMessage(parentID: string) { const msg: MessageV2.Info = { id: Identifier.ascending("message"), + parentID, role: "assistant", system: input.system, mode: input.agent, @@ -938,11 +939,11 @@ export namespace SessionPrompt { assistantMsg = undefined } }, - async next() { + async next(parentID: string) { if (assistantMsg) { throw new Error("end previous assistant message first") } - assistantMsg = await createMessage() + assistantMsg = await createMessage(parentID) return assistantMsg }, get message() { @@ -1424,6 +1425,7 @@ export namespace SessionPrompt { const msg: MessageV2.Assistant = { id: Identifier.ascending("message"), sessionID: input.sessionID, + parentID: userMsg.id, system: [], mode: input.agent, cost: 0, @@ -1696,6 +1698,7 @@ export namespace SessionPrompt { const assistantMsg: MessageV2.Assistant = { id: Identifier.ascending("message"), sessionID: input.sessionID, + parentID: userMsg.id, system: [], mode: agentName, cost: 0, |
