Skip to content

Live WebSocket updates (#345) + /evaluate param-overflow fix + Job Board issues (#341) - #353

Merged
DerDennisOP merged 7 commits into
mainfrom
feat/live-ws-345
Jun 7, 2026
Merged

Live WebSocket updates (#345) + /evaluate param-overflow fix + Job Board issues (#341)#353
DerDennisOP merged 7 commits into
mainfrom
feat/live-ws-345

Conversation

@DerDennisOP

@DerDennisOP DerDennisOP commented Jun 7, 2026

Copy link
Copy Markdown
Member

#345 replace HTTP polling with live WebSockets

Per-resource WS channels (/projects/{org}/{project}/live, /evals/{id}/live, /builds/{id}/live, /board/cache/live); BoardEvent + its broadcast sender move onto ServerState so DB status helpers emit evaluation/build/cache changes. Frontend LiveService (auto-reconnect) drives project-detail, evaluation-log, dependency-graph and cache off their 3–5s timers onto refetch-on-change.

Bug POST /evaluate 500 too many arguments for query: 106386

Postgres caps bind params at 65535; find_active_leaders and ~30 other workload-scaled .is_in(...) sites overflowed on large monorepos. Added fetch_in_chunks/for_each_chunk and swept core/scheduler/web. Regression test drives 70k ids and asserts no statement exceeds the cap.

Large evaluations and restart_failed funneled tens of thousands of ids
into a single is_in, overflowing with "too many arguments for query".
Add fetch_in_chunks/for_each_chunk and apply to every workload-scaled
is_in across core, scheduler and web; regression test exceeds the cap.
The option documented requiring the experimental feature but never
enabled it on the daemon.
Move BoardEvent + its broadcast sender onto ServerState so DB status
helpers emit evaluation/build/cache changes alongside the scheduler's
queue/worker events. Add scope-filtered /projects/{org}/{project}/live,
/evals/{id}/live, /builds/{id}/live and /board/cache/live channels for
the frontend to refetch on, replacing fixed-interval polling.
project-detail, evaluation-log, dependency-graph and cache now refetch on
LiveService events instead of 3-5s timers. Also fixes evaluation-log copy
blank lines, building-build line counts, line deep-linking, via-duplicate
sidebar builds, and non-color status indicators (#341, #32).
Sortable HTTP routes, filterable-but-live Live Jobs, clickable undispatched
jobs, job 'Current State' + clickable build-id popup, and an 'Exclude
acknowledged' tooltip.
Enabling cgroup build metrics needs the `cgroups` experimental feature
plus `use-cgroups = true`, not a `use-cgroups` experimental feature.
@DerDennisOP
DerDennisOP merged commit 5df4443 into main Jun 7, 2026
8 of 10 checks passed
@DerDennisOP
DerDennisOP deleted the feat/live-ws-345 branch June 7, 2026 21:09
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