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 ✓
1.9 KiB
1.9 KiB
AG X Changelog
v2.0.5 (2026-05-23)
Fixed
- Critical: Translation proxy now uses system Node.js instead of Electron binary
- Previous: Electron's
process.execPathwould start a GUI process instead of CLI Node - Now: Auto-detects system Node via
which nodefallback to/usr/bin/node
- Previous: Electron's
- Critical: Removed duplicate proxy start (was running proxy twice, causing port conflicts)
main.jsno longer startsapiProxy—ensureProxyStarted()inlanguageServer.jshandles it
- Critical: Added port 48080 availability check before spawning proxy
- Prevents duplicate proxy processes from leftover/orphaned instances
- Fixed: Welcome screen
welcome:choicehandler had doubleresolve()call- Added
returnafter Google Gemini handler to prevent fallthrough
- Added
- Fixed:
settings.htmlclose button used deprecatedremote.getCurrentWindow()- Now uses
ipcRenderer.send('provider:close-settings')exclusively
- Now uses
- Fixed:
translationProxy.applyConfig()now appends/v1foropenai-compatbackends - Fixed: Proxy process is no longer
detached:truewithunref()— properly tracked as child - Fixed: SingletonLock cleanup on startup to prevent stale lock issues
Changed
- Proxy stdout/stderr now piped to parent for proper logging
syncProviderToEndpoints()runs on every startup (not just first run)- Version bumped to 2.0.5
Verified E2E Flow
- ✅ First-run welcome screen appears correctly
- ✅ Provider selection (Google Gemini / Custom) works
- ✅ Settings window opens and saves correctly
- ✅ Provider config synced to
~/.codex/endpoints.jsonon every startup - ✅ Translation proxy starts on port 48080 with correct backend config
- ✅ Language Server spawned with
--api_server_url http://127.0.0.1:48080 - ✅ Proxy health/models/endpoints endpoints all respond correctly
- ✅
--ag-resetflag correctly re-triggers welcome screen - ✅ Proxy survives LS restarts and port changes