Memory explainability & visibility: show why a memory was recalled, add memory status/dashboard
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 19.9k
- Forks
- 2.3k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 30
Description
Summary
memory recall/search return results without explaining why a memory surfaced. There's no per-result breakdown (which signal matched, how strongly, which graph edge connected it) and no global visibility into the memory store (counts, age, superseded, confidence, gaps).
Current behavior
- Recall output shows only
category,content,id, and a single relevance %. - No per-signal scores (lexical/dense/graph), no retrieval path (BM25 vs vector vs cascade), no rerank rationale.
- No
memory status/dashboard to inspect the store: how many entries, how many active vs superseded, age distribution, confidence decay, retrieval gaps.
Why it matters
- Trust & verification: users and agents can't tell why a memory was recalled or whether to trust it.
- Debugging: the near-literal miss and stale-memory problems (#960, #1103, #1104) are hard to diagnose without visibility into scores and paths.
- For workflows that gate on memory presence (e.g. "is there a protected memory touching this file?"), knowing why a result did or didn't surface is essential.
Proposed enhancement
- Per-result breakdown in recall/search output:
- Score per signal: lexical (BM25), dense (cosine), graph (cascade/edge weight).
- Retrieval path: which retriever(s) found it, which graph edges connected it.
- Rerank decision: whether the LLM reranker kept/dropped it and why (if rerank runs).
memory status/dashboard:- Counts by category, scope, active vs superseded, age distribution.
- Confidence/decay state per entry.
- Retrieval gaps (context had no relevant memories — gap detection already exists in the architecture doc).
References
- Parity: OpenMemory (explainable traces), agentmemory (per-signal hybrid with progressive disclosure), total-agent-memory (6-stage pipeline visibility).
crates/jcode-app-core/src/tool/memory.rs(recall/search output formatting)crates/jcode-base/src/memory_rerank.rs(rerank rationale)docs/MEMORY_ARCHITECTURE.md(gap detection, post-retrieval maintenance)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read crates/jcode-app-core/src/tool/memory.rs for recall/search output formatting, crates/jcode-base/src/memory_rerank.rs for rerank rationale, and docs/MEMORY_ARCHITECTURE.md for gap detection and post-retrieval maintenance. Define the scope of the per-result signals, retrieval paths, rerank explanation, and memory status/dashboard before implementation; done should provide the proposed visibility for recall/search and store status.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- ai, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100