fix: 5 个安全/正确性问题

1. (High) 无 DB 时审批绕过 — approval_manager 始终创建,
   无 DB 时用纯内存模式,不再绕过审批
2. (High) 多用户串上下文 — user_id 改存 ChatSession,
   spawn 前写入,executor 从 session 读(而非共享 Arc)
3. (Medium) 技能超时未杀子进程 — cmd.kill_on_drop(true)
4. (Medium) provider 配置不生效 — 模型选择跟随 LLM_PROVIDER
   环境变量(deepseek/lmstudio 各自取对应模型名)
5. (Low) manage_memos 改为 High 风险(add/delete 有副作用)
This commit is contained in:
2026-06-02 10:56:44 +08:00
parent 5daaba686b
commit 5602b08faf
5 changed files with 21 additions and 20 deletions
+1 -2
View File
@@ -27,8 +27,7 @@ pub trait LlmProvider: Send + Sync {
pub type BoxedProvider = Arc<dyn LlmProvider>;
/// 从配置创建恰当的提供商
pub fn create_provider(_config: &ConversationConfig) -> Result<BoxedProvider, String> {
// 根据 model 前缀或环境变量选择
pub fn create_provider(config: &ConversationConfig) -> Result<BoxedProvider, String> {
let provider = std::env::var("LLM_PROVIDER")
.unwrap_or_else(|_| "deepseek".to_string())
.to_lowercase();