概览

Socket Session

                                            ┌──────────────────────────────────┐     │
                                            │Register│                         │     │
                                            │────────┘                         │     │
                  ┌─────────────────────────│  1.inner root                    │◄────│
                  │                         └──────────────────────────────────┘     │
                  │                                           │                      │
                  │                                           │                      │
                  ▼                                           ▼                      │
  ┌──────────────────────────────────┐      ┌──────────────┐───────────────────┐     │
  │Auth│                             │      │Activate&Bind │                   │     │
  │────┘                             │      └──────────────┘                   │     │
  │  1.OTA(v1,v2)                    │◄─────│  1.OTA(v1,v2)                    │◄────│
  │  2.Nostr                         │      │  2.Nostr                         │     │
  └──────────────────────────────────┘      └──────────────────────────────────┘     │
                  │              │                                                   │
                  │              └────────────────────────────┐                      │
                  │ (Bearer Token)                            │ (JWT)                │
                  ▼                                           ▼                      │
  ┌───────────────────┐──────────────┐       ╔══════════════════════════════════╗    │
  │Protocol Translator│              │       ║Restful │                         ║    │
  └───────────────────┘              │       ║────────┘                         ║────┘
  │  1.XiaoZhi                       │       ║                                  ║
  └──────────────────────────────────┘       ╚══════════════════════════════════╝
                  │
                  │
                  ▼
  ┌────────────┐─────────────────────┐
  │Input Filter│                     │
  └────────────┘                     │
  │  1.Recorder                      │
  │  2.McpRouter                     │───────────────────────────────────────────┐
  └──────────────────────────────────┘                                           │
                  │                                                              │
                  │ Frame                                                        │ Frame
                  ▼                                                              ▼
  ┌───────────────────────────────────────────────────┐       ┌──────────────────────────────────┐
  │ Session │                                         │       │ Mcp Session │                    │
  │─────────┘                                         │       │─────────────┘                    │
  │     ▲                            │                │       │                                  │
  │     │                            │ Pipeline Event │       │                                  │
  │     │ Round Event                │                │       │   ┌───────────────────────────┐  │
  │     │                            ▼                │       │   │Mcp Registry│              │  │
  │   ┌───────────────────────┐──────────────────┐    │       │   │────────────┘              │  │
  │   │ Round(shadow/running) │                  │    │   ┬──────►│  1.Device Mcp Client      │  │
  │   └───────────────────────┘                  │    │   │   │   │  2.External Mcp Client    │  │
  │   │                 ▲            │           │    │   │   │   │                           │  │
  │   │                 │            │ Pipeline  │    │   │   │   │                           │  │
  │   │                 │ Tap Event  │ Event     │    │   │   │   │                           │  │
  │   │                 │ (broadcast)▼           │    │   │   │   │                           │  │
  │   │               ┌──────────┐───────────┐   │    │   │   │   │                           │  │
  │   │               │ Pipeline │           │   │    │   │   │   └───────────────────────────┘  │
  │   │               └──────────┘           │   │    │   │   └──────────────────────────────────┘
  │   │               │ 1. VAD               │   │    │   │       │
  │   │               │ 2. ASR               │   │    │   │       │
  │   │               │ 3. Turn              │   │    │   │       │
  │   │               │ 4. Ling(LLM)    ◄─────────────────┘       │
  │   │               │ 5. TTS               │   │    │           │
  │   │               └──────────────────────┘   │    │           │
  │   │                              │           │    │           │
  │   │                              │ Pipeline  │    │           │
  │   │                              │ Event     │    │           │
  │   │                              ▼           │    │           │
  │   └──────────────────────────────────────────┘    │           │
  │                                  │                │           │
  │                                  │ Pipeline       │           │
  │                                  │ Event          │           │
  │                                  ▼                │           │
  └───────────────────────────────────────────────────┘           │
                  │                                               │
                  │ FrameResult                                   │
                  │                                               │
                  ▼                                               │
  ┌─────────────┐────────────────────┐                            │
  │Output Filter│                    │         FrameResult        │
  └─────────────┘                    │◄───────────────────────────┘
  │  1.Recorder                      │
  └──────────────────────────────────┘
                  │
                  │
                  ▼
  ┌───────────────────┐──────────────┐
  │Protocol Translator│              │
  └───────────────────┘              │
  │  1.XiaoZhi                       │
  └──────────────────────────────────┘
                  │
                  │
                  ▼

