Improve organization invitation management: resend invitation + show an "expired" status

Hey Tuist team :waving_hand:

While managing members in our organization (Members → Invitations tab), I ran into two small gaps in the invitation flow that I think would make it much clearer to work with.

1. Resend invitation email

Right now, once you invite someone there doesn’t seem to be a way to re-send the invitation email. If the invitee misses or loses the original email, the only workaround is to revoke and re-invite them.

Proposal: Add a “Resend invitation” action (for example, in the ⋮ actions menu on each pending invitation row) that simply re-sends the invitation email to the same address.

2. Show an “expired” status for pending invitations

As far as I can tell, an invitation link stops working after a certain period (~2 weeks?) if the invitee never accepts it.

The problem is that the invitation still shows as **Pending** in the dashboard, with no indication that the link has already expired. This gets confusing:

- The admin assumes the invite is still valid and keeps waiting.

- The invitee clicks the link, can’t join, and has no idea why.

Proposal: Once an invitation passes its expiration window, reflect that in the UI — e.g. change the status from

Pending to Expired (and ideally gray out / disable the row) so admins can immediately tell they need to resend or re-invite.

Why

Together these make the invitation lifecycle transparent and self-serviceable: admins can see at a glance which invites are still actionable, and recover expired ones without guessing.

Related bug report (the ⋮ actions menu on pending invitations currently renders broken):

Hey @faithinker!

Thanks a lot for the feedback, I fully agree. Here’s a PR to address the raised issues: feat(server): add invitation resend and expired status by fortmarek · Pull Request #11702 · tuist/tuist · GitHub