1 Sharing and Synchronization
Joël Jon Moix edited this page 2026-10-27 11:27:09 +01:00

Sharing and synchronization

Items

Pages, sessions, relationships and party members can be stored private (only the author's devices) or shared with the members. Character-sheet sections and images are shared-only, read-only projections. A relationship can be shared only if the pages it connects are shared too.

How a device stays aligned

  1. It sends each saved change with a unique operation ID and the revision it was based on. Retries with the same ID are acknowledged instead of applied twice.
  2. It reads everything that changed since its last position (a cursor), including tombstones for deletions and withdrawals. If its cursor is too old, it lists the campaign again.
  3. While connected, it keeps a notification stream open; each hint only says "something changed", never what.

Conflicts

If two devices change the same item, the second write is refused with the current server version. The app shows both versions; the user chooses. The server never merges text.

Offline

Devices keep working offline; their changes wait locally and are sent when the server answers again. Operation IDs older than 30 days are no longer acknowledged; the device then re-evaluates the item from its current state.

Limits

Bounded page sizes, payload sizes, image sizes (8 MiB per original for sharing) and storage quotas protect the server. See docs/API.md for exact values.