- BLE: 修复 BlueZ LocalName 与 Includes 冲突,串行注册与退避 - HTTP: 语音对话补 Live2D talking 标志与 session;Web 补 X-Session-Id - Flutter: 角色/对话/模型页 + API,Gradle/依赖升级,麦克风权限 - 文档: 新增 docs/STATUS.md,校准 CLAUDE/PROGRESS/README - 清理: 移除根目录截图与临时模型,运维脚本迁入 scripts/device
171 lines
6.4 KiB
Markdown
171 lines
6.4 KiB
Markdown
# ShowenV2 项目现状板
|
||
|
||
> **更新:2026-07-09**
|
||
> 用途:一页看清「能干什么 / 不能干什么 / 下一步做什么」。
|
||
> 操作派发仍以 `CLAUDE.md` 为 CEO 手册;本文件是**功能成熟度**权威清单。
|
||
|
||
---
|
||
|
||
## 1. 里程碑总览
|
||
|
||
| 里程碑 | 状态 | 说明 |
|
||
|--------|------|------|
|
||
| **M1.1** | ✅ 完成 | 插件微内核、视频/设备/HTTP/BLE/WiFi 骨架 |
|
||
| **M1.2** | ✅ 验收通过 | 目标机 147/147 测试全绿;仅差老板打 tag `m1.2` |
|
||
| **M2.1** | 🟡 **进行中(半成品)** | 语音数字生命 V1:后端/网页/App 已有骨架,**体验与验收未闭环** |
|
||
|
||
---
|
||
|
||
## 2. 仓库结构(整理后)
|
||
|
||
```
|
||
ShowenV2/
|
||
├── CLAUDE.md # CEO 操作手册(派发/铁律/当前状态)
|
||
├── README.md # 架构与快速开始
|
||
├── PROGRESS.md # 里程碑摘要
|
||
├── docs/
|
||
│ ├── STATUS.md # ← 本文件(功能成熟度)
|
||
│ ├── M2.1_PRD.md # M2.1 产品需求
|
||
│ └── ...
|
||
├── src/
|
||
│ ├── core/ # 微内核
|
||
│ └── plugins/ # video / http / ble / wifi / device / screen / live2d / ai
|
||
├── configs/ # 角色内容包 JSON(dog/cat/live2d_anime)
|
||
├── clients/flutter/ # 安卓控制 App
|
||
├── scripts/device/ # 设备运维脚本(从根目录迁入)
|
||
├── tests/ # M1.2 集成测试
|
||
└── souls/ # 团队档案
|
||
```
|
||
|
||
**根目录禁止再堆**:截图 `*.xwd`、临时模型 `.haru.*`、一次性 `.*.sh`。
|
||
|
||
---
|
||
|
||
## 3. 能力成熟度矩阵
|
||
|
||
图例:✅ 可用 · 🟡 半成品 · ❌ 缺失 · 🚫 本期不做
|
||
|
||
### 3.1 设备端(Linux ARM64 · 192.168.31.105)
|
||
|
||
| 能力 | 状态 | 备注 |
|
||
|------|------|------|
|
||
| 开机自启 `showen_v2.service` | ✅ | `Restart=always`,用户级 + Linger |
|
||
| 视频状态机 / Live2D 渲染 | ✅ | 设备画面主路径 |
|
||
| HTTP :5000 Web + API | ✅ | |
|
||
| BLE 广播 + GATT 配网 | ✅ | 已修 LocalName/Includes 冲突;广播实例=1 |
|
||
| WiFi (nmcli) | ✅ | |
|
||
| AI 对话管线 ASR→LLM→TTS | 🟡 | 设备实测文字对话可通;延迟数秒~十余秒 |
|
||
| 模型管理 API | 🟡 | 列表/下载/切换/删除有;进度/配额 UX 待验 |
|
||
| 角色配置切换 API | ✅ | `/api/config/available` + `switch` 带 character 元信息 |
|
||
| 单实例锁 | ❌ | 防御性双保险未做 |
|
||
| 设备本机麦克风/扬声器对话 | 🚫 | 硬件未接;V1 声音走客户端 |
|
||
|
||
### 3.2 网页控制端(`chat.html` + `chat.js`)
|
||
|
||
| 能力 | 状态 | 备注 |
|
||
|------|------|------|
|
||
| 播放/触发/配置/视频/文件/WiFi | ✅ | M1 存量 |
|
||
| 角色切换 UI | 🟡 | 有入口,端到端验收不足 |
|
||
| 文字对话 + 浏览器播 TTS | 🟡 | API 通;人设/状态联动待系统验 |
|
||
| 按住说话 | 🟡 | HTTP 下 getUserMedia 受限;PRD 允许降级 |
|
||
| 模型管理 UI | 🟡 | 有入口,下载进度/错误态未系统验 |
|
||
| 与 App 状态互相同步 | 🟡 | 依赖 WS/轮询,未做验收用例 |
|
||
|
||
### 3.3 安卓 App(Flutter · v0.4 debug APK)
|
||
|
||
| 能力 | 状态 | 备注 |
|
||
|------|------|------|
|
||
| 设备连接 / 播放 / 网络 / BLE 配网 / 设置 | ✅ | M1 能力 |
|
||
| 角色页 | 🟡 | 代码已加,**真机体验未验** |
|
||
| 对话页(文字+按住说话+播回复) | 🟡 | 代码已加,**真机体验未验** |
|
||
| 模型管理页 | 🟡 | 代码已加,**真机体验未验** |
|
||
| debug APK | ✅ | `clients/flutter/build/app/outputs/flutter-apk/app-debug.apk` (~146MB) |
|
||
| release 签名包 | ❌ | 未打 |
|
||
| 对话历史本地持久化 / 隐私文案 | ❌ | PRD 有要求 |
|
||
| 角色卡片封面图 | ❌ | API 未提供 cover |
|
||
|
||
### 3.4 内容与素材
|
||
|
||
| 项 | 状态 |
|
||
|----|------|
|
||
| dog / cat 视频包 | ✅ 可用(路径仍偏仓库外历史形态) |
|
||
| live2d_anime 包 | 🟡 有配置,素材依赖设备本地 `configs/live2d/` |
|
||
| 数字人/歌姬完整 4 状态视频包 | ❌ 素材未齐(PRD 最大外部依赖) |
|
||
| 角色 `talk` 状态全覆盖 | 🟡 宠物包可降级 |
|
||
|
||
---
|
||
|
||
## 4. 未提交改动(本机工作区,2026-07-09)
|
||
|
||
以下在仓库 **working tree**,尚未 commit(按老板规则不代提交):
|
||
|
||
| 区域 | 内容 |
|
||
|------|------|
|
||
| `src/plugins/ble/` | BLE 广播 LocalName 修复 + 串行注册 |
|
||
| `src/plugins/http/` | chat/audio 说话态/session;chat.js session 头 |
|
||
| `clients/flutter/` | M2.1 三角色/对话/模型页 + Gradle/依赖升级 |
|
||
| 根目录清理 | 移除 xwd/haru 垃圾;脚本迁 `scripts/device/` |
|
||
|
||
设备端:上述 BLE/HTTP 二进制可能已部署,但 **git 与设备代码可能不完全一致**,合并前需同步。
|
||
|
||
---
|
||
|
||
## 5. 不完善点(按优先级)
|
||
|
||
### P0 — 不做则无法说「M2.1 可用」
|
||
|
||
1. **真机验收闭环**:App 装机 → 角色切换 → 文字/语音对话 → 模型列表/切换
|
||
2. **设备 ↔ 本机代码对齐**:commit + 设备 `git pull`/同步 + `cargo test`
|
||
3. **对话失败可理解**:AI 未就绪 / 超时 / 模型缺失时,App/Web 明确提示
|
||
|
||
### P1 — 体验完整度
|
||
|
||
4. App 对话历史本地存储 + 清空
|
||
5. 切换角色时清空会话上下文(App 已调 clear;Web 需确认)
|
||
6. 模型下载进度实时刷新与失败重试
|
||
7. Web HTTP 录音限制的产品文案统一
|
||
8. release APK 与安装渠道
|
||
|
||
### P2 — 技术债 / 收尾
|
||
|
||
9. M1.2 tag `m1.2`
|
||
10. 单实例保护
|
||
11. `sanitize_filename` 测试转正
|
||
12. CursorVisibility 等 Phase2 消息清理
|
||
13. 数字人/歌姬素材管线
|
||
|
||
---
|
||
|
||
## 6. 建议下一轮工作顺序
|
||
|
||
```text
|
||
1) 老板/本机:提交当前工作区改动(或拆成 ble / http / flutter 三提交)
|
||
2) 设备同步 + cargo test --workspace
|
||
3) App 真机:配网 → 角色 → 对话 → 模型 四条用户旅程
|
||
4) 按失败项修 P0
|
||
5) 再谈素材与 release
|
||
```
|
||
|
||
---
|
||
|
||
## 7. 环境速查
|
||
|
||
| 环境 | 要点 |
|
||
|------|------|
|
||
| 设备 SSH | `ssh -p 2222 showen@192.168.31.105`(密码 showen) |
|
||
| 设备 Web | `http://192.168.31.105:5000/` |
|
||
| 本机 Flutter | `source ~/.showen_dev_env` · Flutter 3.44.5 · JDK17 · Android SDK36 |
|
||
| 本机 APK | `clients/flutter/build/app/outputs/flutter-apk/app-debug.apk` |
|
||
|
||
---
|
||
|
||
## 8. 文档导航
|
||
|
||
| 需求 | 文件 |
|
||
|------|------|
|
||
| 派任务 / 铁律 | `CLAUDE.md` |
|
||
| 功能成熟度(本页) | `docs/STATUS.md` |
|
||
| M2.1 产品定义 | `docs/M2.1_PRD.md` |
|
||
| 里程碑摘要 | `PROGRESS.md` |
|
||
| 架构入门 | `README.md` |
|