v0.1.3 — add-user --force for idempotent user creation
Adds --force to mesh admin add-user. Lets you re-use an existing handle (including disabled ones) instead of hitting 409 handle_taken and ending up with dozens of unusable rows during setup.
What --force does
When the handle already exists:
- Revokes every active token for that user (old paired devices stop sending)
- Deletes pending paircodes for the handle (old unconsumed codes become dead)
- Clears
disabled_atif tombstoned (re-enables a disabled user) - Updates
display_namein place - Mints a fresh paircode
Response is 200 OK with reset: true; fresh creates still return 201. Audit event user.reset.
Usage
# Clean up an existing mess without draining the DB
mesh admin add-user --handle mesh-admin --tier admin --display-name "Pouria" --force
# → OK Reset "mesh-admin" (admin)
# Old tokens revoked, unconsumed paircodes invalidated.
# OK Pair code: MESH-XXXX-XXXX-XXXX (expires ...)
mesh pair <NEW-PAIRCODE> --label "my-laptop"Upgrade
docker pull ghcr.io/pouriamrt/claude-mesh/relay:v0.1.3
docker stop mesh-relay && docker rm mesh-relay
docker run -d --name mesh-relay --restart unless-stopped -p 8443:8443 -v mesh-data:/data ghcr.io/pouriamrt/claude-mesh/relay:v0.1.3Data survives. :latest tag also updated.