PROCESS_ONLY 入口提交运行态,保存表单实例快照并发起流程。MessageService.sendIfAbsent 幂等入口。cd forge
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home \
PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH \
mvn -pl forge-flow/forge-flow-server -am compile -DskipTests
结果:通过。Reactor 29 个模块全部 SUCCESS,输出 BUILD SUCCESS。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过。Vite build 完成,输出 ✓ built in 1m 5s,新增 entry、fillBatch 等 chunk 正常产出。
git diff --check -- forge-admin-ui/src/router/index.js forge-admin-ui/src/api/flow.js forge/db/migration/V1.0.57__add_flow_form_runtime_entry.sql
结果:通过。命令无输出,退出码 0。
// 注释压缩告警;未阻断构建,未见新增页面导致的编译错误。mvn test:本轮为阶段实现验证,先按变更面执行目标模块编译。wrap.style.marginBottom=20px,预览、发起测试、待办办理等运行态会按该间距渲染。wrap.style.marginBottom。git diff --check -- forge-admin-ui/src/components/form-create/formCreateBridge.js forge-admin-ui/src/components/form-create/FlowFormCreateDesigner.vue forge-admin-ui/src/views/app-center/components/designer/form-first/forgeBusinessComponents.js
结果:通过。命令无输出,退出码 0。
rg -n "DEFAULT_FORM_ITEM_GAP|字段行间距|marginBottom|enableFormItemSpacing|formCreateWrap>style>marginBottom" forge-admin-ui/src/components/form-create forge-admin-ui/src/views/app-center/components/designer/form-first/forgeBusinessComponents.js
结果:通过。默认值和表单级配置均已落地,字段属性扩展残留已清理。
/bin/zsh -lc "source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build"
结果:通过。输出 ✓ built in 1m 5s。
// 注释压缩告警。rule.wrap.style.marginBottom,并通过构建验证。wrap.style.marginBottom。forgeBusinessComponents.js 中 enableFormItemSpacing 和 formCreateWrap>style>marginBottom 字段属性扩展,避免业务组件属性中继续出现“下方间距”。git diff --check -- forge-admin-ui/src/components/form-create/FlowFormCreateDesigner.vue forge-admin-ui/src/views/app-center/components/designer/form-first/forgeBusinessComponents.js code-copilot/changes/flow-management-form-runtime-optimization/spec.md code-copilot/changes/flow-management-form-runtime-optimization/tasks.md code-copilot/changes/flow-management-form-runtime-optimization/test-spec.md code-copilot/changes/flow-management-form-runtime-optimization/execution-log.md
结果:通过。命令无输出,退出码 0。
rg -n "enableFormItemSpacing|formCreateWrap>style>marginBottom|title: '下方间距'|右侧属性支持|按字段设置" forge-admin-ui/src/components/form-create forge-admin-ui/src/views/app-center/components/designer/form-first code-copilot/changes/flow-management-form-runtime-optimization
结果:通过。代码中无字段级行间距配置残留,仅执行记录保留历史命令文本。
/bin/zsh -lc "source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build"
结果:通过。输出 ✓ built in 2m 9s。
// 注释压缩告警,未阻断构建。FlowFormCreateDesigner 复用低代码 installForgeBusinessComponents,流程表单设计器左侧增加“业务组件”分组,包含系统字典选择、行政区划、组织选择、人员选择、文件/图片上传和引用对象等组件。FlowFormCreateRenderer 复用 hydrateForgeBusinessPreviewRules,在预览、发起测试、待办办理等运行渲染场景加载字典、组织树、人员列表等选项。installForgeBusinessComponents 增加可选配置参数,保持低代码设计器默认行为不变。git diff --check -- forge-admin-ui/src/components/form-create/FlowFormCreateDesigner.vue forge-admin-ui/src/components/form-create/FlowFormCreateRenderer.vue forge-admin-ui/src/views/app-center/components/designer/form-first/forgeBusinessComponents.js
结果:通过。命令无输出,退出码 0。
rg -n "业务组件|字典选择|组织选择|人员选择|hydrateForgeBusinessPreviewRules|installForgeBusinessComponents" forge-admin-ui/src/components/form-create/FlowFormCreateDesigner.vue forge-admin-ui/src/components/form-create/FlowFormCreateRenderer.vue forge-admin-ui/src/views/app-center/components/designer/form-first/forgeBusinessComponents.js
结果:通过。流程表单设计器和渲染器均已复用低代码业务组件注册/选项补齐逻辑。
/bin/zsh -lc "source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build"
结果:通过。输出 ✓ built in 1m 20s。
// 注释压缩告警。rg -n "发起测试|startTest" forge-admin-ui/src/views/flow/model.vue code-copilot/changes/flow-management-form-runtime-optimization/tasks.md code-copilot/changes/flow-management-form-runtime-optimization/test-spec.md code-copilot/changes/flow-management-form-runtime-optimization/execution-log.md
结果:通过。flow/model.vue 中“发起测试”只保留在更多操作、弹窗和相关处理函数中,卡片 footer 已无外露按钮。
git diff --check -- forge-admin-ui/src/views/flow/model.vue code-copilot/changes/flow-management-form-runtime-optimization/tasks.md code-copilot/changes/flow-management-form-runtime-optimization/test-spec.md code-copilot/changes/flow-management-form-runtime-optimization/execution-log.md
结果:通过。命令无输出,退出码 0。
/bin/zsh -lc "source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build"
结果:通过。输出 ✓ built in 1m 11s。
// 注释压缩告警。FlowEntryConfigModal。/flow/entry-runtime/:entryCode 手工路由和错误入口运行页,避免未闭环入口配置继续暴露。FlowFormCreateDesigner 默认跟随容器高度。FlowFormCreateDesigner 显式使用 zh-cn locale,并在规则归一化时把历史英文组件标题如 Select 转为中文默认标题。git diff --check -- forge-admin-ui/src/components/form-create/FlowFormCreateDesigner.vue forge-admin-ui/src/components/form-create/formCreateBridge.js forge-admin-ui/src/views/flow/design.vue forge-admin-ui/src/views/flow/model.vue forge-admin-ui/src/router/index.js code-copilot/changes/flow-management-form-runtime-optimization/spec.md code-copilot/changes/flow-management-form-runtime-optimization/tasks.md code-copilot/changes/flow-management-form-runtime-optimization/test-spec.md code-copilot/changes/flow-management-form-runtime-optimization/execution-log.md
结果:通过。命令无输出,退出码 0。
rg "FlowEntryConfigModal|entry-runtime|入口配置收敛到流程模型页|流程模型页提供.*入口配置|模型页入口配置组件" forge-admin-ui/src code-copilot/changes/flow-management-form-runtime-optimization -n
结果:通过。前端代码无引用;仅任务说明和历史执行日志中保留删除/历史记录文本。
/bin/zsh -lc "source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build"
结果:通过。输出 ✓ built in 54.18s。
// 注释压缩告警。FLOW_MODEL_TEST 和 FLOW_TEST: 业务键前缀,避免与正式业务入口混淆。git diff --check -- forge-admin-ui/src/views/flow/model.vue forge-admin-ui/src/views/flow/design.vue
结果:通过。命令无输出,退出码 0。
/bin/zsh -lc "source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build"
结果:通过。输出 ✓ built in 55.81s。
// 注释压缩告警。flow/entry 页面收敛到流程模型页的“入口配置”弹窗。flow/entry.vue 和 flow/fillBatch.vue,组织填报批次不再作为流程管理内置页面暴露。V1.0.57 不再注册“流程入口”“组织填报批次”独立菜单;新增 V1.0.58 清理已落库的误注册菜单和组织填报按钮资源。git diff --check -- \
forge-admin-ui/src/views/flow/model.vue \
'forge-admin-ui/src/views/flow/entry-runtime.[entryCode].vue' \
forge/db/migration/V1.0.57__add_flow_form_runtime_entry.sql \
forge/db/migration/V1.0.58__remove_standalone_flow_entry_menus.sql \
code-copilot/changes/flow-management-form-runtime-optimization/spec.md \
code-copilot/changes/flow-management-form-runtime-optimization/tasks.md \
code-copilot/changes/flow-management-form-runtime-optimization/test-spec.md
结果:通过。命令无输出,退出码 0。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过,输出 ✓ built in 50.54s。构建产出包含 FlowEntryConfigModal chunk。
// 注释压缩告警,以及 store 动静态混合导入 chunk 告警;未阻断构建。V1.0.57__add_flow_form_runtime_entry.sql 中已经执行过的菜单和按钮资源内容,避免 Flyway checksum mismatch。V1.0.58__remove_standalone_flow_entry_menus.sql 承担菜单纠偏,符合“已执行迁移脚本不再修改”的规则。git diff --check -- \
forge/db/migration/V1.0.57__add_flow_form_runtime_entry.sql \
forge/db/migration/V1.0.58__remove_standalone_flow_entry_menus.sql
结果:通过。命令无输出,退出码 0。
java -classpath /private/tmp:/Users/yaomindong/.m2/repository/org/flywaydb/flyway-core/10.20.1/flyway-core-10.20.1.jar \
FlywayChecksum forge/db/migration/V1.0.57__add_flow_form_runtime_entry.sql
结果:输出 -1204205122,与数据库已执行记录一致。
V1.0.58。flywayInitializer 失败,表面链路表现为 jobAutoRegistrar -> jobScheduler -> flywayInitializer 依赖创建失败。forge_schema_history 已有 1.0.57/1.0.58,但本地解析到的 V1.0.55、V1.0.56 未在历史表中记录,Flyway 默认 outOfOrder=false 时拒绝启动。1.0.54 -> 1.0.57 -> 1.0.58,缺少 1.0.55/1.0.56。sys_user_tenant、sys_file_group.tenant_id、sys_flow_model.tenant_id、idx_sys_flow_task_tenant 等结构已存在,脚本具备重复执行保护。outOfOrder=true,只执行 Flyway migrate(),不启动 Spring/Quartz,正式补跑 1.0.55 和 1.0.56。Successfully applied 2 migrations,migrationsExecuted=2。1.0.57、1.0.58、1.0.55、1.0.56 均 success=1,其中 1.0.55/1.0.56 以 out-of-order 方式记录在后续 installed_rank。Successfully validated 60 migrations,validationSuccessful=true,invalidMigrations=0。V1.0.55 中 CREATE TABLE IF NOT EXISTS sys_user_tenant 执行时 MySQL 输出表已存在警告,未阻断迁移。flow/model.vue 中设计弹窗根节点增加 100vw/100vh 内联尺寸。flow-design-modal-shell 使用完整视口尺寸并通过 flex 把高度传给 design.vue 的 .model-design-page。git diff --check -- forge-admin-ui/src/views/flow/model.vue
结果:通过。命令无输出,退出码 0。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过,输出 ✓ built in 59.62s。
// 注释压缩告警,以及 store 动静态混合导入 chunk 告警;未阻断构建。ps 枚举本地 Vite 进程,未做浏览器截图验证。forge-flow-server 引入 forge-plugin-generator 后的独立服务启动装配问题。FlowMenuRegisterAdapter,用于满足 generator 菜单注册桥接依赖;菜单注册仍由 admin server 的真实实现负责。FlowAiClientAdapter,用于满足 generator AI 生成桥接依赖;flow server 中 AI 生成调用返回 fallback/空流。forge-flow-server 显式引入 forge-flow-client,解决 generator 业务流程服务反射 FlowClient 时 optional 依赖不传递导致的 NoClassDefFoundError。cd forge
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home \
PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH \
mvn -pl forge-flow/forge-flow-server -am package -DskipTests
结果:通过。Reactor 31 个模块全部 SUCCESS,输出 BUILD SUCCESS,forge-flow-server 编译 24 个源文件并重新打包。
cd forge
jar tf forge-flow/forge-flow-server/target/forge-flow-server.jar | rg 'forge-flow-client|FlowClient.class|FlowAiClientAdapter|FlowMenuRegisterAdapter'
结果:通过。启动包包含 FlowMenuRegisterAdapter.class、FlowAiClientAdapter.class 和 BOOT-INF/lib/forge-flow-client-1.0.0.jar。
cd forge
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home \
PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH \
java -jar forge-flow/forge-flow-server/target/forge-flow-server.jar --server.port=0
结果:通过。非沙箱网络下连接 dev MySQL/Redis 成功,日志输出 Started ForgeFlowApplication in 24.584 seconds,未再出现 MenuRegisterAdapter、AiClientAdapter 或 FlowClient 装配错误。
AiCrudConfigService 缺少 MenuRegisterAdapter。FlowMenuRegisterAdapter 上的 @ConditionalOnMissingBean 后,原始错误消失。AiCrudConfigGenerateService 缺少 AiClientAdapter,已通过 FlowAiClientAdapter 补齐。BusinessFlowVariableResolver 反射时缺少 FlowClient,已通过 flow server 直接依赖 forge-flow-client 补齐。58819 已停止。ps -ef | rg 'forge-flow-server.jar|java -jar',未发现残留 flow server 进程。BUSINESS_OBJECT/HYBRID 实际业务对象落表适配器,并在流程启动后写入业务流程实例关联。sys_org 负责人、发送站内信,并在 batchItemId 提交后回写明细。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过。第一次输出 ✓ built in 1m 17s;补候选用户/候选组字段变量选择后复跑,输出 ✓ built in 1m 13s。
cd forge
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home \
PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH \
mvn -pl forge-flow/forge-flow-server -am compile -DskipTests
结果:通过。Reactor 31 个模块全部 SUCCESS,输出 BUILD SUCCESS,总耗时约 16.963s。
git diff --check -- \
forge-admin-ui/src/components/bpmn/NodePropertiesPanel.vue \
forge-admin-ui/src/views/flow/design.vue \
forge-admin-ui/src/views/flow/model.vue \
forge-admin-ui/src/views/flow/todo.vue \
forge-admin-ui/src/views/flow/done.vue \
forge-admin-ui/src/views/flow/started.vue \
forge-admin-ui/src/views/flow/cc.vue \
forge-admin-ui/src/views/flow/entry.vue \
forge-admin-ui/src/views/flow/fillBatch.vue \
forge-admin-ui/src/api/flow.js \
code-copilot/changes/flow-management-form-runtime-optimization/tasks.md \
code-copilot/changes/flow-management-form-runtime-optimization/spec.md \
code-copilot/changes/flow-management-form-runtime-optimization/test-spec.md \
code-copilot/changes/flow-management-form-runtime-optimization/execution-log.md
结果:通过。命令无输出,退出码 0。
// 注释压缩告警,以及 store 动静态混合导入 chunk 告警;未阻断构建。mvn test:本轮聚焦流程功能增量实现,按测试标准先执行目标模块编译。