Files
ag-x/CHANGELOG.md
admin f7378eceb0 v2.0.5: Fix E2E flow - proxy, welcome screen, provider sync
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 ✓
2026-05-23 12:14:04 +04:00

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.execPath would start a GUI process instead of CLI Node
    • Now: Auto-detects system Node via which node fallback to /usr/bin/node
  • Critical: Removed duplicate proxy start (was running proxy twice, causing port conflicts)
    • main.js no longer starts apiProxyensureProxyStarted() in languageServer.js handles it
  • Critical: Added port 48080 availability check before spawning proxy
    • Prevents duplicate proxy processes from leftover/orphaned instances
  • Fixed: Welcome screen welcome:choice handler had double resolve() call
    • Added return after Google Gemini handler to prevent fallthrough
  • Fixed: settings.html close button used deprecated remote.getCurrentWindow()
    • Now uses ipcRenderer.send('provider:close-settings') exclusively
  • Fixed: translationProxy.applyConfig() now appends /v1 for openai-compat backends
  • Fixed: Proxy process is no longer detached:true with unref() — 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.json on 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-reset flag correctly re-triggers welcome screen
  • Proxy survives LS restarts and port changes