Changelog
Release history and version notes.
v2.4.2
2026-07-10White flash on open — quick launch items load into state before Show posted
Pulse on open — resize fires before painted, avoiding 60px initial height jump
Opacity flash on open — removed opacity 0→1 from row-in animation
Body flash on close — window hides before cleared state pushes
Divider visible on idle — idle class hides list area until rows render
v2.4.1
2026-07-10WebView stays warm for process lifetime — icon cache only trimmed on idle
Heap reclaimed on idle via icon cache clear while keeping WebView resident
README updated with Rust badge, warm-release description
v2.4.0
2026-07-04Quick Launch — pinned apps with hybrid model (pins when set, usage-based when empty)
Pinned items appear at top of search results
Icon extraction uses ExtractIconExW for highest-res (32/48/256px)
Overlay not opening — JavaScript regex syntax error prevented WebView ready signal
Config format — nested TOML structure for quick_launch, migration from old flat format
v2.3.1
2026-07-03Shutdown hang — COM STA deadlock fixed via MTA, FileWatcherHandle non-blocking drop
Startup unwrap hardened — 5 bare .unwrap() calls replaced with poisoned lock recovery
Arrow key ~1ms instead of ~20ms — UiCommand::SelectChanged sends lightweight JSON
Dual PostWebMessageAsJson — state lock hold reduced from ~5ms to ~0.1ms
Removed backdrop-filter saturate doubling compositor work
Row-in animation only on initial render, JS debounce 80ms→40ms
Persistent icon-prefetch thread replaces per-call thread spawning
last_touch unbounded growth — clean_orphaned_touches added
v2.3.0
2026-06-22Cargo package renamed from nex-launch to nex — CI and build-from-source work again
Update script pointing at wrong repo, now defaults to haxllo/nex
File watcher self-heals on event storm via incremental resync
Clipboard history off by default and encrypted at rest with DPAPI
Launch at startup defaults to true
Config generation counter clears search worker session on reload
v2.2.2
2026-06-22Nex not showing in Task Manager startup apps — background default conflict suppressed CLI commands
v2.2.1
2026-06-21First hotkey after warm-release teardown — spurious Focused events during WebView rebuild dismissed overlay
v2.2.0
2026-06-21SQLITE_BUSY launch freeze — launch reads from cache, WAL mode + busy timeout added
Warm-release hotkey miss — show_pending set before build_webview
FTS5 search backend removed — Tantivy is sole indexed search backend
Default hotkey changed to Ctrl+Space
Config hot-reload stale in search worker — Arc<RwLock<>> sharing
Console flash on launch — CREATE_NO_WINDOW for plugin/explorer spawns
Diagnostics privacy — raw config/logs opt-in, query text hashed
v2.1.1
2026-06-20Shutdown hang — OnceLock::clone deep copy hid thread ID from Drop, wrapped in Arc
v2.1.0
2026-06-20Pre-read ALL Tantivy segment files + SQLite DB into OS page cache — disk I/O eliminated from first keystroke
Icon decode throttle — first 8 sync, rest deferred, show latency cut ~60%
RwLock replaces Mutex<CoreService> — concurrent reads, no reader contention
Adaptive debounce — first char instant, rapid chars coalesced at 80ms
Search cache warmup on overlay show + stale prune off critical path
Overlay hang after first indexing — sync_indexes_from_cache short-circuits
Blank window on first hotkey — removed panel-in CSS animation causing opacity fade delay
Crate renamed nex-cli → nex-launch (binary stays nex.exe)
v2.0.0
2026-06-18Complete replacement of Iced/resvg/tiny-skia rendering with WebView2 (wry + tao)
DWM acrylic backdrop with native window shadow — no CSS shadow hacks
Warm-then-release — WebView built at startup, released ~5s after hide
Transparent icon — regenerated ico from SVG with true alpha transparency
Click-outside-to-dismiss with proper focus grace period
v1.3.0
2026-05-28D2D/DWrite rendering stack removed — GDI+ is now hard requirement
SpaceMono replaced with Inter as bundled font
register_private_fonts was searching Inter directories for SpaceMono filenames
All hanging ShellExecuteW tests fixed
v1.2.0
2026-05-25Optimized icon caching with async painting and background refresh
Icon cache invalidation on file changes
v1.1.1
2026-05-24Search now fully async — query processing moved to dedicated background thread
Overlay no longer freezes during search
Thread safety for CoreService with Arc<Mutex<CoreService>>
v1.1.0
2026-05-24Everything SDK integration — instant file search via Everything64.dll
Window management — eight preset tile layouts from command palette
Calculator (basic) — inline arithmetic evaluation in search bar
Plugin SDK foundations — JSON manifest loading and validation
Packaging bundles Everything64.dll, TLS 1.2 enforced
v1.0.1
2026-05-19Inno Setup silent installation support for winget and package managers
PrivilegesRequiredOverridesAllowed uses commandline instead of dialog
v1.0.0
2026-05-17Initial stable release — keyboard-first launcher for Windows
Global hotkey (Alt+Space) with customizable shortcut
Fuzzy search via Tantivy full-text search
App discovery from Start Menu and installed apps
File and folder indexing with real-time watching
Clipboard history (optional), plugin support, game mode