| 2026-07-27 |
Generator 静态合同 |
rg 扫描 4 个目标 Controller;xmllint --noout 校验 4 份 Mapper XML;目标文件 git diff --check |
通过:Controller Wrapper/Mapper 直连、目标 Service 查询 Wrapper 均无输出,XML 和差异格式通过 |
未连接真实数据库,未执行 Mapper SQL |
| 2026-07-27 |
Generator Reactor |
JAVA_HOME=... mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am package -DskipTests |
29 个 Reactor 模块全部成功,BUILD SUCCESS |
测试按命令跳过;依赖模块存在既有 deprecation/unchecked/Builder 警告 |
| 2026-07-27 |
Data/Message 静态合同 |
目标 Controller/Service rg;两份 Mapper XML xmllint --noout;目标差异 git diff --check |
通过:Wrapper/lambda* 扫描为空,XML 和差异格式通过 |
未连接真实数据库,未执行 Mapper SQL |
| 2026-07-27 |
Data/Message Reactor |
JAVA_HOME=... mvn -pl forge-framework/forge-plugin-parent/forge-plugin-data,forge-framework/forge-plugin-parent/forge-plugin-message -am package -DskipTests |
27 个 Reactor 模块全部成功,BUILD SUCCESS |
测试按命令跳过;依赖模块存在既有编译警告 |
| 2026-07-27 |
Flow 合同测试 Red |
mvn -pl forge-flow/forge-flow-server test ... -Dtest=FlowControllerBoundaryContractTest |
首次使用默认 Java 8 被目标版本 17 拒绝;切换 JDK 17 后 3 条合同测试按预期失败,证明 Controller/Mapper 基线可被测试捕获 |
Java 版本问题已通过显式 JAVA_HOME 修正 |
| 2026-07-27 |
Flow Mapper XML |
xmllint --noout 校验 FlowBusiness/Task/Comment/Cc/ErrorLog/FormInstance/FillBatchItem 七份 XML |
全部解析通过 |
未连接真实 MySQL,未执行 SQL |
| 2026-07-27 |
Flow Reactor |
JAVA_HOME=... mvn -pl forge-flow/forge-flow-server -am package -DskipTests |
32 个 Reactor 模块全部成功,BUILD SUCCESS;最终复跑同样通过 |
测试按命令跳过;Generator/Flow 依赖模块有既有 deprecation/unchecked 警告 |
| 2026-07-27 |
Flow 合同测试 Green |
mvn -pl forge-flow/forge-flow-server compiler:testCompile surefire:test ... -Dtest=FlowControllerBoundaryContractTest |
5 条通过,0 failure/error/skip |
先由 Reactor 生成当前依赖类,规避只构建子模块时本地仓库旧快照 |
| 2026-07-27 |
Flow 既有委托身份测试 |
mvn -pl forge-flow/forge-flow-server test ... -Dtest=FlowDelegatedIdentityControllerTest |
未进入断言:3 条均因 Mockito inline Byte Buddy 无法 self-attach 报错 |
本机 JDK attach 环境限制;测试源码已编译,未将该结果计为通过 |
| 2026-07-27 |
Maven 本地安装尝试 |
mvn -pl .../forge-plugin-flow install -DskipTests |
失败:沙箱禁止写入用户目录 .m2 |
非代码失败;改用 Reactor 联合构建和直接测试目标完成验证 |
| 2026-07-27 |
Controller 聚合静态合同 |
全仓 Controller Wrapper/lambda*、裸 RuntimeException 扫描;Flow 分页双读检查;git diff --check |
全部通过:Wrapper 和裸异常无输出,page/pageNum 保持旧参数优先,差异格式通过 |
Controller 直连 Mapper 的全仓历史存量另行盘点,不混入本变更基线 |
| 2026-07-27 |
Spec Review 修复复跑 |
子模块直接执行 compiler:testCompile surefire:test -Dtest=FlowControllerBoundaryContractTest |
未进入断言:测试编译看不到当前工作树新增的 PageParamResolver |
子模块引用本机 .m2 旧 forge-starter-core 快照;当前 Reactor 的目标类已存在,不计为代码失败 |
| 2026-07-27 |
Spec Review 修复有效验证 |
dependency:build-classpath 后以 javac 加入当前 forge-starter-core/target/classes 编译目标测试,再用 mvn surefire:test -Dmaven.test.additionalClasspath=... 执行 |
7 条通过,0 failure/error/skip;覆盖分页四组合、分布首个非空标题、清理和统计合同 |
Maven 报三个本地快照 POM 的既有 transitive dependency 警告;未影响本次测试 |
| 2026-07-27 |
Excel 安全合同初次复跑 |
mvn -pl .../forge-starter-excel test -Dtest=AsyncExportSecurityContractTest,ExcelImportSecurityContractTest,并尝试覆盖通用 skip 参数 |
BUILD SUCCESS,但 testCompile 和 Surefire 明确显示测试被跳过,不计为通过 |
根 POM 使用 forge.tests.skip=true,需启用 enable-tests profile |
| 2026-07-27 |
Excel 安全合同有效复跑 |
mvn -Penable-tests -pl .../forge-starter-excel test -Dtest=AsyncExportSecurityContractTest,ExcelImportSecurityContractTest |
5 条通过,0 failure/error/skip;异步导出 2 条、同步导入 3 条 |
测试故意触发的内部异常完整写入测试日志,公开对象断言确认不含内部消息和路径 |
| 2026-07-27 |
System 安全合同 Reactor 尝试 |
mvn -Penable-tests -pl .../forge-plugin-system -am test -Dtest=SysUserImportSecurityContractTest -Dsurefire.failIfNoSpecifiedTests=false |
未执行到 System:前置 forge-starter-datascope 因测试类路径没有 JUnit/TestNG engine 且配置了 groups 而失败 |
环境/聚合测试配置问题,不计为目标测试失败 |
| 2026-07-27 |
System 安全合同有效复跑 |
根 Reactor 生成测试依赖 classpath,javac 单独编译 SysUserImportSecurityContractTest,随后 mvn -Penable-tests -pl .../forge-plugin-system surefire:test -Dtest=SysUserImportSecurityContractTest |
1 条通过,0 failure/error/skip;确认用户导入只公开稳定文案并记录完整异常 |
测试为源码合同,不连接数据库;规避 System 单模块读取 .m2 旧 starter-core 快照 |
| 2026-07-27 |
Flow Code Review 修复合同首次复跑 |
mvn -Penable-tests -pl forge-flow/forge-flow-server surefire:test -Dtest=FlowControllerBoundaryContractTest -Dmaven.test.additionalClasspath=.../forge-starter-core/target/classes |
执行 9 条,8 条通过、1 条失败;发现流程变量和活动节点接口仍拼接系统异常消息 |
有效测试失败,继续修复,不计为通过 |
| 2026-07-27 |
Flow Code Review 修复合同 Green |
同上,修复两个遗留异常分支后复跑 |
9 条通过,0 failure/error/skip |
未连接数据库、未执行流程清理 |
| 2026-07-27 |
AI 并发合同 |
mvn -Penable-tests -pl .../forge-plugin-ai test -Dtest=AiModelProviderConcurrencyContractTest |
1 条通过,0 failure/error/skip |
Mockito-free 源码合同;未连接数据库执行真实并发事务 |
| 2026-07-27 |
Flow+AI 修复后 Reactor |
mvn -pl forge-flow/forge-flow-server,forge-framework/forge-plugin-parent/forge-plugin-ai -am package -DskipTests |
32 个 Reactor 模块全部成功,BUILD SUCCESS |
测试按命令跳过;既有 deprecation/unchecked/Builder 警告不阻断 |
| 2026-07-27 |
AI 第二轮并发合同首次复跑 |
mvn -Penable-tests -pl .../forge-plugin-ai test -Dtest=AiModelProviderConcurrencyContractTest |
生产代码和测试编译通过,1 条断言失败 |
测试源码切片错误地要求下一个方法为 public;修复测试解析后复跑,不计为实现失败 |
| 2026-07-27 |
AI 第二轮并发合同 Green |
同上 |
1 条通过,0 failure/error/skip |
覆盖供应商先锁、模型后锁和供应商删除原子编排的源码合同 |
| 2026-07-27 |
Flow 独立事务测试 |
mvn -Penable-tests -pl .../forge-plugin-flow test -Dtest=FlowCleanupTransactionExecutorTest |
1 条通过,0 failure/error/skip |
无 Mockito;验证 3 次均为 REQUIRES_NEW、2 次提交和 1 次回滚 |
| 2026-07-27 |
Flow 第二轮边界合同 |
手工 javac 使用当前 Reactor classpath 编译测试后执行 surefire:test -Dtest=FlowControllerBoundaryContractTest |
9 条通过,0 failure/error/skip |
覆盖事务执行器源码、稳定文案、降级日志和 SPI 解耦 |
| 2026-07-27 |
Flow+AI 第二轮修复后 Reactor |
mvn -pl forge-flow/forge-flow-server,forge-framework/forge-plugin-parent/forge-plugin-ai -am package -DskipTests |
32 个 Reactor 模块全部成功,BUILD SUCCESS |
测试按命令跳过;既有编译警告不阻断 |
| 2026-07-27 |
第三轮回归合同 Red |
AI 并发合同直接执行;Flow 合同按常规 Maven 命令尝试 |
AI 1 条按预期失败,证明默认供应商旁路可被捕获;Flow 因本机 .m2 旧 forge-starter-core 快照无法编译新增 PageParamResolver |
Flow 环境限制与既有记录一致,不计为实现失败 |
| 2026-07-27 |
AI 第三轮并发合同 Green |
mvn -Penable-tests -pl .../forge-plugin-ai test -Dtest=AiModelProviderConcurrencyContractTest |
1 条通过,0 failure/error/skip |
覆盖默认切换 Manager、全量升序供应商锁和通用保存默认标志隔离 |
| 2026-07-27 |
Flow 第三轮边界合同 Green |
使用 /private/tmp/forge-flow-test-classpath.txt 和当前 forge-starter-core/target/classes 手工编译目标测试,再执行 surefire:test |
10 条通过,0 failure/error/skip |
新增批量清理候选查询稳定错误边界合同;未连接数据库或执行清理 |
| 2026-07-27 |
Flow 独立事务增强测试 |
mvn -Penable-tests -pl .../forge-plugin-flow test -Dtest=FlowCleanupTransactionExecutorTest |
2 条通过,0 failure/error/skip |
覆盖 3 次独立执行、2 提交/1 回滚及外层事务挂起/恢复 |
| 2026-07-27 |
AI Mapper 与目标格式 |
xmllint --noout AiProviderMapper.xml;目标文件 git diff --check;默认写入旁路 rg |
全部通过 |
isDefault 仅保留响应读取和兼容 DTO 字段,生产保存路径不读取该字段 |
| 2026-07-27 |
Flow+AI 第三轮修复后 Reactor |
mvn -q -pl forge-flow/forge-flow-server,forge-framework/forge-plugin-parent/forge-plugin-ai -am package -DskipTests |
32 模块聚合构建退出码 0 |
测试按命令跳过;目标测试已单独有效执行,既有编译警告不阻断 |
| 2026-07-27 |
Code Quality Review 4 |
独立 Reviewer 基于最新工作树复审 |
FAIL:2 Critical、1 Important;清理权限/租户、筛选范围和 AI 超管跨租户边界不完整 |
未连接数据库,未执行清理 |
| 2026-07-27 |
第四轮安全合同 Red/Green |
Flow 合同先 2 failure/1 error、AI 合同 1 failure;修复后执行 FlowControllerBoundaryContractTest、AiModelProviderConcurrencyContractTest |
Green:Flow 12/12、AI 1/1 |
Flow 单模块首次受 .m2 旧 core 快照影响,按既有方案使用当前 Reactor 产物编译/执行 |
| 2026-07-27 |
第四轮事务/XML/Flyway |
FlowCleanupTransactionExecutorTest;9 份 Mapper XML xmllint;V1.0.55 placeholder/权限/防重复静态检查 |
事务 2/2,XML 全部合法,Flyway 静态合同通过 |
未执行真实 MySQL/Flyway 或 Flowable 清理 |
| 2026-07-27 |
第五轮 Flow 合同与事务 |
FlowControllerBoundaryContractTest;FlowCleanupTransactionExecutorTest |
Flow Controller 合同 14/14、独立事务测试 2/2 |
未连接真实数据库,未执行 Flowable 清理 |
| 2026-07-27 |
第五轮 Flow XML/构建/静态合同 |
七份 Flow Mapper XML xmllint --noout;Flow Server 依赖 Reactor package -DskipTests;Controller/Flyway/差异扫描 |
XML 全部合法,32 个 Reactor 模块构建成功;Wrapper、裸异常、placeholder、Flyway 版本重复均无输出,git diff --check 通过 |
测试按构建命令跳过;目标合同已单独有效执行,真实 MySQL/Flyway 和角色矩阵保留为部署门禁 |
| 2026-07-27 |
第六轮 Flow 定向验证 |
forge-plugin-flow compile -DskipTests;FlowControllerBoundaryContractTest;两份 Mapper XML;监控页 ESLint;目标差异检查 |
插件编译成功,合同最终 18/18,XML、ESLint 和差异格式通过 |
按用户要求不重复全 Reactor/UI build;真实数据库、角色矩阵、并发与不可逆清理未执行 |