Skip to content

Remove email member invites - #1558

Closed
serefyarar wants to merge 1 commit into
devfrom
fix/remove-email-invite
Closed

Remove email member invites#1558
serefyarar wants to merge 1 commit into
devfrom
fix/remove-email-invite

Conversation

@serefyarar

Copy link
Copy Markdown
Contributor

Removed

  • BREAKING: POST /networks/:id/members/invite. Owner-only, it created an
    account for an unknown email (emailVerified: true), inserted the membership
    with no accept step, minted a network-scoped agent + API key, and emailed the
    raw key plus an openclaw index connect --api-key … command. Gone.
  • BREAKING: POST /networks/:id/members/:memberId/resend-invite. Rotated
    that key and mailed it again. Gone.
  • network-invitation.service.ts, network-invitation.template.ts and
    lib/openclaw/connect-command.ts — all existed only for this flow.
  • Web Access tab: the Invite "<email>" empty state, the per-member resend
    button and its confirm dialog; inviteMember / resendInvite API clients.
  • macOS app: the same invite-by-email empty state, networks.inviteMember, and
    the /members/invite entries in the NativeAPIRequestBridge path allowlist
    and body validator.
  • CLI: index network invite <id> <email>, inviteNetworkMember,
    NetworkInvitationResult, and the help/README/output-reference lines.
  • Hermes plugin: the invite_network_member proxy route and the dashboard's
    inviteEmail; 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), link
regeneration, member roles and removal are untouched. softDeleteProvisionedCohort
stays 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/api 0.109.0 (+ CHANGELOG), apps/web 0.68.0, packages/cli 0.21.0,
packages/hermes-plugin 0.32.0; bun.lock synced.

Verification

  • bun run lint (repo): 0 errors.
  • services/api: bun run typecheck clean. Against a local server, both removed
    routes return 404 while POST|GET /members, PATCH /regenerate-invitation and
    POST /invitation/:code/accept still return 401 (route present, unauthorized).
  • apps/web: bun run build clean. Verified the Access tab in the browser as a
    network 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.sh succeeds (Swift + bundle).
  • python3 -m py_compile on the Hermes proxy; node --check on both plugin
    bundles and the mac API client.
  • bun run check:lockfile-versions and bun run check:subtree-parity pass.

Note: GET /networks/search-users, which the member search calls, is already
absent from services/api on dev, so that dropdown does not populate. That is
pre-existing and untouched here.

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.
@serefyarar serefyarar closed this Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant