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
+51 -40
View File
@@ -2,45 +2,56 @@
name = "iAs"
version = "0.1.0"
edition = "2024"
description = "微信 AI 智能助手 — 通过 DeepSeek LLM 实现 AI 自动回复"
[dependencies]
# 异步运行时
tokio = { version = "1.0", features = ["full"] }
# HTTP 客户端
reqwest = { version = "0.12", features = ["json", "stream", "gzip"] }
# 序列化
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# 环境变量
dotenvy = "0.15"
# CLI 参数解析
clap = { version = "4", features = ["derive"] }
# 终端输入
rustyline = "14.0"
# UUID
uuid = { version = "1", features = ["v4", "serde"] }
# 时间
chrono = { version = "0.4", features = ["serde"] }
# 加密
base64 = "0.22"
sha2 = "0.10"
hex = "0.4"
rand = "0.9"
# 日志
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# 二维码终端显示
qrcode = "0.14"
image = "0.25"
# 异步 trait
async-trait = "0.1"
# 流式处理
futures-util = "0.3"
sqlx = { version = "0.8.6", features = ["runtime-tokio-native-tls", "postgres", "uuid", "chrono", "derive", "migrate"] }
tracing-appender = "0.2.5"
dialoguer = "0.12.0"
console = "0.16.3"
dirs = "6.0.0"
# Ed25519 JWT 签名(天气 API
ed25519-dalek = { version = "2", features = ["pem"] }
scraper = "0.27.0"
# ── 异步运行时 ──
tokio = { version = "1.0", features = ["full"] } # 异步运行时核心
# ── HTTP 客户端 ──
reqwest = { version = "0.12", features = ["json", "stream", "gzip"] } # HTTP 请求(微信 API + DeepSeek API + 工具调用)
# ── 序列化 ──
serde = { version = "1.0", features = ["derive"] } # 序列化/反序列化
serde_json = "1.0" # JSON 处理
# ── 环境变量加载 ──
dotenvy = "0.15" # .env 文件加载
# ── CLI 参数解析 ──
clap = { version = "4", features = ["derive"] } # 命令行参数解析
# ── 终端交互 ──
rustyline = "14.0" # REPL 行编辑
dialoguer = "0.12.0" # 终端交互对话框
console = "0.16.3" # 终端控制
# ── UUID ──
uuid = { version = "1", features = ["v4", "serde"] } # 唯一标识符
# ── 时间处理 ──
chrono = { version = "0.4", features = ["serde"] } # 日期时间
# ── 加密与签名 ──
base64 = "0.22" # Base64 编码
sha2 = "0.10" # SHA-256 哈希(审批码)
hex = "0.4" # 十六进制
rand = "0.9" # 随机数
ed25519-dalek = { version = "2", features = ["pem"] } # Ed25519 JWT 签名(和风天气 API
# ── 日志 ──
tracing = "0.1" # 结构化日志
tracing-subscriber = { version = "0.3", features = ["env-filter"] } # 日志输出
tracing-appender = "0.2.5" # 文件日志(日滚)
# ── 二维码 ──
qrcode = "0.14" # 二维码生成
image = "0.25" # 图片处理
# ── 异步 trait ──
async-trait = "0.1" # 异步 trait 支持
# ── 流式处理 ──
futures-util = "0.3" # 流式处理工具
# ── 数据库 ──
sqlx = { version = "0.8.6", features = ["runtime-tokio-native-tls", "postgres", "uuid", "chrono", "derive", "migrate"] } # PostgreSQL
# ── 文件系统 ──
dirs = "6.0.0" # 系统目录路径
# ── HTML 解析 ──
scraper = "0.27.0" # HTML 解析(fetch_page 工具)
[[bin]]
name = "ias"
path = "src/main.rs"
[[bin]]
name = "ias-auth"
path = "src/bin/ias-auth.rs"