feat(cli): accept https://claudemesh.com/join/<token> invite URL format
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

Pairs with claudemesh-2's new /join/[token] landing page. Users can
now paste a clickable HTTPS URL instead of the dev-only ic:// scheme.

apps/cli/src/invite/parse.ts — new extractInviteToken() handles
four input formats before handing the raw base64url token to the
existing parseInviteLink pipeline:
  - https://claudemesh.com/join/<token>   (primary, clickable)
  - https://claudemesh.com/<locale>/join/<token>   (i18n prefix)
  - ic://join/<token>                     (still supported, dev)
  - <raw-token>                           (last resort: bare base64url)

User-facing strings updated to the HTTPS form:
- cli help: "join <url>"
- install success message
- list (no-meshes) hint
- MCP server "no meshes" error
- README.md primary example
- docs/QUICKSTART.md Path A + Path B

Verified extractInviteToken() on all 4 formats — each returns the
same base64url token → same broker /join lookup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-04-05 16:32:50 +01:00
parent 7be8622e6f
commit 59e999535d
8 changed files with 55 additions and 19 deletions

View File

@@ -67,12 +67,15 @@ You have two paths. Pick one.
### Path A — join a teammate's mesh *(fastest)*
Paste the invite link they sent you (starts with `ic://join/…`):
Paste the invite URL they sent you:
```sh
claudemesh join ic://join/eyJtZXNo...
claudemesh join https://claudemesh.com/join/eyJtZXNo...
```
(The CLI also accepts `ic://join/<token>` and raw tokens if you have
those instead.)
The CLI verifies the signature, generates a fresh keypair for you,
and enrolls you with the broker:
@@ -87,10 +90,10 @@ and enrolls you with the broker:
1. Open **[claudemesh.com](https://claudemesh.com)** and sign up
2. Click **Create mesh**, give it a slug (e.g. `my-team`)
3. Copy the invite link it generates
3. Copy the invite URL it generates
4. Back in your terminal:
```sh
claudemesh join ic://join/<your-link>
claudemesh join https://claudemesh.com/join/<token>
```
---