Skip to content

feat(host,panel): stream a workspace's pending invitations to owners' and admins' windows - #3956

Merged
luke-agent[bot] merged 1 commit into
mainfrom
luke/live-invitations-follow
Oct 21, 2026
Merged

luke-agent[bot] merged 1 commit into
mainfrom
luke/live-invitations-follow

Conversation

@charleslpan

@charleslpan charleslpan commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

A workspace's pending invitations are streamed to its owner's and admins' settings page. Stacked on #3948.

  • Act-port procedure: workspace.invitations, an eventIterator.
  • Host follow: the host follows each workspace through liveRows and tells each change as WORKSPACE_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

@vercel

vercel Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
luke-web Ready Ready Preview Oct 21, 2026 8:01am UTC

Request Review

@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from f422961 to 3d08712 Compare October 20, 2026 02:34
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 070b041 to e039cd2 Compare October 20, 2026 02:34
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 3d08712 to cfec13f Compare October 20, 2026 03:26
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from e039cd2 to d5e2009 Compare October 20, 2026 03:26
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from cfec13f to 1a53038 Compare October 21, 2026 00:11
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from d5e2009 to 5b6c57f Compare October 21, 2026 00:11
@luke-agent luke-agent Bot changed the title feat(host,desktop): push a workspace's pending invitations to owners' and admins' panels feat(host,panel): stream a workspace's pending invitations to owners' and admins' windows Oct 21, 2026
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 1a53038 to 2d0792e Compare October 21, 2026 00:28
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 5b6c57f to 8f57321 Compare October 21, 2026 00:28
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 2d0792e to f753020 Compare October 21, 2026 00:45
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 8f57321 to 7e3de95 Compare October 21, 2026 00:45
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from f753020 to d7d6053 Compare October 21, 2026 01:05
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 7e3de95 to 2653f58 Compare October 21, 2026 01:05
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from d7d6053 to 6536c67 Compare October 21, 2026 01:17
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 2653f58 to 0125a26 Compare October 21, 2026 01:17
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 6536c67 to 817f0c2 Compare October 21, 2026 01:32
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 0125a26 to e1b9e0d Compare October 21, 2026 01:32
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 817f0c2 to 2868d30 Compare October 21, 2026 06:27
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from e1b9e0d to 91866e0 Compare October 21, 2026 06:27
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 2868d30 to c29307d Compare October 21, 2026 06:44
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 91866e0 to a44ad29 Compare October 21, 2026 06:44
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from c29307d to 7e0ff65 Compare October 21, 2026 07:01
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from a44ad29 to 58b567e Compare October 21, 2026 07:01
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from 7e0ff65 to f7fe51b Compare October 21, 2026 07:09
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from 58b567e to a8dd191 Compare October 21, 2026 07:09
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-service branch from f7fe51b to 11209ae Compare October 21, 2026 07:31
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from a8dd191 to aa445d0 Compare October 21, 2026 07:31
Base automatically changed from luke/live-invitations-service to main October 21, 2026 07:45
…ts owner's and admins' windows from Neon Realtime

The settings page's Invitations group, which an owner or an admin alone
sees, now follows the workspace's pending invitations on the act port's
own stream (`workspace.invitations`), as a workspace's people are followed:
the host follows each workspace (WORKSPACES_INVITATIONS_FOLLOW, polled
while Realtime fails it) and tells every change, or why there is none, as
WORKSPACE_INVITATIONS_CHANGED, never through app state. An invitation past
its expiry is left out by the host's clock as each change lands, since the
live statement keeps no clock, and each accept link is built on the origin
the service sealed it with. The first read stays; the re-read after an
invitation is made is gone, and what another window or Mac invites,
cancels, or has accepted is streamed.

The host's people and invitations follows share one workspace-read follow,
the act port's streams one counted stream, and the panel's one stream
reader (act-stream.ts).

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from aa445d0 to 708d756 Compare October 21, 2026 07:57
@luke-agent
luke-agent Bot marked this pull request as ready for review October 21, 2026 08:06
@luke-agent
luke-agent Bot added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 5efa27a Oct 21, 2026
12 of 13 checks passed
@luke-agent
luke-agent Bot deleted the luke/live-invitations-follow branch October 21, 2026 08:07

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

Comment thread packages/panel/src/settings/workspace-page.tsx
Comment thread packages/panel/src/settings/workspace-page.tsx

This branch was successfully deployed

1 active deployment
Preview — 708d7561 Deployed Oct 21, 2026 by vercel[bot]
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