Restful

                                                               ┌────┐──────────────────────────┐
                                                               │Docs│                          │
                                                               └────┘                          │
                                                               │  1.Scalar                     │
                                                               │                               │
                            │                                  └───────────────────────────────┘
                            │ Request
                            │
                            ▼
  ┌──────────────────────────────────────────────────┐         ┌────┐──────────────────────────┐
  │Layer│                                            │         │Task│                          │
  │─────┘                                            │         └────┘                          │
  │                                                  │         │  1.Security cleanup loop      │
  │           ┌────────┐─────────────────────┐       │         │                               │
  │           │CORS    │                     │       │         │                               │
  │           └────────┘                     │       │         └───────────────────────────────┘
  │           │                              │       │
  │           └──────────────────────────────┘       │
  │                         │                        │
  │                         │                        │
  │                         ▼                        │
  │           ┌────────┐─────────────────────┐       │
  │           │Tracing │                     │       │
  │           └────────┘                     │       │
  │           │                              │       │
  │           └──────────────────────────────┘       │
  │                         │                        │
  │                         │                        │
  │                         ▼                        │
  │           ┌───────────┐──────────────────┐       │
  │           │Body Limit │                  │       │
  │           └───────────┘                  │       │
  │           │                              │       │
  │           └──────────────────────────────┘       │
  │                         │                        │
  │                         │                        │
  │                         ▼                        │
  │           ┌────────┐─────────────────────┐       │
  │           │Timeout │                     │       │
  │           └────────┘                     │       │
  │           │                              │       │
  │           └──────────────────────────────┘       │
  │                         │                        │
  │                         │                        │
  │                         ▼                        │
  │           ┌────────┐─────────────────────┐       │
  │           │Security│                     │       │
  │           └────────┘                     │       │
  │           │  1.Access log                │       │
  │           │  2.Rate Limit                │       │
  │           │  3.Auth                      │       │
  │           └──────────────────────────────┘       │
  │                                                  │
  │                                                  │
  │                                                  │
  └──────────────────────────────────────────────────┘
                            │
                            │ Response
                            │
                            ▼

