feat: Update project documentation and workflow to reflect changes in task dispatching and testing processes
- Changed references from "kilo" to "Agent 子代理" in various documentation files to align with the new task dispatching method. - Updated CLAUDE.md to reflect the new agent-based execution model and modified task dispatch template. - Revised PROGRESS.md to indicate successful testing and acceptance of M1.2 with detailed results. - Enhanced communication and workflow documentation to clarify the use of Agent 子代理 for real-time collaboration and task management. - Updated team member soul files with lessons learned from recent testing and integration experiences. - Refactored test files to remove unused code and improve clarity, ensuring compliance with zero warning standards. - Documented specific experiences and lessons learned during M1.2 testing, including handling of edge cases and configuration validation.
This commit is contained in:
@@ -88,8 +88,22 @@
|
||||
- 配置编辑同时支持表单和 raw JSON 时,必须维护单一真源:`_fullConfig` 更新后立刻同步 JSON 文本,JSON 保存成功后再反向刷新表单字段
|
||||
- JSON 编辑模式的错误反馈要区分“解析失败”和“接口保存失败”;前者本地立即拦截,后者通过 SnackBar 暴露服务端/网络错误
|
||||
|
||||
## 生产机开机自启三实例 + 非全屏修复经验(2026-07-02)
|
||||
- 排查多实例先看 `/proc/<pid>/cgroup`,能直接把每个进程映射到具体 systemd unit,比猜父进程可靠
|
||||
- 自启动入口要系统性穷举:system unit + user unit + ~/.config/autostart/*.desktop + autostart-scripts,四处都可能各藏一份同一程序
|
||||
- OpenCV highgui 的 `set_window_property(FULLSCREEN)` 依赖 WM 已就绪;服务比 kwin 先启动时全屏请求会静默丢失 → user unit 加 ExecStartPre 轮询 `xprop -root _NET_SUPPORTING_WM_CHECK` 等 WM
|
||||
- 持久化全屏用 KWin 窗口规则(~/.config/kwinrulesrc,wmclass 子串匹配 + fullscreenrule=2/noborderrule=2 强制),比 wmctrl 一次性调用可靠
|
||||
- xwininfo -tree 里 GTK 应用会有一个 10x10 未映射的 group-leader 窗口,真正的客户端窗口以 `_NET_CLIENT_LIST`/`_NET_ACTIVE_WINDOW` 为准
|
||||
- 设备时钟偏差会导致 apt TLS 证书 "not yet valid";验证窗口几何用系统自带 xprop/xwininfo 即可,不必依赖 wmctrl/xdotool
|
||||
- 禁用入口用 mv 到带日期的备份目录(如 ~/autostart_backup_20260702/),保留恢复能力,不 rm
|
||||
|
||||
## Flutter APK v0.3 编译经验(2026-03-14)
|
||||
- Release 构建前先跑 `flutter analyze` 和 `flutter test`,确保依赖变更不会把问题拖到 Gradle 阶段才暴露
|
||||
- 遇到 `Expected to find fonts for (packages/cupertino_icons/CupertinoIcons, MaterialIcons)` 时,优先检查 `pubspec.yaml` 是否漏了 `cupertino_icons`;即使业务代码没有显式引用,也可能被图标字体清单间接依赖
|
||||
- `flutter build apk --release --android-skip-build-dependency-validation` 在 ARM64 机器上耗时较长,清理或重启 Gradle daemon 能规避旧 daemon 异常退出导致的假失败
|
||||
- 最终 APK 统一落到 `configs/downloads/showen-app.apk`,方便交付下载链路复用;本次 release 产物大小约 `51M`
|
||||
|
||||
## M1.2 HTTP 集成测试返工教训(2026-07-03)
|
||||
- **测试要先实跑再交付**:m1_2_http.rs 首次交付时本机编不了 aarch64 依赖、没实跑,结果目标机暴露 1 个失败 + 1 个 dead_code warning。编不了也要逐个测试核对前提,不能只靠"看起来对"
|
||||
- **写测试前先核对产品校验(坏前提)**:`test_empty_playlist_does_not_panic` 假设空 playlist 配置能通过 `AppConfig::from_file`,但 config.rs `validate()` 自 init 提交就 `bail!("playlist 不能为空")`。测试的每个 expect/unwrap 前提都要回到产品代码里确认,产品故意拒绝的状态应改测"拒绝行为"(防退化),而不是硬造不可达状态
|
||||
- 测试辅助 struct 里"以后可能用"的方法(如本次的 `sender()`)不要预留;用不上就删,dead_code warning 违反零 warning 铁律
|
||||
|
||||
Reference in New Issue
Block a user