fix(intelligence): 精确化 dead_code 标注并实现 LLM 上下文压缩
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

- 将 intelligence/llm/memory/browser 模块的 dead_code 注释从模糊的
  "reserved for future" 改为明确说明 Tauri invoke_handler 运行时注册机制
- 为 identity.rs 中 3 个真正未使用的方法添加 #[allow(dead_code)]
- 实现 compactor use_llm: true 功能:新增 compact_with_llm 方法和
  compactor_compact_llm Tauri 命令,支持 LLM 驱动的对话摘要生成
- 将 pipeline_commands.rs 中 40+ 处 println!/eprintln! 调试输出替换为
  tracing::debug!/warn!/error! 结构化日志
- 移除 intelligence/mod.rs 中不必要的 #[allow(unused_imports)]
This commit is contained in:
iven
2026-03-27 00:43:14 +08:00
parent c3996573aa
commit 9a77fd4645
14 changed files with 433 additions and 265 deletions

View File

@@ -10,7 +10,11 @@
//!
//! Reference: ZCLAW_AGENT_INTELLIGENCE_EVOLUTION.md §4.3
//!
//! Note: These types are reserved for future memory integration features
//! Note: Context types are used by the Tauri command memory_build_context (simplified version).
//! The full ContextBuilder is reserved for advanced layered loading in future phases.
// NOTE: #[tauri::command] functions are registered via invoke_handler! at runtime.
// Module-level allow required for Tauri-commanded functions and internal types.
#![allow(dead_code)]

View File

@@ -12,6 +12,9 @@
//!
//! Note: Some fields and methods are reserved for future LLM-powered extraction
// NOTE: #[tauri::command] functions are registered via invoke_handler! at runtime.
// Module-level allow required for Tauri-commanded functions and internal types.
#![allow(dead_code)]
use serde::{Deserialize, Serialize};
@@ -551,12 +554,39 @@ pub async fn extract_and_store_memories(
.with_importance(memory.importance);
// Store to SqliteStorage
let entry_uri = entry.uri.clone();
match storage.store(&entry).await {
Ok(_) => stored_count += 1,
Err(e) => {
store_errors.push(format!("Failed to store {}: {}", memory.category, e));
}
}
// Background: generate L0/L1 summaries if driver is configured
if crate::summarizer_adapter::is_summary_driver_configured() {
let storage_clone = storage.clone();
let summary_entry = entry.clone();
tokio::spawn(async move {
if let Some(driver) = crate::summarizer_adapter::get_summary_driver() {
let (overview, abstract_summary) =
zclaw_growth::summarizer::generate_summaries(driver.as_ref(), &summary_entry).await;
if overview.is_some() || abstract_summary.is_some() {
let updated = MemoryEntry {
overview,
abstract_summary,
..summary_entry
};
if let Err(e) = storage_clone.store(&updated).await {
tracing::debug!(
"[extract_and_store] Failed to update summaries for {}: {}",
entry_uri, e
);
}
}
}
});
}
}
let elapsed = start_time.elapsed().as_millis() as u64;