fix: reset opencode session when undoing failed messages

When a message fails with zero output and error status, undoing it now
resets the opencode session to ensure the next message starts fresh.
This prevents corrupted session reuse that was causing subsequent failures.
This commit is contained in:
southseact-3d
2026-02-17 19:14:05 +00:00
parent d4232d487d
commit 86bd6ff332

View File

@@ -17354,6 +17354,19 @@ async function handleUndoMessage(req, res, sessionId, messageId, userId) {
});
} else {
log('Skipping undo command - message had zero output', { sessionId, messageId });
// If the message failed/had error, reset the opencode session to ensure fresh start
if (message.error || message.status === 'error') {
log('Resetting opencode session due to failed message', {
sessionId,
messageId,
previousSessionId: session.opencodeSessionId,
messageStatus: message.status,
hasError: !!message.error
});
session.opencodeSessionId = null;
session.initialOpencodeSessionId = null;
}
}
// Clear todos from the message when undone