summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/sync.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-17 07:16:23 -0600
committerGitHub <[email protected]>2026-02-17 07:16:23 -0600
commit10985671ad9553e7ac594ede30981166f69ba3c5 (patch)
tree0f501ccba5dcf90e86beb18a0732826f7a3b1d0a /packages/app/src/context/sync.tsx
parent3dfbb7059345350fdcb3f45fe9a44697c08a040a (diff)
downloadopencode-10985671ad9553e7ac594ede30981166f69ba3c5.tar.gz
opencode-10985671ad9553e7ac594ede30981166f69ba3c5.zip
feat(app): session timeline/turn rework (#13196)
Co-authored-by: David Hill <[email protected]>
Diffstat (limited to 'packages/app/src/context/sync.tsx')
-rw-r--r--packages/app/src/context/sync.tsx17
1 files changed, 15 insertions, 2 deletions
diff --git a/packages/app/src/context/sync.tsx b/packages/app/src/context/sync.tsx
index e5916598b..60888b1a6 100644
--- a/packages/app/src/context/sync.tsx
+++ b/packages/app/src/context/sync.tsx
@@ -289,12 +289,25 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
const directory = sdk.directory
const client = sdk.client
const [store, setStore] = globalSync.child(directory)
- if (store.todo[sessionID] !== undefined) return
+ const existing = store.todo[sessionID]
+ if (existing !== undefined) {
+ if (globalSync.data.session_todo[sessionID] === undefined) {
+ globalSync.todo.set(sessionID, existing)
+ }
+ return
+ }
+
+ const cached = globalSync.data.session_todo[sessionID]
+ if (cached !== undefined) {
+ setStore("todo", sessionID, reconcile(cached, { key: "id" }))
+ }
const key = keyFor(directory, sessionID)
return runInflight(inflightTodo, key, () =>
retry(() => client.session.todo({ sessionID })).then((todo) => {
- setStore("todo", sessionID, reconcile(todo.data ?? [], { key: "id" }))
+ const list = todo.data ?? []
+ setStore("todo", sessionID, reconcile(list, { key: "id" }))
+ globalSync.todo.set(sessionID, list)
}),
)
},