From a64d9907c36b66a7fdbbca05bc2c0ba01967a88c Mon Sep 17 00:00:00 2001 From: pulsareonbot Date: Sat, 4 Jul 2026 12:35:27 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20CLAUDE.md=20?= =?UTF-8?q?=E5=BE=85=E5=A4=84=E7=90=86=E6=B8=85=E5=8D=95=20-=20P1=20Shutdo?= =?UTF-8?q?wn=20=E4=BF=AE=E5=A4=8D=E6=A0=87=E8=AE=B0=E5=AE=8C=E6=88=90,=20?= =?UTF-8?q?P2=20=E9=83=A8=E5=88=86=E5=AE=8C=E6=88=90,=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=BE=85=E5=A4=8D=E9=AA=8C=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 16a670e..5d6bcb9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -90,8 +90,8 @@ 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 -- **里程碑**: M1.1 完成,**M1.2 收尾完成**(147/147 两轮验收全绿、风险3 关闭、老板已提交 2a6e14b、设备已同步并复验零 warning),仅差老板打 tag +- **质量**: **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 已修复 @@ -157,10 +157,17 @@ export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bi 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(),需等下一条任意消息才真正退出(王浩然发现) -9. **[Phase 2 清理]** SDK 文档教开发者监听永不触发的 WifiProvisioned (plugin-sdk/src/lib.rs:522);CursorVisibility 有消费无生产(实际链路已走 DeviceCommand);check_updates 结果仅 println 不回传;DeviceResponse 广播后核心无人读、Error 静默 +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 + 全测试通过 ---