diff options
| author | Aiden Cline <[email protected]> | 2025-11-25 12:10:56 -0600 |
|---|---|---|
| committer | Aiden Cline <[email protected]> | 2025-11-25 12:11:09 -0600 |
| commit | 020ee56f25b58103a787d1c96b326e31b495ad06 (patch) | |
| tree | d5cd0dad7ad0575d044ca9c327f1e6d588362ef5 | |
| parent | 87b295bc3d43c011ef96153439c4e3d64a9b0a88 (diff) | |
| download | opencode-020ee56f25b58103a787d1c96b326e31b495ad06.tar.gz opencode-020ee56f25b58103a787d1c96b326e31b495ad06.zip | |
fix: dont auto continue if compaction was manual
| -rw-r--r-- | packages/opencode/src/server/server.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/session/compaction.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/session/message-v2.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 2 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/types.gen.ts | 1 |
5 files changed, 9 insertions, 1 deletions
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 51240ae2e..65c635ee1 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -830,6 +830,7 @@ export namespace Server { providerID: body.providerID, modelID: body.modelID, }, + auto: false, }) await SessionPrompt.loop(id) return c.json(true) diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 1255d39f0..e985372a1 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -95,6 +95,7 @@ export namespace SessionCompaction { } agent: string abort: AbortSignal + auto: boolean }) { const model = await Provider.getModel(input.model.providerID, input.model.modelID) const system = [...SystemPrompt.compaction(model.providerID)] @@ -198,7 +199,7 @@ export namespace SessionCompaction { }), }), ) - if (result === "continue") { + if (result === "continue" && input.auto) { const continueMsg = await Session.updateMessage({ id: Identifier.ascending("message"), role: "user", @@ -234,6 +235,7 @@ export namespace SessionCompaction { providerID: z.string(), modelID: z.string(), }), + auto: z.boolean(), }), async (input) => { const msg = await Session.updateMessage({ @@ -251,6 +253,7 @@ export namespace SessionCompaction { messageID: msg.id, sessionID: msg.sessionID, type: "compaction", + auto: input.auto, }) }, ) diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 20b612f54..1a9b08d12 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -146,6 +146,7 @@ export namespace MessageV2 { export const CompactionPart = PartBase.extend({ type: z.literal("compaction"), + auto: z.boolean(), }).meta({ ref: "CompactionPart", }) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 741e3cc7e..e6c64f96b 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -408,6 +408,7 @@ export namespace SessionPrompt { modelID: model.modelID, }, sessionID, + auto: task.auto, }) if (result === "stop") break continue @@ -423,6 +424,7 @@ export namespace SessionPrompt { sessionID, agent: lastUser.agent, model: lastUser.model, + auto: true, }) continue } diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts index fdb6dcd64..2de8ca2f1 100644 --- a/packages/sdk/js/src/gen/types.gen.ts +++ b/packages/sdk/js/src/gen/types.gen.ts @@ -371,6 +371,7 @@ export type CompactionPart = { sessionID: string messageID: string type: "compaction" + auto: boolean } export type Part = |
