Releases: Himath-Rajapaksha/AFO
Releases · Himath-Rajapaksha/AFO
Release list
v3.1.1 — Update mechanism test
Trivial version bump to test the auto-update mechanism from v3.1.0. No feature changes.
v3.1.0 — Auto-Updates + Rule Import/Export + History Search
What's New
Phase 1: Rule Import/Export + History Search & Filtering
- Rule Import/Export: Export rules as JSON, import with conflict resolution dialog
- History Search: Search by filename substring (server-side, searches full database)
- History Filters: Filter by operation type (move/copy/rename/delete) and date range
- 17 tests passing (import validation + search/filter + round-trip diff)
Phase 2: Auto-Updates
- Built-in update checker using tauri-plugin-updater
- Checks for updates on app start + every 60 minutes
- Toast notification with version, release notes, and install button
- Signed update artifacts for security verification
Bug Fixes
- Journal initialization race condition on Windows (retry mechanism)
Testing the Updater
- Install v3.0.3 (previous version)
- This v3.1.0 release is the first with updater support
- The app will check for updates and notify you when available
v3.0.3 — Disable DevTools + Light Theme Fix
Changes
- Removed devtools access from production builds
- Fixed light theme font colors in Rule Builder visual editor (v3.0.2)
Packages
AFO_3.0.3_amd64.deb— Debian/UbuntuAFO-3.0.3-1.x86_64.rpm— Fedora/RHELafo.exe— Windows x64 (standalone)
v3.0.1 — New AFO Icon + Linux Icon Fix
Changes
- Replaced icon with new blue AFO funnel icon across all platforms
- Fixed Linux desktop icon: added standard hicolor sizes (32x32, 48x48, 64x64, 128x128, 256x256, 512x512)
- Previous deb only shipped 2048x2048 which GNOME ignores for app icons
- Generated proper .icns for macOS, .ico for Windows, all iOS/Android sizes
Packages
AFO_3.0.1_amd64.deb— Debian/UbuntuAFO-3.0.1-1.x86_64.rpm— Fedora/RHEL
v3.0.0 — Major Release
v3.0.0 Release
New Features
- Tutorial Panel — dedicated onboarding panel in sidebar (no modal overlay)
- Storage Redesign — macOS-style drive detection with auto-scan
- Live Capture Remove — button to remove watched directories
- New Blue App Icon — updated branding
Bug Fixes
- CommandPalette: stopPropagation prevents accidental close
- Storage bar now works for custom directories
- Eliminated modal overlay bugs
Artifacts
- AFO_3.0.0_amd64.deb
- AFO-3.0.0-1.x86_64.rpm
AFO v2.5.49
Fix notification toast in live capture mode by standardizing event name to 'afo://file_change'. See Project_Log.md for full changelog.
AFO v2.5.48
Fix double-toast in auto-organize mode
This release fixes a bug where the activity event was being emitted twice for auto-organize mode, causing duplicate toasts in the Live Capture panel.
Changes:
- Fix duplicate activity events when capture mode is AutoOrganize
- Only emit activity event if capture_result is not AutoOrganized
- The afo://file-change event already handles the toast for auto-organize
- Bump version to 2.5.48
Assets:
- AFO_2.5.48_amd64.deb (Debian package)
- AFO-2.5.48-1.x86_64.rpm (RPM package)
v2.5.47 — Sidebar Collapse + Live Capture Toast Fix
v2.5.47 — Sidebar Collapse + Live Capture Toast Fix
New Features
- Sidebar collapse-to-icons toggle. Click the chevron at the bottom of the sidebar to collapse it to a 60px icon-only rail (like VS Code's activity bar). Labels hide, icon tiles remain with tooltips on hover. State persists to localStorage across restarts.
Bug Fixes
- Live Capture toast notifications now work correctly for all capture modes. Diagnosed as event double-fire: both
afo://pending-actionandafo://file-changewere emitted for NotifyOnly mode, causing competing toasts where the first could be auto-dismissed. Consolidated to a singleafo://file-changeevent with typedchange_typefield. - Added Live Capture notification toggle in Settings > Notifications, matching the existing operationComplete/scheduledRun/errorAlerts pattern. Toasts now respect this toggle.
Changes
- Version bump to 2.5.47 across all files + GUI labels
- Sidebar uses Framer Motion for smooth width transitions
- Sidebar collapse state persisted via localStorage
v2.5.45 — Live Capture Toast Fix
v2.5.45 — Live Capture Toast Fix
Bug Fixes
- Live capture toast notifications now work for all capture modes. Previously, toasts only appeared for NotifyOnly (pending-action) and AutoOrganize with matching rules. FullCapture and AutoOrganize-without-rule-match produced no toast at all.
- Added
afo://file-changeevent emitted for every file change in any watched directory, with achange_typefield indicating what happened. - Frontend listens for the new event and shows a contextual toast regardless of capture mode.
Previous v2.5.45 features
- Critical security + journal integrity fixes
- Watcher events detection fix (unbounded channel)
v2.5.44 — Performance Efficiency Audit
Performance Efficiency Audit — 7 High-Impact Fixes
Backend
Database (journal.rs)
- Added index on
operations.reverted— undo/redo queries now use index instead of full table scan - Added
PRAGMA busy_timeout = 5000— graceful handling under contention
Watcher (watcher.rs)
- Consolidated double Mutex lock into single acquisition — 50% less lock contention on hot path
Rule Engine (rule_engine.rs)
- Changed regex cache from
MutextoRwLock— concurrent reads no longer serialized
Duplicates (duplicates.rs)
- Eliminated triple
fs::metadataper file — carry size/modified through pipeline (saves ~20K stat calls per 10K files)
Organizer (organizer.rs)
- Added extension check before metadata extraction — skip EXIF/audio parsing for non-media files (saves ~1800 file opens per 1000 mixed files)
Channel (lib.rs)
- Increased watcher channel capacity 100 → 1000 — prevents event loss during bulk file operations
Frontend
App.tsx — Conditional rendering
- Replaced
display: nonepattern with conditional rendering - Only the active panel is mounted — eliminates 6 unnecessary component trees at startup
- Stops LiveCapture 5s polling when panel inactive (~48 API calls/min saved)
- Stops ChangeTimeline 10s polling when panel inactive (~6 API calls/min saved)
Impact Summary
| Fix | Before | After |
|---|---|---|
| DB index on reverted | Full table scan | Index seek |
| Mutex contention | 2 locks per event | 1 lock per event |
| Regex cache reads | Serialized | Concurrent |
| Metadata reads per file | 3 stat() calls | 1 stat() call |
| Non-media metadata | Always extracted | Skipped |
| Channel capacity | 100 (event loss) | 1000 (no loss) |
| Panel mounting | All 7 always mounted | Only active panel |
Packages
AFO_2.5.44_amd64.deb— Debian/UbuntuAFO-2.5.44-1.x86_64.rpm— Fedora/RHEL