Remove email member invites - #1558
Closed
serefyarar wants to merge 1 commit into
Closed
Conversation
Owners could type an email into a network's member search and have the server create an account, add it as a member with no accept step, mint a network-scoped agent API key, and email the raw key. Adding people is now either the invitation link or adding an existing account. Drops POST /networks/:id/members/invite and POST /networks/:id/members/:memberId/resend-invite, the invitation service, the invitation email template and the openclaw connect-command builder, plus the invite affordances in web, mac, the CLI (index network invite) and the Hermes plugin. Accounts and keys provisioned by the old flow keep working; there is no migration.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removed
POST /networks/:id/members/invite. Owner-only, it created anaccount for an unknown email (
emailVerified: true), inserted the membershipwith no accept step, minted a network-scoped agent + API key, and emailed the
raw key plus an
openclaw index connect --api-key …command. Gone.POST /networks/:id/members/:memberId/resend-invite. Rotatedthat key and mailed it again. Gone.
network-invitation.service.ts,network-invitation.template.tsandlib/openclaw/connect-command.ts— all existed only for this flow.Invite "<email>"empty state, the per-member resendbutton and its confirm dialog;
inviteMember/resendInviteAPI clients.networks.inviteMember, andthe
/members/inviteentries in theNativeAPIRequestBridgepath allowlistand body validator.
index network invite <id> <email>,inviteNetworkMember,NetworkInvitationResult, and the help/README/output-reference lines.invite_network_memberproxy route and the dashboard'sinviteEmail; desktop bundle regenerated from the dashboard source.Kept
Adding people is now the invitation link (
/l/:code→POST /networks/invitation/:code/accept) or adding an existing account(
POST /networks/:id/members). Visibility (anyone/invite_only), linkregeneration, member roles and removal are untouched.
softDeleteProvisionedCohortstays because accounts provisioned by the old flow still exist; their keys keep
working and there is no migration.
Member search placeholders now read "Search by name…" in web, mac and Hermes,
since an email no longer does anything there.
Versions
services/api0.109.0 (+ CHANGELOG),apps/web0.68.0,packages/cli0.21.0,packages/hermes-plugin0.32.0;bun.locksynced.Verification
bun run lint(repo): 0 errors.services/api:bun run typecheckclean. Against a local server, both removedroutes return 404 while
POST|GET /members,PATCH /regenerate-invitationandPOST /invitation/:code/acceptstill return 401 (route present, unauthorized).apps/web:bun run buildclean. Verified the Access tab in the browser as anetwork owner — visibility toggle, invitation link with regenerate dialog and
copy, and the member list all render; each member row now has only name,
promote and remove (no resend), the placeholder is search-only, and typing an
unknown email produces no Invite affordance. The invitation link landing page
still accepts and lands on "you're in".
apps/mac:./build.shsucceeds (Swift + bundle).python3 -m py_compileon the Hermes proxy;node --checkon both pluginbundles and the mac API client.
bun run check:lockfile-versionsandbun run check:subtree-paritypass.Note:
GET /networks/search-users, which the member search calls, is alreadyabsent from
services/apiondev, so that dropdown does not populate. That ispre-existing and untouched here.