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
{{ message }}
Repository navigation
OpenCode plugin memory_search always empty on service 2.1.7 (non-verbose /api/v1/memory/search envelope lost structured hits) #767
After upgrading the memory service to 2.1.7 (desktop app 1.2.2 → 1.2.401, which also regenerated the OpenCode plugin, revision v2-3), every memory_search surfaced through the OpenCode plugin returns No relevant Memmy memories found. — even when the service itself finds and returns hits for the same query.
Environment
macOS darwin-arm64
Memmy desktop app 1.2.401 (cn edition), upgraded 2026-10-27 from 1.2.2
Root keys of the response: only injectedContext (a markdown string). No structured hit fields at all.
Same call with"verbose": true:
Root keys: injectedContextplus debug, where debug.hits is a populated array (6 hits in my test, with id, kind, memoryLayer, title, snippet, score, tags).
The regenerated OpenCode plugin's memmy_memory_search tool posts to /api/v1/memory/searchwithoutverbose: true. Its extractSearchHits() helper only reads hits | results | memories | items, at the response root or under debug. With the 2.1.7 non-verbose envelope those fields never exist, so zero hits are parsed and the tool always replies No relevant Memmy memories found.
Service-side confirmation via GET /api/v1/memory/logs: the same searches show finalReturned: 6 / llm_filter:llm_kept_all (service returned hits) while the plugin surfaced none of them.
Impact
All memory_search calls through the OpenCode plugin return empty → agents silently lose memory recall on 2.1.7.
/memmy-resume is unaffected: its search call already includes verbose: true.
Suggested fixes (either one closes this)
Restore the structured hit fields in the non-verbose/api/v1/memory/search envelope (backward compatible with plugin revisions that expect hits/results/memories/items), or
Ship the plugin with verbose: true in the memmy_memory_search body. Note: verbose debug.hits items carry snippet but no summary/body/content, so the plugin's hit formatter may also want hit.snippet as a text fallback.
Workaround (applied locally)
Added verbose: true to the plugin's memmy_memory_search POST body plus a snippet fallback in the result formatter. Works against 2.1.7, but the file is app-managed (there is a plugin_integrity hash in the plugin config), so it may be overwritten on the next regeneration — hence this report.
Activity