From a5347cebc07b60a7f0f44c320c0e1f38fb1ffc46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:54:53 +0100 Subject: [PATCH] fix(cli): silence "session restored" log for one-shot commands (alpha.40) Add quiet opt to BrokerClient; withMesh passes quiet:true so commands like peers/state/info/remind no longer print per-mesh restore chatter. Long-running paths (launch, MCP) stay verbose. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/cli/package.json | 2 +- apps/cli/src/commands/connect.ts | 2 +- apps/cli/src/services/broker/ws-client.ts | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index 775bdca..4e63069 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,6 +1,6 @@ { "name": "claudemesh-cli", - "version": "1.0.0-alpha.39", + "version": "1.0.0-alpha.40", "description": "Peer mesh for Claude Code sessions — CLI + MCP server.", "keywords": [ "claude-code", diff --git a/apps/cli/src/commands/connect.ts b/apps/cli/src/commands/connect.ts index 6a6f7cd..5bdb1f7 100644 --- a/apps/cli/src/commands/connect.ts +++ b/apps/cli/src/commands/connect.ts @@ -69,7 +69,7 @@ export async function withMesh( } const displayName = opts.displayName ?? config.displayName ?? `${hostname()}-${process.pid}`; - const client = new BrokerClient(mesh, { displayName }); + const client = new BrokerClient(mesh, { displayName, quiet: true }); try { await client.connect(); diff --git a/apps/cli/src/services/broker/ws-client.ts b/apps/cli/src/services/broker/ws-client.ts index 22fdc44..88fadf8 100644 --- a/apps/cli/src/services/broker/ws-client.ts +++ b/apps/cli/src/services/broker/ws-client.ts @@ -186,6 +186,8 @@ export class BrokerClient { onStatusChange?: (status: ConnStatus) => void; displayName?: string; debug?: boolean; + /** Suppress informational stderr logs like "session restored". Default false. */ + quiet?: boolean; } = {}, ) {} @@ -297,9 +299,11 @@ export class BrokerClient { const groups = msg.restoredGroups ? (msg.restoredGroups as Array<{ name: string; role?: string }>).map((g) => g.role ? `@${g.name}:${g.role}` : `@${g.name}`).join(", ") : "none"; - process.stderr.write( - `[claudemesh] session restored — last seen ${msg.lastSeenAt ?? "unknown"}, groups: ${groups}\n`, - ); + if (!this.opts.quiet) { + process.stderr.write( + `[claudemesh] session restored — last seen ${msg.lastSeenAt ?? "unknown"}, groups: ${groups}\n`, + ); + } if (msg.restoredStats) { const rs = msg.restoredStats as { messagesIn: number; messagesOut: number; toolCalls: number; errors: number }; this._statsCounters.messagesIn = rs.messagesIn ?? 0;