Repository navigation
Desktop/Windows: newly opened project has sessions in SQLite but missing history/sidebar because opencode.global.dat is not updated #26207
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Description
Description
Description
On OpenCode Desktop for Windows, newly opened projects sometimes have their sessions correctly stored in the SQLite database, but the Desktop UI does not show the project/session history in the sidebar after restart or project switch.
The database is not corrupted: the session exists in:
%USERPROFILE%\.local\share\opencode\opencode.db
But the Desktop state in:
%APPDATA%\ai.opencode.desktop\opencode.global.dat
is missing or stale for the project.
In affected cases, manually repairing the Desktop global state restores the sidebar/history immediately.
Environment
OpenCode Desktop: observed on v1.14.32
OS: Windows
Data paths:
DB: %USERPROFILE%\.local\share\opencode\opencode.db
Desktop global state: %APPDATA%\ai.opencode.desktop\opencode.global.dat
Actual behavior
After creating/opening a new local project and starting a session:
session rows exist in SQLite table session
messages exist in message / part
but Desktop sidebar/history does not show the project/session correctly
closing/reopening projects may remove the project from the Desktop project list again
The missing/stale state is in Desktop persisted global state, specifically project/session mapping and project list state.
In my installed version, the repair required updating:
layout.page.lastProjectSession[<project-directory>] = {
"directory": "<project-directory>",
"id": "<latest-session-id>",
"at": <timestamp>
}
and ensuring:
server.projects.local[] includes {
"worktree": "<project-directory>",
"expanded": true
}
and optionally:
server.lastProject.local = "<project-directory>"
Expected behavior
When a local project is opened and a session is created, Desktop should persist enough global state so that after restart/project switch:
the project remains in the sidebar/project list
its latest session/history is visible
the UI does not require manual repair of opencode.global.dat
Reproduction outline
Run OpenCode Desktop on Windows.
Open/create a new local project, e.g.:
D:\Documents\(Source)\repos\some-new-project
Start a session and send at least one message.
Close/restart OpenCode Desktop or switch projects.
Observe that the project/session history is missing from the Desktop sidebar.
Inspect SQLite DB:
session contains a row for the project directory
message / part contain conversation data
Inspect Desktop global state:
opencode.global.dat is missing the project in the persisted project list and/or latest-session mapping.
Evidence / diagnostics
A local read-only SQLite diagnostic showed:
PRAGMA quick_check = ok
sessions exist in session
messages exist in message
parts exist in part
Manual workaround:
Read latest session for target directory from SQLite.
Add/update project/session mapping in %APPDATA%\ai.opencode.desktop\opencode.global.dat.
Restart Desktop.
Sidebar/history becomes visible again.
This indicates the bug is likely in Desktop/app persistence, not in SQLite session storage.
Suspected source areas
Likely related source files:
packages/app/src/context/server.tsx
Persist.global("server", ["server.v3"])
server.projects.open(directory)
server.projects.touch(directory)
server.projects.list()
packages/app/src/context/layout.tsx
layout.projects.open(directory)
sidebar/project list
loading sessions for server.projects.list()
packages/app/src/pages/home.tsx
openProject(directory) calls:
layout.projects.open(directory)
server.projects.touch(directory)
packages/app/src/utils/persist.ts
GLOBAL_STORAGE = "opencode.global.dat"
Persist.global(...)
Desktop storage bridge:
packages/desktop/src/renderer/index.tsx
packages/desktop/src/main/ipc.ts
packages/desktop/src/main/store.ts
Possible cause
The project/session exists in backend/global SQLite state, but the client-side Desktop persisted state is not always updated or is later overwritten.
This looks related to the sidebar project list being derived from persisted server.projects.* state instead of being reconciled with projects/sessions that exist in the server/SQLite database.
Related issues
Possibly related:
#26165 — direct project navigation does not add project to sidebar
#25131 — stale Desktop session IDs / lastProjectSession state
#25629 — Desktop stalls during storage writes to opencode.global.dat
Suggested fix
When a project/session is opened or loaded successfully:
ensure the project is present in persisted server.projects[local]
ensure the latest valid session is associated with that project
reconcile persisted Desktop project list with server/SQLite project/session data
normalize Windows path casing consistently
if a persisted session reference is missing/stale, clear it and recover instead of hiding/crashing
### Plugins
_No response_
### OpenCode version
1.14.40
### Steps to reproduce
_No response_
### Screenshot and/or share link
_No response_
### Operating System
Windows 11
### Terminal
_No response_
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
github-actions commentedon May 7, 2026
This issue doesn't fully meet our contributing guidelines.
What needs to be fixed:
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
This issue might be a duplicate of existing issues. Please check:
If you believe this was flagged incorrectly, please let a maintainer know.
github-actions commentedon May 7, 2026
This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.
Feel free to open a new issue that follows our issue templates.