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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user