Short description
Dashboard v0.17.0 shows "No projects yet" on OpenCode 2 (v2.0.18) + magic-context 0.43.2
What happened?

# Dashboard v0.17.0 shows "No projects yet" on OpenCode 2 (v2.0.18) + magic-context 0.43.2
Summary
After upgrading from OpenCode 1 to OpenCode 2 (v2.0.18) with magic-context 0.43.2 and Dashboard v0.17.0, the Dashboard Projects page is empty ("No projects yet", "0 tracked"), even though Magic Context is actively writing memory/notes/tags for the current project. The Magic Context store itself is healthy (doctor = PASS 17 / FAIL 0), so this looks like a Dashboard-side project-enumeration gap on OpenCode 2, not data loss or a failed migration.
Environment
- OS: Windows 11, PowerShell 5.1
- OpenCode: v2.0.18 (active via PATH; launched through OpenChamber)
- Magic Context: 0.43.2 (
@cortexkit/opencode-magic-context@latest)
- Magic Context Dashboard: v0.17.0
- OpenCode store:
~/.local/share/opencode/opencode.db (OpenCode 2 schema: session_v2/session_message; no v1 session/message tables)
- Magic Context store:
~/.local/share/cortexkit/magic-context/context.db (schema v90)
What I observe
- Dashboard (screenshot attached below) left nav
Projects → "No projects yet." / "0 tracked".
- Dashboard footer still reads live data:
DB: 2.0 MB · 3 memories · 0 compartments · 0 facts · 1 notes — i.e. the Dashboard connects to the right DB and can read rows, it just doesn't list any project.
magic-context doctor reports a healthy install:
Magic Context Doctor
* SQLite integrity_check: ok
* Storage versions: context_db_schema_version=90, plugin_supported_version=90
* Magic Context CLI v0.43.2 is current (npm latest v0.43.2)
* OpenCode 2 plugin cache up to date (v0.43.2)
! Magic Context config has 1 warning(s) — "sidekick" configuration was removed and is ignored.
! Local embedding runtime unverified: no installed plugin tree found to inspect
Summary: PASS 17 / WARN 2 / FAIL 0
— Fixed 1 issue(s). Restart OpenCode to apply.
Doctor does not flag the empty project registry as a problem, and does not check project_state / session_projects / workspaces at all.
Evidence (read via DBX, replaying -wal)
context.db at time of writing (row counts):
| table |
rows |
memories |
5 and growing |
notes |
1 |
tags |
1200+ (all harness=opencode2) |
session_meta |
7 and growing |
compartments |
0 |
historian_runs |
0 |
message_history_index / message_history_source |
0 / 0 |
project_state |
0 |
session_projects |
0 |
workspaces |
0 |
workspace_members |
0 |
project_key_files |
0 |
memories are scoped directly by a directory identity that OpenCode 2 uses, not by the OpenCode-1 registry:
SELECT id, project_path, scope FROM memories;
-- id 1..5, project_path = 'dir:6fb76e42d6dd', scope='project'
So a project does exist (as dir:<hash> in memories.project_path, and it renders in the TUI <project-memory> block), but there are no rows in project_state / session_projects / workspaces.
The active session in that very directory (ses_f2239013…, 100+ turns, memory present) also has no session_projects row — so this is not merely "old OpenCode-1 sessions weren't backfilled".
Fleet log (%LOCALAPPDATA%\Temp\opencode\magic-context\magic-context.log) is stale since 2026-09-25 23:14 — exactly the OpenCode 1 → 2 upgrade window. Before that (OpenCode 1 era) it logged [dreamer] timer tick … projects=5 and boot … dir=~\.config\opencode, i.e. projects and the historian/dreamer loop were healthy. The 0.43.2 process does not appear to be writing this log path.
Note: doctor (via node:sqlite, apparently without applying -wal) reports memories=0 / notes=0, while DBX replaying the WAL reads 5 / 1. A restart checkpoints the WAL and should make them agree — but it does not change the fact that the project registry tables are empty.
Root-cause hypothesis
On OpenCode 2, Magic Context keys projects by memories.project_path = dir:<hash> and does not write the OpenCode-1 project registry tables (project_state / session_projects / workspaces). Dashboard v0.17.0's Projects page appears to enumerate projects from those OpenCode-1 registry tables, which are empty under OpenCode 2, so it renders "No projects yet" even though projects exist as dir:<hash> identities with memories.
Release notes for Dashboard v0.17.0 ("Works with Magic Context 0.43.0, including OpenCode 2", "matches it by that id across both labels") suggest the store/harness detection was addressed, but the project listing path may still assume the OpenCode-1 registry shape.
Expected
Under OpenCode 2, the Dashboard Projects page should either:
- derive projects from the OpenCode-2 identity (
memories.project_path = dir:<hash>), or
- otherwise enumerate projects in a way that returns the active
dir:<hash> project — and Dashboard should render a human-readable directory (e.g. D:/projects/global) rather than the raw dir:<hash>.
Questions for maintainers
- How should Dashboard v0.17.0 enumerate projects under OpenCode 2 — is
memories.project_path (dir:<hash>) the intended source instead of project_state/session_projects?
- Is the empty
project_state/session_projects/workspaces set expected on OpenCode 2, or is Magic Context itself failing to populate them (which would be a plugin-side bug rather than a Dashboard one)?
- Should
doctor verify a Dashboard-compatible project listing (and warn when a project exists as dir:<hash> but has no registry entry)?
- Why does the 0.43.2 process stop writing the fleet log to
%LOCALAPPDATA%\Temp\opencode\magic-context\magic-context.log on OpenCode 2? (Dashboard → Logs page relies on it.)
Secondary issue (independent of Projects page)
historian/dreamer in ~/.config/cortexkit/magic-context.jsonc are set to opencode-go/muse-spark-1.3-contributor, but the opencode-go provider is not defined in opencode.jsonc. Result: historian_runs=0, compartments=0, message_history_index=0, so Dashboard's Context/Cache/Compartment charts are empty even when a project is visible. (Please confirm whether an undefined provider should surface as a doctor warning rather than silently never running.)
Repro state
This is an observed post-upgrade state rather than discrete steps. To reproduce: run OpenCode 2.0.18 + magic-context 0.43.2 + Dashboard v0.17.0 migrated from an OpenCode 1 store, open a project directory, generate some turns/notes, then open Dashboard → Projects.
Attachments
doctor output (above).
- DBX row-count +
SELECT id, project_path, scope FROM memories output (above).
- Dashboard screenshot (Projects = "No projects yet", footer showing memories/notes).
Notes
- No secrets included in this report.
- Can provide a redacted copy of
context.db / opencode.db (or targeted SELECT outputs) on request.
Diagnostics
C:\Users\luiju>npx @cortexkit/magic-context@0.43.2 doctor --harness opencode
npm notice run npx
npm notice run magic-context doctor --harness opencode
|
o Running doctor for OpenCode…
T Magic Context Doctor
|
• Authority:
|
• no authority_managed markers
|
• OpenCode installations:
|
• marker | path | version | source
|
• [active] | C:\Users\luiju\AppData\Roaming\npm\opencode.cmd | opencode v2.0.18 | PATH
|
• | C:\Users\luiju\AppData\Roaming\ai.opencode.desktop\opencode.settings | unknown | desktop
|
* OpenCode opencode v2.0.18 installed (active install marked above)
|
* OpenCode session database: C:\Users\luiju\.local\share\opencode\opencode.db (source=default, channel=latest)
|
* OpenCode compaction markers are convertible to OpenCode 2: before=0 missing time.completed; after=0
|
* Compartment boundary ids resolve in the OpenCode session store
|
* All 0 session(s) with compartments are already anchored to this host's v2 store projection
|
* No compartment is excluded from range recovery by a store change
(node:20096) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
|
* Magic Context CLI v0.43.2 is current (npm latest v0.43.2)
|
* OpenCode config: C:\Users\luiju\.config\opencode\opencode.jsonc
|
* Magic Context config: C:\Users\luiju\.config\cortexkit\magic-context.jsonc
|
* magic-context.jsonc parses as valid JSONC
|
! Magic Context config has 1 warning(s) — see 'magic-context doctor --issue' for details
|
! The "sidekick" configuration was removed and is ignored.
|
* Plugin registered in opencode.jsonc
|
• Compaction check: file-based; the running server's resolved config may differ — `opencode debug config` is authoritative
|
* No conflicts detected (compaction, DCP, OMO hooks)
|
* TUI sidebar loads from the plugin entry on OpenCode 2 (tui.json not used)
|
! Local embedding runtime unverified: no installed plugin tree found to inspect
|
• Shared storage: C:\Users\luiju\.local\share\cortexkit\magic-context (source: platform default)
|
• Shared context DB exists at C:\Users\luiju\.local\share\cortexkit\magic-context\context.db
|
* Opened the shared DB with a supported schema
|
• Storage versions: context_db_schema_version=90, plugin_supported_version=90
|
• Upstream migration fence: context.db and this build are both v90.
|
* SQLite integrity_check: ok
|
• Shared DB row counts: tags=954, compartments=0, memories=0, notes=0, dream_runs=0
|
* Background maintenance completed its last pass
|
* OpenCode 2 plugin cache up to date (v0.43.2)
|
• Log file read: C:\Users\luiju\AppData\Local\Temp\opencode\magic-context\magic-context.log (grammar=legacy, lines=376, 53 KB)
|
| Summary: PASS 17 / WARN 2 / FAIL 0
|
— Fixed 1 issue(s). Restart OpenCode to apply.
Plugin version
0.43.2
OpenCode version
2.0.18
Platform
windows 11
Client
Magic Context Dashboard
Log output (optional)
Short description
Dashboard v0.17.0 shows "No projects yet" on OpenCode 2 (v2.0.18) + magic-context 0.43.2
What happened?
Summary
After upgrading from OpenCode 1 to OpenCode 2 (v2.0.18) with magic-context 0.43.2 and Dashboard v0.17.0, the Dashboard Projects page is empty ("No projects yet", "0 tracked"), even though Magic Context is actively writing memory/notes/tags for the current project. The Magic Context store itself is healthy (
doctor= PASS 17 / FAIL 0), so this looks like a Dashboard-side project-enumeration gap on OpenCode 2, not data loss or a failed migration.Environment
@cortexkit/opencode-magic-context@latest)~/.local/share/opencode/opencode.db(OpenCode 2 schema:session_v2/session_message; no v1session/messagetables)~/.local/share/cortexkit/magic-context/context.db(schema v90)What I observe
Projects→ "No projects yet." / "0 tracked".DB: 2.0 MB · 3 memories · 0 compartments · 0 facts · 1 notes— i.e. the Dashboard connects to the right DB and can read rows, it just doesn't list any project.magic-context doctorreports a healthy install:project_state/session_projects/workspacesat all.Evidence (read via DBX, replaying
-wal)context.dbat time of writing (row counts):memoriesnotestagsharness=opencode2)session_metacompartmentshistorian_runsmessage_history_index/message_history_sourceproject_statesession_projectsworkspacesworkspace_membersproject_key_filesmemoriesare scoped directly by a directory identity that OpenCode 2 uses, not by the OpenCode-1 registry:So a project does exist (as
dir:<hash>inmemories.project_path, and it renders in the TUI<project-memory>block), but there are no rows inproject_state/session_projects/workspaces.The active session in that very directory (
ses_f2239013…, 100+ turns, memory present) also has nosession_projectsrow — so this is not merely "old OpenCode-1 sessions weren't backfilled".Fleet log (
%LOCALAPPDATA%\Temp\opencode\magic-context\magic-context.log) is stale since 2026-09-25 23:14 — exactly the OpenCode 1 → 2 upgrade window. Before that (OpenCode 1 era) it logged[dreamer] timer tick … projects=5andboot … dir=~\.config\opencode, i.e. projects and the historian/dreamer loop were healthy. The 0.43.2 process does not appear to be writing this log path.Note:
doctor(via node:sqlite, apparently without applying-wal) reportsmemories=0 / notes=0, while DBX replaying the WAL reads5 / 1. A restart checkpoints the WAL and should make them agree — but it does not change the fact that the project registry tables are empty.Root-cause hypothesis
On OpenCode 2, Magic Context keys projects by
memories.project_path = dir:<hash>and does not write the OpenCode-1 project registry tables (project_state/session_projects/workspaces). Dashboard v0.17.0's Projects page appears to enumerate projects from those OpenCode-1 registry tables, which are empty under OpenCode 2, so it renders "No projects yet" even though projects exist asdir:<hash>identities with memories.Release notes for Dashboard v0.17.0 ("Works with Magic Context 0.43.0, including OpenCode 2", "matches it by that id across both labels") suggest the store/harness detection was addressed, but the project listing path may still assume the OpenCode-1 registry shape.
Expected
Under OpenCode 2, the Dashboard Projects page should either:
memories.project_path=dir:<hash>), ordir:<hash>project — and Dashboard should render a human-readable directory (e.g.D:/projects/global) rather than the rawdir:<hash>.Questions for maintainers
memories.project_path (dir:<hash>)the intended source instead ofproject_state/session_projects?project_state/session_projects/workspacesset expected on OpenCode 2, or is Magic Context itself failing to populate them (which would be a plugin-side bug rather than a Dashboard one)?doctorverify a Dashboard-compatible project listing (and warn when a project exists asdir:<hash>but has no registry entry)?%LOCALAPPDATA%\Temp\opencode\magic-context\magic-context.logon OpenCode 2? (Dashboard → Logs page relies on it.)Secondary issue (independent of Projects page)
historian/dreamerin~/.config/cortexkit/magic-context.jsoncare set toopencode-go/muse-spark-1.3-contributor, but theopencode-goprovider is not defined inopencode.jsonc. Result:historian_runs=0,compartments=0,message_history_index=0, so Dashboard's Context/Cache/Compartment charts are empty even when a project is visible. (Please confirm whether an undefined provider should surface as adoctorwarning rather than silently never running.)Repro state
This is an observed post-upgrade state rather than discrete steps. To reproduce: run OpenCode 2.0.18 + magic-context 0.43.2 + Dashboard v0.17.0 migrated from an OpenCode 1 store, open a project directory, generate some turns/notes, then open Dashboard → Projects.
Attachments
doctoroutput (above).SELECT id, project_path, scope FROM memoriesoutput (above).Notes
context.db/opencode.db(or targetedSELECToutputs) on request.Diagnostics
Plugin version
0.43.2
OpenCode version
2.0.18
Platform
windows 11
Client
Magic Context Dashboard
Log output (optional)