## Changelog
### v1.5.6
* Reliability: Watcher no longer exits when all include paths are temporarily inaccessible during watch registration.
* Reliability: Permission-denied watch registration now logs a warning and keeps daemon alive.
* Reliability: Added periodic re-registration retries so previously inaccessible include paths can become watched later without restart.
### v1.5.5
* Fix: Watcher startup now skips inaccessible include paths (permission denied) instead of exiting and crashing systemd restart loops.
* Reliability: Watcher now fails only when zero include paths are watchable, with a clear startup error.
### v1.5.4
* Fix: Added SQLite lock resilience on connection setup via `busy_timeout` and WAL-oriented pragmas.
* Fix: Reduced startup lock contention by skipping schema write-intent operations when DB schema is already current.
### v1.5.3
* Performance: Added single-writer batched transactional watcher apply path (`apply_batched_updates`) to reduce SQLite lock churn during event bursts.
* Performance: Switched prune flow to SQL-assisted incremental cursor-based batches (`prune_missing_files_incremental`) with adaptive interval scheduling.
* Reliability: Added signal-aware graceful watcher shutdown (`SIGINT`, `SIGTERM`) to reduce abrupt termination risk.
* Reliability: Added optional polling watcher fallback mode (`--watch-poll`, `--watch-poll-interval-ms`) for filesystems with unreliable native notifications.
* Observability: Added watcher health telemetry in verbose mode (events/sec, flush/prune latency, row counters) and backpressure warnings.
* Test: Added poll-backend e2e coverage and updated watcher e2e harness for stoppable backends.
### v1.5.2
* Added: integration/e2e watcher harness (`tests/watcher_e2e.rs`) covering create/rename/delete bursts under real OS filesystem event streams.
* Added: integration/e2e coverage for editor temp-file patterns (e.g. `*.swp`, `*.tmp`, `*~`, hidden temp files) to validate ignore behavior in watch mode.
* Improved: watcher change handling for rename/remove edge cases and graceful test-time shutdown support.
### v1.5.1
* Added: `--watch` mode for near real-time background index sync using filesystem notifications.
* Added: incremental DB sync helpers for delete/prune workflows (`remove_file`, `remove_files_under_prefix`, `prune_missing_files`).
* Added: watcher event debounce + scoped reindex strategy to keep updates responsive without full reindex each change.
### v1.5.0
* Added: Database schema versioning with migration scaffolding (PRAGMA `user_version`) to support safer future upgrades.
* Added: Metadata columns and migration backfill flow in `files` table (`basename`, `ext`, `dir`, `mtime`, `indexed_at`).
* Added: `usage_stats` table + supporting indexes as roadmap groundwork for future usage-aware ranking.
* Added: migration integrity tests for fresh and legacy database states.
### v1.4.5
* Fix: Wildcard queries now highlight matched result segments in the TUI (e.g. `.ts?` highlights `tsx`).
### v1.4.4
* Fix: `?` wildcard now works independently in extension filters (e.g. `.ts?`) without requiring a leading `*`.
### v1.4.3
* Improved: Wildcard pattern filters now support expected glob semantics, including `*` for any-length and `?` for exactly one character (e.g. `*.ts?`).
### v1.4.2
* Improved: Search input now supports `Ctrl+Shift+Left/Right` to expand or shrink text selection by word boundaries.
### v1.4.1
* Improved: Search input selection now supports `Ctrl+C`, `Ctrl+X`, and `Ctrl+V` clipboard-style editing behavior.
### v1.4.0
* Improved: Added richer result navigation in Results focus (`PageUp`, `PageDown`, `Home`, `End`).
* Improved: Added `Alt+Backspace` in Search focus to delete one word at a time.
* Improved: Added text selection support in Search focus for `Shift+Home` and `Shift+End` with visual highlighting.
* Improved: Query UX now supports combined directory + extension behavior like `.tsx /src`.
### v1.1.1
* Improved: Enhanced search functionality in `src/db.rs` to support tokenized searches (e.g., "hans mp3" for "Hans Zimmer Time.mp3") and generalized file extension matching (e.g., ".mp3").
* Improved: Choose your desired editor from the `editor` configuration option
* Fix: Keep the count of ignored items.
* Fix: Consider all inclusion paths.