summaryrefslogtreecommitdiffhomepage
path: root/packages/app
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-29 10:42:08 -0600
committerAdam <[email protected]>2025-12-29 10:42:48 -0600
commit5f074edc3a2ca80db4fd51360304bc070279a218 (patch)
tree135342ae17241e33bc4d40e625b876fb8d3ad54c /packages/app
parent56b5cdf88316af25a58215de899f90eea23db9b9 (diff)
downloadopencode-5f074edc3a2ca80db4fd51360304bc070279a218.tar.gz
opencode-5f074edc3a2ca80db4fd51360304bc070279a218.zip
fix(desktop): performance/jankiness
Diffstat (limited to 'packages/app')
-rw-r--r--packages/app/src/app.tsx2
-rw-r--r--packages/app/src/context/global-sync.tsx4
-rw-r--r--packages/app/src/context/sync.tsx4
3 files changed, 5 insertions, 5 deletions
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx
index bf5ba9566..9e38d5e98 100644
--- a/packages/app/src/app.tsx
+++ b/packages/app/src/app.tsx
@@ -69,7 +69,7 @@ export function App() {
<Route
path="/session/:id?"
component={(p) => (
- <Show when={p.params.id || true} keyed>
+ <Show when={p.params.id ?? "new"} keyed>
<TerminalProvider>
<PromptProvider>
<Session />
diff --git a/packages/app/src/context/global-sync.tsx b/packages/app/src/context/global-sync.tsx
index e1dcf15fc..a6851aecb 100644
--- a/packages/app/src/context/global-sync.tsx
+++ b/packages/app/src/context/global-sync.tsx
@@ -124,7 +124,7 @@ function createGlobalSync() {
const updated = new Date(s.time.updated).getTime()
return updated > fourHoursAgo
})
- setStore("session", sessions)
+ setStore("session", reconcile(sessions, { key: "id" }))
})
.catch((err) => {
console.error("Failed to load sessions", err)
@@ -263,7 +263,7 @@ function createGlobalSync() {
setStore("session_diff", event.properties.sessionID, reconcile(event.properties.diff, { key: "file" }))
break
case "todo.updated":
- setStore("todo", event.properties.sessionID, reconcile(event.properties.todos))
+ setStore("todo", event.properties.sessionID, reconcile(event.properties.todos, { key: "id" }))
break
case "session.status": {
setStore("session_status", event.properties.sessionID, reconcile(event.properties.status))
diff --git a/packages/app/src/context/sync.tsx b/packages/app/src/context/sync.tsx
index dad035fb3..05156613a 100644
--- a/packages/app/src/context/sync.tsx
+++ b/packages/app/src/context/sync.tsx
@@ -81,7 +81,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
}),
)
- setStore("todo", sessionID, reconcile(todo.data ?? []))
+ setStore("todo", sessionID, reconcile(todo.data ?? [], { key: "id" }))
setStore(
"message",
sessionID,
@@ -115,7 +115,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
.slice()
.sort((a, b) => a.id.localeCompare(b.id))
.slice(0, store.limit)
- setStore("session", sessions)
+ setStore("session", reconcile(sessions, { key: "id" }))
})
},
more: createMemo(() => store.session.length >= store.limit),