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

This commit is contained in:
pcadena-lila 2026-06-05 05:53:41 -04:00 committed by GitHub
commit dc985ff881
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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",