mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-21 22:53:56 +08:00
5.5 KiB
5.5 KiB
阶段路线图与 PR 队列
1. 里程碑
| 阶段 | 目标 | 主要交付物 | 负责人角色 | 依赖 | 退出门禁 |
|---|---|---|---|---|---|
| M0 基线 | 建立可审阅的 FastAPI 与计划基线 | 当前实现、兼容报告、计划文档、首个 PR | PM/集成 | 无 | 基线测试可重复,变更范围清楚 |
| M1 可执行契约 | 把“现有功能”转换成测试资产 | 协议清单、黄金报文、虚拟设备、Fake Provider | QA + Realtime | M0 | 旧服务完整模拟会话可重复 |
| M2 统一发行入口 | 纳入 manager-web 与统一网关 | 前端构建、静态托管、路由、统一 Compose | Platform + Frontend | M0 | 页面/API/WS 路由冒烟通过 |
| M3 共享核心 | 消除配置和业务能力的内部 HTTP 自调用 | bootstrap、应用服务接口、配置版本与广播 | Backend + Architecture | M1 | API/旧 realtime 均可使用共享接口 |
| M4 ASGI 实时内核 | 建立不依赖真实 Provider 的新会话运行时 | WebSocket 适配、DeviceSession、背压、取消和鉴权 | Realtime | M1、M3 | Fake 全会话与旧协议一致 |
| M5 Provider 迁移 | 接回全部现有能力 | 四个 Provider 能力族适配、契约测试 | Provider 专项 | M4 | 所有 Provider 可构造且契约通过 |
| M6 平台硬化 | 达到可部署候选质量 | 多进程、优雅摘流、指标、安全、负载和故障测试 | Platform + QA | M2、M4、M5 | 自动质量门禁全部绿色 |
| M7 切换准备 | 删除自动化范围内的未知项 | 新旧差分、升级/回滚演练、旧入口弃用方案 | PM + Reviewer | M6 | 只剩真实环境清单中的阻塞项 |
| M8 真实验收 | 外部人员/环境介入 | ESP32、真实 Provider、MQTT/RAGFlow、目标环境报告 | External QA/Ops | M7 | 不属于纯 Agent 阶段 |
2. 推荐 PR 队列
PR 必须按可独立验证的纵向能力拆分。编号是计划标识,不是 GitHub 实际编号。
| 计划 PR | 内容 | 建议目标分支 | 可并行关系 |
|---|---|---|---|
| P00 | 开发计划、Agent 协作和质量门禁 | refactor/unified-fastapi-platform |
FastAPI 基线直接推送后创建 |
| P01 | CI 快速门禁和测试目录重组 | refactor/unified-fastapi-platform |
与 P02 并行 |
| P02 | manager-web 构建、gateway 路由和统一 Compose | 同上 | 与 P01 并行 |
| P03 | 设备协议清单、黄金报文和虚拟设备 | 同上 | 与 P02 并行 |
| P04 | 系统密钥 bootstrap、共享配置接口和版本事件 | P01 + P03 | 阻塞 P06 |
| P05 | 聊天/设备配置等内部 HTTP 调用改为应用服务端口 | P04 | 可按用例拆成两个 PR |
| P06 | ASGI WebSocket 握手、鉴权和协议适配层 | P03 + P04 | 与 P05 后半段并行 |
| P07 | DeviceSession 生命周期、队列、取消和 Fake 对话链路 | P06 | 阻塞 Provider 迁移 |
| P08-A | VAD/ASR Provider 适配 | P07 | 与 P08-B/C 并行 |
| P08-B | LLM/VLLM/Memory/Intent 适配 | P07 | 与 P08-A/C 并行 |
| P08-C | TTS Provider 适配 | P07 | 与 P08-A/B 并行 |
| P09 | Tools/MCP/IoT/插件及 Vision | P08-B | 可与 P08 收尾并行 |
| P10 | 配置广播、管理控制、优雅摘流与健康指标 | P07 + P08 | 与 P09 并行 |
| P11 | 全栈模拟 E2E、新旧差分和负载/故障测试 | P02 + P09 + P10 | 集成收口 |
| P12 | 发行、升级、回滚、弃用和真实测试交接 | P11 | 纯 Agent 最后一个 PR |
所有开发 PR 默认以长期集成分支 refactor/unified-fastapi-platform 为目标。存在未合并依赖时使用
堆叠 PR;依赖合并后及时变基到最新集成分支。纯 Agent 阶段不向 main 创建 PR;真实环境验收
完成后,也只有在项目所有者明确批准时才讨论主分支集成。不得让多个 PR 同时修改同一协议核心文件。
3. 建议容量分配
以下比例用于分配 Agent 和审阅资源,不是完成度承诺:
| 工作域 | 参考占比 | 原因 |
|---|---|---|
| manager-web 与 gateway | 15% | 构建已可用,主要缺静态交付和浏览器 E2E |
| manager-api 深度兼容与共享服务 | 25% | 路由齐全,但成功写入、副作用和 bootstrap 仍需补强 |
| realtime、会话与 Provider | 45% | 缺少协议测试,且存在线程、模型和长连接重构 |
| CI、部署、安全与交接 | 15% | 需要从零建立 PR 门禁和统一发行证据 |
容量应随风险登记和测试证据调整,不按代码行数机械分配。
4. 并行执行窗口
为控制资源和冲突,同一时间最多开放三个实现工作包:
- 一个核心依赖链工作包,例如 P04/P06/P07。
- 一个交付或前端工作包,例如 P02/P10。
- 一个测试/独立审阅工作包,例如 P03/P11。
Provider 阶段允许三个能力族并行,但每个能力族只分配一个实现 Agent;共享接口由架构负责人 预先冻结,任何接口变更先更新 ADR 和契约测试。
5. 阶段状态规则
每个阶段只有四种状态:
Not started:依赖未完成。Ready:依赖完成且工作包说明已批准。In progress:已有唯一负责人和活动 PR。Done:PR 合并且退出门禁有证据链接。
不得使用“代码写完”代替 Done。失败、跳过、未执行和缺少外部环境必须分别记录。
6. 每周/每轮进度摘要
当前阶段:
已合并 PR:
活动 PR(负责人 / 门禁):
本轮新增证据:
阻塞项(内部 / 真实环境):
风险变化:
下一轮最多三个工作包:
路线图由 PM/集成负责人维护;实现 Agent 只更新自己 PR 的证据和工作包状态。