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 ✓
37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
# 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 `apiProxy` — `ensureProxyStarted()` 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
|
|
|