diff --git a/src/hooks/session-recovery.ts b/src/hooks/session-recovery.ts index ddb19d6..32f5627 100644 --- a/src/hooks/session-recovery.ts +++ b/src/hooks/session-recovery.ts @@ -70,7 +70,10 @@ function detectErrorType(error: unknown): RecoveryErrorType { return "tool_result_missing" } - if (message.includes("thinking") && message.includes("first block")) { + if ( + message.includes("thinking") && + (message.includes("first block") || message.includes("must start with") || message.includes("preceeding")) + ) { return "thinking_block_order" } diff --git a/src/index.ts b/src/index.ts index 41ed7a1..fc97408 100644 --- a/src/index.ts +++ b/src/index.ts @@ -136,7 +136,15 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { sessionID, error, } - await sessionRecovery.handleSessionRecovery(messageInfo) + const recovered = await sessionRecovery.handleSessionRecovery(messageInfo) + + if (recovered && sessionID && sessionID === mainSessionID) { + await ctx.client.session.prompt({ + path: { id: sessionID }, + body: { parts: [{ type: "text", text: "continue" }] }, + query: { directory: ctx.directory }, + }).catch(() => {}) + } } if (sessionID && sessionID === mainSessionID) {