feat(cli): vault set / watch add / webhook create + prune dead MCP stubs
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled

Closes the last functional gaps where the MCP tool registry exposed
write verbs the CLI didn't:

- vault set <k> <v> [--type env|file --mount <path> --description ...]
  Client-side crypto_secretbox_easy with a fresh symmetric key sealed
  to the member's own pubkey via crypto_box_seal — same pattern used
  for file shares. Pairs with the existing vault list/delete.
- watch add <url> [--label --interval --mode --extract --notify-on]
  Pairs with watch list/remove.
- webhook create <name> — pairs with webhook list/delete.

Cleanup: deletes 22 stub files under apps/cli/src/mcp/tools/* plus
router.ts, middleware/, handlers/ (~120 LoC). These were FAMILY/TOOLS
metadata-only re-exports left over from before the 1.5.0 tool-less
push-pipe flip; nothing imports them. The legitimate MCP surfaces
stay: the inbound <channel> push pipe, mesh skills as prompts and
skill:// resources, and the mesh-service proxy mode.

Released as 1.23.0 on npm.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-05-03 20:53:25 +01:00
parent 4eff4f5a20
commit c56910bfcf
31 changed files with 160 additions and 120 deletions

View File

@@ -1,5 +1,36 @@
# Changelog
## 1.23.0 (2026-05-03) — close the CLI surface, prune dead MCP stubs
Three previously-MCP-only write verbs land on the CLI, closing every
functional gap between the (defunct since 1.5.0) MCP tool registry and
the CLI:
- `claudemesh vault set <key> <value>` — encrypts client-side via
`crypto_secretbox_easy` with a fresh symmetric key, then seals the
key to the member's own pubkey via `crypto_box_seal` (same shape as
the file-share crypto). Flags: `--type env|file`, `--mount <path>`,
`--description <text>`. Pairs with the existing `vault list/delete`.
- `claudemesh watch add <url>` — registers a URL change watcher.
Flags: `--label`, `--interval <sec>`, `--mode`, `--extract <css>`,
`--notify-on changed|always`. Pairs with `watch list/remove`.
- `claudemesh webhook create <name>` — issues a fresh inbound webhook;
prints url + one-shot secret. Pairs with `webhook list/delete`.
Cleanup: removed 22 dead stub files under `apps/cli/src/mcp/tools/*`,
the unused `router.ts`, `middleware/*`, and `handlers/*` directories
(~120 LoC). The MCP server in 1.5.0+ has been a tool-less push-pipe;
these stubs were leftover scaffolding that never wired into the
`tools/list` response. The legitimate MCP surfaces stay untouched:
- `<channel source="claudemesh">` push pipe (the irreducible reason
MCP exists at all — no other Claude Code surface can inject events
mid-turn).
- Mesh skills exposed as MCP **prompts** (slash commands) and
**resources** (`skill://claudemesh/<name>`).
- Mesh-deployed MCP services proxied via the sub-process tool
surface (separate code path under server.ts:855+).
## 1.22.1 (2026-05-03) — daemon docs + help
- Root `claudemesh --help` now lists the `daemon` subcommand suite under