Convex re-runs a live query in full whenever a row it read is written, so the editor's page:getSnapshot subscription re-reads every row of the page after every edit: 58.5 KB on an 87-element page, measured on a local deployment with dev's data. Add page:getFrame (the page, its settings, its lineups and their images) and page:getElementSlice (the page's elements in one public-id range, with their images, and picture aliases apart), backed by a new elements.by_pageId_and_publicId index. Read as a frame plus slices covering every id, a page holds what page:getSnapshot returns, and an edit re-runs only the slice holding its row: 10.7 KB with 8 slices. Additive only: getSnapshot answers as before (now sharing its helpers), and no client reads the new queries yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dara Adedeji committed on 10/19/2026, 8:13:08 PMparent5c7b867
Checks
- In progressCodeRabbitGitHub
Review in progress
- Skippedwindows-buildGitHub
- Skippednative-replayGitHub
- Skippedlinux-buildGitHub
- Skippedpresence-workerGitHub
- Skippedwindows-testGitHub
- SkippedanalyzeGitHub
- Skippednative-bridgeGitHub
- SkippedwebGitHub
- SuccessfulconvexGitHub
- Cancelledtest (shard 0)GitHub
- Cancelledclient-contractGitHub
- Cancelledtest (shard 1)GitHub
- SuccessfulchangesGitHub
9 files changedLine totals unavailable