typograph-editor-documentation
    Preparing search index...

    Release Notes - Version 1.0.0-20261107

    When several people edit a template together, a colour, tint or opacity now changes on everyone's screen while someone holds the slider or the swatch, not only when they let go.

    • Live colours, tints and opacity. With edit_together, the others see an element's colour, tint or opacity change as it is being dragged. Only the values travel, at most 20 times a second, and each window draws the newest once a frame; the change reaches the document once, on release, as one undo step. Past 50 elements at once the others see it when it lands. Only people who may edit send it. See Collaboration.
    • Less traffic when editing together. A window sends only its own presence, no longer the others' it received back to the room, and its pointer, a drag and a held slider go out together, in one message at most 20 times a second.
    • A template seats at most 8 people at once (TYP-1605). The ninth person opens it read-only, sees nobody else, and reads "8 people are already working in this template. You can edit as soon as one of them leaves." The editor asks for a seat again every 10 seconds or so and goes live by itself once one frees. One person's second window takes no second seat; viewers and commenters count too.

    For live colours and the lighter traffic nothing changes for a host: no new option, event or key. An editor without this sends no preview and ignores the others', so a room with older editors in it keeps working.

    For the full room, a host that draws its own chrome gets:

    • typograph_collaboration_changed with status: 'full' while the window waits for a seat, and a new seats in its detail: how many people the room seats, null otherwise.
    • gEditorUI.get_editing_held_reason() answers 'room_full', and gEditorUI.get_room_seats() the number. The editor's own mode control shows the notice on screen; a host that draws its own (set_available_modes(modes, { render: false })) shows it from these.
    • TYP-1599 (canvas #259): the editor sends preview in its awareness state while the mouse button is held, from canvas's preview_properties(), and clears it on release. Canvas draws the others' preview with set_remote_presence() without touching the document (canvas docs/presence.md). The collaboration protocol version stays the same: preview is a new optional field.
    • The canvas pin moves from 2b5ed74 to fab0216, which also brings canvas #256: how a form offers a choice list (TYP-1280).
    • canvas-service moves to the same canvas pin.
    • TYP-1600: HocuspocusProvider 3.4.4 sent every awareness change back to the room, also the ones the room had just sent it; send_only_own_awareness() skips those. The pointer tick now also carries moving and preview, set with one setLocalState(). collab-service no longer sends a change back to its sender and limits a socket to 40 awareness messages a second, which an editor from before this never reaches: either can ship first.
    • TYP-1605 (collab-service): collab-service refuses the ninth person with room-full: 8 people in the room. The editor leaves the room, holds editing with the reason room_full, and starts a new provider after 10 to 12 seconds, each time with a fresh token from the host. Another refusal while it waits makes it denied, editing alone, as before. An editor from before this shows a full room as denied. Either repository can ship first: without collab-service's limit nobody is refused.