feat(memory): verified learning lifecycle (#681) - #747
Conversation
Add conflict detection, analyze/redteam learning influence, CLI review ops, and UAT-LEARN-1..5 coverage so durable memory only lands after explicit approval.
08971c5 to
ffc93fd
Compare
CodeDecay PR CheckLead catch: No direct high-signal catch found CodeDecay did not find a strong direct regression or weak-test signal in this run. Risk: Medium · Merge 39/100 · Decay 54/100 · Security 0/100 This score is conservative pending stronger direct evidence. Treat structural-only signals as review guidance, not proof of a regression. Full CodeDecay reportCodeDecay ReportOverall risk: Medium
Changed Files
Likely Impacted Areas
Normalized Impact GraphGraph artifact:
Symbol Impact EvidenceGraph artifact:
Language And Parser Coverage
Merge Risk Breakdown
Top contributors:
Dampeners:
Notes:
Decay Risk Breakdown
Top contributors:
Dampeners:
Notes:
Security Risk Breakdown
Security Matcher Coverage
Test Evidence
Changed Path Test Proof
Untrusted Memory Context
High Risk Findings
Medium Risk Findings
Low Risk Findings
Recommended Checks
NotesCodeDecay is deterministic and local-first. This report was generated without telemetry, API keys, LLMs, or model calls. Found by CodeDecay - deterministic, local-first, no telemetry. |
| const timestamp = new Date().toISOString(); | ||
| let memory = loadedMemory.memory; | ||
| let eventId = options.eventId; | ||
| let conflicts: MemoryLearningConflict[] = detectLearningConflicts(memory); |
Summary
memory learningpropose/approve/reject/supersede/expire/revoke ops (preview by default,--applyto write).proposeduntil explicit human approval; secrets/prompt-injection are redacted.Closes #681
Test plan
vitest run packages/memory/test/learning-lifecycle-uat.test.tsvitest run packages/memory/test/learning-events.test.tsvitest run packages/cli/test/memory.test.tsvitest run packages/redteam/test/redteam-context-safety.test.tstsc -p tsconfig.base.json --noEmitnode packages/cli/dist/index.js help memory