fix: Provider sync on every startup + sandbox fixes (v2.0.4)
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
This commit is contained in:
14
dist/main.js
vendored
14
dist/main.js
vendored
@@ -81,12 +81,15 @@ let apiProxy;
|
||||
const HEADLESS = process.env.ELECTRON_OZONE_PLATFORM_HINT === 'headless';
|
||||
// When set, skip LS startup and load this URL directly (for dev iteration).
|
||||
const DEV_URL = process.env.DEV_URL;
|
||||
const AG_RESET = process.argv.includes('--ag-reset');
|
||||
if (HEADLESS) {
|
||||
electron_1.app.commandLine.appendSwitch('ozone-platform', 'headless');
|
||||
electron_1.app.commandLine.appendSwitch('headless');
|
||||
electron_1.app.commandLine.appendSwitch('disable-gpu');
|
||||
electron_1.app.commandLine.appendSwitch('no-sandbox');
|
||||
}
|
||||
// Always disable sandbox for Linux compatibility (SUID sandbox issues)
|
||||
electron_1.app.commandLine.appendSwitch('no-sandbox');
|
||||
if (!electron_1.app.commandLine.hasSwitch('remote-debugging-port')) {
|
||||
electron_1.app.commandLine.appendSwitch('remote-debugging-port', '0');
|
||||
}
|
||||
@@ -218,17 +221,16 @@ electron_1.app
|
||||
const csrf = crypto.randomUUID();
|
||||
console.log(`Starting app (v${electron_1.app.getVersion()}) with dynamic port…`);
|
||||
// Check if first run BEFORE starting LS so we can configure provider first
|
||||
const isFirstRun = !fs_1.existsSync(providerService.configPath);
|
||||
const isFirstRun = !fs_1.existsSync(providerService.configPath) || AG_RESET;
|
||||
if (isFirstRun && !HEADLESS) {
|
||||
console.log('[Welcome] First run detected — showing provider choice screen');
|
||||
await showWelcomeScreen('about:blank');
|
||||
console.log('[Welcome] User selected provider:', providerService.getActiveProvider());
|
||||
// Sync to endpoints.json (for Google, the handler already set the endpoint;
|
||||
// for custom, the settings save handler synced. This is a safety sync.)
|
||||
if (providerService.getActiveProvider() !== 'google_gemini') {
|
||||
syncProviderToEndpoints(providerService);
|
||||
}
|
||||
}
|
||||
// ALWAYS sync the active AG X provider to endpoints.json on every startup.
|
||||
// This ensures the Language Server reads the correct provider config.
|
||||
console.log('[Sync] Syncing active provider to endpoints.json on startup');
|
||||
syncProviderToEndpoints(providerService);
|
||||
let handle;
|
||||
const targetPort = Number(process.env.JETSKI_LS_PORT) || constants_1.DYNAMIC_PORT;
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user