Commit Graph

76 Commits

Author SHA1 Message Date
showen
28566386d2 docs: DevicePlugin阶段二规划 + PM汇报 + CEO批准 2026-03-13 07:07:05 +08:00
showen
48d1eeb7c4 feat: plugin-sdk同步Device类型 + example-plugin适配新Message变体 2026-03-13 06:58:28 +08:00
showen
2c14f5f04c docs: DevicePlugin阶段一完成 — PROGRESS更新(73测试) + CEO soul更新 2026-03-13 06:50:45 +08:00
showen
1827310dca feat: DevicePlugin Task4 — 7个集成测试(MockBackend+序列化) 总计73测试通过 2026-03-13 06:48:36 +08:00
showen
05235f5686 feat: DevicePlugin Task3 — Linux ARM64 Backend(Display/SleepInhibit/Backlight) 2026-03-13 06:38:43 +08:00
showen
584f65b9f5 feat: DevicePlugin Task2 — DevicePlugin骨架 + DeviceBackend trait + 模块注册 2026-03-13 06:32:14 +08:00
showen
4d1b830563 feat: DevicePlugin Task1 — Message enum扩展(DeviceCommand/Response/Event + 7个辅助类型) 2026-03-13 06:22:53 +08:00
showen
f83e18d43b docs: DevicePlugin阶段一任务分解 + PM soul更新 2026-03-13 06:12:39 +08:00
showen
e41c70a565 docs: DevicePlugin设计文档 + PM inbox派发任务 2026-03-13 06:08:57 +08:00
showen
7e47a52666 docs: CEO soul更新 — 66测试/组织升级状态/待处理事项 2026-03-13 06:07:06 +08:00
showen
db4843714f docs: 组织升级 — 公司统一规范 + inbox消息系统 + PM个人逻辑 2026-03-13 06:06:15 +08:00
showen
a1336292d4 docs: README/PROGRESS硬件描述修正 + CEO soul更新 + 产品soul更新 2026-03-13 05:56:36 +08:00
showen
086b4600eb test+docs: 新增4个测试(66总计) + SDK API文档 + 员工soul更新 2026-03-13 05:52:26 +08:00
showen
f764f27d77 docs: PROGRESS更新 — 62测试, P0全清 2026-03-13 05:23:24 +08:00
showen
a1cb42a5b7 docs: 员工soul文件更新 — 张明远/王浩然/李思琪个人经验记录 2026-03-13 05:20:50 +08:00
showen
494628f336 docs: CEO经验更新 — 个人/团队经验分离, P0全清, 62测试 2026-03-13 05:18:30 +08:00
showen
6067c3f0a2 fix: 修复3个P0遗留 — AutoRollback回退/ConfigReloaded序列化/FfiString跨allocator 2026-03-13 05:15:04 +08:00
showen
1264b94e36 refactor: 整理项目文件夹 + 更新状态文件 + CEO soul更新 2026-03-13 04:52:47 +08:00
showen
becd200150 refactor: 整理项目文件夹结构 + 更新项目状态
- docs/: 团队流程文档 (10个md)
- .showen/: 管理状态文件 (CEO_BACKUP, RECOVERY, TEAM_CHAT, CEO_LOOP)
- 根目录只保留 README.md + PROGRESS.md
- 更新 RECOVERY.md/CEO_BACKUP.md/PROGRESS.md 反映自测机制完成
- 更新 souls/liu-jianguo.md 当前状态
2026-03-13 04:45:35 +08:00
showen
99ee78984c feat: 插件自动挂载测试机制 — capabilities + self_test + 3阶段启动
- Plugin trait 增加 capabilities() 和 self_test() 方法
- PluginVTable 增加 get_capabilities 和 self_test FFI
- ServiceManager 三阶段启动: init → self_test → start
- SendCallback 改为 ctx 参数传递,消除 thread_local
- export_plugin! 宏所有 FFI 函数包裹 catch_unwind
- PluginManifest 增加 capabilities/required_capabilities/auto_test
- 新增 3 个自测相关测试用例 (共 59 测试)
2026-03-13 04:31:39 +08:00
showen
1863efb0f5 fix: 修正 souls/README.md 团队成员信息
准确列出所有成员姓名、角色和使用的模型,补充管理架构说明。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 03:41:18 +08:00
showen
7135f28545 feat: 实现动态插件系统 (6阶段完成)
- 阶段1: 消息类型序列化 (Serialize/Deserialize, &'static str → String)
- 阶段2: FFI 边界类型 + Plugin SDK (plugin_abi, showen-plugin-sdk crate)
- 阶段3: PluginLoader + DynamicPlugin (libloading 动态加载 .so)
- 阶段4: 版本管理 + 错误策略 (VersionManager, PluginState, 自动回退)
- 阶段5: 远程仓库客户端 (HTTP 下载 + tar.gz 安装)
- 阶段6: 示例插件 + HTTP 管理 API + 全目录 README 文档

54/54 测试通过,0 warnings。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 03:38:08 +08:00
showen
5dcc1ad98e fix: 修正配置文件视频相对路径 + 更新 M1.1 完成进度
- configs/*.json: 视频路径 ../ → ../../ (configs/ 子目录需多上一级)
- PROGRESS.md: 第四轮 Opus 团队任务全部标记完成,M1.1 标记完成
- 实机验证: 5 插件初始化正常,HTTP API 响应正常,配置验证通过

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:26:05 +08:00
showen
ff9c6a99b5 QA: Release 编译与质量验证报告
- cargo build --release: 成功 (3分46秒, 9.4M binary)
- cargo clippy: 通过 (零 warning)
- cargo test: 全部通过 (31/31 测试)
- 质量评估: 生产就绪标准
- 测试环境: Debian 11 ARM64

林晓峰 (QA负责人)
2026-03-12 13:13:07 +08:00
showen
c48340dece test: 添加插件依赖机制自动化回归测试
- 新增 7 个测试用例固化插件依赖关系
- 验证 http 插件依赖 video
- 验证 ble/wifi/video/screen 插件无依赖
- 验证所有插件 ID 唯一性
- 验证拓扑排序正确性(依赖项先初始化)
- 所有 31 个测试通过

防止依赖关系漂移,确保架构稳定性。
2026-03-12 13:11:47 +08:00
showen
7091008f09 王浩然: BLE GATT notify 真实落地验证完成
- 验证 BLE Status Characteristic notify 功能已完整实现
- 确认 StartNotify/StopNotify 正确管理 notifying 标记
- 确认 WiFi 状态变更时通过 PropertiesChanged 信号推送通知
- 架构: WifiResult -> BlePlugin -> UpdateStatus -> set_status -> emit_status_notification
- 编译验证通过,零 warning
- 结论: 功能已完整实现,无需修改
2026-03-12 13:04:57 +08:00
showen
e45573f839 feat(video): 实现 FreeMode 状态随机游走
- 修改 select_next_state():FreeMode 无 next_state/next_states 时按权重随机选择 FreeMode 状态
- 新增 select_random_free_state() 方法实现权重随机算法
- InteractiveMode 保持原行为(停留当前状态)
- 新增单元测试验证随机游走和 InteractiveMode 行为
- 所有测试通过(24/24)

旧版行为回补完成。
2026-03-12 13:00:59 +08:00
showen
6ca5992b33 实现 /api/playlist 快照语义,返回 playlist 和 current_index
- 新增 PlaylistSnapshot 结构体,包含 playlist 和 current_index
- 修改 playlist_route 从 HttpState 获取 player_status.current_index
- 与旧版 hologram_player_rust 行为一致
- cargo check 零 warning
2026-03-12 13:00:26 +08:00
showen
9daf65d1fb feat(video): 暂停时释放防息屏锁
- VideoPlugin 在收到 Pause 命令时发送 ScreenLockRequest(false)
- VideoPlugin 在收到 Play 命令时发送 ScreenLockRequest(true)
- 恢复旧版 video_processor.rs 的暂停/恢复防息屏行为
- ScreenPlugin 收到消息后执行 stop_wake_lock()/start_wake_lock()

修改文件:
- src/plugins/video/mod.rs: 在 PlayerCommand::Pause/Play 处理中发送消息

验证:
- cargo check 通过,零 warning
- 行为与旧版一致:暂停释放锁,恢复获取锁
2026-03-12 12:58:26 +08:00
showen
cc4d6935d9 feat: free mode random walk + pause wake lock release
State machine (张明远):
- Add select_random_free_state() for FreeMode states without
  next_state/next_states config
- Weighted random selection across all FreeMode states
- Matches old hologram_player_rust behavior

Video plugin (赵雨薇):
- Send ScreenLockRequest(false) to screen plugin on Pause
- Send ScreenLockRequest(true) to screen plugin on Play/Resume
- Closes the pause-wake-lock gap vs old version

cargo check: 0 warnings, cargo test: 22/22 passed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:56:45 +08:00
showen
b3cf12359e docs: update progress tracking and team chat
- Update PROGRESS.md with all completed commits (11 total)
- Record P0 ConfigReload completion
- Document P1 task assignments in progress
- CEO status assessment in TEAM_CHAT.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:52:02 +08:00
showen
4edbd34797 feat: implement ConfigReloadRequest handler in ServiceManager
Complete the config hot-reload flow:
- ServiceManager receives ConfigReloadRequest from HTTP plugin
- Reloads config from source_path using AppConfig::from_file
- Updates internal config Arc
- Broadcasts ConfigReloaded(new_config) to all plugins
- Logs error on reload failure without crashing

This closes the P0 gap identified by architect Wang Siyuan:
the HTTP /api/config save endpoint promised hot-reload but
ServiceManager only had a TODO placeholder.

cargo check: 0 warnings, cargo test: 22/22 passed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:43:33 +08:00
showen
5af7fc18a5 feat: core tests, bug fixes, API docs rewrite, HTTP compat routes
- Fix state_machine reset_state_progress: reset sequence index before
  validation to prevent out-of-bounds error on state transitions
- Fix video transformer test: use ±1 tolerance for OpenCV interpolation
- Add core integration tests (service_manager, dependencies, messages)
- Add HTTP compat routes (/index.html, POST /api/wifi/scan, hotspot aliases)
- Rewrite clients/docs/API.md to match actual implementation
- Fix BLE unused imports warning
- CEO task planning for next round (ConfigReload, playlist snapshot)

cargo check: 0 warnings, cargo test: 22/22 passed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:40:17 +08:00
showen
60488311d3 docs: add old/new feature gap analysis 2026-03-12 08:44:25 +08:00
showen
404196fcf3 docs: add plugin architecture review report 2026-03-12 08:26:59 +08:00
showen
45c0a8d54b feat: video/state_machine unit tests and on_video_completed logic fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 08:20:25 +08:00
showen
8ed9c93c8e fix BLE wifi status delivery and websocket compile issues 2026-03-12 08:07:21 +08:00
showen
7548064401 ceo: 重要教训 - 不能盲信文件内容,必须验证
发现问题:
- TEAM_CHAT.md里有王浩然和张明远的汇报
- 但git commit author都是showen,不是他们
- 说明只是文字汇报,没有真正的代码改动

教训:
- 不能只看文件内容
- 必须验证git commit author
- 必须检查实际代码改动
- 必须亲自运行测试

真实状态:
- 所有团队成员都没有真正产出
- 只有文字汇报(可能是AI生成)

CEO需要重新评估团队和工作方式
2026-03-12 07:43:12 +08:00
showen
c342262028 ceo: 监督检查总结 - 2人完成,发现2个关键问题
成果:
- 王浩然:完成BLE/WiFi验证,发现P0消息回传缺口
- 张明远:完成全面测试,发现P1依赖机制缺失

进行中:
- 李思琪、刘建国、赵雨薇任务运行中

关键问题:
- P0: ServiceManager未转发WifiResult(需立即修复)
- P1: 插件依赖机制未实现(建议尽快实施)

CEO本次会话结束,等待下次唤醒检查最终产出
2026-03-12 07:42:07 +08:00
showen
35fa6d4941 ceo: 强制执行机制 - 直接启动所有团队成员
问题:
- PM和赵雨薇运行很久但没有产出
- 其他成员完全没有启动

行动:
- 建立强制交付制度(每30分钟必须有产出)
- 给PM和赵雨薇最后通牒(10分钟)
- CEO直接启动张明远、李思琪、王浩然
- 所有任务30分钟期限

CEO将每30分钟检查一次,无产出立即采取行动
2026-03-12 07:37:17 +08:00
showen
50a71f4621 report: document BLE/WiFi verification findings 2026-03-12 07:36:56 +08:00
showen
64c6846555 ceo: 全面状态评估,确定异步协作方案
- 读取所有md文档,确认文档体系完整
- 评估项目进度:75%完成
- 决定采用异步协作方案,不启动CEO_LOOP
- 团队通过TEAM_CHAT.md沟通,用户唤醒CEO时检查
- 本次会话结束,等待下次唤醒
2026-03-12 07:27:35 +08:00
showen
2bdd380b4f ceo: 建立CEO持续监督机制(CEO_LOOP.sh)
- 创建CEO持续运行脚本,每30分钟自动检查
- CEO通过TEAM_CHAT.md与团队异步沟通
- 团队可以随时看到CEO的反馈和指示
2026-03-12 07:26:33 +08:00
showen
3ec05fdfa8 ceo: 确认PM工作进展,给出最终指示,结束本次会话 2026-03-12 07:22:49 +08:00
showen
d4ef14e794 ceo: 第1次监督检查 - PM已启动 2026-03-12 07:18:07 +08:00
showen
221914f2dc ceo: 建立CEO监督循环机制 2026-03-12 07:17:41 +08:00
showen
096a6b0c49 ceo: 反思角色定位,明确授权给PM 2026-03-12 07:16:16 +08:00
showen
0709d0de05 ceo: 完成configs迁移和main.rs插件注册
- 从旧项目复制dog_state_machine.json和cat_state_machine.json
- 实现main.rs完整插件注册(screen, wifi, video, ble, http)
- 添加命令行参数支持(--config, --validate)
- 实现Ctrl+C优雅退出
- 添加ctrlc依赖
2026-03-12 07:15:21 +08:00
showen
765e1f1a78 ceo: 第1天下午检查 - 团队工作中
检查结果:
- 2个 kilo 进程运行中(团队在工作)
- main.rs 存在但插件注册未完成(TODO)
- configs/ 目录为空,配置文件未迁移

观察:
- 团队已开始工作
- 进度还未体现在代码库
- 这是正常的,需要时间

下一步:
- 继续等待
- 今晚或明天再检查
- 关注代码变化

CEO 保持耐心,等待结果。
2026-03-12 07:07:05 +08:00
showen
9d06b7ffae ceo: 第1天检查 - 发现团队任务中断,重新启动
CEO 检查发现:
- 赵雨薇的 HttpPlugin 任务还在运行
- 其他任务可能被中断
- 工作区干净,无未提交改动

重新分配任务给 PM:
1. main.rs 集成 - 张明远(3天)
2. configs 迁移 - 李思琪(1天)
3. QA 测试准备 - 林晓峰

提供了详细的 kilo 命令和任务要求。
等待 PM 执行。

CEO 保持检查状态。
2026-03-12 07:05:32 +08:00