Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/design/2026-08-08-native-memory-recall-reliability.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,3 +269,8 @@ flatters every design; the floor is what makes the headline readable.
- Recall can see older documents outside the shared 200-document scanner cap,
but non-recall callers, including Forget, keep the existing capped scanner.
A broader manageability pass is separate from this recall-only change.
Superseded for Forget: issue #9378 moved Forget to the uncapped scanner, with
a per-scope bound on the model-selection prompt so literal matches in each
scope reach the model first; any match, literal or semantic, ranked past that
bound is not offered to the model and can still be missed. Indexer, Status,
and Extraction remain capped.
7 changes: 6 additions & 1 deletion docs/design/2026-08-09-bounded-memory-recall-candidates.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,12 @@ is kept.

Forget, Indexer, Status, and Extraction keep the capped scanner. That preserves
their current behavior but means an older document can become recallable before
it becomes manageable by those non-recall flows.
it becomes manageable by those non-recall flows. Superseded for Forget: issue
#9378 moved Forget to the uncapped scanner, with its own per-scope bound on the
model-selection prompt: each scope keeps a 200-candidate quota, unused quota is
redistributed, and literal query matches rank first within a scope. Entries past
that bound are not offered to the model. Indexer, Status, and Extraction remain
capped.

## Failure and compatibility boundaries

Expand Down
4 changes: 4 additions & 0 deletions packages/core/src/memory/extractionAgentPlanner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,10 @@ function truncate(text: string, maxChars: number): string {
}

async function buildTopicSummaryBlock(projectRoot: string): Promise<string> {
// Deliberately capped, unlike recall (recall.ts) and forget (forget.ts):
// every doc is rendered into the extraction agent's task prompt below, so
// an uncapped scan would grow that prompt without bound. Anything past the
// cap stays reachable — the agent holds read_file/grep/glob/ls.
// User-level scan is best-effort: a read failure on `~/.qwen/memories/`
// must not deny the extraction agent its view of existing project-level
// memories (which it uses to avoid creating duplicates).
Expand Down
Loading
Loading