From bf62a5e118e62228639bd8b096fcbce77fbc13e9 Mon Sep 17 00:00:00 2001 From: DoSun Date: Fri, 15 May 2026 14:49:49 +0800 Subject: [PATCH] fix: use process.argv to get raw args for cs-cloud to fix Linux hang issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 参考 opencode 实现,从 process.argv 重新获取原始参数,避免 commander 的 参数解析影响 cs-cloud 的正常运行。修复 Linux 上通过 csc cloud start 调用会卡住的问题。 Co-Authored-By: claude-sonnet-4-6 --- src/cli/handlers/cloud.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/cli/handlers/cloud.ts b/src/cli/handlers/cloud.ts index a7850598a..d40a2eeb5 100644 --- a/src/cli/handlers/cloud.ts +++ b/src/cli/handlers/cloud.ts @@ -222,6 +222,13 @@ async function ensureCsCloud(): Promise { return bin } +function getCloudRawArgs(): string[] { + const argv = process.argv.slice(2) + const index = argv.indexOf("cloud") + if (index === -1) return [] + return argv.slice(index + 1) +} + async function runCsCloud(args: string[]): Promise { const bin = await ensureCsCloud() const child = spawn(bin, args, { @@ -240,20 +247,21 @@ async function runCsCloud(args: string[]): Promise { } export async function cloudHandler(rawArgs: string[]): Promise { - if (rawArgs.length === 0) { + const args = getCloudRawArgs() + if (args.length === 0) { console.error("specify a subcommand. usage: csc cloud [args...]") process.exit(1) } - if (rawArgs[0] === "upgrade") { + if (args[0] === "upgrade") { const bin = csCloudBin() if (fs.existsSync(bin)) { - await runCsCloud(rawArgs) + await runCsCloud(args) return } await ensureCsCloud() return } - await runCsCloud(rawArgs) + await runCsCloud(args) }