Skip to content

feat(host,panel): the automations list and an automation's runs are pushed to the pages that draw them - #3297

Merged
luke-agent[bot] merged 1 commit into
mainfrom
luke/neon-realtime-automations-follow
Oct 21, 2026
Merged

luke-agent[bot] merged 1 commit into
mainfrom
luke/neon-realtime-automations-follow

Conversation

@charleslpan

@charleslpan charleslpan commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Part of the automations' move onto the central live layer (with Realtime off, LUKE_REALTIME unset). It stacks on #3289, which adds the service's live reads live.automations and live.automationRuns.

What changes

The Automations pages stop reading their list and runs every minute. Instead, the host follows what a page draws and pushes it.

  • Host follow (packages/host/src/automation-follow.ts)
    • Follows a workspace's automations, or one automation's runs, through liveRows: held polls while Realtime is off, a subscription when it's on.
    • Each read names the account that was signed in when the follow started.
    • Builds the list or history from the rows. Builds it again at the one moment the clock alone moves a run's agent (a grace ending, via statusClockEdge).
    • Signed out: the follow ends quietly. Not found: it says so and ends. Any other failure: says unanswered and retries after 5 s.
  • Composer and gateway
    • automations.follow and automations.unfollow gateway methods, plus an automations.changed event, as the transcript follow has.
    • Following again starts over, so a second window gets the current list at once.
    • A sign-out (closeCapabilities) resets every follow.
  • Act port
  • Panel
    • useAutomations and useAutomationRuns hold the stream open while their page stands (use-followed-automations.ts). Retry reopens it.
    • Removed: useMinute, the generation counter, the re-read after every write, and the re-read after Run now.
    • A write's answer still lands in place at once, until the next push replaces it.

Not included

  • No txid waits and no web-tab bridge. A web tab gets the same act-port stream.
  • The one-shot automations.list and automations.runs acts stay. The workspace settings page still counts automations with one read.

Checks

  • Typecheck is clean for host, features, panel and service.
  • Tests: the full host suite (524), the service suites (89), and the panel suites that use automations (477), including (new composer and act-port stream tests).
    • The page tests answer the follow with a stream that takes pushes.
    • The fake act port answers a follow from a suite's list or runs stub when the suite doesn't stub the follow itself.
  • oxlint, repository checks and knip pass (knip shows only the findings already on main).

@vercel

vercel Bot commented Oct 17, 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 6:17am UTC

Request Review

@luke-agent
luke-agent Bot changed the base branch from main to luke/neon-realtime-automations-service October 17, 2026 01:44
@luke-agent luke-agent Bot closed this Oct 17, 2026
@luke-agent luke-agent Bot reopened this Oct 17, 2026
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 9227733 to 4fd53c6 Compare October 18, 2026 20:31
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 6cbb991 to b5355da Compare October 18, 2026 20:38
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 4fd53c6 to c241c39 Compare October 18, 2026 21:24
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from b5355da to 6ca42d4 Compare October 18, 2026 21:24
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from c241c39 to e20c218 Compare October 19, 2026 18:52
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 6ca42d4 to ab17b61 Compare October 19, 2026 18:52
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from e20c218 to 811d315 Compare October 20, 2026 02:53
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from ab17b61 to ab67f1c Compare October 20, 2026 02:53
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 811d315 to fb5020c Compare October 20, 2026 02:58
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from ab67f1c to aef1358 Compare October 20, 2026 02:58
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from fb5020c to c1104a8 Compare October 20, 2026 04:02
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 9f8b8bd to 4a1da3d Compare October 20, 2026 04:02
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch 2 times, most recently from c23709c to 8134bab Compare October 21, 2026 00:44
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 4a1da3d to ce9f0a5 Compare October 21, 2026 01:08
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 8134bab to 9635f18 Compare October 21, 2026 01:08
@luke-agent luke-agent Bot changed the title feat(host,desktop): the automations list and an automation's runs are pushed to the panels that draw them, read on no clock feat(host,panel): the automations list and an automation's runs are pushed to the pages that draw them Oct 21, 2026
@luke-agent luke-agent Bot closed this Oct 21, 2026
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 64ea3eb to 95addee Compare October 21, 2026 05:30
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from b000867 to 34c3e69 Compare October 21, 2026 05:30
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 95addee to 0b8a78a Compare October 21, 2026 05:38
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 34c3e69 to 7b01553 Compare October 21, 2026 05:38
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 0b8a78a to 8eba1ac Compare October 21, 2026 05:50
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 7b01553 to 791fb60 Compare October 21, 2026 05:50
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 8eba1ac to 94d1b67 Compare October 21, 2026 05:58
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 791fb60 to 196f24a Compare October 21, 2026 05:58
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 196f24a to 7a60d5d Compare October 21, 2026 06:07
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-service branch from 94d1b67 to 34fe396 Compare October 21, 2026 06:07
Base automatically changed from luke/neon-realtime-automations-service to main October 21, 2026 06:10
…ushed to the pages that draw them

The host follows a workspace's automations, or an automation's runs, while a
page draws them, on the service's live read through `liveRows` (held polls
while Realtime is off), for the account signed in as the follow started. The
list or the history is built from the rows, and again at the one instant the
clock alone moves a run's agent. A read the account no longer reaches is told
not found and ends the follow; signed out ends it unsaid, and a sign-out lets
every follow go.

The panel holds an `automations.follow` stream open on the act port while a
page stands, as a transcript's tab does; the act port follows from the first
stream of a list to the last. The pages no longer read the list or the runs
each minute, nor again after a write or a Run now.

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent
luke-agent Bot force-pushed the luke/neon-realtime-automations-follow branch from 7a60d5d to d35b788 Compare October 21, 2026 06:12
@luke-agent
luke-agent Bot marked this pull request as ready for review October 21, 2026 06:12
@luke-agent
luke-agent Bot enabled auto-merge October 21, 2026 06:12
@luke-agent
luke-agent Bot added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 7936414 Oct 21, 2026
11 of 20 checks passed
@luke-agent
luke-agent Bot deleted the luke/neon-realtime-automations-follow branch October 21, 2026 06:14

@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.

1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

Comment thread packages/host/src/automation-follow.ts
Comment thread packages/panel/src/desktop/use-automations.ts

This branch was successfully deployed

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