Windows Native Support (PR #196) + P3 Fixes
Windows Fixes (via #196 by @KiraKas-Tr)
- Invisible tray icon —
icon_as_template(true)is macOS-only; now gated with#[cfg(target_os = "macos")] ~path not expanded — Auth-dir uses absolute path viadirs::home_dir()so Go sidecar no longer creates literal~directory on Windows- Port kill unreliable — PowerShell
Get-NetTCPConnectionreplaces fragilecmd for /f+ netstat parsing - Sidecar name mismatch —
cliproxyapi→cli-proxy-apiin capabilities - WSL detection slow — File-existence check (
wsl.exe) replaceswsl --statusspawn (saves 1-2s) - Unix-only env export syntax —
env_export_line()generates PowerShell$env:VAR = "value"on Windows - Shell profile missing — Targets PowerShell profile on Windows, auto-creates directory
- Auth files invisible when proxy down — Filesystem scan discovers
.jsonfiles not returned by Management API - Logs crash during startup — Connect/timeout errors return empty list instead of hard error
- Port conflict silent failure — Pre-flight
TcpListener::bindcheck with actionable hints (Docker Desktop, WSL2 portproxy) - Health-check waits 5s on crash —
AtomicBoolearly-exit flag aborts immediately - Loading screen stuck on init error —
setIsInitialized(true)moved tofinallyblock
P3 Refinements
- Platform-gated startup delay — 1500ms on Windows (TIME_WAIT lingering), 500ms on Unix
- Port pre-flight retry — 3 attempts × 200ms to reduce TOCTOU race window
- Provider filename mapping DRYed — Extracted to
utils::detect_provider_from_filename()+utils::provider_filename_prefixes(), replacing duplicate chains inauth_files.rsandauth.rs. Addedgithub-/aws-prefixes. Roundtrip tests verify consistency.
New Dependencies
tauri-plugin-osv2 (OS detection for platform-specific behavior)