diff --git a/chat/public/builder.js b/chat/public/builder.js index 510ae6c..a5dc83e 100644 --- a/chat/public/builder.js +++ b/chat/public/builder.js @@ -329,8 +329,13 @@ async function redoMessage(msg, session) { .slice(0, messageIndex) .some(m => m.cli === 'opencode'); - // Only undo if there are previous opencode messages - if (hasPreviousOpencodeMessages) { + // Check if any previous messages had output (files were changed) + const hasPreviousOutput = session.messages + .slice(0, messageIndex) + .some(m => m.cli === 'opencode' && (m.reply || m.partialOutput)); + + // Only undo if there are previous opencode messages AND they produced output + if (hasPreviousOpencodeMessages && hasPreviousOutput) { try { await api(`/api/sessions/${session.id}/messages/${msg.id}/undo`, { method: 'POST', @@ -340,7 +345,7 @@ async function redoMessage(msg, session) { console.warn('Undo failed, continuing with redo:', err.message); } } else { - console.log('First build message - skipping undo, proceeding directly to rebuild'); + console.log('No previous output to undo - skipping undo, proceeding directly to rebuild'); setStatus('Starting build...'); }