Electron UI fix for merge orcehstrator

This commit is contained in:
AndyMik90
2025-12-16 11:05:43 +01:00
parent e8b6669d92
commit e08ab62acb
2 changed files with 33 additions and 2 deletions
+12 -2
View File
@@ -44,8 +44,18 @@ export default defineConfig({
},
server: {
watch: {
// Ignore worktrees directory to prevent HMR conflicts during merge operations
ignored: ['**/.worktrees/**', '**/node_modules/**', '**/.git/**']
// Ignore directories to prevent HMR conflicts during merge operations
// Using absolute paths and broader patterns
ignored: [
'**/node_modules/**',
'**/.git/**',
'**/.worktrees/**',
'**/.auto-claude/**',
'**/out/**',
// Ignore the parent autonomous-coding directory's worktrees
resolve(__dirname, '../.worktrees/**'),
resolve(__dirname, '../.auto-claude/**'),
]
}
}
}
@@ -182,6 +182,25 @@ export function useTaskDetail({ task }: UseTaskDetailOptions) {
});
}, []);
// Restore merge preview from sessionStorage on mount (survives HMR reloads)
useEffect(() => {
const storageKey = `mergePreview-${task.id}`;
const stored = sessionStorage.getItem(storageKey);
if (stored) {
try {
const previewData = JSON.parse(stored);
console.log('%c[useTaskDetail] Restored merge preview from sessionStorage:', 'color: magenta;', previewData);
setMergePreview(previewData);
if (previewData.conflicts?.length > 0) {
setShowConflictDialog(true);
}
} catch (e) {
console.warn('[useTaskDetail] Failed to parse stored merge preview');
sessionStorage.removeItem(storageKey);
}
}
}, [task.id]);
// Load merge preview (conflict detection)
const loadMergePreview = useCallback(async () => {
console.log('%c[useTaskDetail] loadMergePreview called for task:', 'color: cyan; font-weight: bold;', task.id);
@@ -197,6 +216,8 @@ export function useTaskDetail({ task }: UseTaskDetailOptions) {
console.log(' - conflicts:', previewData.conflicts);
console.log(' - summary:', previewData.summary);
setMergePreview(previewData);
// Persist to sessionStorage to survive HMR reloads
sessionStorage.setItem(`mergePreview-${task.id}`, JSON.stringify(previewData));
// Show conflict dialog if there are conflicts that need attention
if (previewData.conflicts.length > 0) {
setShowConflictDialog(true);