IOT


     ┌─────────────────┐─────────────┐    ┌───────────────┐───────────────┐
     │ Input Controller│             │    │ Reporter      │               │
     └─────────────────┘             │    └───────────────┘               │
     │                               │    │                               │
     │  ┌──────────────────────┐     │    │                               │
     │  │Device Signal Input│  │     │    │                               │
     │  │───────────────────┘  │     │    │                               │
  │─►│  │  1.Device Signal     │     │    │                               │
  │  │  │  2.Intent(JSON)      │     │    └───────────────────────────────┘
  │  │  │                      │     │              │        ▲
  │  │  │                      │     │              │ Query  │ Query Response
  │  │  └──────────────────────┘     │              ▼        │
  │  │            │                  │    ┌───────────────┐───────────────┐
  │  │            ▼                  │    │ State Manager │               │
  │  │  ┌─────────────┐────────┐     │    └───────────────┘               │
  │  │  │Input Limiter│        │     │    │ 1. Render State               │
  │  │  └─────────────┘        │     │    │ 2. Demand State               │
  │  │  │                      │     │◄───│                               │
  │  │  │                      │     │    │                               │
  │  │  └──────────────────────┘     │    │                               │
  │  │                               │    └───────────────────────────────┘
  │  └───────────────────────────────┘               │             ▲   │
  │             ▲  │               │ Signal          │             │   │
  │             │  │               │                 │             │   │
  │             │  │               ▼                 ▼             │   │
  │             │  │              ┌───────────────┐──────┐         │   │
  │             │  │  Intent      │Intent Resolver│      │         │   │
  │             │  └────────────► └───────────────┘      │         │   │
  │             └─────────────────│                      │         │   │
  │                   Ack         │                      │         │   │
  │                               └──────────────────────┘         │   │
  │                                             │                  │   │
  │                                             │ Intent           │   │
  │                                             │                  │   │
  │                   ┌─────────────────────────│──────────────────│───│──┐
  │                   │ Loop Logic│             │                  │   │  │
  │                   │───────────┘             │                  │   │  │
  │                   │                         ▼                  │   │  │
  │                   │           ┌───────────┐───────────────┐    │   │  │
  │                   │           │ Intent Bus│               │    │   │  │
  │                   │           └───────────┘               │    │   │  │
  │                   │           │                           │    │   │  │
  │                   │           │                           │    │   │  │
  │                   │           └───────────────────────────┘    │   │  │
  │                   │                        │                   │   │  │
  │                   │                        │ Intent            │   │  │
  │                   │                        │                   │   │  │
  │                   │                        ▼                   │   │  │
  │                   │     ┌──────┐──────────────────────────┐    │   │  │
  │                   │     │ Logic│                          │    │   │  │
  │                   │     └──────┘                          │◄───┘   │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     │                                 │        │  │
  │                   │     └─────────────────────────────────┘        │  │
  │                   │                                                │  │
  │                   │             ┌──────────────────────────────────┤  │
  │                   │             │                               ┌──┘  │
  │                   │             ▼                               ▼     │
  │                   │   ┌─────────────┐────┐     ┌──────────┐────────┐  │
  │                   │   │ Configurator│    │     │ Render   │        │  │
  │                   │   └─────────────┘    │     └──────────┘        │  │
  │                   │   │                  │     │                   │  │
  │                   │   │                  │     │                   │  │
  │                   │   └──────────────────┘     └───────────────────┘  │
  │                   │                                                   │
  │                   └───────────────────────────────────────────────────┘
  │                                            │
  │                                            │
  │                                            │ Signal(Config,Render)
  │                                            │
  │                                            ▼
  │                   ┌───────┐───────────────────────────────────────────┐
  │                   │ Board │                                           │
  │                   └───────┘                                           │
  │                   │                                                   │
  │                   │       ┌──────────────┐────────────────────┐       │
  │                   │       │ Configuration│                    │       │
  │                   │       └──────────────┘                    │       │
  │                   │       │                                   │       │
  │                   │       │                                   │       │
  │                   │       └───────────────────────────────────┘       │
  │                   │                        │                          │
  │                   │                        │                          │
  │                   │                        ▼                          │
  │                   │       ┌───────────────────────────────────┐       │
  │                   │       │ Device│                           │       │
  └───────────────────│       │───────┘                           │       │
                      │       │                                   │       │
                      │       │                                   │       │
                      │       └───────────────────────────────────┘       │
                      │                                                   │
                      └───────────────────────────────────────────────────┘

状态

列说明:

列说明可选值
优先级优先级等级🔴 P0 / 🟠 P1 / 🟡 P2 / 🔵 P3
状态功能完成度✅ 已完成 / ⚠️ 有缺陷(stub/不完整)/ ❌ 未实现
测试是否存在自动化测试✅ 有 / ❌ 无 / — 不适用
项目功能名称—
描述简要说明—
链接文件路径或 Issue 链接(待填)

优先级说明:

等级语义示例
🔴 P0基础架构 / 影响运行的严重 bug核心链路缺口、认证与安全、竞态缺陷
🟠 P1必要功能产品核心能力、正式发布前必须补齐的功能
🟡 P2增强功能完善性提升、管理界面、可选协议支持
🔵 P3可选优化体验打磨、低功耗调优等不阻塞功能的事宜

优先级由人工评估;代理仅记录,分辨不清时必须询问人类,禁止自行推断。

Register

优先级状态测试项目描述链接
🟡 P2❌❌内置 root仅 migration 创建,无运行时注册端点

Auth

OTA 认证

