Repository navigation
v2.21.3
Search, icon, and watcher reliability
This release makes everyday searching feel steadier: results stay visible during background index work, icons arrive sooner without changing their appearance, and filesystem recovery is less likely to stall or lose track of changes.
What changed
- Steadier search results: Temporary index or lock contention no longer clears a valid result list while a newer query is still being processed.
- Faster cold icons: Visible icons are decoded first, background decoding uses multiple workers, and icon updates send only newly decoded images.
- Packaged-app icons: Store-app install locations are resolved natively and cached, avoiding repeated slow lookup work.
- Watcher recovery: Directory-change overflow now triggers a controlled full resync instead of blocking watcher processing.
- Hover rendering: Row hover no longer briefly disturbs text rendering.
- Post-update startup: Updating no longer launches Nex twice.
Performance
- Visible-first icons: The first eight result icons are prioritized before below-the-fold icons.
- Parallel decoding: Cold icon extraction uses up to four background workers.
- Smaller icon updates: Icon messages contain newly decoded images rather than re-encoding the complete icon snapshot.
- Cached package locations: Repeated packaged-app icon lookups reuse validated install locations.
Bug Fixes
- Empty search flashes: Older empty results can no longer overwrite newer populated results while typing.
- Watcher overflow: Zero-byte directory-change overflow is now treated as lost journal state and forces recovery.
- Repeated resync storms: Concurrent full-index resync requests are collapsed into a single background operation.
- Stale watcher updates: Events from an invalidated filesystem batch are discarded during recovery.
- Update restart: Only the updater restarts Nex after installation; the installer no longer starts a second runtime during updates.
- Hover text glitch: Redundant selection updates and animated row-background transitions were removed.
- CI pnpm setup: CI now uses the repository-pinned pnpm version instead of specifying a conflicting version.
Architecture
- Strict WebView messages: Overlay and settings messages use typed schemas, reject malformed or oversized payloads, and reject unknown actions.
- Asynchronous recovery: Filesystem resync work no longer blocks filesystem-event consumption.
- Deterministic icon ordering: Parallel icon decoding preserves visible-row order before delivery.
- CI release validation: CI now builds both release binaries and verifies their expected output paths.
Known issue
- Start-menu focus recovery: After opening Start, pressing the Nex hotkey, closing Start, and pressing the hotkey again, the panel can remain visible while typing still requires a manual click. Restarting Nex clears it. Tracked in
docs/issues/start-menu-focus-loss.md.
Commit Log
ba81a56fix(updater): avoid duplicate post-update launchb0ea9e0fix(ui): prevent hover text glitch0e3f4ebchore:notes4af5f89Harden WebView IPC: typed strict deserialization for overlay and settings8034d26fix(search): eliminate empty-flash paths with snapshot reads and generation guardsc56280cfix(ipc): bound row index, allow-list actions, require payload valuescb2fc18fix(discovery): last-wins watcher coalescing, overflow resync, Everything id match011d619fix(icons): swap cold icons without pop-in blinkdc6bda1fix(icons): decode first-query viewport inline, keep icons warm4cda3dcfix(icons): dedup decodes, drop stale tail without reprocessingc288e19fix(icons): peek stale-tail slot so newer batches keep their tail44200a0fix(runtime): prevent watcher and icon stalls659f940fix(runtime): stabilize focus recovery and accelerate icons2620183merge: integrate icon performance and focus recovery57e0245ci: harden Windows test workflow00af25dci: use repository pnpm version