mirror of
https://github.com/warmbly/warmbly.git
synced 2026-09-10 00:04:27 +00:00
feat: document the live:patch event, cursor avatars, and live CRM deal-board moves in the realtime reference and collaboration guide
This commit is contained in:
@@ -267,8 +267,9 @@ Clients push:
|
||||
|
||||
- `live:cursor` with `{ "resource": "<resource>", "x": <number>, "y": <number> }` for a pointer move, or `{ "resource": "<resource>", "gone": true }` when the pointer leaves.
|
||||
- `live:node` with `{ "resource": "<canvas-resource>", "id": "<node-id>", "x": <number>, "y": <number>, "dragging": <bool> }` while a card is being moved (builder canvases only).
|
||||
- `live:patch` with `{ "resource": "<resource>", "data": { ... } }` for a generic collaborative-state hint, where `data` is a small flat map of scalar values (strings are capped, at most 20 keys). The dashboard uses it so a teammate's action lands instantly, for example a deal moved on a board (`{ "kind": "deal_move", "deal_id": "...", "stage_id": "..." }`) ahead of the durable refetch.
|
||||
|
||||
They fan out to the other members on the same org channel as `LIVE_CURSOR` and `LIVE_NODE` events carrying the same fields plus `user_id`. Resolve the mover's name and avatar from presence.
|
||||
They fan out to the other members on the same org channel as `LIVE_CURSOR`, `LIVE_NODE`, and `LIVE_PATCH` events carrying the same fields plus `user_id`. Resolve the mover's name and avatar from presence. A `live:patch` is a best-effort hint, not a source of truth: the change itself still persists over REST and re-syncs through the normal event stream, so a dropped frame self-heals.
|
||||
|
||||
These frames are deliberately lightweight:
|
||||
|
||||
|
||||
@@ -31,13 +31,14 @@ Beyond presence, the dashboard reflects changes from any source in real time:
|
||||
- New mail appears in every member's unibox as it syncs, respecting inbox permissions.
|
||||
- Contact imports, edits, and deletes refresh the contacts views for the whole team.
|
||||
- Mailbox health transitions (for example a warmup quarantine) flip status badges live.
|
||||
- Moving a deal between stages on a pipeline board shows up on every teammate viewing that board the moment you drop it, no refresh needed.
|
||||
- The [audit log](/guides/security/) streams new entries as teammates act, so the activity trail is also a live feed.
|
||||
|
||||
Events are permission-aware: a member without inbox access never receives unibox events, and billing events only reach members who can manage billing. See [Team roles](/guides/team-roles/) for the permission model.
|
||||
|
||||
## Live cursors
|
||||
|
||||
Wherever two teammates are on the same page, you see each other's cursors move in real time, each labeled with its owner's name. This works across the dashboard: the contacts table, the deal board, the unibox, settings, and every other page. Cursors are anchored to the page content, so they point at the same thing for both of you and follow along as either person scrolls.
|
||||
Wherever two teammates are on the same page, you see each other's cursors move in real time, each tagged with the person's avatar and name so it is always clear who is who. This works across the dashboard: the contacts table, the deal board, the unibox, settings, and every other page. On pages that scroll at the app level the cursor tracks the content as either person scrolls; elsewhere it marks where the teammate's pointer is.
|
||||
|
||||
## Live on the builder canvases
|
||||
|
||||
|
||||
Reference in New Issue
Block a user