优先级状态测试项目描述链接
🟠 P1✅✅OTA v1基础设备认证,返回 ws_url+token(已激活返回真实 JWT,未激活为空)
🟠 P1❌❌固件分发OTA 返回 version: "0.0.1" + url: null,无实际固件下载链接
🟡 P2❌❌MQTT 支持OTA 返回 mqtt: null,MQTT 协议未实现
🟠 P1❌❌OTA v2完整认证 + 设备信息上报 + 固件分发(当前返回静态数据)

Nostr 认证

优先级状态测试项目描述链接
🟡 P2❌❌NIP-98 认证未实现

WS 认证

优先级状态测试项目描述链接
🔴 P0✅✅Bearer Token 验证Authorization header + query param fallback,JWT 解码验证

Token 生命周期

优先级状态测试项目描述链接
🟠 P1❌❌Refresh 吊销refresh token 无吊销机制,logout 仅客户端丢弃
🟠 P1❌❌Token 日志access/refresh token 以明文写进 tracing span 字段

Activate&Bind

OTA 激活

优先级状态测试项目描述链接
🟠 P1✅✅OTA v1激活码验证 + 设备信息持久化
🟠 P1❌❌OTA v2完整激活流程(含挑战码验证),未实现

Nostr 绑定

优先级状态测试项目描述链接
🟡 P2❌❌绑定/角色注册未实现

Protocol Translator

XiaoZhi

优先级状态测试项目描述链接
🔴 P0✅❌输入帧解析hello/listen/abort/mcp/voice 完整解析
🔴 P0✅❌输出帧序列化STT/LLM/TTS/Audio/Error 完整序列化
🟠 P1❌❌缺失消息类型system/alert/wake_word 未实现

Input Filter

Recorder (输入)

优先级状态测试项目描述链接
🟡 P2✅✅输入落库帧数据持久化到数据库

McpRouter

优先级状态测试项目描述链接
🟠 P1✅✅MCP 帧路由拦截 Frame::Mcp → McpSession

Session

Listener

优先级状态测试项目描述链接
🔴 P0✅✅VAD (Silero)Earshot 实现,帧级语音检测
🔴 P0✅✅ASR (sherpa-onnx)XAsr 模型,16kHz mono
🔴 P0✅✅Voice Break 检测静音超时触发 TurnComplete
🟠 P1✅✅Continued Conversationauto/realtime 模式,TTS 后自动进入语音监听
🟡 P2❌❌语义 VAD / 分层轮次仅 Layer1 Silero,缺标点/语义层
🟠 P1❌❌声纹识别与 ASR 并行识别说话人并注入 LLM;需注册/管理流程 + 声纹向量 + 上下文注入
🟠 P1❌❌动态 VAD 参数静音阈值/门限目前固定,需按对话状态运行时调整
🟠 P1❌❌ASR Settle + ReopenVAD 静音后立即 ASR 可能丢尾部音素;无 reopen 机制
🟠 P1❌❌多 ASR Provider只有一套 sherpa-onnx 实现,无模型切换与回退
🟡 P2❌❌填充词/犹豫检测ASR 输出 uh/um/呃/嗯 + 短音频(<3 s)不触发 LLM
🟡 P2❌❌环境监听模式非唤醒词触发的被动监听 + 主动响应,需隐私架构(不存原始音频)
🟡 P2❌❌ASR 输入约束仅 16 kHz 单声道;Asr 无 Sync,不能跨线程共享
🔵 P3❌❌Speaker Diarization多人场景说话人分离
🔵 P3❌❌AEC 服务端降噪当前仅客户端 AEC,服务端无回声消除

Round

优先级状态测试项目描述链接
🟠 P1✅✅Shadow / Running 双轮预创建 shadow round 降低切换延迟
🟠 P1✅✅Barge-in + lockout可配置 lockout 窗口 (默认 250ms)
🟠 P1✅✅Epoch 消息过滤过时轮次消息丢弃,保留 TTS 状态通知
🔴 P0✅—stop_round 竞态已修复,5s 超时兜底
🟠 P1✅✅AudioPacer按 output_frame_duration 限速音频输出
🟠 P1❌❌Opus-to-PCM 预缓冲下行无预缓冲,网络抖动直接表现为播放卡顿

LingCore

