Skip to content

console: org record page's default Members tab hides the email-invite entry — invite_user lives only on the Invitations tab #11544

Description

@os-zhuang

Symptom

The in-shell Team surface (sys_organization record page, ADR-0081) defaults to tab-0 Members. Its related-list toolbar carries exactly one action, Add Member (add_member — attach an EXISTING user by userId). The email-invite entry (invite_user) lives only on tab-1 Invitations (sys_invitation related list). Both buttons render as variant: primary with the same user-plus icon.

Measured effect: the maintainer, looking to "invite a teammate by email", landed on Members and concluded the product has no invite entry. If the author cannot find it, users will not.

Mechanism / file surface

  • packages/platform-objects/src/pages/sys-organization.page.ts — tab order: Members (sys_member) / Invitations (sys_invitation) / Teams.
  • packages/platform-objects/src/identity/sys-member.object.tslist_toolbar: add_member only (primary, user-plus).
  • packages/platform-objects/src/identity/sys-invitation.object.tslist_toolbar: invite_user (primary, user-plus) → POST /api/v1/auth/organization/invite-member. The delivery half works once found: sendInvitationEmail is wired (template auth.invitation, accept URL /_console/accept-invitation/<id>).

Premise verified against origin/main @ 4c9780c (2026-08-24): invite_user appears only on sys_invitation and sys_user; sys_member's toolbar has only add_member.

Requested outcome

Make the email-invite flow discoverable from the default Members tab. Suggested route (PM suggestion, not a ruling — implementer verifies):

  • Mirror invite_user onto sys_member's list_toolbar (same target / params / requiresFeature: 'organization' gate as the sys_invitation copy), and
  • differentiate add_member (icon and/or label) so the two toolbar actions do not render as identical primary user-plus buttons.

Mechanism to verify before writing metadata: the objectui related-list toolbar bridge must render BOTH declared toolbar actions on the record page's related list.

Notes

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions