Skip to content

feat(memory): wire StoreRoutingConfig and goal_text into memory recall path (#2484, #2483)#2520

Merged
bug-ops merged 2 commits intomainfrom
wire-memory-routing-goal-text
Mar 31, 2026
Merged

feat(memory): wire StoreRoutingConfig and goal_text into memory recall path (#2484, #2483)#2520
bug-ops merged 2 commits intomainfrom
wire-memory-routing-goal-text

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented Mar 31, 2026

Summary

Changes

#2484 — build_router() dispatch:

  • build_router() returns Box<dyn AsyncMemoryRouter + Send + Sync> and dispatches on store_routing.strategy
  • Provider resolved from pool via resolve_background_provider() at config-apply time
  • fetch_semantic_recall now calls recall_routed_async() — LLM classifier actually fires
  • AsyncMemoryRouter impl added for HeuristicRouter and HybridRouter
  • parse_route_str made pub; old RoutingConfig / RoutingStrategy removed

#2483 — goal_text wiring:

  • MemoryState.goal_text: Option<String> set from raw user input before first persist_message
  • remember() / remember_with_parts() extended with goal_text: Option<&str>
  • All tool execution paths (legacy.rs, native.rs) pass goal_text via persist_message
  • Zero behavior change when goal_conditioned_write = false

Breaking change

[memory.routing] TOML section no longer recognised — use [memory.store_routing] instead. RoutingConfig / RoutingStrategy types removed from zeph-config.

Checks

  • cargo +nightly fmt --check
  • cargo clippy --workspace --features full -- -D warnings
  • cargo nextest run --features full ✅ — 7564/7564 passed

@github-actions github-actions bot added documentation Improvements or additions to documentation memory zeph-memory crate (SQLite) rust Rust code changes core zeph-core crate enhancement New feature or request size/L Large PR (201-500 lines) labels Mar 31, 2026
bug-ops added 2 commits March 31, 2026 13:58
…l path (#2484, #2483)

HeuristicRouter, LlmRouter, or HybridRouter based on strategy. Router is
stored as Box<dyn AsyncMemoryRouter> and recall_routed_async() is called
so LLM-based classification actually fires instead of silently degrading
to heuristic. routing_classifier_provider is resolved from provider_pool
at config-apply time using the existing resolve_background_provider pattern.

passes it to remember() and remember_with_parts() enabling goal-conditioned
write gating in A-MAC admission control. All test call sites updated with
None. Zero behavior change when goal_conditioned_write = false.

Breaking: RoutingConfig and RoutingStrategy removed; use StoreRoutingConfig
and [memory.store_routing] instead.
@bug-ops bug-ops force-pushed the wire-memory-routing-goal-text branch from 314247e to f7efe20 Compare March 31, 2026 11:58
@bug-ops bug-ops enabled auto-merge (squash) March 31, 2026 11:59
@bug-ops bug-ops merged commit a0cf990 into main Mar 31, 2026
27 checks passed
@bug-ops bug-ops deleted the wire-memory-routing-goal-text branch March 31, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core zeph-core crate documentation Improvements or additions to documentation enhancement New feature or request memory zeph-memory crate (SQLite) rust Rust code changes size/L Large PR (201-500 lines)

Projects

None yet

1 participant