FrameScout — Offline AI Search: v3.0.3 — Backend-Persistent Smart Folders, On-Demand OCR & Storage Cleanup
FrameScout — Offline AI Search: v3.0.3 — Backend-Persistent Smart Folders, On-Demand OCR & Storage Cleanup
Release date: 2026-08-10
This release brings three major improvements: fully backend-driven Smart Folders, on-demand OCR for selected files with custom languages, and complete removal of browser-local storage dependencies. Smart Folders are now truly persistent — surviving database backups, app reinstalls, and cross-machine transfers. OCR can be triggered independently on any indexed file with language-specific settings. Plus, we've fixed the misleading (0) badge on vector-only folders and cleaned up legacy localStorage remnants.
✨ What's New
📁 Backend-Driven Smart Folders
- Smart Folder definitions are stored exclusively in SQLite (
smart_folderstable). - New backend command
execute_smart_folderperforms the search natively using the same engine as manual queries. - Frontend no longer caches any folder rules — no more lost folders after clearing browser data.
- Each folder displays a live
match_countbadge. Pure vector folders show?instead of0for honest indication.
🔍 On-Demand OCR for Selected Files
- Run OCR on specific files with custom language codes (e.g.,
en,ch_sim,ja). - The
run_ocr_for_selected_filescommand updates both SQLite and in-memory metadata instantly. - A dedicated OCR button appears on each search result card; click it to trigger OCR with your preferred language.
- Language configuration is now fully separated from the scan/index process — you can index first, OCR later.
🧹 Complete Removal of Browser Storage
- The
savePathfunction and its associatedlocalStorage.setItemcalls have been deleted. - On startup, any remaining
framescout_smart_foldersorframescout_folder_pathkeys are cleared. - The folder path input no longer persists across sessions (future versions may add backend-based preference storage).
🐛 Bug Fixes
- Smart Folder count showing
0even when matching files exist (vector-only folders now display?). - Runtime error caused by calling a commented-out
savePathfunction. - Potential duplication of Smart Folders due to old localStorage data merging with backend data.
- OCR results not reflected in in-memory metadata after on-demand update.
🔧 Under the Hood
get_smart_foldersnow computesmatch_countby scanning in-memory metadata for text matches.SmartFolderstruct extended withmatch_count: usize.- Frontend
applySmartFolderdelegates entirely toexecute_smart_folder. - Template updated to conditionally render
?for pure vector folders. run_ocr_for_selected_filesnow properly updates both SQLite andFlatVectorMatrixmetadata.- Scan/index commands accept explicit
enable_ocrandocr_languagesparameters.
📋 Upgrade Notes
- No model re-download required — SigLIP 2 models from v3.0.1 remain unchanged.
- Existing Smart Folders in the database are automatically compatible; no migration needed.
- If you previously relied on
localStoragefor folder path memory, you'll need to re-enter the path after upgrading (we recommend using the Browse button). - On-demand OCR uses the same EasyOCR models already present in
models/easyocr/.
🙏 Tech Stack
Google SigLIP 2 · ONNX Runtime · EasyOCR · Tauri · ZeroMQ · Protobuf · Rust + Vue 3
Full Changelog: v3.0.2...v3.0.3
The packaged exe is only about 5 MB.