status: reviewed_passed created: 2026-07-16
main;按编码规范已切换到 feature/code-rule-config-optimization-20260716。.DS_Store 差异、用户新增的 功能需求文档.md 和 参考UI设计.png;本变更保留并不重置。ui-ux-pro-max;根 AGENTS.md 中的过期引用已删除。| 结论 | 证据 |
|---|---|
| 当前仍是单表模板模型 | AiCodeRule.java、CodeRuleService.java |
| 当前配置页不支持分段 | app-center/code-rules.vue |
| 低代码已经统一调用 CodeRuleService | DynamicCrudService#applyAutoGeneratedFields |
| 号段低余量预取会重复覆盖 next 段 | SegmentSequenceGenerator#tryPrefetch |
| 正式 migration 没有结构化编码规则脚本 | forge-server/db/migration 最高 V1.0.35 |
| 时间 | 范围 | 命令/动作 | 结果 | 警告/跳过 |
|---|---|---|---|---|
| 2026-07-16 | 规则与技能 | 读取 SDD、coding/testing rules、writing-plans、Forge codegen/frontend skill | passed | 全局 Forge Skill 存在旧 tenant/占位符示例,按根 AGENTS 覆盖 |
| 2026-07-16 | 分支保护 | git switch -c feature/code-rule-config-optimization-20260716 |
passed | 保留现有工作区差异 |
| 2026-07-16 | SDD 文档 | 创建 spec.md/tasks.md/test-spec.md/execution-log.md |
passed | 用户 HARD-GATE 已确认,进入 apply |
| 2026-07-16 | Task 1 Red | Java 17 下执行 SegmentSequenceGeneratorTest |
failed as expected | 缺少 nextId(String,long),证明测试可识别未实现能力 |
| 2026-07-16 | Task 1 首次 Green | 修复号段切换和起始值后执行测试 | blocked | Mockito inline mock maker 无法在当前 JDK 自附加;业务代码已编译 |
| 2026-07-16 | Task 1 Green | 测试 Mapper 改为 JDK Proxy 后重跑 | passed,3/3 | 覆盖起始值、1200 个跨段连续值和 8 线程 4000 个唯一值 |
| 2026-07-16 | Task 2 | 新增 V1.0.36、主表字段、分段表、字典、菜单/按钮/API 资源和角色继承 |
passed | 自审发现存量主表没有 del_flag,已补显式字段、生成列、有效记录唯一索引及旧唯一索引迁移 |
| 2026-07-16 | Task 3-5 | 实现结构化 DTO/VO、五类分段引擎、五种进制、分组/周期、legacy parser、服务编排和 /system/code-rule |
passed | 内置规则限制、乐观锁、可信 SYS_VAR 和缺租户失败关闭已覆盖 |
| 2026-07-16 | Task 6-7 | 实现 AiCrudPage 列表、宽抽屉、拖拽分段、实时预览和低代码 fields 分层 |
passed | 使用现有 Naive UI/主题变量;未使用 ui-ux-pro-max;自审移除英文装饰头部 |
| 2026-07-16 19:24 | 聚合定向测试尝试 | mvn -Penable-tests -pl starter-id,generator -am -Dtest=... test |
blocked before target modules | 既有 forge-starter-datascope 缺具体测试引擎导致 surefire groups 校验失败;目标模块均未执行,不计为本轮失败 |
| 2026-07-16 19:25 | Starter ID 定向测试 | 目标模块执行 SegmentSequenceGeneratorTest |
passed,3/3 | Java 17,0 failures/errors/skipped |
| 2026-07-16 19:25 | Generator 定向测试 | 目标模块执行 CodeRuleEngineTest,LegacyCodeRuleParserTest,DynamicCrudServiceAutoGenerationTest,SystemCodeRuleControllerContractTest |
passed,10/10 | 543 个主源码、80 个测试源码编译成功 |
| 2026-07-16 19:26 | 前端纯函数 | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
passed,6/6 | Node v20.19.0 |
| 2026-07-16 19:26 | 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules | 1m48s;仅仓库既有动态/静态导入冲突、CSS // 注释和组件同名警告,不阻断产物 |
| 2026-07-16 19:26 | Admin 聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | Java 17;19.579s;Generator 与 Admin 均成功 |
| 2026-07-16 19:26 | XML/Flyway/差异 | xmllint --noout 两个 Mapper;Flyway ${...} 扫描;逻辑删除迁移断言;tracked/untracked diff check |
passed | placeholder 扫描无输出;两个 XML 语法正确;tracked 差异和 28 个 untracked 文件均无空白错误 |
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home。~/.m2 只读,使用 /tmp/forge-code-rule-maven-settings.xml 和 /tmp/forge-code-rule-m2-local,依赖镜像只读指向用户现有 Maven 缓存。3e453277 [编码规则配置优化] 建立SDD变更基线。AGENTS.md;四份新 SDD 文件仍在工作区。git add/commit --amend 被工作区 .git/index.lock 写权限拒绝;Task 1 起暂保留未提交差异,最终交付时明确说明,不伪造提交完成。V1.0.36,未查询 forge_schema_history、ai_code_rule、ai_code_rule_segment 的真实升级结果。/system/code-rule HTTP 冒烟,普通角色的菜单/API 继承需在迁移环境验收。ai_code_rule 逻辑删除迁移;规则编码允许合法单字符;配置页移除英文装饰并收紧为企业控制台信息层级。本轮按 SDD 两阶段流程执行只读代码审查;未修改产品代码、未启动服务、未执行 Flyway、未连接数据库。阶段一由独立 Spec Reviewer 复核。
| 检查 | 结果 |
|---|---|
| 结构化规则、预览、权限、逻辑删除与低代码主链路 | PASS,实际实现与大部分 Spec 功能点一致 |
| 旧计数器续接 | FAIL;新旧序列 key 不同,迁移未读取或复制 sys_id_sequence 旧水位 |
| 多实例号段唯一性 | FAIL;UPDATE 成功后重查最新 max_id 计算返回区间,存在重复后段竞态 |
| 业务事务回滚安全 | FAIL;数据库分配可回滚,JVM 内存号段不可回滚 |
| Flyway 分类回填重跑 | FAIL;依赖 @category_added,部分失败后重跑会跳过存量分类 |
| 正式 Code Quality Review | SKIPPED;阶段一 FAIL,未通过 Review Gate |
Review 结论:NEEDS_FIX。当前状态为 reviewed_with_findings,不得归档。下一步执行 /fix 编码规则配置优化,补齐 R1-R4 及对应 Red/Green 证据后重新 Review。
本轮按 Review 差异增量修复 R1-R4,并处理阶段二待复核的前端异步响应和独立权限入口;未使用 ui-ux-pro-max,未启动任何服务。
| 时间 | 范围 | 命令/动作 | 结果 | 警告/跳过 |
|---|---|---|---|---|
| 2026-07-16 | Fix Red / Starter ID | 先补旧水位、多实例和事务传播测试,再编译 | failed as expected | 缺少双参数构造器、四参数取号和旧水位 Mapper 契约 |
| 2026-07-16 | Fix Red / Generator | 先补新旧 key 兼容传递和 migration contract | failed as expected | 缺少 legacy prefix/period 传递契约 |
| 2026-07-16 | Fix Red / 前端 | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
failed as expected,2 项 | 缺少 latest request guard 和独立权限判断函数 |
| 2026-07-16 | R1 | 新 key 初始化查询同规则、同周期旧 code-rule:* 最大水位 |
fixed | SQL 使用精确前缀比较,避免规则编码下划线被 LIKE 当作通配符;HOUR 兼容旧分钟/秒周期 |
| 2026-07-16 | R2/R3 | TransactionTemplate(REQUIRES_NEW) 分配号段;按 UPDATE 前快照计算区间 |
fixed | 数据库提交成功后才放入 JVM 缓存;溢出检查在 UPDATE 前完成 |
| 2026-07-16 | R4 | 删除 @category_added,按当前分类数据状态回填 |
fixed | migration contract 断言覆盖 NULL、空值和 COMMON |
| 2026-07-16 | 前端复核项 | 详情/预览 latest request guard;新增/编辑/删除独立权限 | fixed | 输入变化和离开编辑工作台时立即作废旧预览响应 |
| 2026-07-16 | Generator 定向回归 | Engine、migration、legacy、Dynamic CRUD、Controller tests | passed,11/11 | 0 failures/errors/skipped |
| 2026-07-16 20:19 | Starter ID 定向回归 | mvn -Penable-tests -pl forge-framework/forge-starter-parent/forge-starter-id -Dtest=SegmentSequenceGeneratorTest test |
passed,6/6 | Java 17;0 failures/errors/skipped |
| 2026-07-16 20:19 | 前端纯函数 | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
passed,8/8 | Node v20.19.0 |
| 2026-07-16 20:19 | XML/Flyway 静态检查 | xmllint --noout 三个 Mapper;placeholder、@category_added 和旧前缀模糊匹配扫描 |
passed | 扫描无输出 |
| 2026-07-16 20:20 | 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules,exit 0 | 1m28s;仅仓库既有动态/静态导入、CSS // 注释和组件同名警告 |
| 2026-07-16 20:22 | Admin 聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | Java 17;19.234s;Starter ID Mapper 资源、Generator 与 Admin 均成功 |
| 2026-07-16 20:22 | 全部差异格式 | git diff --check;逐项 git diff --no-index --check untracked 文件 |
passed | 无空白错误;保留用户既有 .DS_Store 和无关工作区差异 |
| 2026-07-16 20:24 | Git 提交 | 仅选择编码规则相关文件执行 git add 和 git commit |
blocked | .git/index.lock: Operation not permitted;索引未改变,修复仍保留在工作区,不伪造提交成功 |
fixed_pending_review。forge_schema_history、数据库水位和登录态 /system/code-rule HTTP 仍未执行;按既定分工由可用环境补验。3e453277。用户反馈编码规则页面背景整体显示为主色蓝,文字对比度不足。根因为自定义页面 CSS 误用了 Naive 组件作用域内部变量 --n-color、--n-action-color、--n-text-color-*,这些变量不适合作为页面级主题 Token。
| 范围 | 修复/命令 | 结果 | 备注 |
|---|---|---|---|
| 列表页 | 页面、表格、标题和说明改用 --bg-secondary/--bg-primary/--text-*/--border-light |
fixed | 去除未定义的 --body-color 和 Naive 内部颜色变量 |
| 编辑工作台 | 页面容器、基础卡和预览卡改用 Forge Token | fixed | 工作台头部、内容区和卡片同步亮暗主题 |
| 分段编辑器 | 表头、数据行、拖拽手柄、展开区和提示区改用 Forge Token | fixed | 拖拽幽灵态使用当前系统主色与卡片背景混合 |
| 静态检查 | 扫描三个 Vue 文件中的 --n-* 背景和 --body-color;git diff --check |
passed | 无残留、无格式错误 |
| 定向 Lint | pnpm exec eslint 三个编码规则 Vue 文件 |
passed | 0 errors |
| 前端回归 | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
passed,8/8 | Node v20.19.0 |
| 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules,exit 0 | 6m26s;仅仓库既有动态/静态导入、CSS // 注释和组件同名警告 |
ui-ux-pro-max。用户反馈抽屉内的分段表格过于拥挤,末尾操作不可见。确认该功能已包含基础信息、结构化分段、高级参数和实时预览,信息复杂度不适合抽屉。
| 范围 | 修复/命令 | 结果 | 备注 |
|---|---|---|---|
| 编辑容器 | CodeRuleEditorDrawer.vue 重构并迁移为 CodeRuleEditorWorkspace.vue |
fixed | 新增/编辑替换列表占满当前内容区,不再使用 Drawer |
| 路由状态 | 使用当前 /app-center/code-rules 的 editor/ruleId query 切换列表和工作台 |
fixed | 不新增菜单路由,不绕过现有路由守卫;create/edit 继续校验独立权限 |
| 分段操作列 | 表头和行内操作增加右侧 sticky 定位 | fixed | 横向内容滚动时操作按钮持续可见 |
| 顶部动作 | 返回、内置标识和保存集中到工作台顶部 | fixed | 保存后回到列表并刷新数据 |
| 静态检查 | 旧 Drawer/props.show/update:show 引用扫描;git diff --check |
passed | 无残留、无格式错误 |
| 定向 Lint | pnpm exec eslint 三个编码规则 Vue 文件 |
passed | 0 errors/warnings |
| 前端回归 | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
passed,8/8 | Node v20.19.0 |
| 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules,exit 0 | 1m54s;仅仓库既有动态/静态导入、CSS // 注释和组件同名警告 |
ui-ux-pro-max。用户确认“兼容场景”不应自由输入,并要求 VARIABLE 与现有低代码业务对象字段建立可验证映射;同时确认不需要新增“顺序段”,顺序由拖拽和流水号递增语义表达。
| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-16 22:03 | 前端交互 | 场景改 sys_code_rule_scene;来源对象下拉;VARIABLE 改业务字段下拉;表头改“顺序” |
fixed | 场景帮助文案明确兼容用途;未使用 ui-ux-pro-max |
| 2026-07-16 22:04 | 低代码适配 | ForgePropertyPanel 传当前 objectCode;Mapper 仅返回通用或当前对象规则 |
fixed | 精确对象绑定可越过 COMMON 场景兼容过滤;无对象上下文不返回对象专属规则 |
| 2026-07-16 22:04 | 后端约束 | 保存来源对象 ID/编码;校验启用非系统字段;运行时校验当前 objectCode |
fixed | 前端自报 sourceObjectCode 不受信任,由服务端回填 |
| 2026-07-16 22:04 | Flyway | 补来源对象字段、索引和场景字典 | fixed | 修正存量升级顺序:先补 del_flag 再创建来源对象索引 |
| 2026-07-16 22:14 | Generator 定向测试 | 7 个测试类 | passed,15/15 | Mockito 自附加测试首次失败,改为无动态代理纯契约测试后通过;业务代码无失败 |
| 2026-07-16 22:14 | 前端 ESLint/Vitest | 6 个相关文件;code-rule-utils.spec.js |
passed,9/9 | 0 errors/warnings |
| 2026-07-16 22:17 | 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules,exit 0 | 仅仓库既有动态/静态导入、CSS // 注释和组件同名警告 |
| 2026-07-16 22:02 | Admin 聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | Java 17;18.380s |
| 2026-07-16 22:18 | XML/Flyway/差异 | xmllint --noout、placeholder 扫描、git diff --check |
passed | 保留历史 ORDER/CONTRACT 场景;未实跑 Flyway;未启动服务 |
用户指出“业务变量”不应全部强制映射低代码对象:业务代码也需要配置自定义变量名,并在调用编码规则时通过 fields 传值。复核确认引擎原本已支持该取值协议,阻断点位于管理侧保存校验和前端交互。
| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-17 07:21 | Red / 前端 | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
failed as expected,2 项 | 缺少 CUSTOM 默认属性和来源切换函数 |
| 2026-07-17 07:21 | Red / 后端 | Generator 定向测试 | failed as expected,testCompile 7 处 | DTO、Controller 分类契约和 legacy 尚无 variableSource |
| 2026-07-17 07:27 | Green / 核心 | 前端 Vitest/ESLint;Generator 6 个测试类 | passed | 前端 11/11;后端 15/15;ESLint 0 errors |
| 2026-07-17 07:30 | Generator 全部编码规则回归 | 7 个测试类 | passed,20/20 | 包含 Dynamic CRUD 自动编号和纯 CUSTOM/混合 LOWCODE 对象边界 |
| 2026-07-17 07:30 | XML/Flyway/差异 | xmllint --noout、placeholder 扫描、git diff --check |
passed | variable_source 防重补列和已绑定分段回填契约已覆盖 |
| 2026-07-17 07:33 | 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules | 1m17s;仅仓库既有动态/静态导入、CSS // 注释和组件同名警告 |
| 2026-07-17 07:34 | Admin 聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | Java 17,19.459s |
objectCode 筛选和运行时校验。ui-ux-pro-max,页面继续使用 Forge 系统主题 Token。用户验收指出,低代码字段映射放在分段表格顶部时,用户操作当前分段后需要回到顶部才能选择对象,滚动后入口不可见。本轮将映射改为当前 VARIABLE 行触发的 Modal。
| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-17 07:55 | Red | pnpm exec vitest run src/views/app-center/__tests__/code-rule-utils.spec.js |
failed as expected,2 项 | 旧实现缺少 applyLowCodeVariableMapping |
| 2026-07-17 07:59 | Green | Vitest + 定向 ESLint | passed,13/13 | 相关 Vue/JS 0 errors |
| 2026-07-17 08:00 | 交互静态契约 | 顶部映射区、弹窗/行内入口、主题变量和 git diff --check 扫描 |
passed | 首次扫描模式过宽命中 mapping-summary,收紧为精确 class 后通过,不是产品代码失败 |
| 2026-07-17 08:02 | 前端生产构建 | NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8691 modules | 1m26s;仅仓库既有非阻断警告 |
| 2026-07-17 08:06 | 收尾回归 | Node v20.19.0 下定向 ESLint、Vitest、精确入口/主题扫描与 git diff --check |
passed,13/13 | ESLint 0 errors;顶部全局映射区无残留;保留用户既有 .DS_Store 差异 |
frontend-design 仅用于确认局部弹窗的交互层级;实现保持 Forge 企业配置页的克制风格和系统主题 Token,未使用 ui-ux-pro-max。| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-17 08:40 | Spec Compliance | 归档前复核 R1-R4、VARIABLE 双来源、LOWCODE Modal 和主题 | failed,1 个 P0 | 旧水位 1000 从 1001 续接,与 material_code 三位容量冲突;阶段二未启动 |
| 2026-07-17 09:02 | Red | CodeRuleEngineTest 增加旧水位与固定宽度组合测试 |
failed as expected | 旧接口缺少 resolveLegacyStartValue;测试编译识别缺失契约 |
| 2026-07-17 09:09 | Starter ID | SegmentSequenceGeneratorTest |
passed,7/7 | JDK 17;新增旧安全起点只读解析且不创建/推进序列用例 |
| 2026-07-17 09:05 | Generator Green | 7 个编码规则相关测试类 | passed,21/21 | 兼容扩宽、严格溢出和有效兼容宽度耗尽均覆盖 |
| 2026-07-17 09:06 | Admin 聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | 使用临时 Maven 本地仓库;Starter ID、Generator 和 Admin 成功 |
~/.m2 安装因仓库写权限失败,按已有验证基线改用 /tmp/forge-code-rule-m2-local;不影响源码测试和 reactor 编译结论。| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-17 09:17 | 兼容宽度缓存 Red | 连续两次历史扩宽生成 | failed as expected | 旧实现解析旧水位 2 次;证明高频查询问题可检测 |
| 2026-07-17 09:18 | 兼容宽度缓存 Green | 有界 LRU 缓存兼容宽度和负结果 | passed | 最大 2048;key 含规则、分段、周期和进制配置 |
| 2026-07-17 09:20 | 号段缓存 Red | 高基数 key 缓存上限契约 | failed as expected | 旧实现缺少上限、清理和规模契约 |
| 2026-07-17 09:21 | 事务隔离 Red | REQUIRES_NEW 隔离级别断言 |
failed as expected | 旧值为 DEFAULT;MySQL RR 下乐观重试可能重复读旧快照 |
| 2026-07-17 09:23 | legacy AUTO Red | HHmmss + AUTO 契约 |
failed as expected | 旧 parser 错误推断 HOUR,实际历史语义为 NONE/all |
| 2026-07-17 09:24 | 字段别名 Red | VARIABLE snake/camel 双向兼容 | failed as expected | warehouse_code 无法读取 warehouseCode |
| 2026-07-17 09:26 | 规则编码身份 Red | Mapper/Flyway 历史唯一契约 | failed as expected | 旧实现只约束未删除记录,允许换 ruleId 重置计数器 |
| 2026-07-17 09:31 | SEQ identity Red | 删除/替换已有 SEQ | failed as expected | 旧 Service 缺少稳定 segmentKey 更新约束 |
| 2026-07-17 09:33 | Generator 最终回归 | 7 个编码规则相关测试类 | passed,25/25 | 0 failure/error/skip |
| 2026-07-17 09:34 | Admin 最终聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | JDK 17,Caffeine/Starter ID/Generator/Admin 装配成功 |
| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-17 | 文档一致性 | 核对 Spec、Tasks、Test Spec、Execution Log 状态、章节和 Review 结论 | passed | 四份文档状态统一为 done;最终 Review 为 PASS / PASS_WITH_COMMENTS |
| 2026-07-17 | 静态验收 | git diff --check;三个 Mapper xmllint --noout;V1.0.36 placeholder 扫描 |
passed | 无空白、XML 语法或 Flyway placeholder 问题 |
| 2026-07-17 | 知识沉淀 | 核对 decisions.md、pitfalls.md |
passed | 计数器身份、旧水位容量和缓存/事务经验已沉淀 |
| 2026-07-17 | 目录归档 | 移动完整变更目录到日期前缀归档目录 | passed | 包含四份 SDD 文档、功能需求文档和 UI 原型 |
code-copilot/changes/archive/2026-07-17-编码规则配置优化/。| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-17 09:57 | Review 回归基线 | Starter ID 与 Generator 编码规则测试 | passed,34/34 | Starter ID 9/9;Generator 25/25;现有测试未覆盖容量×淘汰组合 |
| 2026-07-17 | 静态复核 | 号段、缓存、legacy SQL、规则加载、原始序列 API、低代码生成链路 | NEEDS_FIX | 发现 2 个 P0、3 个 P1 和预览降载项 |
| 2026-07-17 | 用户授权 | 用户回复“开始修复” | confirmed | 归档目录恢复为活动变更;状态改为 fix_in_progress |
writing-plans 将修复拆为 Task 15-19,并按 forge-coding-standards 执行后端、SQL 和接口修改。ui-ux-pro-max;未启动 Admin/MySQL/Redis。| 时间 | 范围 | 命令/动作 | 结果 | 备注 |
|---|---|---|---|---|
| 10:26 | Task 15-16 Green | Starter ID 定向执行容量、缓存淘汰和 /sequence 契约 |
passed,14/14 | 随后加入索引友好 Mapper 契约,最终套件为 15/15 |
| 10:33 | Task 17 Red | SysIdSequenceMapperContractTest |
failed as expected,1/1 | 旧 SQL 仍是 LEFT(biz_key,...),证明契约可识别非 sargable 查询 |
| 10:37 | Task 17 Green | Engine、Mapper、Migration 定向测试 | passed,16/16 | 新规则严格容量、V1.0.37、legacy 标记和转义前缀 LIKE 生效 |
| 10:38 | Task 18 Red | Engine + Definition Cache 测试编译 | failed as expected,3 处 | 旧 loadDefinition 私有且没有同版本缓存/深拷贝契约 |
| 10:41 | Task 18 Green | Engine、Mapper、Migration、Definition Cache | passed,18/18 | Caffeine 10000/30m;版本变化重载;DTO 独立副本;32/256/96 上限 |
| 10:43 | 前端降载 | Vitest + 定向 ESLint | passed,14/14 | AbortController 取消、latest guard、取消静默且真实错误提示;0 lint errors |
| 10:47 | Starter ID 最终回归 | 三个测试类 | passed,15/15 | 12 个生成器测试、2 个 Controller 契约、1 个 Mapper 契约 |
| 10:47 | Generator 最终回归 | 八个编码规则相关测试类 | passed,31/31 | 0 failures/errors/skipped |
| 10:49 | 前端生产构建 | pnpm build |
passed,8691 modules | 约 1m55s;仅仓库既有组件同名、动态/静态导入和 CSS 注释警告 |
| 10:54 | Admin 聚合编译 | mvn -pl forge-admin-server -am compile -DskipTests |
passed,42/42 | Java 17;最终 ! 转义 LIKE、Starter ID、Generator、Caffeine 与 Admin 装配成功 |
| 10:54 | Review 后前端增量 | Vitest + 定向 ESLint | passed,14/14 | 非取消预览错误恢复用户提示;取消仍不弹错 |
| 10:55 | XML/Flyway/差异 | 三个 Mapper xmllint;V1.0.36/V1.0.37 placeholder;旧 LEFT(biz_key;tracked/untracked diff check |
passed | 无 XML、placeholder、非索引查询或空白错误 |
| 10:58 | Review 后最终前端构建 | pnpm build |
passed,8691 modules | 自审后的取消/错误提示逻辑进入最终产物;仅仓库既有非阻断警告 |
bizKey 最长 100 且字符白名单;未新增默认授权。V1.0.37 将存量/新规则兼容边界分离;新规则不扫描旧水位;存量查询使用参数化尾通配 LIKE 和 ! 转义。reviewed_passed,保持活动变更目录,等待用户决定是否再次归档。