更新日期:2026-08-21。本文件只保留当前状态和下一步;完成事项合并成结论,不追加按日期排列的开发流水账。
maingit status 和相关 diff,不要重置来源不明的改动docs/二次开发/ 是已有未跟踪资料,不能因当前任务删除app/tests/tests.pro 聚合入口、分层 .pri 清单、公共 TestSupport fixture 和独立 performance_tests 目标;长期测试规则见 docs/测试约定.md1.0,保存多 HMI 页面、初始页、报警定义、M/D 注释、多控制逻辑和结构化梯形图;不读取旧 dataPoints 或 stages/branches 格式textColor 使用 #RRGGBB,字体使用 fontSize、fontBold 和 fontItalic;缺失时使用原有默认样式,属性经现有 properties 保存,无需升级 JSON 版本Node / Wire / Series / Parallel 表达式树和正交网格,不保存自由线段;前 10 列为条件区,输出最多位于第 11 列Wire(span) 和真实条件节点Wire 也按单格提供点击目标;在其中一格插入触点时,服务层原子拆分为前置横线、触点和后置横线,继续点击条件工具会逐格消费右侧横线,保持原总列宽以及撤销/重做语义docs/用户使用/数量边界确认方案.md,核心常量集中在 app/src/domain/project_limits.hmodified_ 状态;保存后超出十列的条件插入不会再触发退出保存提示,已有未保存修改也不会被失败操作清除RuntimeMonitorWindow,承载离线和真机共用的完整运行监控大屏RuntimeMonitorWidgetD4000、32767 等边界配置在右侧电源轨处被裁剪360×136,默认字号比应用字体小 2pt;运行态按当前页 1~5 条记录收缩高度,超过 5 条可通过表头按钮翻页且确认命中使用当前页索引#RRGGBB,字号为 6~72,粗体和斜体为 true/falseHmiEditorService::updateControl() 原子提交并保留撤销/重做HmiGraphicsItem 统一应用文字外观,保留地址提示、按钮禁用色、指示灯状态色、控件边框和选中框的原有语义logic_editor_service_tests、project_management_tests 和 main_window_tests;新增覆盖保存后第 11 个条件插入失败以及已有脏状态下失败操作的回归测试;Qt Release 主程序重新构建成功main_window_tests、hmi_editor_service_tests、offline_simulation_service_tests、runtime_mode_service_tests 和 plc_runtime_tests;主窗口测试覆盖最大化弹窗、唯一监控实例、主窗口布局不变、离线与模拟真机 HMI 写入、页面跳转、返回编辑、关闭弹窗、通信故障隐藏、重复进入刷新和应用退出build/runtime-monitor-window-release 完整构建并链接成功COM3 / 9600 / 8E1 / 站号 1 完成真实 PLC 安全读写:读取 D4000=0,临时写入并读回 1,随后恢复并读回 0;没有下载 PLC 程序,也没有执行切换 RUN 的动作json/motor_forward_reverse.json 在已连接的真实 PLC 上完成 RUN 联动手动验收:通过运行监控 HMI 操作正转启动、反转启动和停止,并确认对应运行状态反馈正常;该项验证覆盖实际 PLC 内部程序、接线和现场负载,不由自动化替身测试替代alarm_service_tests、domain_tests、hmi_editor_service_tests、logic_editor_service_tests、main_window_tests、offline_simulation_service_tests、plc_runtime_tests、project_management_tests、register_monitor_service_tests、runtime_mode_service_testsscripts/run_qt_tests.ps1 -Configuration Release 重新构建并运行上述 10 个功能目标及独立 performance_tests;功能回归全部通过,性能目标包含 100 个控制逻辑扫描和 4001 个 M 寄存器访问基准build/tests_aggregate 对 app/tests/tests.pro 执行完整 Release 聚合构建,11 个测试目标(10 个功能目标和 performance_tests)全部成功生成可执行文件main_window_tests(QT_QPA_PLATFORM=offscreen)和 Qt Release 主程序重新构建;改动仅涉及梯形图 UI 投影,因此未连接真实 PLCdomain_tests、alarm_service_tests、hmi_editor_service_tests、project_management_tests 和 main_window_tests;覆盖输入长度、默认五行尺寸、默认字号、运行态高度收缩、六条报警翻页和跨页确认main_window_tests(QT_QPA_PLATFORM=offscreen)和 Qt Release 主程序重新构建logic_editor_service_tests 和 main_window_tests;逐个删除、删除完整支路和部分批量删除均保持有效alarm_service_tests、domain_tests、hmi_editor_service_tests、logic_editor_service_tests、main_window_tests、offline_simulation_service_tests、plc_runtime_tests、project_management_tests、register_monitor_service_tests、runtime_mode_service_testsmain_window_tests 使用 QT_QPA_PLATFORM=offscreen 覆盖了属性面板提交git diff --check 通过COM3 / 9600 / 8E1 / 站号 1 验证首次读取、断线恢复和重新首读D4000=0,写入并读回 1,随后恢复并读回 0;没有下载 PLC 程序QAction 点击链路;同时验证普通/置位/复位线圈复用同一固定输出节点,logic_editor_service_tests 和 main_window_tests 均通过domain_tests、project_management_tests、offline_simulation_service_tests 和 runtime_mode_service_tests 回归均通过,确认空网格不进入 JSON 或离线执行语义;Qt Release 主程序已在 build/grid-feature-release 完整构建并链接成功git status --short,确认当前未提交和未跟踪文件仍在HmiAppearanceProperty 的保留属性键、领域校验和统一绘制路径,避免把样式逻辑放入寄存器或运行服务Node / Wire / Series / Parallel 表达式进入工程;条件区继续统一使用 ProjectLimits::kMaximumConditionColumnsAGENTS.md 做 COM3 读写及恢复验证