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:
63
CLAUDE.md
63
CLAUDE.md
@@ -90,14 +90,17 @@ export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bi
|
||||
|
||||
## 当前状态
|
||||
|
||||
- **质量**: **147/147 已在 Linux ARM64 目标机验证**(2026-07-03 实跑:lib 105 + example 7 + m1_2_dynamic 15 + m1_2_http 12 + m1_2_service_manager 8);Flutter 15/15;零 warning。**注**:2026-07-04 新增 3 提交(README 修正 + P1 Shutdown fix + P2 清理)仅过类型检查,待目标机复验
|
||||
- **里程碑**: M1.1 完成,**M1.2 收尾完成**(147/147 两轮验收全绿、风险3 关闭、老板已提交 2a6e14b、设备已同步并复验零 warning),仅差老板打 tag(建议在 2a6e14b 上打 `m1.2`)
|
||||
- **DevicePlugin 能力**: Display + SleepInhibit + Backlight + Cursor (Linux ARM64)
|
||||
- **ScreenPlugin**: 已重构为 thin wrapper
|
||||
- **Flutter App**: 完成度 ~98%, APK v0.3 (52.6MB) 已编译, cupertino_icons 已修复
|
||||
- **API 文档**: 已校准(以 routes.rs 为唯一权威重写)
|
||||
- **示例插件**: 已完善为开发者参考模板 (manifest.json + 请求/响应示范 + 7 个测试)
|
||||
- **M1.2 进展**: 目标机两轮验收完成(2026-07-03,147/147 零 warning,证据见 TEAM_CHAT.md);HTTP 路由测试实为 12 个(旧记录 9 有误)、lib 单测实为 105(旧记录 107 有误);剩余 commit+tag、风险3 补派核查
|
||||
> **功能成熟度权威清单见 `docs/STATUS.md`(2026-07-09 整理)**。此处只保留 CEO 一页摘要。
|
||||
|
||||
- **质量 (M1.2)**: **147/147 已在 Linux ARM64 目标机验证**(lib 105 + example 7 + m1_2_dynamic 15 + m1_2_http 12 + m1_2_service_manager 8);零 warning;2026-07-04 三提交亦已复验全绿
|
||||
- **里程碑**: M1.1 ✅ · M1.2 ✅(仅差老板打 tag `m1.2`)· **M2.1 🟡 半成品**
|
||||
- **DevicePlugin**: Display + SleepInhibit + Backlight + Cursor (Linux ARM64)
|
||||
- **插件**: video / http / ble / wifi / device / screen / **live2d** / **ai**
|
||||
- **Flutter App**: M1 控制能力可用;**M2.1 角色/对话/模型页已写代码、debug APK 已出(~146MB),真机验收未闭环** → 见 STATUS.md §3.3
|
||||
- **Web 控制端**: 已切到 `chat.html`/`chat.js`(角色/对话/模型入口有);非旧 WEB_UI 常量
|
||||
- **BLE**: 广播注册已修(不可 LocalName + Includes 双设);设备 ActiveInstances=1 曾验证
|
||||
- **AI**: 设备文字对话 API 实测可通;延迟/模型档位/失败体验仍需产品化
|
||||
- **本机开发环境 (Mac)**: Flutter 3.44.5 + JDK17 + Android SDK36(`~/.showen_dev_env`)
|
||||
|
||||
### 已修复(本轮)
|
||||
|
||||
@@ -148,26 +151,30 @@ export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bi
|
||||
|
||||
7. **Spike 结论(2026-07-03 张明远实测,全表见 TEAM_CHAT.md)**:可行。设备实为 Radxa Cubie A7A(A733:2×A78@2.0G + 6×A55@1.8G)。推荐默认 **Qwen2.5-0.5B Q4**(16.4 t/s,50字回复 ~3.4s,RSS 985M);Gemma3-1B 可选档(8.2 t/s);**Gemma2-2B 本机不推荐**(RSS 3.25G 触发 swap)。硬约束:**推理必须 t=2 锁大核**(全核反而崩且挤死视频)、严禁默认上下文长度、部署脚本必须带镜像回退。ASR whisper tiny ~2.2s(需 VAD 防静音幻觉)、TTS piper RTF 0.3。端到端:串行热链 ~10s,**流式管线首音频 ~5s**(达标"可接受");≤3s 需 A733 的 NPU(Phase 2 路径)。现场保留 ~/ai_spike/ 3.5G 可复跑。
|
||||
|
||||
✅ PRD 完成(docs/M2.1_PRD.md,三轮修订含老板三条补充)+ Spike 完成。进行中:架构设计(王思远)。素材依赖:数字人/歌姬内容包需视频素材,先用现有猫狗包验证切换机制。
|
||||
✅ PRD(docs/M2.1_PRD.md)+ Spike + 后端 AI/模型/角色 API + Web 控制台重构 + App M2.1 页面骨架。
|
||||
**诚实结论**:能演示链路 ≠ 产品完成。详见 `docs/STATUS.md`。
|
||||
|
||||
### 待处理
|
||||
### 待处理(精简 · 2026-07-09)
|
||||
|
||||
1. **[M1.2 收尾]** ✅ commit(老板 2a6e14b)→ ✅ 设备同步至 2a6e14b + cargo check 零 warning(周雅婷 2026-07-03,设备仅剩本地调参文件 configs/dog_state_machine.json 一处差异);**仅剩:老板打 tag(建议在 2a6e14b 上打 `m1.2`)**
|
||||
2. ~~**[M1.2 收尾]** tests/m1_2_http.rs 过时注释更新~~ ✅ 赵雨薇完成(2026-07-03,纯注释改动,核实点位后订正为"六种 plugin_* 闭环,唯 check_updates 结果回传属 Phase 2");注意此改动在第二轮验收之后,commit 前设备端补一次 cargo check 即可
|
||||
3. **[M1.2 收尾]** sanitize_filename 集成测试测的是逻辑复制而非产品函数,转正需产品侧小改动(改 pub 或 routes.rs 内加单测)— 赵雨薇上报
|
||||
4. DevicePlugin 阶段三(framebuffer迁移/触摸/音频/多平台)— Phase 2 规划
|
||||
5. **[设备遗留-代码]** 单实例保护(锁文件/socket 互斥)+ unclutter 僵尸子进程 reap — 派内核/视频工程师
|
||||
- ~~unclutter reap~~ ✅ 核查确认(2026-07-04):`linux_arm64.rs:238-254` shutdown() 已做 kill+wait+pkill 兜底,仅 SIGKILL 极端场景残留,不值得加 SIGCHLD handler
|
||||
- **单实例保护**:未做。需目标机实测锁文件行为(Windows 开发环境无法验证),留给设备端工程师。背景:CLAUDE.md:136 记录的 3 实例 P0 已由赵雨薇移除多余自启入口修复,单实例锁是防御性双保险
|
||||
6. ~~**[设备遗留-系统]** 时钟慢约一年 + 磁盘 9x% 满~~ ✅ 全部解决(2026-07-03):时钟 — 王浩然修复(根因:timesyncd 出厂未启用 + RTC hym8563 掉电失效标志;已配 aliyun NTP 持久化 + hwclock 恢复,apt 复活,重启验证开机即正确;遗留:RTC 备份电池未验证,冷启动需联网自愈);磁盘 — 赵雨薇两轮清理 96%→35%(删 Flutter/Android/编辑器/kilo 等 ~16G)
|
||||
7. **[环境]** 设备 SSH 已打通:`ssh -p 2222 showen@192.168.31.105` 免密(2026-07-02 配置),目标机验收可远程执行
|
||||
8. ~~**[代码质量-P2]** Shutdown 消息无生产触发者:main.rs:117-120 Ctrl+C 只置 AtomicBool,主循环阻塞在 rx.recv(),需等下一条任意消息才真正退出(王浩然发现)~~ ✅ 修复(2026-07-04,提交 ab1dd91):三处改动 — run() recv()→recv_timeout(200ms);handle_manager_message Shutdown 分支置 self.running=false;main.rs Ctrl+C handler 注入 Message::Shutdown。效果:Ctrl+C 后最多 200ms 退出。**待目标机复验**
|
||||
9. ~~**[Phase 2 清理]** SDK 文档教开发者监听永不触发的 WifiProvisioned (plugin-sdk/src/lib.rs:522);CursorVisibility 有消费无生产(实际链路已走 DeviceCommand);check_updates 结果仅 println 不回传;DeviceResponse 广播后核心无人读、Error 静默~~ ✅ 部分完成(2026-07-04,提交 38dcd21):
|
||||
- ✅ SDK 文档:broadcast 示例换成 StateChanged,新增 Phase 2 占位消息说明(WifiProvisioned/DeviceEvent/CursorVisibility)
|
||||
- ✅ check_updates 结果回传:通过 Custom { kind: "plugin_updates" } 广播
|
||||
- ✅ DeviceResponse::Error 留痕:device/mod.rs handle_message 补 eprintln
|
||||
- ⏳ CursorVisibility 变体:删除会破坏示例插件和测试,倾向 Phase 2 统一清理(保留现状)
|
||||
10. ~~**[待复验]** 2026-07-04 三提交(4d830c0 README / ab1dd91 P1 Shutdown fix / 38dcd21 P2 清理)仅过 rust-analyzer 类型检查,需在 Linux ARM64 目标机跑 `cargo check --workspace --all-targets && cargo test --workspace` 确认零 warning + 全测试通过~~ ✅ 目标机复验通过(2026-07-04):`cargo check` 零 warning;`cargo test --workspace` 147/147 全过(lib 105 + example 7 + m1_2_dynamic 15 + m1_2_http 12 + m1_2_service_manager 8);P1 Shutdown 修复实测:SIGINT 后 234ms 优雅退出(exit_code=0),修复前需等下一条消息可能永不退出
|
||||
**P0 / M2.1 闭环**
|
||||
1. **工作区提交**:本机有未提交的 BLE 修复 + HTTP 对话修补 + Flutter M2.1 页(老板提交,不代办)
|
||||
2. **设备代码对齐 + 回归**:同步后 `cargo check/test --workspace`
|
||||
3. **真机四旅程**:配网 → 角色切换 → 文字/语音对话 → 模型管理(App + Web)
|
||||
4. **对话失败态产品化**:AI 未就绪/超时/缺模型时客户端明确提示
|
||||
|
||||
**P1**
|
||||
5. App 对话历史本地持久化、release APK
|
||||
6. 模型下载进度与错误重试 UX
|
||||
7. 数字人/歌姬素材(PRD 外部依赖)
|
||||
|
||||
**P2 / 收尾**
|
||||
8. **[M1.2]** 老板打 tag `m1.2`
|
||||
9. sanitize_filename 测试转正;单实例保护;CursorVisibility 清理
|
||||
10. DevicePlugin 阶段三(framebuffer/触摸/音频/多平台)— 更后
|
||||
|
||||
**环境**
|
||||
- 设备:`ssh -p 2222 showen@192.168.31.105` · Web `http://192.168.31.105:5000/`
|
||||
- 本机 Flutter:`source ~/.showen_dev_env`
|
||||
|
||||
---
|
||||
|
||||
@@ -228,12 +235,14 @@ export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bi
|
||||
|
||||
| 需要做什么 | 读什么文件 |
|
||||
|-----------|-----------|
|
||||
| **功能成熟度 / 不完善清单** | **`docs/STATUS.md`** |
|
||||
| CEO 深层经验和管理方法论 | `souls/chen-yifei.md` |
|
||||
| 查看团队最新动态/沟通 | `.showen/TEAM_CHAT.md` |
|
||||
| 查看/修改公司详细规范 | `.showen/COMPANY_RULES.md` |
|
||||
| 评估团队绩效/制度详情 | `docs/TEAM.md` |
|
||||
| 查看工作流程/审核标准 | `docs/WORKFLOW.md` |
|
||||
| 查看提交历史 | `PROGRESS.md` |
|
||||
| 里程碑摘要 | `PROGRESS.md` |
|
||||
| M2.1 产品需求 | `docs/M2.1_PRD.md` |
|
||||
| 派发任务给 PM | `.showen/inbox/pm.md` |
|
||||
| 查看某成员详情 | `souls/<name>.md` |
|
||||
| 代码审核参考 | `docs/CODE_REVIEW.md` |
|
||||
|
||||
Reference in New Issue
Block a user