feat: 为全部 39 个 Rust 源文件添加系统性中文注释
为整个项目添加了详尽的中文文档注释,覆盖所有模块: 入口与架构: - main.rs — 架构图、数据流、4 个关键设计决策 - cli.rs — 所有 CLI 子命令中文化 - Cargo.toml — 每个依赖的作用说明 - channel/mod.rs — 渠道标识设计意图 核心守护进程与消息队列: - daemon.rs — 三消费者架构图、审批流 - queue/* — 公平轮转算法、路由调度架构 LLM 层: - types.rs — Role/Message/ToolCall 等每个字段含义 - provider.rs — Provider trait 设计 + SSE 解析 - conversation.rs — 工具循环流程图、摘要机制 - deepseek.rs — API 请求格式 上下文管理: - context/types.rs — ChatSession 消息生命周期 - context/builder.rs — Token 预算管理策略 - context/tools.rs — MemoryStore 双写策略 工具系统: - tools/mod.rs — 两层元工具架构图 - tools/approval.rs — 审批流程 - tools/definitions.rs — 声明式工具三要素 - tools/subprocess.rs — 执行流程 + 缓存策略 数据库与状态: - db/* — 5 张表用途、回退策略 - state.rs — 文件存储回退方案 - scheduler.rs — SKIP LOCKED 防重复 已废弃模块: - ipc.rs — 旧 UDS 协议 - worker.rs — 旧 vs 新架构对比
This commit is contained in:
+22
-2
@@ -6,7 +6,11 @@ use std::sync::Arc;
|
||||
use std::time::Instant;
|
||||
use tokio::sync::{Mutex, oneshot};
|
||||
|
||||
/// 审批决策
|
||||
/// ## 审批决策
|
||||
///
|
||||
/// * `Approved` — 用户输入了正确的确认码
|
||||
/// * `Rejected` — 用户拒绝了(输入 0 或"取消")
|
||||
/// * `Expired` — 超时未确认(5 分钟有效)
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum ApprovalDecision {
|
||||
Approved,
|
||||
@@ -24,7 +28,23 @@ struct PendingEntry {
|
||||
sender: oneshot::Sender<ApprovalDecision>,
|
||||
}
|
||||
|
||||
/// 审批管理器
|
||||
/// ## 审批管理器
|
||||
///
|
||||
/// 管理高风险工具的用户确认流程。
|
||||
///
|
||||
/// ### 流程
|
||||
/// 1. `create(user_id, skill_name)` → 生成 6 位随机确认码,哈希后存储
|
||||
/// 2. 向用户发送"⚠️ 操作确认\n\n技能:{name}\n确认码:{code}"
|
||||
/// 3. 用户在微信聊天中输入确认码
|
||||
/// 4. `handle_reply(user_id, reply)` → 验证确认码哈希
|
||||
/// - 匹配 → Approved
|
||||
/// - 不匹配 → 减少尝试次数(最多 3 次)
|
||||
/// - 输入 0 或"取消" → Rejected
|
||||
/// - 超时 → Expired(每 60 秒清理一次)
|
||||
///
|
||||
/// ### 存储
|
||||
/// * 内存 — `HashMap<user_id, Vec<PendingEntry>>`(快速访问)
|
||||
/// * 数据库 — `pending_approvals` 表(持久化审计)
|
||||
pub struct ApprovalManager {
|
||||
pool: Option<Arc<PgPool>>,
|
||||
/// user_id → 该用户的待审批队列
|
||||
|
||||
Reference in New Issue
Block a user