Trust Center · Sync Policy
When the same user writes concurrently from multiple devices (e.g. desktop + mobile), which rule does LYDOS apply? This page honestly explains the WebSocket channel model, last-write-wins conflict resolution, the optimistic-UI rollback contract, and reconnect behavior.
Every authenticated operator can subscribe to the tenant:<user_id>:* channel namespace. A cross-user subscribe (e.g. tenant:B:tasks:* by user A) is rejected at the handshake level; the connection closes KURAL 22 fail-closed. Evidence:
LYDOS runs on a single-region federation DB. If two devices write concurrently to the same row (e.g. chat_files.content or user_workspace_prefs.streaming_enabled), PostgreSQL's serializable transaction queue applies the natural LWW ordering: the updated_at column is rewritten with now() on every UPDATE, and the last commit fixes the final value.
Detail: the user_workspace_prefs PUT UPSERT uses COALESCE(EXCLUDED.col, table.col) — a partial PUT preserves untouched toggles, only the explicitly sent fields are written. This behavior is pinned by the P7 wiring test (test_p7_prefs_wiring.py).
Toggle/edit actions on dashboard surfaces:
If the operator's verbose_errors preference is on, the raw backend detail field is shown; if off, a generic message. Live in the toggle prefs.
When the WebSocket disconnects, the client:
This policy is the rule LYDOS applies TODAY — controlled-beta, single-region: