Skip to content

Commit 2e08879

Browse files
committed
add auto server init on startup
1 parent d2c809f commit 2e08879

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

desktop_app/app/dashboard/page.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export default function Dashboard() {
6161

6262
async function stopServer() {
6363
await invoke<string>("stop_server", {});
64+
sessionStorage.setItem("server_stopped_by_user", "true");
6465
window.location.href = "/";
6566
}
6667

desktop_app/app/page.tsx

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const MAX_RETRY_DURATION_MS = 60000;
1515
const RETRY_INTERVAL_MS = 5000;
1616
const SESSION_KEY_INIT = "server_initialized";
1717
const SESSION_KEY_NAVIGATING = "navigating_to_dashboard";
18+
const SESSION_KEY_STOPPED = "server_stopped_by_user";
1819

1920
export default function Home() {
2021
const [connectionState, setConnectionState] = useState<ConnectionState>("loading");
@@ -78,7 +79,14 @@ export default function Home() {
7879
const success = await tryInit();
7980
if (success) {
8081
sessionStorage.setItem(SESSION_KEY_INIT, "true");
81-
setConnectionState("ready");
82+
const stoppedByUser = sessionStorage.getItem(SESSION_KEY_STOPPED) === "true";
83+
if (stoppedByUser) {
84+
sessionStorage.removeItem(SESSION_KEY_STOPPED);
85+
setConnectionState("ready");
86+
} else {
87+
// Auto-start server on initial startup
88+
await startServer();
89+
}
8290
return;
8391
}
8492

@@ -105,12 +113,19 @@ export default function Home() {
105113
// Check if already initialized
106114
const wasInitialized = sessionStorage.getItem(SESSION_KEY_INIT) === "true";
107115

116+
const stoppedByUser = sessionStorage.getItem(SESSION_KEY_STOPPED) === "true";
117+
108118
if (wasInitialized) {
109119
try {
110120
const isInit = await invoke<boolean>("is_server_initialized", {});
111121
console.log("[Home] sessionStorage says init, backend says:", isInit);
112122
if (isInit && !cancelled) {
113-
setConnectionState("ready");
123+
if (stoppedByUser) {
124+
sessionStorage.removeItem(SESSION_KEY_STOPPED);
125+
setConnectionState("ready");
126+
} else {
127+
await startServer();
128+
}
114129
return;
115130
}
116131
} catch (e) {
@@ -126,7 +141,12 @@ export default function Home() {
126141

127142
if (isInit && !cancelled) {
128143
sessionStorage.setItem(SESSION_KEY_INIT, "true");
129-
setConnectionState("ready");
144+
if (stoppedByUser) {
145+
sessionStorage.removeItem(SESSION_KEY_STOPPED);
146+
setConnectionState("ready");
147+
} else {
148+
await startServer();
149+
}
130150
return;
131151
}
132152
} catch (e) {

0 commit comments

Comments
 (0)