From e128a6ae5f697deb47e953e02dcc36bcfe9cd827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Mon, 4 May 2026 10:08:41 +0100 Subject: [PATCH] fix(cli): wire missing launch flags through entrypoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit six flags declared on `LaunchFlags` were silently dropped at the CLI layer — `--role`, `--groups`, `--message-mode`, `--system-prompt`, `--continue`, and `--quiet`. each was honored inside `runLaunch` if it arrived, but the four call sites in the entrypoint forwarded a hardcoded 5-key subset. now forwarded at every entry: bare command, bare invite URL, the launch/connect verb, and the new workspace launch alias. pure plumbing; no behaviour change for users who weren't passing these flags. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/cli/CHANGELOG.md | 22 ++++++++++++++++++++++ apps/cli/package.json | 2 +- apps/cli/src/entrypoints/cli.ts | 24 ++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/apps/cli/CHANGELOG.md b/apps/cli/CHANGELOG.md index 6f4acfe..142e0e2 100644 --- a/apps/cli/CHANGELOG.md +++ b/apps/cli/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## 1.27.1 (2026-05-04) — wire missing launch flags + +Fixes a wiring bug in `apps/cli/src/entrypoints/cli.ts` where six flags +declared on `LaunchFlags` were silently dropped on the way to +`runLaunch`. They were honored *inside* `runLaunch` if they ever arrived, +but the four `runLaunch({...})` call sites in the CLI entrypoint each +forwarded a hardcoded 5-key subset (`mesh, name, join, yes, resume`). + +Now forwarded at every entry point (bare command, bare invite URL, +`launch`/`connect`, `workspace launch`): + +- `--role ` — sets session role; previously only settable via wizard. +- `--groups "frontend:lead,reviewers"` — comma-separated groups string. +- `--message-mode push|inbox|off` — message delivery mode. +- `--system-prompt ` — passes through to `claude`. +- `--continue` — passes through to `claude` to continue last session. +- `--quiet` — actually suppresses the wizard and banner now. Previously + it was a complete no-op flag at the CLI layer. + +No internal logic changed; the launch internals already read these. +This is a pure plumbing fix. + ## 1.27.0 (2026-05-04) — state + memory through the daemon, workspace alias Two more verb families now route through the local daemon's IPC for the diff --git a/apps/cli/package.json b/apps/cli/package.json index 5eaa2ed..39340cc 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,6 +1,6 @@ { "name": "claudemesh-cli", - "version": "1.27.0", + "version": "1.27.1", "description": "Peer mesh for Claude Code sessions — CLI + MCP server.", "keywords": [ "claude-code", diff --git a/apps/cli/src/entrypoints/cli.ts b/apps/cli/src/entrypoints/cli.ts index 2c06a17..b424bf8 100644 --- a/apps/cli/src/entrypoints/cli.ts +++ b/apps/cli/src/entrypoints/cli.ts @@ -283,6 +283,12 @@ async function main(): Promise { join: normaliseInviteUrl(command), yes: !!flags.y || !!flags.yes, resume: flags.resume as string | undefined, + role: flags.role as string | undefined, + groups: flags.groups as string | undefined, + "message-mode": flags["message-mode"] as string | undefined, + "system-prompt": flags["system-prompt"] as string | undefined, + continue: !!flags.continue, + quiet: !!flags.quiet, }, process.argv.slice(2)); return; } @@ -298,6 +304,12 @@ async function main(): Promise { name: flags.name as string | undefined, yes: !!flags.y || !!flags.yes, resume: flags.resume as string | undefined, + role: flags.role as string | undefined, + groups: flags.groups as string | undefined, + "message-mode": flags["message-mode"] as string | undefined, + "system-prompt": flags["system-prompt"] as string | undefined, + continue: !!flags.continue, + quiet: !!flags.quiet, }, process.argv.slice(2)); return; } @@ -316,6 +328,12 @@ async function main(): Promise { join: flags.join as string, yes: !!flags.y || !!flags.yes, resume: flags.resume as string, + role: flags.role as string, + groups: flags.groups as string, + "message-mode": flags["message-mode"] as string, + "system-prompt": flags["system-prompt"] as string, + continue: !!flags.continue, + quiet: !!flags.quiet, }, process.argv.slice(2)); break; } @@ -336,6 +354,12 @@ async function main(): Promise { join: flags.join as string, yes: !!flags.y || !!flags.yes, resume: flags.resume as string, + role: flags.role as string, + groups: flags.groups as string, + "message-mode": flags["message-mode"] as string, + "system-prompt": flags["system-prompt"] as string, + continue: !!flags.continue, + quiet: !!flags.quiet, }, process.argv.slice(2)); } else if (sub === "list" || sub === "ls") { const { runList } = await import("~/commands/list.js"); await runList(); }