feat(growth,kernel,runtime): Embedding 接通 + 自学习自动化 — A线+B线 6 项实现
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
A线 Embedding 接通: - A1: MemoryRetriever.set_embedding_client() + GrowthIntegration.configure_embedding() + Kernel.set_embedding_client() + viking_configure_embedding 传播到 Kernel - A2: Skill 路由替换 new_tf_idf_only() 为 EmbeddingAdapter + LlmSkillFallback B线 自学习自动化: - B1: evolution_bridge.rs — candidate_to_manifest() (PromptOnly, disabled by default) - B2: Kernel::generate_and_register_skill() 全链路 (LLM→parse→QualityGate→manifest→persist) - B3: EvolutionMiddleware 双模式 (auto_mode 跳过注入, 留给 kernel 自动处理) - B4: QualityGate 加固 (body ≥100字符 + 必须含标题 + 置信度上限 1.0) 验证: 934 tests PASS, 0 failures
This commit is contained in:
@@ -602,9 +602,11 @@ fn parse_uri(uri: &str) -> Result<(String, MemoryType, String), String> {
|
||||
|
||||
/// Configure embedding for semantic memory search
|
||||
/// Configures SqliteStorage (VikingStorage) embedding for FTS5 + semantic search.
|
||||
/// Also propagates to Kernel's skill router and memory retriever.
|
||||
// @connected
|
||||
#[tauri::command]
|
||||
pub async fn viking_configure_embedding(
|
||||
kernel_state: tauri::State<'_, crate::kernel_commands::KernelState>,
|
||||
provider: String,
|
||||
api_key: String,
|
||||
model: Option<String>,
|
||||
@@ -621,12 +623,23 @@ pub async fn viking_configure_embedding(
|
||||
|
||||
let client_viking = crate::llm::EmbeddingClient::new(config_viking);
|
||||
let adapter = crate::embedding_adapter::TauriEmbeddingAdapter::new(client_viking);
|
||||
let arc_adapter = std::sync::Arc::new(adapter);
|
||||
|
||||
// 1. Configure SqliteStorage (existing behavior)
|
||||
storage
|
||||
.configure_embedding(std::sync::Arc::new(adapter))
|
||||
.configure_embedding(arc_adapter.clone())
|
||||
.await
|
||||
.map_err(|e| format!("Failed to configure embedding: {}", e))?;
|
||||
|
||||
// 2. Propagate to Kernel for skill router + memory retriever
|
||||
{
|
||||
let mut kernel_lock = kernel_state.lock().await;
|
||||
if let Some(ref mut k) = *kernel_lock {
|
||||
k.set_embedding_client(arc_adapter);
|
||||
tracing::info!("[VikingCommands] Embedding propagated to Kernel skill router + memory retriever");
|
||||
}
|
||||
}
|
||||
|
||||
tracing::info!("[VikingCommands] Embedding configured with provider: {}", provider);
|
||||
|
||||
Ok(EmbeddingConfigResult {
|
||||
|
||||
Reference in New Issue
Block a user