You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Helper crash loop: ConnectNamedPipe success check was inverted — helper exited immediately on first connect. Fixed.
Tray quit deadlock: Pipe reader thread joined in Drop — blocked forever on BufReader::lines(). Changed to detach.
Helper binary casing: nex-helper.exe renamed to NexHelper.exe for readable Task Manager display.
Scheduled task stale path: ensure_helper_task() now queries actual command path via PowerShell and recreates on mismatch.
Installer flash: Eliminated 3 CLI spawns (--ensure-config, --set-launch-at-startup) — replaced with direct registry writes and taskkill. StopNexRuntime() guarded behind IsNexInstalled().
Non-Win hotkey hide: Chromium's WH_KEYBOARD_LL hook ran before ours and ate key events. Fixed with dual detection path: hook when hidden, WM_INPUT when visible.
Win key stuck-down: Key-up was eaten → GetAsyncKeyState(VK_LWIN) stayed TRUE → pressing "e" opened Explorer. Fixed by passing key-up through.
Performance
Just-in-time helper: Helper no longer runs at boot. Spawned on-demand via scheduled task when hotkey starts, exits when nex exits (process handle in MsgWaitForMultipleObjects).
UAC elimination: ShellExecuteExW(runas) replaced with scheduled task — zero UAC prompts after first-time task creation.
Architecture
Elevated helper: New apps/helper workspace member runs at High IL via scheduled task. Handles SetForegroundWindow from elevated windows (Task Manager, Settings).
Win key suppression: RIDEV_NOHOTKEYS at RIT level replaces SendInput(0xE8) race — Start menu reliably suppressed.
Packaging: All 6 scripts updated to bundle NexHelper.exe. Inno Setup installer uses registry for startup registration. ForceStopRuntimeByPath uses taskkill instead of PowerShell.