diff options
| author | Burak Yigit Kaya <[email protected]> | 2026-03-24 14:02:22 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-24 09:02:22 -0500 |
| commit | c9c93eac00bda356f4cf2b03e011d0b19e535952 (patch) | |
| tree | 0ec10acf5730d9457a292cc8cc7c61d0af9f60ff /packages/app/src | |
| parent | 3f1a4abe6dc72b4d24b916436d3dd95393aeb650 (diff) | |
| download | opencode-c9c93eac00bda356f4cf2b03e011d0b19e535952.tar.gz opencode-c9c93eac00bda356f4cf2b03e011d0b19e535952.zip | |
fix(ui): eliminate N+1 reactive subscriptions in SessionTurn (#18924)
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/pages/session/message-timeline.tsx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/app/src/pages/session/message-timeline.tsx b/packages/app/src/pages/session/message-timeline.tsx index fe61f1685..5fef41a55 100644 --- a/packages/app/src/pages/session/message-timeline.tsx +++ b/packages/app/src/pages/session/message-timeline.tsx @@ -923,7 +923,15 @@ export function MessageTimeline(props: { {(messageID) => { const active = createMemo(() => activeMessageID() === messageID) const comments = createMemo(() => messageComments(sync.data.part[messageID] ?? []), [], { - equals: (a, b) => JSON.stringify(a) === JSON.stringify(b), + equals: (a, b) => + a.length === b.length && + a.every( + (c, i) => + c.path === b[i].path && + c.comment === b[i].comment && + c.selection?.startLine === b[i].selection?.startLine && + c.selection?.endLine === b[i].selection?.endLine, + ), }) const commentCount = createMemo(() => comments().length) return ( @@ -979,6 +987,7 @@ export function MessageTimeline(props: { <SessionTurn sessionID={sessionID() ?? ""} messageID={messageID} + messages={sessionMessages()} actions={props.actions} active={active()} status={active() ? sessionStatus() : undefined} |
