feat(messages): stream history one-message-per-WS-frame instead of 50-row batch
- backend: add streamMany generator (paginated, yields one record at a time) + messagesService.streamMessages + WS 'stream_messages' handler emitting 'message_snapshot' per message, 'message_snapshot_end' with nextCursor - frontend: useMessagesStream hook accumulates snapshots into SWR list, SSR getMessages seeds first paint, WsHook gains sendText - add stream-many.test.ts locking the one-at-a-time + cursor contract
This commit is contained in:
1 parent
95f2903067
commit
0cb0b82fb1
11 files changed
+392
-3
No files matched your search
@@ -36,6 +36,13 @@ export interface WsEventMap {
|
||||
/** Gateway emits { id, deleted_at } — NOT a bare string */
|
||||
message_deleted: { id: string; deleted_at?: number };
|
||||
message_analyzed: MessageRecord;
|
||||
/**
|
||||
* Streamed history frame — one MessageRecord per WS message (replaces the old
|
||||
* 50-row batched `messages.list` fetch on the client). The view accumulates
|
||||
* these into the SWR list as they arrive. `message_snapshot_end` signals done.
|
||||
*/
|
||||
message_snapshot: MessageRecord;
|
||||
message_snapshot_end: { sent: number; error?: boolean };
|
||||
attachment_created: unknown;
|
||||
attachment_uploaded: unknown;
|
||||
voice_recording_started: unknown;
|
||||
|
||||
Reference in new issue
Block a user