You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dashboard: fix Memories project picker showing raw 'git:HASH' identities
The v0.21.5 plugin-side fix to issue #87 made the plugin stamp resolved
project identities ('git:<hash>' / 'dir:<sha256>') directly into
memories.project_path. The dashboard's project picker, however, was
still resolving those values as if they were filesystem paths:
enumerate_memory_projects collected memory project_path values into
a HashSet<String> and passed it as a paths_filter into
enumerate_projects_filtered, which compared the values against
OpenCode/Pi 'worktree'/'cwd' paths via allowed_paths.contains(...).
Identity-shaped values never matched any real path, so the
OpenCode/Pi DB enrichment step was skipped and the fallback path
seeded ProjectRow with primary_path = 'git:HASH', then
display_name = basename('git:HASH') = 'git:HASH'.
Result: the picker dropdown showed entries like 'git:0e973b7d…',
'dir:07a38392e402'.
Fix: normalize memory project_path values to identities (handling
both already-identity-shaped values and legacy raw filesystem paths
that still need resolve_project_identity()), then filter the FULL
enumerated project list by identity match — using the OpenCode/Pi
DBs as the source of truth for display_name and primary_path. Same
shape as the plugin-side fix.
Tests: 3 new (identity memories never leak as display_name,
archived-only memories don't surface, empty DB returns empty).
0 commit comments