瀏覽代碼

fix(tui): fall back to local cwd when editor spawns in attach mode (#30583)

pcadena-lila 3 月之前
父節點
當前提交
dc985ff881
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      packages/opencode/src/cli/cmd/tui/util/editor.ts

+ 6 - 1
packages/opencode/src/cli/cmd/tui/util/editor.ts

@@ -1,4 +1,5 @@
 import { defer } from "@/util/defer"
+import { existsSync } from "node:fs"
 import { rm } from "node:fs/promises"
 import { tmpdir } from "node:os"
 import { join } from "node:path"
@@ -13,13 +14,17 @@ export async function open(opts: { value: string; renderer: CliRenderer; cwd?: s
   const filepath = join(tmpdir(), `${Date.now()}.md`)
   await using _ = defer(async () => rm(filepath, { force: true }))
 
+  // In attach mode the server's project directory may not exist locally.
+  // Fall back to the local process cwd so the editor can still spawn.
+  const cwd = opts.cwd && existsSync(opts.cwd) ? opts.cwd : process.cwd()
+
   await Filesystem.write(filepath, opts.value)
   opts.renderer.suspend()
   opts.renderer.currentRenderBuffer.clear()
   try {
     const parts = editor.split(" ")
     const proc = Process.spawn([...parts, filepath], {
-      cwd: opts.cwd,
+      cwd,
       stdin: "inherit",
       stdout: "inherit",
       stderr: "inherit",