v0.3.0
Highlights
- Display scan options on results page for better visibility into scan configuration
- Help tooltips throughout the UI for size formats, glob patterns, and deduplication actions
- User-friendly form validation with inline error messages
- Comprehensive test suite for regression safety (~100 new tests)
- CSRF protection on all forms
New Features
- Record and display scan options on results page
- Add help tooltips for size format and deduplication actions
- Add glob pattern help tooltip for include/exclude fields
- Detect pending input text and auto-add on form submit
- Improve form validation error display with user-friendly banners
Security
- Add CSRF protection to all forms
Bug Fixes
- Fix race condition in graceful shutdown
- Fix N+1 query in jobs list
- Fix memory leak in autocomplete event handlers
- Add memory bounds to progress line parsing
- Handle JSON marshal errors instead of ignoring
- Log database errors in scan progress updates
- Fix stat card overflow and job name autofill
- Fix spinner on Hardlink/Reflink buttons not showing
- Fix size parsing and display formatting
- Handle edge cases in path and size validation
- Improve subscriber slice handling in Unsubscribe
- Fix form change detection for dynamic list items
- Improve help popup positioning and mobile support
- Improve mobile form UX
Performance
- Add database connection pool configuration
- Fix N+1 query in jobs list (batch fetch last run IDs)
- Replace inefficient repeatString with strings.Repeat
Testing
- Add comprehensive test suite (~100 tests across 7 files)
- Add ExecutorInterface for dependency injection and mocking
- Add tests for config, fclones parsing, handlers, services, scheduler, and database
- Table-driven tests with edge case coverage
Refactoring
- Add ExecutorInterface for testability
- Improve formatSizeInput to prefer larger units (e.g., "1.5 MB" over "1500 KB")
- DRY scan functions using Scanner interface
- Remove duplicate showToast function
- Remove duplicate form submit handlers from templates
- Move help icons to labels, consolidate help text
Accessibility
- Add aria-labels to close and remove buttons
Style
- Use CSS variables for btn-danger hover states
Full Changelog: v0.2.2...v0.3.0