优先级状态测试项目描述链接
🔴 P0✅✅Qwen3 LLM (candle)流式生成,线程安全已修复
🟠 P1✅✅Splitter (sentencex)中文/英文分句,700ms 超时兜底
🟠 P1✅✅ToolCall 循环LLM → MCP tool → 结果回注 → LLM 再生成
🟠 P1✅✅History 管理上下文截断 (max_prompt_len) 及持久化
🟡 P2⚠️❌情绪识别始终返回 "happy",无真实分析
🟡 P2❌❌个性化记忆长期偏好/用户画像存储未实现
🟠 P1❌❌RAG 知识库MCP 可接入,但无内置向量检索
🟠 P1❌❌Intent 识别无独立 intent 层,意图全靠 LLM 单次生成
🟠 P1❌❌LLM 历史阻塞会话历史 DB 落盘阻塞整条生成线程
🟡 P2❌❌Agent 任务编排LLM + MCP 工具链自主执行多步任务
🔵 P3❌❌describe O(n)每次实时构建全量消息历史
🔵 P3❌❌引导式推理对话教育 AI 引导模式,需 prompt 工程 + 对话状态

TTS

优先级状态测试项目描述链接
🔴 P0✅✅MatchaTTS + Opussherpa-onnx 引擎,Opus 编码输出
🟠 P1✅✅两阶段流式token 级首包快速发出 + 句子级稳态
🟡 P2✅❌TTFA/RTF 埋点首包延迟/实时率性能监控
🔵 P3✅❌Fade-out尾部淡出消除 click
🟠 P1❌❌Piper/Kokoro 引擎可替换或补充 MatchaTTS;Piper 适合边缘,Kokoro 质量/体积比更好
🟠 P1❌❌多语言 TTS当前仅单语言;ESP32 端 ASR 已支持 25+ 语言
🟠 P1❌❌多 TTS Provider只有一套实现,无引擎切换与回退
🟠 P1❌❌Quick ReplyLLM 推理期间先播"我在"/"来了",降低感知延迟
🟠 P1❌❌动态音色切换基于声纹识别自动切换 TTS 音色
🟠 P1❌❌尾部 Hold Buffer~240 ms 帧缓存,避免末音节被切(fade-out 已实现)
🟡 P2❌❌句间静音优化固定静音 → 按标点调整(逗号 0.3 s / 句号 0.6 s)
🟡 P2❌❌对话韵律呼吸/犹豫/笑声等韵律,让语音更像真人
🟡 P2❌❌情绪自适应语调检测情感标签并调整语气
🔵 P3❌❌声音克隆MatchaTTS 支持 reference audio,缺配置接口
🔵 P3❌❌TTS 克隆开销Arc<str> 与 String 之间的克隆风暴
🔵 P3❌❌音频标准化集成adaptive_normalize() 已实现,未接入 TTS 输出

McpSession

McpRegistry

优先级状态测试项目描述链接
🟠 P1✅✅工具注册/聚合多 client 工具合并,按名路由调用

Device Mcp Client

优先级状态测试项目描述链接
🟠 P1✅✅rmcp 传输层设备 MCP 协议桥接,完整握手

External Mcp Client

优先级状态测试项目描述链接
🟡 P2✅✅HTTP 远程 MCP连接外部 MCP 服务器,工具列表缓存

MCP 认证

优先级状态测试项目描述链接
🔴 P0✅✅/mcp 端点认证Bearer JWT 认证 + rmcp 默认 Host 校验

工具生态

优先级状态测试项目描述链接
🟠 P1❌❌家居集成Home Assistant 等智能家居场景,经 MCP 接入
🟠 P1❌❌设备间通话设备像电话一样互呼,需 MQTT gateway + 通讯录管理
🟠 P1❌❌音乐播放行业标配;需 LRC 歌词同步
🟠 P1❌❌Timer/提醒/闹钟当前无任何定时/提醒机制
🟡 P2❌❌插件系统无插件架构,扩展需改核心代码
🟡 P2❌❌MCP Market第三方工具市场聚合 + 一键导入 + 热加载
🟡 P2❌❌MCP 调试控制台每 Agent 独立端点,实时调用测试 + per-agent 过滤
🟡 P2❌❌MCP 工具聚合预置工具库(钉钉/QQ/系统监控/WebPilot/计算)
🟡 P2❌❌MQTT 网关MQTT+UDP → WS 桥接:分布式部署 + 负载均衡 + HMAC
🟡 P2❌❌配置向导 + 全链路测试首次运行向导 + 每组件延迟测试 + 可视化

