Fix: multiple bug fixes and test suite repairs - #30
Conversation
Three high-impact bugs found during full codebase audit: 1. Auto-save only saved the active tab — background dirty tabs were never auto-saved, risking data loss on crash. Now iterates all tabs with per-tab debounce tracking. 2. Quit broadcast caused race condition — all windows received quit events simultaneously, causing overlapping save dialogs. Now processes windows sequentially via an ordered queue with acknowledge/cancel protocol. 3. File watcher blind spots on tab switch — in non-workspace mode, the watcher only monitors the active tab's directory. Added a hook that checks file freshness from disk when switching tabs. Also clears LAST_EMITTED debounce state in stop_all_watchers to prevent stale entries from suppressing future events. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Relax the IME grace period guard in handleTextInput (only block during active composition, not the 50ms grace window) so quick IME-produced punctuation like " triggers auto-pair. Add compositionend handler that applies auto-pair/skip-over logic for composed single characters after ProseMirror commits the text. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nd stale match count - Clean up zombie tab and show error toast when readTextFile fails in openFileInNewTab - Track find direction explicitly in searchStore to fix wrap-around navigating wrong way - Poll for document changes in source editor search to keep match count fresh while editing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add localStorage mock for zustand persist middleware, mock module files and vitest aliases for @panzoom/panzoom and tauri-pty so Vite can resolve imports before vi.mock intercepts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Thanks for the comprehensive work here! There are some genuinely good fixes in this PR, but a few concerns prevent us from merging as-is. What looks good
Concerns1. Cargo.lock bumps Tauri 2.9.5 → 2.10.2 (and wry 0.53 → 0.54)This is a significant runtime change — the webview layer itself changed minor versions. This kind of dependency bump should be a separate, isolated PR so we can test for visual and behavioral regressions independently. Bundling it with functional changes makes it hard to bisect if something breaks. 2. IME auto-pair
|
Issues fixed: - #6: Add StatusBar warning when auto-save paused (file missing) - #15: Use Documents folder instead of Home for default save location - #19: Fix race condition in recent files menu by storing snapshot in Rust - #30: Fix dock icon drop when no document windows exist - #35: Show toast notification when file auto-reloads - #37: Add "Restore to Disk" context menu for missing files Additional improvements: - Add toast on pinned tab close attempt (#7) - Add toast on save failure (#5/#14) - Add toasts for drag-drop failures (#25, #26, #27) - Improve cold start file open reliability (#9, #34) - Fix no-window menu operations (#17, #18, #21)
Summary
@panzoom/panzoomandtauri-ptyso all 231 test files (3981 tests) passTest plan
🤖 Generated with Claude Code