halkyon/pubspec.yaml
Tizian 「ティツィアーン」 6769598df5
feat(server): studysets, the first synced table (migration pending)
Adopts serverpod_offline_sync v0.0.8 (ADR 0001): its module (nickname offline_sync) and the experimental database: sync in generator.yaml, its server and client packages, and overrides that keep the four Serverpod core packages on v4.0.2, since the package pins v4.0.0 exactly and the spike showed it works on v4.0.2. The app's new dependencies come along because the workspace shares one lock file.

Studyset is the first synced model. Its space owns it, so it has no owner column, and only the envelope is a column: keyId and nonce stay null (no end-to-end encryption; ADR 0002, rule 6), and payload holds the content as versioned UTF-8 JSON, so a new content field changes the payload's schema version instead of this table, whose every migration locks older app versions out of syncing (rule 3). The audience column of the original design is gone: it served key selection, and the engine's spaces decide who reads a row.

The generated server and client code is included. The migration isn't: it is created together with the move to Serverpod v4.0.3 and reviewed first, like the client's local migration (the client's lib/migrations is still empty).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-09-30 20:38:14 +02:00

26 lines
895 B
YAML

# `_` is the conventional name of a pub workspace's root, which is never published or
# imported, so the naming lint doesn't apply to it.
name: _ # ignore: package_names
publish_to: none
environment:
sdk: '^3.13.0'
workspace:
- halkyon_learn_client
- halkyon_learn_server
- halkyon_learn_flutter
dev_dependencies:
# Referenced by analysis_options.yaml in this directory.
leancode_lint: ^27.0.0
# serverpod_offline_sync v0.0.8 pins Serverpod v4.0.0 exactly. The sync spike showed the
# pin is conservative (serverpod_database v4.0.0 and v4.0.2 have identical lib/, and sync
# works on v4.0.2), so these four keep the whole workspace on the Serverpod we run. Every
# Serverpod upgrade re-checks them until the package widens its constraints (ADR 0001).
dependency_overrides:
serverpod: 4.0.2
serverpod_client: 4.0.2
serverpod_database: 4.0.2
serverpod_serialization: 4.0.2