Output Filter

Recorder (输出)

优先级状态测试项目描述链接
🟡 P2✅✅输出落库帧/轮次数据持久化到数据库
🟠 P1❌❌Recorder 上限Vec<RecordEntry> 无大小限制,高并发下内存无界增长

Restful

优先级状态测试项目描述链接
🔴 P0✅✅POST /api/auth/login账号密码认证,返回 access/refresh token
🔴 P0✅✅POST /api/auth/access_tokenrefresh token 换新
🟠 P1✅✅POST /api/auth/reset_passwordJWT 鉴权,旧密码验证
🟠 P1✅✅GET /api/auth/user返回当前用户信息
🟡 P2✅❌GET /api/stats/summary概览统计(设备/会话/消息数/延迟均值)
🟡 P2✅❌GET /api/stats/trends趋势数据(设备/会话/消息日趋势)
🟡 P2✅❌GET /api/stats/latency延迟百分位数据(P50/P90/P99 等)
🔴 P0✅✅Rate LimitingGitHub 风格资源桶:auth/ota per-IP 固定窗口(20/15min、30/min)+ core per-user(1000/h)+ X-RateLimit-* 响应头 + per-account 登录失败锁(5 次/15 分钟)
🔴 P0✅✅GET /api/security/rate_limit认证内省端点,返回 auth/ota/core 配额与实时用量,本身不消耗配额
🟡 P2❌❌Invite Code 系统注册邀请码生成/验证未实现
🟠 P1✅❌设备管理 CRUD列表/激活(按码/按ID)/禁用/启用/删除端点已实现(缺详情)
🔵 P3❌❌Session 导出/删除Session 仅可查看,不可导出或删除

后台管理

优先级状态测试项目描述链接
🟠 P1✅❌Dashboard 页面6 个 StatCard、TrendsChart、LatencyChart、RecentSessionsTable、LatencyTable
🟠 P1✅✅会话列表/详情搜索/日期过滤/分页/SessionDetail 组件
🟠 P1✅✅安全事件监控限流/登录成败事件落库 + 管理页查询(类型/IP 过滤 + 分页)+ 30 天自动清理
🟡 P2❌❌User CRUD 管理 UI用户列表/创建/删除/角色管理未实现
🟡 P2❌❌RBAC 管理Token 用量/对话时长/设备活跃度/权限角色未实现
🟡 P2❌❌MCP 仪表盘多端点管理/工具同步/访问控制/日志未实现
🟡 P2❌❌系统监控服务器健康/连接数/资源使用/错误率未实现

Flutter App

优先级状态测试项目描述链接
🟠 P1❌❌共享客户端协议device 身份接入(与 IoT 同构),WS 语音 + 遥测 + MCP 工具面规格
🟡 P2❌❌USB 外设遥测Android 先行(OTG/USB-Host),iOS 仅语音 + 屏
🟡 P2❌❌CI/CDiOS/Android 构建/签名/发布流水线未实现
🟠 P1❌❌Flutter WS/认证集成脚手架已存在,WS 连接与认证未接入

IoT

