You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Message Window**| The contiguous range of Messages the Room view currently observes and renders (distinct from what is synced to the database) | Page, feed |
44
+
|**Live Tail**| The newest end of a Room's Messages; a Message Window at the Live Tail receives new Messages automatically | Bottom, latest |
45
+
|**Live Window**| A Message Window whose newest edge is the Live Tail — grows older as you scroll up and follows new Messages at the bottom | — |
46
+
|**Anchored Window**| A Message Window pinned around a Jump to Message target instead of the Live Tail; deliberately does not follow new Messages | — |
47
+
|**Chunk**| A contiguous run of Messages synced from the server into the local database, bracketed by Loader Rows where more exists | Batch, page |
48
+
|**Gap**| A region between two Chunks where Messages exist on the server but not yet locally; represented by a Loader Row | Hole |
49
+
|**Loader Row**| A placeholder Message record marking a Gap; becoming visible triggers a server fetch | Load-more, spinner row |
50
+
|**Older Loader**| A Loader Row marking older Messages (types `MORE`, `PREVIOUS_CHUNK`) — resolving it fetches Messages before it | Load previous |
51
+
|**Newer Loader**| A Loader Row marking newer Messages (type `NEXT_CHUNK`) — resolving it fetches Messages after it | Load next |
52
+
|**Room History**| Older Messages of a Room fetched on demand from the server (distinct from **Server History**) | Message history |
53
+
|**Jump to Message**| Re-position the Room view onto a target Message that may be far from the Live Tail or not yet synced — fetches a surrounding Chunk | Scroll to message |
54
+
39
55
## Users & Roles
40
56
41
57
| Term | Definition | Aliases to avoid |
@@ -130,6 +146,9 @@
130
146
- An **Omnichannel Room** connects exactly one **Visitor** with zero or one **Agents** (via **Served By**)
131
147
- An **Agent** belongs to one or more **Departments**
132
148
- An **Inquiry** becomes an **Omnichannel Room** when picked up by an **Agent**
149
+
- A **Room** view shows a **Live Window** by default; a **Jump to Message** replaces it with an **Anchored Window**
150
+
- A **Gap** is bracketed by **Loader Rows**; resolving a Loader Row fetches a **Chunk** and may shrink or close the Gap
151
+
-**Jump to Message** fetches a **Chunk** centered on the target (`loadSurroundingMessages`), bracketed by an **Older Loader** and a **Newer Loader** when more Messages exist on either side
133
152
134
153
## Example dialogue
135
154
@@ -147,3 +166,6 @@
147
166
-**"Account"** is sometimes used loosely to mean either **User** (the identity) or **Server** (the connected instance). These are distinct: a **User** authenticates on a **Server**.
148
167
-**"Channel"** in everyday speech can mean any Room, but in domain terms it strictly means a public Room (type `'c'`). A private Room is a **Group** (type `'p'`).
149
168
-**"Forward"** in omnichannel context means **Transfer** (reassigning a room to another agent/department). The codebase uses both `forwardRoom` and "transfer" — prefer **Transfer** as the domain term.
169
+
-**"History"** is overloaded: **Server History** is the recent-Servers reconnection list; **Room History** is older Messages fetched on demand. The action `roomHistoryRequest` and saga `ROOM.HISTORY_REQUEST` refer to **Room History**.
170
+
-**"Window"** is used metaphorically in the Subscriptions dialogue ("a Subscription is the user's window into it"); a **Message Window** is the concrete observed Message range in the Room view. Disambiguate when both could be meant.
171
+
-**"Load more"** is directional: older Messages are an **Older Loader** (`MORE`/`PREVIOUS_CHUNK`), newer Messages are a **Newer Loader** (`NEXT_CHUNK`). Avoid bare "load more".
0 commit comments