Skip to content

Commit 9758f35

Browse files
committed
feat: Enhance Antigravity auth flow with local server handling and improved error management
1 parent 0d4dc95 commit 9758f35

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

js/settings-auth-antigravity.js

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,48 @@ let antigravityAuthState = null;
55
let antigravityPollingInterval = null;
66
let antigravityAbortController = null;
77
let antigravityPollingActive = false;
8+
let antigravityLocalServerStarted = false;
89

910
async function startAntigravityAuthFlow() {
1011
try {
1112
console.log('Starting Antigravity authentication flow...');
13+
await startAntigravityLocalServer();
1214
await getAntigravityAuthUrl();
1315
showAntigravityAuthDialog();
1416
} catch (error) {
1517
console.error('Error starting Antigravity auth flow:', error);
1618
const msg = (error && (error.message || String(error))) || 'Unknown error';
1719
showError('Failed to start Antigravity authentication flow: ' + msg);
20+
if (antigravityLocalServerStarted) {
21+
await stopAntigravityLocalServer();
22+
}
23+
}
24+
}
25+
26+
async function startAntigravityLocalServer() {
27+
const currentMode = localStorage.getItem('type') || 'local';
28+
let localPort = null, baseUrl = null;
29+
if (currentMode === 'local') {
30+
const config = await configManager.getConfig();
31+
localPort = config.port || 8317;
32+
} else {
33+
configManager.refreshConnection();
34+
baseUrl = configManager.baseUrl;
35+
if (!baseUrl) throw new Error('Missing base-url configuration');
1836
}
37+
await window.__TAURI__.core.invoke('start_callback_server', {
38+
provider: 'antigravity',
39+
listenPort: 51121,
40+
mode: currentMode,
41+
baseUrl: baseUrl,
42+
localPort: localPort
43+
});
44+
antigravityLocalServerStarted = true;
45+
}
46+
47+
async function stopAntigravityLocalServer() {
48+
try { await window.__TAURI__.core.invoke('stop_callback_server', { listenPort: 51121 }); } catch (_) { }
49+
antigravityLocalServerStarted = false;
1950
}
2051

2152
async function getAntigravityAuthUrl() {
@@ -150,7 +181,7 @@ async function startAntigravityAuthPolling() {
150181
}
151182
}
152183

153-
function cancelAntigravityAuth() {
184+
async function cancelAntigravityAuth() {
154185
try {
155186
antigravityPollingActive = false;
156187
document.removeEventListener('keydown', handleAntigravityEscapeKey);
@@ -169,6 +200,9 @@ function cancelAntigravityAuth() {
169200

170201
antigravityAuthUrl = null;
171202
antigravityAuthState = null;
203+
if (antigravityLocalServerStarted) {
204+
await stopAntigravityLocalServer();
205+
}
172206
} catch (error) {
173207
console.error('Error canceling Antigravity auth:', error);
174208
}

src-tauri/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,6 +1465,7 @@ fn callback_path_for(provider: &str) -> &'static str {
14651465
"codex" => "/codex/callback",
14661466
"google" => "/google/callback",
14671467
"iflow" => "/iflow/callback",
1468+
"antigravity" => "/antigravity/callback",
14681469
_ => "/callback",
14691470
}
14701471
}

0 commit comments

Comments
 (0)