优先级状态测试项目描述链接
🔴 P0✅✅apps/iot 骨架core/chip/bsp/app 四层;esp32c6 no_std(riscv32imac,无需 espup/ESP-IDF)
🔴 P0⚠️✅core 外设/能力模块板能力 trait(HasLight/HasInput)组合有测;base(network/config/HTTP/OTA)待 P1
🔴 P0✅✅LED 应用WS2812 RGB 灯(GPIO8)+ RMT 驱动;声明式渲染 + 呼吸动画
🔴 P0✅✅按钮应用BootButton(GPIO9)消抖 → Intent → 意图总线 → 状态分发 → 渲染 diff
🔴 P0✅—构建/烧录任务moon check/test/build/flash,产物 .elf/.bin;espflash 入 devShell
🔴 P0✅—CI 集成moon ci 编译固件并上传 artifact
🔴 P0⚠️—CD releaseiot release workflow(tag vanling-iot@x.y.z)发版;端到端未实测
🟠 P1❌❌设备端配置softAP 配网页 + 外设能力启停 + 配置持久化
🟠 P1❌❌开放输入(Other Input)+ AckJSON/Server 指令入意图总线 + 命令 Ack(见 IOT 图)
🟠 P1❌❌遥测上传方向①落盘HTTP 短事务 + device_key,落 server 仓库
🟠 P1❌❌屏幕显示分页渲染外设(home/config/ota 本地页;chat 语音驱动)规格
🟠 P1❌❌server 能力协商hello 能力集 → 动态管线组装 + 热重载
🟠 P1❌❌遥测会话读取方向②MCP home_state + device MCP 实时直查
🟠 P1❌❌状态查询(Reporter)Query/Response 只读 State Manager 快照(见 IOT 图)
🟠 P1❌❌server 认证收紧WS 仅收 device JWT,遥测归属设备维度
🟠 P1❌❌server IoT API遥测接入 + 设备管理
🟠 P1⚠️✅业务组合模型bin 板清单 move 注入能力;产品档 = feature 别名;判据见 features.md
🟠 P1❌❌多芯片移植底座家族分仓 iot-chip-<f>/iot-bsp-<f> + main cfg 家族入口 + toolchain/CI matrix
🟡 P2❌❌ESP32-S3(实战派)板支持xtensa-esp32s3 目标 + 实战派 szpi-bsp + moon 双板任务 + display-HasLight
🟠 P1❌❌首个非 esp 家族迁移-stm32 变体:app 家族别名 + 入口块 + thumbv7em + 固件作用域
🟠 P1❌❌语音助手外设Opus 编解码 + WS 语音客户端 + 唤醒词
🔴 P0✅✅无硬件回归冒烟宿主 std harness(意图→状态→渲染行为断言)+ esp-emu C6 硅层 boot smoke,CI 必经仿真与冒烟
🟠 P1❌❌真机验证/回归espflash 烧录 + 实机 smoke test(boot log/LED/按键)
🟠 P1❌—固件 Web 安装器docs/static/flasher/ 静态单页(GitHub Pages):上传 bin → 前端自解析(magic/ChipID/flash 参数/CRC/SHA256)→ esptool-js WebSerial 直刷 merged.bin 至 0x0;真机芯片比对防错刷;Chrome/Edge 限定,附 GUI/esptool 兜底
🟡 P2❌❌OTA 固件升级版本检查/下载校验/双分区回滚
🟡 P2❌❌MQTT 扩展遥测rumqttd broker + QoS/LWT 在线状态 + 传输协商(优先 MQTT 回退 HTTP)
🟡 P2❌❌断线重连/缓冲补传与消息缓冲
🔵 P3❌❌SNTP 时间同步数据时间戳可信
🔵 P3❌❌低功耗/深度睡眠长待机功耗优化,模型选型收敛后推进
🔵 P3❌❌看门狗/复位策略任务看门狗 + panic 复位恢复策略

基础设施

优先级状态测试项目描述链接
🟠 P1✅✅email UNIQUE 约束user.email 迁移已加 UNIQUE 约束(nullable,适配已有空邮箱记录)
🔴 P0✅✅优雅关闭顺序Server CancellationToken 统一驱动 axum/WS/Matrix 按序优雅退出
🔴 P0✅—Runtime 竞态build() 同步执行,set() happens-before 任何 worker 线程,无竞态
🟠 P1✅✅时间戳自动填充Config 实体补齐 before_save,create/update 时间戳自动填充
🟠 P1❌❌外键约束缺 round.session_id、round_data.round_id、frame.round_id 的 FK
🟠 P1⚠️❌MCP 锁顺序原 mcp_host.rs 已不存在;现组件无跨实例锁,重新引入多端聚合前需复查
🔵 P3❌❌MCP 错误处理错误映射与重试不完善