Critical fixes:
- Translation proxy now uses system Node.js (not Electron binary)
- Removed duplicate proxy start causing port conflicts
- Added port availability check before spawning proxy
- Fixed welcome:choice double resolve()
- Fixed settings.html close using deprecated remote
- Fixed translationProxy /v1 for openai-compat backends
- Proxy no longer detached/unref - properly tracked as child
- SingletonLock cleanup on startup
Verified E2E:
- Welcome screen on first run ✓
- Provider selection works ✓
- Settings save + sync ✓
- Translation proxy starts correctly ✓
- LS connects to proxy ✓
- --ag-reset works ✓
Critical fixes:
- ALWAYS sync active AG X provider to endpoints.json on startup
(previously only synced on first run, causing LS to use stale data)
- Add --no-sandbox to proxy process spawns (fixes SIGTRAP crash on Linux)
- Add --no-sandbox for all Electron modes (not just headless)
- Add --ag-reset flag to re-trigger welcome screen
- Bump version to 2.0.4
Root causes fixed:
1. endpoints.json was never updated after first-run, so LS used wrong provider
2. Electron child processes (translation proxy) crashed due to SUID sandbox
3. No way to re-show provider selection after initial setup
Features:
- Welcome screen on first run (provider choice before LS starts)
- 15+ AI providers (Google Gemini, OpenAI, Anthropic, DeepSeek, Ollama, etc.)
- Provider config syncs to endpoints.json for translation proxy
- Built-in Node.js translation proxy for non-native backends
- Auto-update support, tray integration, URI scheme handler