Conversation
This was referenced Mar 28, 2026
Closed
…d spreading activation (#2231) Apply per-type multipliers in composite_score() and spreading activation spread: - Causal: 1.2x (high-signal cause-effect chains) - Semantic: 1.0x (baseline) - Temporal: 0.9x - Entity: 0.8x (structural skeleton, lower recall signal) Weights are constants (not config) following existing codebase precedent for non-configurable scoring parameters.
…2270) Add migration 049 with `consolidated` column and `memory_consolidation_sources` join table. Implement `consolidation.rs` with TopologyOp (Merge/Update), background sweep loop, in-memory cosine similarity clustering, and transactional apply. Wire loop startup into runner.rs after tier promotion loop. Add ConsolidationConfig to MemoryConfig and bootstrap provider resolution. TopologyOp::Split deferred (trigger condition undefined, see critic review).
…atch (#2286) Add RuntimeLayer trait with before_chat/after_chat/before_tool/after_tool hooks. NoopLayer no-op impl; BeforeToolResult type alias to avoid type_complexity. Agent stores runtime_layers: Vec<Arc<dyn RuntimeLayer>> (empty by default, zero-cost). Hooks wired into call_chat_with_tools in native.rs.
…ispatch (#2286) before_tool is called per-call before executor spawn in the tier loop; returning Some(result) short-circuits execution. after_tool is called per-call after join_all results are collected. Both are guarded by runtime_layers.is_empty() for zero-cost empty-vec case.
…timeLayer - edge_type_weight exact float assertions (1.2/1.0/0.9/0.8) - composite_score with non-baseline edge types verified - consolidation sweep empty-DB and threshold boundary tests - RuntimeLayer multi-layer ordering and short-circuit tests
ba469e3 to
6a8dea3
Compare
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
Implements three research-driven memory enhancements:
causal=1.2,semantic=1.0,temporal=0.9,entity=0.8) to BFS scoring and spreading activation inzeph-memory. UpdatesGraphExtractorprompt to produce causal/temporal edge types.MERGE/UPDATEtopology operators) with LLM confidence gating. Originals are never deleted —consolidated=trueflag +memory_consolidation_sourcesjoin table for reverse lookup. SQLite migration 049. New[memory.consolidation]config section (enabled = falseby default).RuntimeLayertrait inzeph-corewithbefore_chat/after_chat/before_tool/after_toolhooks.NoopLayerno-op passthrough.Agent.runtime_layers: Vec<Arc<dyn RuntimeLayer>>(empty by default, zero overhead). All four hooks wired into the agent loop.Test plan
cargo +nightly fmt --check— cleancargo clippy --workspace --features full -- -D warnings— clean (pre-existingzeph-toolserror from PR feat(skills): SAGE RL reward signal, trust governance, SkillsBench constraints #2348 is unrelated)cargo nextest run --workspace --features full --lib --bins— 7070/7070 passed (+28 vs base)[Unreleased]updatedenabled = false) — no behavior change for existing configsCloses #2270, closes #2231, closes #2286