From 26c450227748f92dfd7c771547d051d386ccf1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Wed, 8 Apr 2026 19:12:49 +0100 Subject: [PATCH] fix(cli): display system push messages without decryption System messages (watch_triggered, mcp_deployed, peer_joined, etc.) have senderPubkey='system' with empty ciphertext. The push handler now formats them as readable plaintext instead of failing to decrypt. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/cli/package.json | 2 +- apps/cli/src/mcp/server.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index 0249276..eb1f8f1 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,6 +1,6 @@ { "name": "claudemesh-cli", - "version": "0.8.8", + "version": "0.8.9", "description": "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.", "keywords": [ "claude-code", diff --git a/apps/cli/src/mcp/server.ts b/apps/cli/src/mcp/server.ts index af2031a..9632670 100644 --- a/apps/cli/src/mcp/server.ts +++ b/apps/cli/src/mcp/server.ts @@ -1635,6 +1635,14 @@ Your message mode is "${messageMode}". content = `[system] MCP server "${data.serverName}" removed (was hosted by ${data.hostedBy})`; } else if (eventName === "mcp_restored") { content = `[system] MCP server "${data.serverName}" is back online (hosted by ${data.hostedBy})`; + } else if (eventName === "watch_triggered") { + content = `[WATCH] ${data.label ?? data.url}: ${data.oldValue} → ${data.newValue}`; + } else if (eventName === "mcp_deployed") { + content = `[SERVICE] "${data.name}" deployed (${data.tool_count} tools) by ${data.deployed_by}`; + } else if (eventName === "mcp_undeployed") { + content = `[SERVICE] "${data.name}" undeployed by ${data.by}`; + } else if (eventName === "mcp_scope_changed") { + content = `[SERVICE] "${data.name}" scope changed to ${JSON.stringify(data.scope)} by ${data.by}`; } else { content = `[system] ${eventName}: ${JSON.stringify(data)}`; }