Release Notes - 3.13.2
FilterBar and Saved Views
- Fixed performance issue where adding new filter conditions would unnecessarily re-evaluate all existing filters
- Added "Select..." placeholder option for new filter conditions to prevent premature filtering
- Eliminated unnecessary cache re-indexing when saving or deleting saved views
- Made settings system smarter to only trigger cache updates when indexing-related settings actually change
Filter Processing
- Implemented index-backed filtering that processes significantly fewer tasks for filtered views
- Added intelligent query result caching with automatic expiration to eliminate redundant operations
- Improved candidate selection using existing status, date, and overdue task indexes
- Enhanced set intersection logic for multiple AND conditions to further reduce processing
Bug Fixes
Filter Logic
- Fixed critical bug where index optimization incorrectly excluded valid results for OR queries containing indexed conditions
- Added detection logic to prevent unsafe optimizations when indexed conditions are part of OR groups
- Improved query structure analysis to ensure filter correctness
Saved Views
- Fixed issue where modifying one saved view could affect others due to shared object references
- Added proper deep cloning of FilterQuery objects throughout the ViewStateManager
- Ensured saved views remain independent when modified
Technical Details
Index Optimization Safety
- Index optimizations now only apply when provably safe (AND relationships between indexed conditions)
- Added recursive query analysis to detect OR groups containing indexed conditions
- Maintains filter correctness while providing performance benefits where safe
Cache Management
- Cache-related settings tracking: taskTag, excludedFolders, disableNoteIndexing, storeTitleInFilename, fieldMapping
- Query result caching with 30-second auto-expiration and immediate invalidation on data changes
- Debug logging available for performance monitoring
- Filter building is now responsive with no lag when adding conditions
- Saved view operations are instant with no unnecessary re-indexing
- Repeated filter operations are nearly instant due to intelligent caching
- Significant memory usage reduction for large vaults