typograph-editor-documentation
    Preparing search index...

    Release Notes - Version 1.0.0-20261025.3

    People working in the same template edit it together: each edit reaches the others within a moment, element by element. Off unless the host turns it on.

    • Edit together. With the new collaboration.edit_together option everyone who may edit edits at once; nobody waits for a pen. Moving, resizing, restyling, adding, deleting, grouping and reordering elements reach the others within a moment, and so do a spread's bleed, colour, name and lock, and adding, deleting, moving and keeping together pages. Two people changing different properties of one element both keep their change, and a window that joins late or loaded an older version is brought up to date. Undo takes back your own step only, and never over what someone else changed since. One window saves for everyone (editing.writer), so a host autosaves only there. See "Editing together" in docs/Collaboration.md.
    • A view-only window is held while editing together, as it was under the pen, and the mode switcher says it has view access rather than that editing is paused. New: ui.get_editing_held_reason(), 'others' or 'view_only' (docs/API-EditorUI.md).
    • typograph_document_changed has a new reason, 'remote', for someone else's change arriving while editing together (docs/DocumentEvents.md). A host that switches on the reason should treat it as a change to save, in the window that saves for everyone. Without edit_together it never fires.
    • Everyone in the template has a colour of their own, the same on every screen. The person who has been in the template longest keeps the colour of their token; someone whose colour is taken gets the first free one, and a person's colour never changes when someone else arrives. people[].color and editing.by.color carry that colour, no longer the token's own.
    • Text being typed travels when the typing run ends (the next click or command), not per keystroke.
    • While the room exists it holds the document: a change made to the saved template outside it (the API, an agent, a window without edit_together) is overwritten by the room's next save. A window editing together waits while a window on the pen edits in the same room.
    • The document's swatches, styles and fonts are not shared yet, so while editing together the swatch panel offers no + and −, POD settings cannot replace colours or fonts, and the Templates and Clips tabs are disabled. Each says why.
    • Picking a colour for an element — a solid colour or a gradient — adds a swatch for it to the document behind the scenes, and that swatch does not travel yet. The others' windows may draw the element without it, and when the window that saves is one of them, the saved template can lack it. Until swatches are shared, pick from the swatches the template already has.
    • TYP-919 (editor-ui feat/TYP-919-element-sync): src/elementsync.ts keeps the shared Y.Doc in the B2 model of the sync design (a node per element with its properties, parent, fractional position and tombstone, repaired on read; a map of each spread's own properties), writes canvas's typograph_element_changes into it and applies the others' changes with canvas's apply_remote_changes(), holding them back during a drag (is_pointer_down()). Needs canvas feat/TYP-919-apply-remote, so the canvas pin moves with it. Vitest elementsync.test.ts.
    • TYP-919 (editor-ui feat/TYP-919-share-pages): the spread list is shared the same way, each spread a node with its own properties, a fractional position and a tombstone; canvas's typograph_structure_changes is written into it and apply_remote_structure() rebuilds the others' spread list in place. Needs canvas feat/TYP-919-share-pages. Vitest pagesync.test.ts.