diff options
| author | Adam <[email protected]> | 2026-02-17 07:16:23 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-17 07:16:23 -0600 |
| commit | 10985671ad9553e7ac594ede30981166f69ba3c5 (patch) | |
| tree | 0f501ccba5dcf90e86beb18a0732826f7a3b1d0a /packages/app/src/context/sync.tsx | |
| parent | 3dfbb7059345350fdcb3f45fe9a44697c08a040a (diff) | |
| download | opencode-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.tsx | 17 |
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) }), ) }, |
