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:
+34
-4
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user