Track per-employee chat read state and surface real unread counts
Adds chat_read_state migration (employee_id + space_id, last read message + timestamp) wired through ChatService.markSpaceRead, IPC markChatSpaceRead, and an effect in ChatPage that flushes the active space whenever the latest message id changes. Shell.computeBadges now derives the Messages badge from (message.createdAt > read_state.last_read_at) minus messages the viewer sent, so the sidebar shows true unread instead of total throughput.
This commit is contained in:
1 parent
b44e0e3657
commit
1f78ae6f2e
11 files changed
+100
-3
No files matched your search
@@ -74,6 +74,7 @@ export function registerIpcHandlers(deps: IpcDeps): void {
|
||||
ipcMain.handle(IPC_CHANNELS.decideApproval, (_event, input) => mutate(() => approvals.decide(input)));
|
||||
ipcMain.handle(IPC_CHANNELS.createChatSpace, (_event, input) => mutate(() => chat.createSpace(input)));
|
||||
ipcMain.handle(IPC_CHANNELS.sendMessage, (_event, input) => mutate(() => chat.sendMessage(input)));
|
||||
ipcMain.handle(IPC_CHANNELS.markChatSpaceRead, (_event, input) => mutate(() => chat.markSpaceRead(input)));
|
||||
ipcMain.handle(IPC_CHANNELS.saveProviderCredential, (_event, input) => mutate(() => providers.saveCredential(input)));
|
||||
ipcMain.handle(IPC_CHANNELS.createProviderResponse, async (_event, input) => {
|
||||
try {
|
||||
|
||||
Reference in new issue
Block a user