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 ✓
This commit is contained in:
admin
2026-05-23 12:14:04 +04:00
Unverified
parent 0c4b0b9338
commit f7378eceb0
7 changed files with 80 additions and 68 deletions

10
dist/main.js vendored
View File

@@ -156,12 +156,9 @@ electron_1.app
providerService = new providerService_1.ProviderService(storageManager);
console.log(`[Provider] Active provider: ${providerService.getActiveProvider()}`);
// Start API proxy if a non-Gemini provider is active
if (providerService.needsProxy()) {
apiProxy = new apiProxy_1.ApiProxy(providerService);
apiProxy.start();
console.log(`[Provider] API proxy started for ${providerService.getActiveProvider()}`);
}
// NOTE: Translation proxy is now started by ensureProxyStarted() in languageServer.js
// which reads ~/.codex/endpoints.json (synced by syncProviderToEndpoints) and spawns
// the Node.js translation proxy on port 48080. No duplicate proxy needed here.
// Handle deep link URL from command line arguments (All platforms)
const deepLinkFromArg = process.argv.find((arg) => arg.startsWith('ag-x://'));
@@ -469,6 +466,7 @@ function showWelcomeScreen(mainUrl) {
} catch(e) { console.error('[Welcome] Failed to set Google endpoint:', e); }
welcomeWin.close();
// Don't createWindow here — LS hasn't started yet, main window opens after LS starts
return; // Don't fall through to resolve() again
} else {
console.log('[Welcome] User chose custom provider — opening settings');
welcomeWin.close();