续接载体之一(人类可读主表)。配套:进度状态.yaml / 交接卡.md / 待验证清单.md。 状态图例:☑完成(含真机验证)|🟢代码完成待真机|◐进行中|☐未开始。 新任务(2026-06-22 启动)。旧任务(M0-M8 合并改造)代码完成、真机验收整体未做、有 operate 侧降级遗留(见待验证清单 M-01~M-07)、旧文档已清空,本表仅服务新任务。
当前状态(2026-06-22):新任务"operate/control 双进程拆分"启动。需求梳理 + 架构设计 + 阶段1实现计划 + 文档体系重建均已完成,阶段1 待开工。
任务本质:control 从 operate 进程内剥离成独立常驻进程,operate 经本地 HTTP 按需拉起并读状态;operate 关闭后 control 续命。只动 operate/control,front 不动,control 业务逻辑零改动。
文档三层结构:
specs/...-design.md(架构设计)、control-逻辑与配置全景.md(现状基线)2026-06-22-阶段1-control独立进程骨架.md(阶段1 七任务)续接三件套:① 本表 ② 阶段1计划 ③ 进度状态.yaml(断点)。
| 阶段 | 内容 | 状态 | 出口验收 |
|---|---|---|---|
| 阶段1 | control 独立进程骨架 | 🟢 代码完成·真机闭环打通(待并 main) | control 独立 exe 能起✓、HTTP探活/读状态✓、续命✓、单实例✓、硬件获取✓、真机自控环运行✓;阻塞闭环的 D1-08 串口握手死锁已修复 |
| 阶段2 | 监控补全 + 调试借串口 + 受护栏停止 | 🟢 监控/受护栏停止/借串口让路 已实现+真机验;D2-02 调试页完整借串口:第一阶段 control 后端 批A+批B 已落地(2026-06-23,TDD 25单测绿),待批C(HTTP路由+装配)+真机冒烟 | 监控页跨进程 /status 显示完整✓;受护栏 /shutdown 安全停✓;/serial 让路✓;D2-02(会话式借用+通用command分发+MJPEG预览+红线钳位+超时自动回收)spec+计划已出;第一阶段 control 后端:批A(单测工程/数据类 DebugSession+DebugCommandResult/红线钳位 MotorClamp/Fakes 测试替身)✓ + 批B(DebugSessionManager:acquire/release/heartbeat/幂等+超时自动回收+Execute 命令分发含电机红线钳位/EEPROM写)✓ 全 TDD 25 单测绿,8 commit 在 feature/d2-02-debug-command-proxy;剩 批C=Task8 ControlHttpServer /debug 路由+Task9 Program 装配 SweepExpired 看门狗,再 Task10 真机 curl 冒烟,待并 main |
| 阶段3 | 清理老壳 + 装机收尾 | 🟢 退役删ControlTest+部署文档+开机自启 已做;D1-10 control oplog审计埋点已迁移+真机验证;D3-05 control崩溃看门狗已实现+真机验证(2026-06-23);HIL硬件在环回归套件已入库+真机验证(2026-06-23);配置收敛 已完成+真机验证(2026-06-23);删operate死栈延后 | 退役删 ivf_tl_ControlTest✓;双进程部署指南✓;开机自启✓;D1-10 oplog审计迁移到control活栈✓;D3-05 看门狗(崩溃重拉/DPAPI凭据/可暂停停止卸载)✓;HIL套件 IvfTl.Hardware.HilTests(守护M-05帧长/M-06按well焦点/M-01-03 EEPROM写,门控Skip+默认零写入)✓;配置收敛(operate↔control连接组7键单一数据源tl-shared.config经合并读+operate删12换气CCD死键,真机改一处对称生效)✓;ComBin删operate死栈(D3-04,被D2-02阻塞)仍延后 |
| 编号 | 任务 | 状态 | 验证方式 |
|---|---|---|---|
| Task1 | 新建 ivf_tl_ControlHost 项目骨架 | ☑ | 编译0错 |
| Task2 | HostArgs 命令行参数解析 | ☑ | xUnit 4过 |
| Task3 | StatusDto + /ping 返回体 | ☑ | xUnit 2过 |
| Task4 | 内嵌 HttpListener(/ping /status) | ☑ | 编译+真机/status |
| Task5 | Program.cs 完整启动序(Mutex→参数→Login→盘→ScanDevices→StartRun→HTTP驻留) | ☑ | 编译0错+真机起 |
| Task6 | operate 改为拉起独立 control(探活+Process.Start+轮询) | ☑ | Release编译0错+机制验证 |
| Task7 | [真机] 端到端验证(能起/能连/operate关了续命/重开复用/单实例) | ☑ 真机闭环打通 | 独立起/HTTP/单实例/硬件获取/续命/采集自控环 全✓(修D1-08死锁后) |
真机门控:Task7 由 Claude 自主完成(UAC ConsentPromptBehaviorAdmin=0 静默提权,无需用户配合起停进程/点击)。采集闭环已打通:D1-08 串口握手死锁(HAL借用ComBin重开端口不复活发送线程)已定位+修复+真机 red→green 验证(started:true/tlSn/温压门换气自控环运行),见 待验证清单 D1-07/D1-08 + 交接卡 2026-06-22 D1-08段。剩:operate端完整链路复测(需清僵尸20268/重启)+ D1-09 SQLite schema专项 + M-01~M-07 降级专项。
子代理驱动开发(subagent-driven-development):每个 Task 派全新子代理实现 + 两阶段审查(spec 合规 → 代码质量),主线收结论。先在 feature 分支干 Task1-6(纯编码),Task7 真机验证(真机已连,由 Claude 自主跑完、无需用户在场/配合;仅「水平电机」「垂直 Z 电机」运动范围需守安全区间,参考 临时文件/相关参数.html)。
提交边界 = 文档已同步(CLAUDE.md 第三节)。
feature/d2-02-debug-command-proxy。reportAlarm 报警闭环,弃用群消息 reportCloudAlarm)均已落盘;分支 feature/house-fault-isolation(代码+文档 commit)。ReportAlarmController 闭环)。/status Faults 空、好舱齐、started);H-05 reportAlarm 相机异常→alarm 表落 PHOTO_STATE_ALARM(闭环+排除舱能落库);H-06 插联系人→定时任务→阿里云短信,alarm_send_info 记"发送成功!"派发至 18223210384(到达由阿里云,用户自查)。测试数据已清理。Faults)+ front 报警列表(H-05/06 已通)。control 端 Faults 第一阶段已透出,本步纯 operate 侧加展示,不碰 control。ViewModel/ServiceMonitorFaultMapper.cs(纯静态、不依赖 WPF/control:FaultTypeZh 8 枚举名→中文 + 未知码原样、HouseText、AtText UTC→本地、IsolatedText);② ViewModel/ServiceMonitorViewModel.cs 加 Faults 集合 + 汇总(HasFaults/FaultSummaryText/FaultSummaryBrush)+ 显隐(FaultListVisibility/NoFaultVisibility 直给 Visibility,不用未注册的布尔转换器)+ BuildFaultRows + HouseFaultRowVm;③ View/ServiceMonitorView.xaml 在"舱室状态"与"受护栏停止"间插红色故障区(无故障显绿条 / 有故障逐条红底:舱号/类型/原因/阶段/时间/隔离态)。/status → Faults 字段透出=True、基线空数组、字段名匹配 operate 反序列化目标;③ 映射 harness 临时文件/FaultMapperTest(Compile Include 真实 mapper 源码,零依赖)14 检查全过(8 枚举名中文化 + 未知码兜底 + 舱号边界 + UTC 01:30→本地 09:30 东八区+8 + 隔离布尔)。