Skip to content

WABS - v1.0.0-beta.5

Choose a tag to compare

@wizwin wizwin released this 28 May 11:39
· 94 commits to main since this release

Full Changelog: https://github.com/wizwin/WABS/commits/v1.0.0-beta.5

WABS v1.0.0-beta.5 - Massive Performance & AI Optimizations

Welcome to WABS v1.0.0-beta.5! This release focuses heavily on taking the app's performance to the next level. We've completely vectorized the offline AI engine, bypassed heavy ORM overheads for lightning-fast database writes, and integrated SQLite's JSON1 extension to unlock incredibly fast, native metadata searches.

Here is everything new, improved, and fixed in this update:

🚀 Major New Features

  • Combined AI Scanner: Added a new "Combined Scan" mode to optimize performance by scanning for files, faces, and objects simultaneously in a single pass.
  • Advanced JSON Search: Added high-speed JSON prefix searches (camera:, resolution:, fps:, artist:, album:, genre:, and the catch-all meta:) utilizing SQLite's JSON1 extension for native metadata querying.
  • Portable Data Export: Added JSON Export/Import tools for Known People and Object/Custom Tags. This includes a Smart Path Fallback Matcher so your tags and AI profiles survive drive letter changes and migrations!
  • People Timeline: Added a chronological Timeline View and "Full Archive Timeline" jump integration directly into the People Photos page.
  • Document Thumbnails: Added rich thumbnail generation support for .doc and .docx files.
  • Smart Search UI & People Management: Improved the user interface for Smart Search, renaming people, and resolving person mismatches.

✨ UI/UX Enhancements

  • Data Management Redesign: Completely redesigned the Data Management section in Settings with clean, descriptive UI cards.
  • Action Safety Locks: Added dynamic UI safety locks to maintenance tasks (like clearing cache, backups, and exports) to prevent data corruption while background scanners are running.

🛠 Build & CI

  • Raspberry Pi Build: Added a dedicated Raspberry Pi build target in GitHub Actions.
  • Build Selection: Added UI to pick the specific OS build target when running workflows manually.

⚡ Massive Performance Improvements

  • Vectorized AI Engine: Completely replaced slow Python math loops with optimized numpy vector and matrix multiplications for face clustering and similarity searches, dropping computation times from minutes to milliseconds.
  • Database Speedups: Bypassed heavy SQLAlchemy ORM instantiation overhead in the indexer, search, and duplicate hasher routines. Integrated bulk_update_mappings and raised batch commit thresholds from 50 to 500 for lightning-fast SQLite writes.
  • FTS5 Search & SQLite Tuning: Enabled WAL mode for improved concurrency, heavily optimized FTS5 trigger scoping to slash unnecessary disk I/O, and added Porter stemming and prefix tokenization for highly accurate partial filename matches.
  • JSON1 Hasher Optimization: Upgraded the background lazy hasher to use SQLite's native json_extract filtering, completely preventing already-verified duplicate files from being unnecessarily loaded into memory.
  • OOM Memory Optimizations: Resolved severe backend Out-Of-Memory crashes and SQLite lock contentions when scanning massive archives (>90,000 files) by implementing batched .yield_per() queries and ID-level tracking.

🐞 Bug Fixes

  • Database Cleanup & Optimization: Added a dedicated routine in Settings to automatically scan for missing files, remove dead links, purge orphaned AI profiles, and vacuum the SQLite databases to reclaim disk space.
  • CPU Drain Fix: Fixed a major bug where stopping the standalone face scan would fail to terminate the background loop, causing indefinite high CPU usage.
  • Connection Stability: Fixed backend HTTP connection drops ([WinError 10054]) during rapid frontend scrolling using AbortController network cancellation.
  • Database Limits: Fixed fatal SQLite OperationalError crashes during bulk tagging by chunking arrays to circumvent the hard 999 IN(...) variable limit.
  • Pagination & Navigation: Added robust pagination to the People Photos API to prevent browser freezing on profiles with thousands of matched faces. Fixed UI bugs when navigating away from the Duplicates page.
  • UI Polish: Fixed issues with re-applying batch processing, UI scaling when resizing the details pane, and missing selection highlights.

📥 Installation Instructions

  1. Download the standalone executable for your operating system below (WABS-Windows.exe, WABS-Linux, or WABS-RaspberryPi).
  2. Run the executable anywhere on your computer (no installation required!).
  3. Open your browser to http://127.0.0.1:8000
    (Note: If updating from an older beta, it is recommended to run the new Database Cleanup routine in Settings!)