Răsfoiți Sursa

fix(app): provide pty socket auth if available from desktop (#8210)

Brendan Allan 1 lună în urmă
părinte
comite
35cb06e0e4

+ 1 - 1
packages/app/src/app.tsx

@@ -33,7 +33,7 @@ const Loading = () => <div class="size-full flex items-center justify-center tex
 
 
 declare global {
 declare global {
   interface Window {
   interface Window {
-    __OPENCODE__?: { updaterEnabled?: boolean }
+    __OPENCODE__?: { updaterEnabled?: boolean; serverPassword?: string }
   }
   }
 }
 }
 
 

+ 6 - 3
packages/app/src/components/terminal.tsx

@@ -100,9 +100,12 @@ export const Terminal = (props: TerminalProps) => {
     const mod = await import("ghostty-web")
     const mod = await import("ghostty-web")
     ghostty = await mod.Ghostty.load()
     ghostty = await mod.Ghostty.load()
 
 
-    const socket = new WebSocket(
-      sdk.url + `/pty/${local.pty.id}/connect?directory=${encodeURIComponent(sdk.directory)}`,
-    )
+    const url = new URL(sdk.url + `/pty/${local.pty.id}/connect?directory=${encodeURIComponent(sdk.directory)}`)
+    if (window.__OPENCODE__?.serverPassword) {
+      url.username = "opencode"
+      url.password = window.__OPENCODE__?.serverPassword
+    }
+    const socket = new WebSocket(url)
     ws = socket
     ws = socket
 
 
     const t = new mod.Terminal({
     const t = new mod.Terminal({

+ 1 - 1
packages/desktop/src-tauri/src/lib.rs

@@ -441,7 +441,7 @@ async fn spawn_local_server(
 
 
     let timestamp = Instant::now();
     let timestamp = Instant::now();
     loop {
     loop {
-        if timestamp.elapsed() > Duration::from_secs(7) {
+        if timestamp.elapsed() > Duration::from_secs(30) {
             break Err(format!(
             break Err(format!(
                 "Failed to spawn OpenCode Server. Logs:\n{}",
                 "Failed to spawn OpenCode Server. Logs:\n{}",
                 get_logs(app.clone()).await.unwrap()
                 get_logs(app.clone()).await.unwrap()