Changelog

Release history and version notes.

v2.4.2

2026-07-10
White 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-10
WebView 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-04
Quick 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-03
Shutdown 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-22
Cargo 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-22
Nex not showing in Task Manager startup apps — background default conflict suppressed CLI commands

v2.2.1

2026-06-21
First hotkey after warm-release teardown — spurious Focused events during WebView rebuild dismissed overlay

v2.2.0

2026-06-21
SQLITE_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-20
Shutdown hang — OnceLock::clone deep copy hid thread ID from Drop, wrapped in Arc

v2.1.0

2026-06-20
Pre-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-18
Complete 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-28
D2D/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-25
Optimized icon caching with async painting and background refresh
Icon cache invalidation on file changes

v1.1.1

2026-05-24
Search 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-24
Everything 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-19
Inno Setup silent installation support for winget and package managers
PrivilegesRequiredOverridesAllowed uses commandline instead of dialog

v1.0.0

2026-05-17
Initial 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