Module person
Expand description
Records in the person’s own room: data that belongs to one person and follows them across their devices, never to a collaborator.
A shared room’s records are its members’. Some of an app’s state is
nobody’s but the person’s — what they watched, the words they taught
the keyboard, where they stopped reading — and is still data rather than
a preference: it grows, it has history, edits to it are undone. That
state is a record like any other, kept in the person’s own room
([collab_types::person_room]): a room whose id is derived from the
person’s root key and whose members are, by that derivation, exactly the
devices that root certified. Nobody can be invited into it.
An app holds the person’s records beside the record it shows, whatever
room that one is in. PersonRecords is where they are kept on this
device for one app; PersonRecord is one of them, opened, edited with
attribution and undo, and synced on its own route
(PersonRecord::history_owner) to the person’s other devices.
Without a root identity there is no person room: the records are kept on this device only, in a scope no route can name.
Structs§
- Person
Record - One of the person’s records, open. Edits are attributed to the person, recorded as undo steps of their own and synced on the record’s route.
- Person
Records - Where one app keeps the person’s records on this device. Cloning shares the open records.