Skip to content

Commit 14de268

Browse files
SonAIengineclaude
andcommitted
fix: 백엔드 주소 하드코딩 제거 — XGEN_SERVER_URL/XGEN_APP_MODE 환경변수 지원
- XGEN_SERVER_URL: 백엔드 서버 주소 (기본: https://xgen.x2bee.com) - XGEN_APP_MODE: 앱 모드 (기본: connected, standalone도 가능) - settings.json > 환경변수 > 기본값 순서로 우선순위 적용 - cli.rs: state.get_server_url() → 환경변수 → 기본값 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent ee0d1f7 commit 14de268

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

src-tauri/src/commands/cli.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ pub async fn cli_send_message(
8686
) -> Result<CliResponse> {
8787
// Get XGEN API base URL
8888
let base_url = state.get_server_url().await
89+
.or_else(|| std::env::var("XGEN_SERVER_URL").ok())
8990
.unwrap_or_else(|| "https://xgen.x2bee.com".to_string());
9091

9192
// Use token: prefer passed token, fallback to session stored token
@@ -177,6 +178,7 @@ pub async fn cli_list_providers(
177178
xgen_token: Option<String>,
178179
) -> Result<Value> {
179180
let base_url = state.get_server_url().await
181+
.or_else(|| std::env::var("XGEN_SERVER_URL").ok())
180182
.unwrap_or_else(|| "https://xgen.x2bee.com".to_string());
181183
let token = xgen_token.or_else(|| {
182184
let session = state.cli_session.try_read().ok();

src-tauri/src/lib.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,23 @@ async fn auto_init_app_mode(app: &tauri::AppHandle) -> Result<(), String> {
2828

2929
let config_path = config_dir.join("settings.json");
3030

31-
// Check if settings file exists — 없으면 기본 Connected 모드 (xgen.x2bee.com)
31+
// Check if settings file exists — 없으면 환경변수 또는 기본값으로 Connected 모드
3232
if !config_path.exists() {
33-
log::info!("No settings file found, defaulting to Connected mode (xgen.x2bee.com)");
34-
let state = app.state::<Arc<AppState>>();
35-
let default_url = "https://xgen.x2bee.com".to_string();
36-
let mut mode = state.app_mode.write().await;
37-
*mode = state::AppMode::Connected { server_url: default_url.clone() };
38-
let mut gateway = state.gateway_url.write().await;
39-
*gateway = Some(default_url);
33+
let default_url = std::env::var("XGEN_SERVER_URL")
34+
.unwrap_or_else(|_| "https://xgen.x2bee.com".to_string());
35+
let default_mode = std::env::var("XGEN_APP_MODE")
36+
.unwrap_or_else(|_| "connected".to_string());
37+
38+
if default_mode == "connected" {
39+
log::info!("No settings file, using {} mode: {}", default_mode, default_url);
40+
let state = app.state::<Arc<AppState>>();
41+
let mut mode = state.app_mode.write().await;
42+
*mode = state::AppMode::Connected { server_url: default_url.clone() };
43+
let mut gateway = state.gateway_url.write().await;
44+
*gateway = Some(default_url);
45+
} else {
46+
log::info!("No settings file, using Standalone mode");
47+
}
4048
return Ok(());
4149
}
4250

0 commit comments

Comments
 (0)