From 3db9b0f6735008bf844f7e4543ff38a23a1da85d Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Wed, 26 Nov 2025 15:59:24 +0000 Subject: [PATCH] tidy normalized store hydration --- .../src/stores/message-v2/instance-store.ts | 29 ++++++++++--------- packages/ui/src/stores/session-events.ts | 8 ----- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/packages/ui/src/stores/message-v2/instance-store.ts b/packages/ui/src/stores/message-v2/instance-store.ts index 163d711b..f4386b11 100644 --- a/packages/ui/src/stores/message-v2/instance-store.ts +++ b/packages/ui/src/stores/message-v2/instance-store.ts @@ -1,3 +1,4 @@ +import { batch } from "solid-js" import { createStore, produce, reconcile } from "solid-js/store" import type { SetStoreFunction } from "solid-js/store" import type { ClientPart, MessageInfo } from "../../types/message" @@ -361,22 +362,24 @@ export function createInstanceMessageStore(instanceId: string): InstanceMessageS } } - setState("messages", (prev) => ({ ...prev, ...nextMessages })) - setState("messageInfoVersion", (prev) => ({ ...prev, ...nextMessageInfoVersion })) - setState("pendingParts", () => nextPendingParts) - setState("permissions", "byMessage", (prev) => ({ ...prev, ...nextPermissionsByMessage })) + batch(() => { + setState("messages", () => nextMessages) + setState("messageInfoVersion", () => nextMessageInfoVersion) + setState("pendingParts", () => nextPendingParts) + setState("permissions", "byMessage", () => nextPermissionsByMessage) - if (usageState) { - setState("usage", sessionId, usageState) - } + if (usageState) { + setState("usage", sessionId, usageState) + } - setState("sessions", sessionId, (session) => ({ - ...session, - messageIds: incomingIds, - updatedAt: Date.now(), - })) + setState("sessions", sessionId, (session) => ({ + ...session, + messageIds: incomingIds, + updatedAt: Date.now(), + })) - bumpSessionRevision(sessionId) + bumpSessionRevision(sessionId) + }) } function insertMessageIntoSession(sessionId: string, messageId: string) { diff --git a/packages/ui/src/stores/session-events.ts b/packages/ui/src/stores/session-events.ts index 87564eee..0eb42233 100644 --- a/packages/ui/src/stores/session-events.ts +++ b/packages/ui/src/stores/session-events.ts @@ -121,10 +121,6 @@ function handleMessageUpdate(instanceId: string, event: MessageUpdateEvent | Mes applyPartUpdateV2(instanceId, part) - withSession(instanceId, sessionId, () => { - /* trigger reactivity for legacy consumers */ - }) - updateSessionInfo(instanceId, sessionId) refreshPermissionsForSession(instanceId, sessionId) } else if (event.type === "message.updated") { @@ -165,10 +161,6 @@ function handleMessageUpdate(instanceId: string, event: MessageUpdateEvent | Mes upsertMessageInfoV2(instanceId, info, { status: "complete", bumpRevision: true }) - withSession(instanceId, sessionId, () => { - /* ensure reactivity for legacy session observers */ - }) - updateSessionInfo(instanceId, sessionId) refreshPermissionsForSession(instanceId, sessionId) }