status: apply created: 2026-07-27
| 场景 | 预期 |
|---|---|
仅 pageNum |
三个端点使用该页码 |
仅旧 page |
兼容且页码不变 |
| 两者同时传入 | 旧 page 优先,与 FlowFormController 一致 |
| Controller 业务校验 | 抛 BusinessException,不存在裸 RuntimeException |
| Excel 底层异常 | 日志有堆栈,响应只包含稳定错误文案 |
| AI 默认项切换 | 清理和设置在单个事务内 |
| 流程 Forge 记录清理 | 2 类逻辑删除,5 类显式物理删除 |
lambdaQuery/lambdaUpdate。xmllint --noout。rg -n 'throw new RuntimeException' forge-server --glob '*Controller.java' 无输出。| 批次 | 必跑 |
|---|---|
| Task 1 | System/Flow/Excel 相关模块 compile/package,静态协议检查 |
| Task 2 | System Reactor package + 目标测试 |
| Task 3 | AI Reactor package + 目标测试 |
| Task 4 | Generator Reactor package + 目标测试 |
| Task 5 | Data/Message Reactor package + 目标测试 |
| Task 6 | Flow Server package + 查询/清理合同测试 |
| Task 7 | 聚合静态扫描、git diff --check、两阶段审查 |
所有命令、结果、警告、跳过原因和服务清理情况追加到 execution-log.md。
lambda* 和 Mapper 直连扫描。xmllint 解析。package -DskipTests,覆盖接口、实现和 Mapper 装配的编译合同。lambda* 扫描。DataDatasetMapper.xml、SysMessageBizTypeMapper.xml 的 xmllint 解析。package -DskipTests。FlowBusinessMapper.xml/FlowErrorLogMapper.xml。FlowControllerBoundaryContractTest 固化确认文本、无事务回滚承诺、2 类逻辑删除和 5 类物理删除合同。xmllint --noout。package -DskipTests,并单独编译/执行合同测试。FlowControllerBoundaryContractTest 增加 page/pageNum 四组合和流程分布首个非空标题合同。AsyncExportSecurityContractTest 固化异步任务公开副本、filePath 隐藏和稳定失败文案。.m2 旧快照限制时,使用当前 Reactor target/classes 作为附加类路径编译并执行目标测试,不把环境失败写成通过。ExcelImportSecurityContractTest 覆盖总体导入异常、监听器未知解析异常和内部错误报告路径序列化隐藏。SysUserImportSecurityContractTest 固化行级/总体稳定文案和完整异常日志合同。enable-tests profile;默认 forge.tests.skip=true 的命令只记录为跳过,不计入通过。FlowControllerBoundaryContractTest 扩展到 9 条,新增逐实例事务、稳定失败文案和 Flow Service 不依赖 System Service 的合同。AiModelProviderConcurrencyContractTest 固化供应商行锁、模型行锁和多供应商确定性锁顺序,不依赖 Mockito inline agent。e.getMessage();业务拒绝文案保持原有语义。package -DskipTests,确认 SPI 适配器和 Mapper 锁查询可聚合装配。FlowCleanupTransactionExecutorTest 使用无 Mockito 的记录型事务管理器验证三次执行均为 PROPAGATION_REQUIRES_NEW,成功独立提交、失败独立回滚。catch (Exception ignored)。FlowControllerBoundaryContractTest 增加批量清理候选查询稳定错误边界合同,内部日志保留完整堆栈,公开异常不拼接底层消息。FlowCleanupTransactionExecutorTest 增加已有外层事务场景,验证 REQUIRES_NEW 独立事务会挂起并恢复外层事务。AiModelProviderConcurrencyContractTest 增加默认供应商专用 Manager 路径、全量供应商升序行锁和通用保存忽略 isDefault 的合同。AiProviderMapper.xml 执行 xmllint --noout,并重新执行 Flow+AI 依赖 Reactor package -DskipTests。FlowControllerBoundaryContractTest 扩展到 12 条,覆盖两个清理端点的专用权限、移除类级租户忽略、V1.0.55 资源合同和不自动授权。selectBusinessesForCleanup(tenantId, ...) 返回,禁止再按 modelKey/status 扩大到未满足发起人和时间筛选的 Flowable 实例。processInstanceId + tenantId 归属;七张 Forge 表的物理/逻辑删除和无实例业务记录删除都显式带 tenant_id。requireTenantId(),并将 tenantId 贯穿全量锁、清默认和设默认 Mapper XML。FlowControllerBoundaryContractTest 扩展到 14 条,覆盖查询、管理、清理三级强权限,以及流程实例/任务在访问 Flowable 前的当前租户归属守卫。tenantId,避免整份 XML 搜索产生假阳性。V1.0.55 验证 API 权限标识唯一,已有监控菜单角色只回填查询 API,管理和不可逆清理权限不自动授权。FlowCleanupTransactionExecutorTest、七份 Flow Mapper XML 解析和 Flow Server 依赖 Reactor 构建;真实 MySQL/Flyway、权限角色矩阵和不可逆 Flowable 清理仍为部署门禁。FlowControllerBoundaryContractTest 最终扩展到 18 条,覆盖错误日志查询/重试/解决的权限与租户边界、监控聚合显式租户参数、管理/清理事务行锁与统一锁顺序、PUT API 权限和迁移碰撞 UPDATE 清除。forge-plugin-flow 只执行目标模块编译;FlowBusinessMapper.xml、FlowErrorLogMapper.xml 执行 XML 解析,监控页只执行目标 ESLint。