fix(memory): unblock recall and improve formation quality#409
Closed
Aaronontheweb wants to merge 1 commit into
Closed
fix(memory): unblock recall and improve formation quality#409Aaronontheweb wants to merge 1 commit into
Aaronontheweb wants to merge 1 commit into
Conversation
Phase 1 of memory formation fixes based on analysis of three production sessions that showed zero memory proposals and zero recall matches. Recall fixes: - Allow evidence class in deterministic retrieval (was hardcoded to durable_fact only, making 10/28 stored memories invisible) - Add baseline score (1.0) in candidate selector so SQL-matched candidates aren't silently dropped by zero-score threshold - Switch to audience-primary recall: remove domain as hard filter, use audience+boundary as security gates, add domain affinity boost for ranking. Removes ShouldWidenAcrossDomains two-path design. Formation fixes: - Revise observation sidecar prompt: add agent-derived findings classification category, evidence example, soften conservative bias - Tighten ProjectStatementPattern to reject conversational fragments via IsConversationalFragment prefix check (blocks junk like "Well I was going to has You do some Netclaw work") Observability: - Log progressive_recall_exhausted when all candidates already injected - Add eval debugging guidance to CLAUDE.md (failures are almost always instrumentation, rarely the model)
This was referenced Mar 24, 2026
Collaborator
Author
|
Superseded by #410 which includes all Phase 1 changes plus the session-level memory observer. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 1 of memory formation fixes based on analysis of three production sessions
(2026-03-24) that showed zero memory proposals and zero recall matches.
scoring, switch to audience-primary recall (domain → ranking preference, not security gate)
ProjectStatementPattern to reject conversational fragments
Key changes
DeterministicRetrievalPlanning.csDeterministicCandidateSelector.csSQLiteMemoryRecallCoordinator.csMemorySidecarPromptBuilder.csMemoryCurationPipeline.csLlmSessionActor.csTest plan
dotnet slopwatch analyzecleanFollow-up: Phase 2 — Session-Level Distillation
Per-turn observation produces
proposalCount=0even with the prompt fix because thesidecar only sees the assistant's final reply text, not the journey. Phase 2 will
replace per-turn observation with session-level distillation on idle, giving the sidecar
full conversation context. Separate branch/PR.