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
feat(search): surface drawer_id in search + diary + recovery payloads
Each hit / entry now carries its chromadb drawer id so callers can
build links back to the underlying drawer — citation popovers,
``mempalace_get_drawer`` follow-ups, link-out-with-real-target. The id
was always returned by chromadb (primary key) but never plumbed into
the result-building loop.
Touches three call sites for parity:
- searcher.search_memories (vector path + sqlite BM25 fallback)
- mcp_server.tool_session_recovery_read (the new MCP tool)
- mcp_server.tool_diary_read
Defensive zip with id-pad: production chromadb always returns ids, but
some test mocks omit them. Pad with None when missing so existing
fixtures keep working without touching N tests.
Two new test assertions:
- TestSearchMemories.test_results_include_drawer_id (seeded-collection
integration; verifies non-empty drawer_id and the seeded ``drawer_*``
prefix shape)
- TestSessionRecoveryRead.test_filters_by_session_id extended to assert
drawer_id presence on the returned entry
Suite 1363/1363 pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
0 commit comments