feat: M2.1 客户端骨架、BLE 修复、仓库整理与现状板

- BLE: 修复 BlueZ LocalName 与 Includes 冲突,串行注册与退避
- HTTP: 语音对话补 Live2D talking 标志与 session;Web 补 X-Session-Id
- Flutter: 角色/对话/模型页 + API,Gradle/依赖升级,麦克风权限
- 文档: 新增 docs/STATUS.md,校准 CLAUDE/PROGRESS/README
- 清理: 移除根目录截图与临时模型,运维脚本迁入 scripts/device
This commit is contained in:
2026-07-09 12:41:34 +08:00
parent 7cb8cee70d
commit 6f7e24db63
51 changed files with 2674 additions and 351 deletions

View File

@@ -1,53 +1,44 @@
# ShowenV2 — 项目进度
> 当前状态和待办事项的权威来源是 `CLAUDE.md`。本文件保留里程碑摘要和最近变更。
> 完整提交历史见 `.showen/PROGRESS_ARCHIVE.md`。
> **功能成熟度看 `docs/STATUS.md`。**
> 派发/铁律/团队看 `CLAUDE.md`。
> 完整提交历史见 `.showen/PROGRESS_ARCHIVE.md`(若有)。
## 当前里程碑
**M1.2 — 测试验收已通过,收尾中** 🔄
- 集成测试全部编写完毕ServiceManager 8 + HTTP路由 12 + 动态插件 15 = 35 个)
- 2026-07-03 目标机Linux ARM64, 192.168.31.105)两轮验收:**147/147 全过、零 warning**(第一轮暴露 1 个测试前提错误 + 3 个 warning返工后第二轮全绿证据见 TEAM_CHAT.md
- 剩余commit 返工测试文件 + 打 tag待批准+ 风险3 生产者核查(王浩然)
| 里程碑 | 状态 |
|--------|------|
| M1.1 | ✅ 完成 |
| M1.2 | ✅ 验收通过147/147仅差 tag `m1.2` |
| **M2.1 语音数字生命 V1** | 🟡 **半成品** — 后端/Web/App 有骨架,真机验收与体验未闭环 |
---
## M2.1 一句话
**M1.1 — 完成**
- 30 个提交Phase 1 骨架 + 功能迁移 + 动态插件 + DevicePlugin 阶段一/二
- 115/115 测试通过107 核心 + 8 集成),零 warningM1.1结束时77/77M1.2期间增至115
- DevicePlugin: Display + SleepInhibit + Backlight + Cursor (Linux ARM64)
- ScreenPlugin 重构为 thin wrapper
本地 ASR→LLM→TTS声音出在 **App/Web**,设备负责算力和画面;角色可切换,模型可管理。
**现状**API 与 UI 入口大致齐了,**不能宣称功能完善**(见 STATUS.md 缺口表)。
## 最近变更 (提交 26-30)
## 最近本机工作(未全部入库)
| # | 提交 | 内容 | 负责人 |
|---|------|------|--------|
| 26 | `48d1eeb` | plugin-sdk 同步 Device 类型 | 李思琪 |
| 27 | `f060519` | DeviceCommand 添加 SetCursorVisible | 张明远 |
| 28 | `5310a92` | LinuxArm64Backend 添加光标控制 | 赵雨薇 |
| 29 | `bf41c45` | ScreenPlugin 重构为 thin wrapper | 赵雨薇 |
| 30 | `be08c63` | 新增 4 个光标控制集成测试 | 李思琪 |
- BLE修复 BlueZ `LocalName` + `Includes["local-name"]` 冲突;串行注册
- HTTP语音对话补 Live2D 说话态与 sessionWeb 补 `X-Session-Id`
- Flutter角色 / 对话 / 模型三页 + debug APK~146MB
- 仓库整理:根目录截图/临时模型清除;运维脚本迁 `scripts/device/`;新增 `docs/STATUS.md`
## 架构概览
```
core/ (插件微内核)
ServiceManager → 生命周期/消息路由/错误策略
Plugin trait → 统一插件接口
Message enum → 类型安全消息 (Serialize/Deserialize)
动态插件层 → FFI Loader / Runtime / Self-Test
plugins/ (一切皆插件)
video/ screen/ http/ ble/ wifi/ device/
(未来: render/ avatar/ vr/ ar/ voice/ ai/ singer/)
core/ 插件微内核 · 消息 · 配置 · 动态插件
plugins/ video · http · ble · wifi · device · screen · live2d · ai
configs/ 角色内容包 JSON
clients/ flutter 安卓控制端
scripts/device 设备运维脚本
docs/STATUS.md 功能成熟度板
```
## 实机验证结果
## 实机锚点
| 验证项 | 结果 |
|--------|------|
| `--validate` | 21 个视频路径全部有效 |
| 插件初始化 | 5/5 正常 start |
| HTTP API | `/api/status``/api/playlist` 正常 |
| framebuffer | fb0 480x800 检测成功 |
| Release 编译 | 9.4MB ARM aarch64 |
| 项 | |
|----|-----|
| 设备 | Radxa Cubie A7A · `192.168.31.105:2222` · showen |
| Web | `http://192.168.31.105:5000/` |
| 本机 APK | `clients/flutter/build/app/outputs/flutter-apk/app-debug.apk` |