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:
2026-06-09 20:52:24 +08:00
parent 937556917c
commit 23c7fbac62
30 changed files with 799 additions and 149 deletions
+34 -4
View File
@@ -1,11 +1,33 @@
//! 渠道 / 通道基础类型
//! ## 渠道/通道基础类型
//!
//! 定义消息的来源/目标渠道标识,以及从外部(微信等)收到的原始消息。
//! 定义消息的来源目标渠道标识,以及从外部轮询收到的原始消息。
//!
//! ### 设计意图
//!
//! `ChannelId` 是本项目中所有消息路由的核心标识符。
//! 它由 `platform`(平台名,如 "wechat")和 `user_id`(用户 ID)两部分组成,
//! 确保不同平台上的用户可以被唯一区分。
//!
//! 未来如果要接入 Telegram、Discord 等新平台,只需要新增 `ChannelId` 的构造方法,
//! 消息队列的路由逻辑无需改动。
use serde::{Deserialize, Serialize};
use std::fmt;
/// 渠道标识 —— 区分消息来自哪个平台和哪个用户
/// ## 渠道标识 —— 区分消息来自哪个平台和哪个用户
///
/// 这是消息队列和 daemon 中所有消息路由的基础。
/// 每个 `PipelineMessage` 都携带一个 `ChannelId`,用来追踪消息的来龙去脉。
///
/// ### 字段
/// * `platform` — 平台名称,如 `"wechat"`、`"telegram"`、`"console"`
/// * `user_id` — 在该平台上的用户标识
///
/// ### 示例
/// ```
/// let ch = ChannelId::wechat("wxid_123");
/// assert_eq!(ch.to_string(), "wechat:wxid_123");
/// ```
#[derive(Debug, Clone, Hash, Eq, PartialEq, Serialize, Deserialize)]
pub struct ChannelId {
/// 平台名称,如 "wechat"、"telegram"、"console"
@@ -27,7 +49,15 @@ impl fmt::Display for ChannelId {
}
}
/// 从外部轮询收到的原始消息
/// ## 从外部轮询收到的原始消息
///
/// 在 daemon 的主循环中,从 WeChat API 获取到的消息会被转换为这个结构,
/// 然后封装成 `PipelineMessage` 投递到消息队列。
///
/// * `channel` — 来源渠道(平台 + 用户)
/// * `text` — 消息文本
/// * `message_id` — 消息 ID
/// * `context_token` — 微信的上下文令牌(用于多轮对话的上下文恢复)
#[derive(Debug, Clone, Serialize, Deserialize)]
#[allow(dead_code)]
pub struct IncomingMessage {