feat(host,panel): stream a workspace's pending invitations to owners' and admins' windows
Merged
CH
7d ago+500+500+012345678901234567890123456789-95-95-01234567890123456789
A workspace's pending invitations are streamed to its owner's and admins' settings page. Stacked on #3948.
- Act-port procedure:
workspace.invitations, aneventIterator. - Host follow: the host follows each workspace through
liveRowsand tells each change asWORKSPACE_INVITATIONS_CHANGED. Expired invitations are dropped by the host's clock as each change lands, and accept links are built on the sealed origin. - Panel: the invitations read stays as the first read. The re-read after making an invitation is gone; invitations made, canceled or accepted elsewhere arrive on the stream.
- Shared code: the people and invitations follows now share one host follow (
followWorkspaceRead), one counted act-port stream (followedStream) and one panel stream reader (act-stream.ts).
Edge left on purpose: an invitation that expires while nothing else in the workspace changes stays listed until the next change or a reopen.
Made with Luke