perf: sync fork streams what a device lacks, and writes in shared spaces

The sync fork moves to the signed tip of halkyon/space-writes, which
brings two branches:

- halkyon/streamed-collection: the server hands each change a device
  lacks out as it is read, so a device hears from it at once; a large
  first sync had outlasted the client's 40 s before the server sent
  anything, and started over each time.
- halkyon/space-writes (ADR 0044, D24): a write without a transaction
  acts in the space it touches, and the host names where a new row goes
  (`newRowSpace`), each through transactionForUser, which checks
  membership and role. Nothing names one yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-11 13:00:38 +01:00
commit 4befd98d2f
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
2 changed files with 12 additions and 8 deletions

View file

@ -1888,8 +1888,8 @@ packages:
dependency: "direct overridden"
description:
path: "packages/serverpod_offline_sync"
ref: "741e334d6ac4ca89f99945dda2e444152ee32994"
resolved-ref: "741e334d6ac4ca89f99945dda2e444152ee32994"
ref: "845fb557db3e21cf78b152f9e39ba6a26947bab9"
resolved-ref: "845fb557db3e21cf78b152f9e39ba6a26947bab9"
url: "https://code.halkyon.app/project-halkyon/serverpod-offline-sync.git"
source: git
version: "0.0.10"

View file

@ -90,16 +90,20 @@ dependency_overrides:
# 500 to a statement per table, not one statement each: a new device's first sync
# of a library of 56,000 rows kept halkyon.li's server busy some 100 s, sending
# nothing, so the client closed the stream after 40 s and started over
# (2026-11-09). Pinned to a signed commit of the fork's branch
# halkyon/batched-row-reads (on halkyon/batch-inserts, on
# halkyon/fast-merge-deletes, on halkyon/fast-merges, on halkyon/fast-deletes, on
# halkyon/inbound-merges, on halkyon/byte-payloads); drop each change once a
# release of the package has it.
# (2026-11-09). The server hands each change out as it is read, so a device hears
# from it before the whole collection is read (2026-11-11). A write without a
# transaction acts in the space it touches, and a host names where a new row goes
# (`newRowSpace`), for spaces people share (ADR 0044, D24; 2026-11-11). Pinned to a
# signed commit of the fork's branch halkyon/space-writes (on
# halkyon/streamed-collection, on halkyon/batched-row-reads, on
# halkyon/batch-inserts, on halkyon/fast-merge-deletes, on halkyon/fast-merges, on
# halkyon/fast-deletes, on halkyon/inbound-merges, on halkyon/byte-payloads); drop
# each change once a release of the package has it.
serverpod_offline_sync:
git:
url: https://code.halkyon.app/project-halkyon/serverpod-offline-sync.git
path: packages/serverpod_offline_sync
ref: 741e334d6ac4ca89f99945dda2e444152ee32994
ref: 845fb557db3e21cf78b152f9e39ba6a26947bab9
# Melos (https://melos.invertase.dev): its scripts run across the workspace's packages,
# `dart run melos run <name>`, and take Melos' filters, such as