fix(launch): el passthrough del usuario va DELANTE, o computer-use no existe (#2)
`claudemesh launch -- --computer-use-mcp` daba `error: unknown option`, y
parecía que mesh y computer-use fuesen incompatibles. No lo son.
Algunos flags de Claude Code solo se reconocen en la PRIMERA posición de argv.
Matriz de 8 combinaciones contra claude 2.1.280:
--computer-use-mcp --resume <id> OK
--computer-use-mcp --dangerously-skip-permissions OK
--dangerously-skip-permissions --computer-use-mcp unknown option
--resume <id> --computer-use-mcp unknown option
--dangerously-load-development-channels … --flag unknown option
Da igual QUÉ flag vaya delante. Como `claudeArgs` ponía `...filtered` al final
—detrás de dev-channels, --session-id, --resume y --dangerously-skip-permissions—
el passthrough caía siempre en la posición donde no funciona.
Verificado por efecto tras el cambio, no por el `ok` del build: el argv real de
un lanzamiento es ahora
claude --computer-use-mcp --dangerously-load-development-channels \
server:claudemesh --session-id … --dangerously-skip-permissions
sin error de parseo, con la sesión conectada al mesh y respondiendo DMs.
Siete de las ocho líneas añadidas son comentario a propósito: el orden de ese
array es load-bearing y no se ve que lo sea. Quien lo reordene «por limpieza»
rompe computer-use sin que falle ningún test.
150 tests · tsc limpio.
This commit is contained in:
committed by
GitHub
parent
629fd1652d
commit
8001f47e26
@@ -978,6 +978,14 @@ export async function runLaunch(flags: LaunchFlags, rawArgs: string[]): Promise<
|
|||||||
// session-token registration could include it. Reuse here.
|
// session-token registration could include it. Reuse here.
|
||||||
|
|
||||||
const claudeArgs = [
|
const claudeArgs = [
|
||||||
|
// `filtered` va DELANTE de todo a propósito. Algunos flags de Claude Code
|
||||||
|
// solo se reconocen en la PRIMERA posición de argv: `--computer-use-mcp`
|
||||||
|
// parsea bien como primer argumento y da `unknown option` con CUALQUIER
|
||||||
|
// flag por delante —dev-channels, --dangerously-skip-permissions o
|
||||||
|
// --resume, da igual cuál— (comprobado 2026-09-23 contra claude 2.1.280,
|
||||||
|
// matriz de 8 combinaciones). Mientras el passthrough del usuario fuese al
|
||||||
|
// final, computer-use era inalcanzable desde claudemesh.
|
||||||
|
...filtered,
|
||||||
"--dangerously-load-development-channels",
|
"--dangerously-load-development-channels",
|
||||||
"server:claudemesh",
|
"server:claudemesh",
|
||||||
...(passSessionIdFlag && claudeSessionId ? ["--session-id", claudeSessionId] : []),
|
...(passSessionIdFlag && claudeSessionId ? ["--session-id", claudeSessionId] : []),
|
||||||
@@ -985,7 +993,6 @@ export async function runLaunch(flags: LaunchFlags, rawArgs: string[]): Promise<
|
|||||||
...(args.continueSession ? ["--continue"] : []),
|
...(args.continueSession ? ["--continue"] : []),
|
||||||
...(args.skipPermConfirm ? ["--dangerously-skip-permissions"] : []),
|
...(args.skipPermConfirm ? ["--dangerously-skip-permissions"] : []),
|
||||||
...(args.systemPrompt ? ["--system-prompt", args.systemPrompt] : []),
|
...(args.systemPrompt ? ["--system-prompt", args.systemPrompt] : []),
|
||||||
...filtered,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// Resolve the full path to `claude` — when launched from a non-interactive
|
// Resolve the full path to `claude` — when launched from a non-interactive
|
||||||
|
|||||||
Reference in New Issue
Block a user