feat(cli): file share / file get + same-host fast path (v1.19.0)
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

Two new CLI verbs for the file-sharing surface that already existed
on the broker (HTTP /upload + WS get_file/list_files) but was only
reachable through MCP-style docstrings referencing tools that do
not in fact exist:

  claudemesh file share <path> [--to peer] [--message "..."]
  claudemesh file get <id> [--out path]

Same-host fast path: when --to resolves to a session on the same
hostname, skip MinIO and DM the absolute filepath. The receiver
reads it off disk directly. No bucket roundtrip, no 50 MB cap.
Falls back to encrypted upload when the peer is remote or --upload
is set.

Routes the same-host DM by session pubkey, not displayName, so
sibling sessions of the same member do not trip the v0.5.1
self-DM guard.

Updates the bundled SKILL.md and the MCP server instructions to
reference the real CLI verbs instead of the fictional share_file()
/ get_file() tool calls.

Also: rename.ts now distinguishes mesh-membership from web-account
auth and points users at claudemesh login + the dashboard rather
than emitting a bare "Not signed in".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-05-03 14:05:24 +01:00
parent f9ed3fa286
commit 3a3d2a6c4c
7 changed files with 246 additions and 12 deletions

View File

@@ -451,12 +451,30 @@ claudemesh webhook delete <name>
### `file` — shared mesh files
```bash
claudemesh file list [search-query] # list files
claudemesh file status <file-id> # who has accessed
claudemesh file share <path> # upload to mesh (visible to all members)
claudemesh file share <path> --to <peer> # share with one peer (same-host fast path if co-located)
claudemesh file share <path> --to <peer> --message "see line 42"
claudemesh file share <path> --upload # force network upload, skip same-host fast path
claudemesh file get <file-id> # download by id (saves to ./<name>)
claudemesh file get <file-id> --out /tmp/foo.bin # download to explicit path
claudemesh file list [search-query] # browse mesh files
claudemesh file status <file-id> # who has accessed
claudemesh file delete <file-id>
# Upload + retrieval currently via MCP `share_file` / `get_file` (binary streams)
```
**Same-host fast path** (v0.6.0+): when `--to <peer>` resolves to a session
running on the same hostname as you, `claudemesh file share` skips MinIO
entirely and sends a DM with the absolute filepath. The receiver reads it
directly off disk. No 50 MB cap, no upload latency, nothing in the bucket.
Falls back to encrypted upload when the peer is remote, or always when
`--upload` is set. Routes by session pubkey, so sibling sessions of the
same member work without tripping the self-DM guard.
**Network upload cap**: 50 MB. Same-host fast path has no cap.
**`--to` accepts**: display name, member pubkey, session pubkey, or any
≥8-char prefix of a pubkey. Prefer pubkey when multiple peers share a name.
### `mesh-mcp` — call MCP servers other peers deployed to the mesh
```bash