Skip to content

feat(service,host): follow the sidebar's sections and pins over Neon Realtime - #3960

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

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

Conversation

@charleslpan

@charleslpan charleslpan commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

The sidebar's sections and repository pins move onto the live layer. Service and host are in one PR because both are small. Stacked on #3956.

  • New live procedure live.sidebar: three statements, sections, entries and pins, with the same rows and access rule as listTaskSections and listRepositoryPins.
  • Reader: sidebarOfLiveRows (sidebar-live.ts) orders them as the held reads do.
  • Host: follows them on liveRows, as it follows the workspaces, and writes taskSections and repositoryPins onto the view. The pins and sections reads inside every TASKS_REFRESH are gone; a write still draws the service's answer at once.

Tests

  • PGlite parity: the section owner, a teammate and an outsider.
  • Procedure test.
  • Immutability check.
  • compose-tasks: one seal across refreshes, and another Mac's section and pin pushed in order.

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:18am UTC

Request Review

@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-sidebar branch from 9a53d8f to 4c52728 Compare October 20, 2026 02:34
@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-sidebar branch from 4c52728 to 83c1c7c Compare October 20, 2026 03:26
@luke-agent luke-agent Bot closed this Oct 20, 2026
@luke-agent luke-agent Bot reopened this Oct 20, 2026
@luke-agent
luke-agent Bot force-pushed the luke/live-sidebar branch from 9d6d1d3 to 71404b7 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 force-pushed the luke/live-sidebar branch from 71404b7 to b77d8fb 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-follow branch from 8f57321 to 7e3de95 Compare October 21, 2026 00:45
@luke-agent
luke-agent Bot force-pushed the luke/live-sidebar branch from b77d8fb to 5bb71a3 Compare October 21, 2026 00:45
@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-sidebar branch from 5bb71a3 to cad0bf9 Compare October 21, 2026 01:05
@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-sidebar branch from cad0bf9 to 5f83b72 Compare October 21, 2026 01:17
@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-sidebar branch from 5f83b72 to c391d65 Compare October 21, 2026 01:32
@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-sidebar branch from c391d65 to 9b5af2c Compare October 21, 2026 06:27
@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-sidebar branch from 9b5af2c to 402bcaa Compare October 21, 2026 06:44
@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-sidebar branch from 402bcaa to 524d313 Compare October 21, 2026 07:01
@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-sidebar branch from 524d313 to 00b5b31 Compare October 21, 2026 07:09
@luke-agent
luke-agent Bot force-pushed the luke/live-invitations-follow branch from a8dd191 to aa445d0 Compare October 21, 2026 07:31
@luke-agent
luke-agent Bot force-pushed the luke/live-sidebar branch from 00b5b31 to 28cb02e Compare October 21, 2026 07:31
@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 force-pushed the luke/live-sidebar branch from 28cb02e to 87aa5c9 Compare October 21, 2026 07:58
Base automatically changed from luke/live-invitations-follow to main October 21, 2026 08:07
…llow Neon Realtime instead of every refresh

The live procedure `sidebar` (GET /api/live/sidebar) seals the account's
sidebar for the bearer as three live statements, its sections, the tasks
it keeps in them, and its pinned repositories, with the same rows and rule
of who may read them as listTaskSections and listRepositoryPins, each
calling only immutable functions; or answers their rows inline where the
reader polls or Realtime cannot seal them. The desktop orders them
(sidebar-live.ts's sidebarOfLiveRows), since Realtime keeps none.

The host follows them from the first refresh after a launch or a sign-in
until a sign-out, as it follows the workspaces, and draws each change as it
lands on the view, which every window and web tab already hears, a section
or a pin made on another Mac among them. The pins and sections read inside
every TASKS_REFRESH are gone; a write still draws the answer the service
gives at once.

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent
luke-agent Bot force-pushed the luke/live-sidebar branch from 87aa5c9 to 6bcb800 Compare October 21, 2026 08:14
@luke-agent
luke-agent Bot marked this pull request as ready for review October 21, 2026 08:22
@luke-agent
luke-agent Bot added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 30ef394 Oct 21, 2026
12 of 13 checks passed
@luke-agent
luke-agent Bot deleted the luke/live-sidebar branch October 21, 2026 08:23

@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 1 potential issue.

Devin Review

Comment thread packages/host/src/compose-tasks.ts

This branch was successfully deployed

1 active deployment
Preview — 6bcb8003 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