feat(setttings): support auto launch config (#415)

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
This commit is contained in:
Haze
2026-03-11 18:41:18 +08:00
committed by GitHub
Unverified
parent baa551b30c
commit 53a51642ce
14 changed files with 275 additions and 7 deletions

View File

@@ -37,6 +37,7 @@ import { getProviderConfig } from '../utils/provider-registry';
import { deviceOAuthManager, OAuthProviderType } from '../utils/device-oauth';
import { browserOAuthManager, type BrowserOAuthProviderType } from '../utils/browser-oauth';
import { applyProxySettings } from './proxy';
import { syncLaunchAtStartupSettingFromStore } from './launch-at-startup';
import { proxyAwareFetch } from '../utils/proxy-fetch';
import { getRecentTokenUsageHistory } from '../utils/token-usage';
import { getProviderService } from '../services/providers/provider-service';
@@ -224,6 +225,10 @@ function isProxyKey(key: keyof AppSettings): boolean {
);
}
function isLaunchAtStartupKey(key: keyof AppSettings): boolean {
return key === 'launchAtStartup';
}
function registerUnifiedRequestHandlers(gatewayManager: GatewayManager): void {
const providerService = getProviderService();
const handleProxySettingsChange = async () => {
@@ -694,6 +699,9 @@ function registerUnifiedRequestHandlers(gatewayManager: GatewayManager): void {
if (isProxyKey(key)) {
await handleProxySettingsChange();
}
if (isLaunchAtStartupKey(key)) {
await syncLaunchAtStartupSettingFromStore();
}
data = { success: true };
break;
}
@@ -706,6 +714,9 @@ function registerUnifiedRequestHandlers(gatewayManager: GatewayManager): void {
if (entries.some(([key]) => isProxyKey(key))) {
await handleProxySettingsChange();
}
if (entries.some(([key]) => isLaunchAtStartupKey(key))) {
await syncLaunchAtStartupSettingFromStore();
}
data = { success: true };
break;
}
@@ -713,6 +724,7 @@ function registerUnifiedRequestHandlers(gatewayManager: GatewayManager): void {
await resetSettings();
const settings = await getAllSettings();
await handleProxySettingsChange();
await syncLaunchAtStartupSettingFromStore();
data = { success: true, settings };
break;
}
@@ -2239,6 +2251,9 @@ function registerSettingsHandlers(gatewayManager: GatewayManager): void {
) {
await handleProxySettingsChange();
}
if (key === 'launchAtStartup') {
await syncLaunchAtStartupSettingFromStore();
}
return { success: true };
});
@@ -2259,6 +2274,9 @@ function registerSettingsHandlers(gatewayManager: GatewayManager): void {
)) {
await handleProxySettingsChange();
}
if (entries.some(([key]) => key === 'launchAtStartup')) {
await syncLaunchAtStartupSettingFromStore();
}
return { success: true };
});
@@ -2267,6 +2285,7 @@ function registerSettingsHandlers(gatewayManager: GatewayManager): void {
await resetSettings();
const settings = await getAllSettings();
await handleProxySettingsChange();
await syncLaunchAtStartupSettingFromStore();
return { success: true, settings };
});
}