diff --git a/PROGRESS.md b/PROGRESS.md index 5029f84..ebec7c6 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -24,6 +24,37 @@ ShowenV2 不仅是全息宠物播放器,而是一个**通用数字生命窗口 - 旧项目: `/home/showen/Showen/hologram_player_rust/` (单体全息宠物播放器) - 新项目: `/home/showen/Showen/ShowenV2/` - 架构: 跨平台插件内核 + 功能插件 +- 团队: CEO(Claude Opus 4.6) + 4名开发者(GPT-5.4 via kilo) + +--- + +## 完成进度 + +### ✅ 已完成 + +| # | 提交 | 内容 | 负责人 | +|---|------|------|--------| +| 1 | `23f4d46` | 项目骨架:Cargo.toml, core/ 骨架, plugins/ 空桩 | CEO | +| 2 | `3751c23` | 团队制度:末位淘汰 + 灵魂保存机制 | CEO | +| 3 | `311e4ba` | CEO 灵魂文件 + souls/ 目录 | CEO | +| 4 | `3654af5` | config验证 + StateMachine + WifiPlugin + ScreenPlugin | 全员 | +| 5 | `650d98c` | 全员灵魂文件解锁 + 沟通板 | CEO | + +### 🔄 第二轮进行中 + +| 成员 | 任务 | 文件 | 状态 | +|------|------|------|------| +| 张明远 | ServiceManager Broadcast + Message Clone | core/message.rs, core/service_manager.rs | 🔄 派发中 | +| 李思琪 | VideoPlugin processor.rs (旧1523行迁移) | plugins/video/processor.rs, plugins/video/mod.rs | ⏳ 待派发 | +| 王浩然 | BlePlugin (含 LocalName 双连接修复) | plugins/ble/mod.rs, plugins/ble/gatt.rs | ⏳ 待派发 | +| 赵雨薇 | HttpPlugin + Web UI | plugins/http/mod.rs, plugins/http/routes.rs | ⏳ 待派发 | + +### ⏳ 待完成 + +| 任务 | 说明 | +|------|------| +| 集成 main.rs | 串联所有插件,cargo build --release | +| configs/ 配置文件 | 复制 dog/cat_state_machine.json | --- @@ -41,107 +72,28 @@ ShowenV2 不仅是全息宠物播放器,而是一个**通用数字生命窗口 │ Config — 配置解析/验证(纯 serde) │ ├─────────────────────────────────────────────────────┤ │ plugins/ (一切皆插件) │ -│ │ -│ ┌─ 渲染引擎 ─────────────────────────────────┐ │ -│ │ video/ — 视频播放 (OpenCV, 当前核心) │ │ -│ │ render/ — 3D渲染引擎 (未来: wgpu/vulkan) │ │ -│ │ avatar/ — 数字人驱动 (未来: Live2D等) │ │ -│ └────────────────────────────────────────────┘ │ -│ │ -│ ┌─ 显示后端 ─────────────────────────────────┐ │ -│ │ screen/ — 屏幕管理 (X11/fbv/唤醒锁/光标) │ │ -│ │ vr/ — VR 输出 (未来: OpenXR) │ │ -│ │ ar/ — AR 叠加 (未来) │ │ -│ └────────────────────────────────────────────┘ │ -│ │ -│ ┌─ 连接/交互 ────────────────────────────────┐ │ -│ │ http/ — Web UI + REST API (warp) │ │ -│ │ ble/ — BLE 配网 (dbus BlueZ) │ │ -│ │ wifi/ — WiFi 管理 (nmcli) │ │ -│ │ voice/ — 语音交互 (未来: ASR/TTS) │ │ -│ │ sensor/ — 传感器输入 (未来: GPIO/触摸) │ │ -│ └────────────────────────────────────────────┘ │ -│ │ -│ ┌─ AI 引擎 ──────────────────────────────────┐ │ -│ │ ai/ — LLM 对话 (未来) │ │ -│ │ singer/ — AI 歌姬 (未来: 歌声合成) │ │ -│ └────────────────────────────────────────────┘ │ +│ video/ screen/ http/ ble/ wifi/ │ +│ (未来: render/ avatar/ vr/ ar/ voice/ ai/ singer/) │ └─────────────────────────────────────────────────────┘ ``` -**关键**: 内核 core/ 完全不知道"宠物""歌姬""3D模型"的存在。 -它只知道"插件发消息、收消息、有生命周期"。 -内容类型、显示方式、交互模式全部由插件组合决定。 - ---- - -## 当前实现范围 (Phase 1) - -Phase 1 的目标:**完整迁移旧功能到新架构**,确保在 ARM 设备上运行正常。 - -| 插件 | 来源 | 平台 | 状态 | -|------|------|------|------| -| core/ | 新建 | Any | 进行中 | -| plugins/video/ | video_processor.rs + state_machine.rs | OpenCV | 待迁移 | -| plugins/http/ | api_server.rs | warp | 待迁移 | -| plugins/ble/ | ble_service.rs | Linux dbus | 待迁移 | -| plugins/screen/ | screen_wake_lock.rs | Linux | 待迁移 | -| plugins/wifi/ | api_server.rs WiFi部分 | Linux nmcli | 待迁移 | - -未来 Phase 的插件 (render/, avatar/, vr/, ar/, voice/, ai/, singer/) 只需定义接口预留,不实现。 - ---- - -## 提交计划 - -### Commit 1: 项目骨架 + 愿景文档 -- [x] PROGRESS.md 平台愿景与架构 -- [x] Cargo.toml, rust-toolchain.toml -- [ ] core/plugin.rs — Plugin trait + PluginInfo + PluginContext + Platform -- [ ] core/message.rs — Message/Envelope/Destination (通用消息,不限于宠物) -- [ ] core/service_manager.rs — ServiceManager 骨架 -- [ ] core/config.rs — AppConfig 类型定义 -- [ ] core/mod.rs, lib.rs -- [ ] plugins/ 空桩 (video, http, ble, screen, wifi) -- [ ] main.rs 入口 -- 验证: `cargo check` 通过 - -### Commit 2: 配置系统完整实现 -- [ ] core/config.rs 完整验证逻辑 -- [ ] configs/dog_state_machine.json, cat_state_machine.json - -### Commit 3: ServiceManager 消息路由 -- [ ] register(), start_all(), run(), stop_all() -- [ ] mpsc 通道消息循环 + Broadcast 支持 - -### Commit 4: VideoPlugin 视频播放 -- [ ] plugins/video/processor.rs (VideoTransformer + VideoProcessor) -- [ ] plugins/video/state_machine.rs (StateMachine) -- [ ] plugins/video/mod.rs (Plugin trait impl) - -### Commit 5: HttpPlugin HTTP API -- [ ] plugins/http/routes.rs (warp 路由) -- [ ] plugins/http/mod.rs (Plugin trait impl) -- [ ] 内嵌 Web UI HTML - -### Commit 6: BlePlugin (含 LocalName 修复) -- [ ] plugins/ble/gatt.rs — 双 D-Bus 连接修复 -- [ ] plugins/ble/mod.rs (Plugin trait impl) - -### Commit 7: ScreenPlugin + WifiPlugin -- [ ] plugins/screen/mod.rs (唤醒锁+光标) -- [ ] plugins/wifi/mod.rs (nmcli) - -### Commit 8: 集成 main.rs + 编译验证 -- [ ] 串联所有插件 -- [ ] cargo build --release - --- ## 关键决策记录 -1. **Rust edition 2018** — 兼容设备 stable toolchain -2. **std::sync::mpsc** 消息传递 — VideoPlugin 在阻塞线程运行,不能全异步 +1. **Rust edition 2018** — 兼容 ARM 设备 stable toolchain +2. **std::sync::mpsc** 消息传递 — VideoPlugin 在阻塞线程运行 3. **BLE 双连接修复** — conn_server 处理回调, conn_client 同步注册 -4. **Message 枚举通用化** — 不绑定特定内容类型,Custom 变体支持未来插件 -5. **Platform 枚举** — 插件声明自己适用的平台,main.rs 按运行时平台选择 -6. **项目名 ShowenV2** — 不叫 hologram_player,因为不止全息 +4. **Message Clone** — 第二轮给 Message 实现 Clone 以支持 Broadcast +5. **团队通过文件沟通** — TEAM_CHAT.md 异步协作,souls/ 持久化成员状态 +6. **kilo 调用方式** — `kilo run -m openai/gpt-5.4 --auto --dir -f <灵魂文件> -f TEAM_CHAT.md` + +--- + +## 团队绩效 (Phase 1 第一轮) + +| 成员 | 任务 | 质量 | 完成度 | 效率 | 协作 | 总分 | +|------|------|------|--------|------|------|------| +| 张明远 | config.rs 验证 | 8 | 8 | 8 | 8 | **8** | +| 李思琪 | state_machine.rs | 8 | 8 | 8 | 8 | **8** | +| 王浩然 | wifi/mod.rs | 8 | 8 | 8 | 8 | **8** | +| 赵雨薇 | screen/mod.rs | 8 | 8 | 8 | 8 | **8** |