GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Dev by xlorne · Pull Request #267 · codingapi/flow-engine

Conversation

@xlorne

@xlorne xlorne commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
xlorne added 19 commits November 10, 2026 20:21
@xlorne
chore: 升级 codingapi.framework 到 17.3.2
1eb2a2d
@xlorne
fix: 并签未配置比例时按全部通过处理并补充合并审批多模式验证 (#265)
180aede
- NodeStrategyManager#getMultiOperatorAuditMergePercent 将比例归一化到 (0,1],
  未配置(<=0)按 1 处理,避免并签因 percent=0 退化为或签
  (首个审批人通过即完成节点,对方待办与合并记录被自动办结清空)
- 新增 FlowIssue265MergeAuditModeTest:覆盖并签/或签/循序/随机一人 在开启
  RecordMergeStrategy 时的合并待办生成、部分通过后保留、通过后清理与合并关系一致性

Closes #265
@xlorne
fix: 并签未配置比例时按全部通过处理并补充合并审批多模式验证 (#265)
ca87ff1
- NodeStrategyManager#getMultiOperatorAuditMergePercent 将比例归一化到 (0,1],
  未配置(<=0)按 1 处理,避免并签因 percent=0 退化为或签
  (首个审批人通过即完成节点,对方待办与合并记录被自动办结清空)
- 新增 FlowIssue265MergeAuditModeTest:覆盖并签/或签/循序/随机一人 在开启
  RecordMergeStrategy 时的合并待办生成、部分通过后保留、通过后清理与合并关系一致性

Closes #265
@xlorne
feat: 多人审批节点新增减签能力 (#266)
0f1aadb
- 新增 ActionType.REDUCE_AUDIT 与 ReduceAuditAction:由当前审批人通过
  advice.forwardOperatorIds 撤下同一节点实例中的其他审批人,与加签对称;
  仅支持循序(SEQUENCE)与并签(MERGE),或签/任意一人直接拒绝
- 被减签记录置撤销后统一走 repositoryHolder.saveRecords() →
  FlowRecordSaveService.saveAll(),复用既有逻辑清理待办行与合并关系
  (#260 的「只摘自身合并关系 + 回填代表记录」),不做假减人
- 循序审批的激活条件由 nodeOrder + 1 放宽为「最近一条更大 nodeOrder」,
  减签撤销中间审批人后序号出现空洞也能正常激活下一位(PassAction)
- 减签前置校验:不能减签自己;撤销后节点仍必须保留至少一次待审批,
  避免并签比例已达成却没有任何触发点导致流程永久卡死(BaseAuditNode)
- 新增 FlowRecordReduceAuditEvent 事件,携带被撤销记录与执行人
- 审批节点默认动作追加「减签」(末尾追加,保持既有动作顺序契约),
  仅在循序/并签且存在其他待审批人时展示按钮
- 以 #265 的并签比例归一化修复为基线(cherry-pick 180aede),
  新增 FlowIssue266ReduceAuditTest(9 个用例)

Closes #266

关联 #264 #265(合并交付,是否关闭由维护者确认)
@xlorne
Merge branch 'feature/issue-265-merge-audit-verify' into dev
d09dc02
@xlorne
Merge branch 'feature/issue-266-reduce-audit' into dev
3891514
@xlorne
test: 补充数据层直接增删审批人的机制验证用例 (#264)
8856ebb
- 跳过服务层编排,直接操作仓储(等价于运维改库)验证多人审批的待办与节点完成判定
- 场景 5 按 #266 的激活链路修复(最近一条更大 nodeOrder)断言:撤销中间审批人后
  不再卡死,下一位审批人会被自动激活
- 其余用例固化「只插待办行 / 只插记录行 / 只删待办行 / 撤销最后一个审批人」的风险行为,
  作为「不要直接改库」的可执行文档

Refs #264
@xlorne
docs: issue 回复必须关联代码提交(仓库 / 分支 / 提交号 / PR)
6463299
- 核心原则新增:回复涉及代码改动时必须附「仓库 + 分支 + 提交号(SHA)」,有 PR 附链接
- 定位回复引用既有提交时同样需要附分支与提交号
- 完成回复模板与检查清单补充代码提交清单要求
- AGENTS.md 的 issue 流程摘要同步
@xlorne
fix: 减签动作排在加签之后,测试改用按类型取动作 (#266)
ec6343f
- ApprovalNode 默认动作顺序调整为 通过/拒绝/保存/加签/减签/转办/退回/委派
- FlowSampleServiceTest、FlowMockSampleServiceTest 中按索引取动作改为按 ActionType 查找,
  避免动作列表顺序变化导致取错动作(#266 测试反馈)
@xlorne
feat: 加签去重、减签单人校验与合并审批批量能力声明
62cc879
- 加签拒绝已在当前节点待办队列中的人员(含加签自己)
- 减签在当前节点仅剩一名待审批人时拒绝
- FlowRecord 新增 isPendingApproval,统一待审批记录口径
- detail 响应新增 currentNodeOperators(当前节点待审批人,排除自己)
- IFlowAction 新增 batchable,减签/自定义动作为 false,并在 detail 动作中附加标记
- 补充加签/减签/detail 相关测试与接口文档
@xlorne
chore: 更新前端子模块指针至 dev(batchable 与减签候选人)
08760b7
@xlorne
fix: 合并审批单条详情按记录计算按钮,批量能力仅限制减签
483981d
- CustomAction 恢复默认批量能力,避免自定义按钮在合并列表被隐藏
- 补充合并组内每条记录均可展示减签与候选人的回归测试
- 更新接口文档中的合并审批单条查看约定,同步前端子模块指针
@xlorne
test: 补充未开启记录合并时的减签展示用例并同步前端子模块
5a8888c
- 新增非合并多人审批 detail 仍返回减签按钮与候选人的回归测试
- 更新 flow-frontend 子模块指针至 dev
@xlorne
chore: 同步前端子模块指针(PC/移动端减签能力对齐)
c748ee7
@xlorne
docs: 对齐减签/加签与合并审批文档,长段落表格化
ff417b4
- 动作/事件数量由 8 更正为 9,补 REDUCE_AUDIT 与 FlowRecordReduceAuditEvent
- action.md 补 batchable()、动作约束与批量能力说明
- exception.md 补减签/加签工厂方法与错误码
- rest-api.md 动作枚举、forwardOperatorIds、FlowContent 字段表格化
- 服务分工补子流程重置/结果/会话工厂;事件/会话/模拟仓储段落表格化
- 使用手册与集成手册同步减签动作与事件,同步前端子模块指针
@xlorne
chore: 同步前端子模块指针(合并审批表单数据修复)
94e4b91
含 flow-frontend 843e236:合并审批查看第二条流程后提交 formData 为空,
减签等动作被服务端 formData 必填校验拒绝的修复。
@xlorne
chore: 同步前端子模块指针(合并审批表单视图重渲染崩溃修复)
23e2040
含 flow-frontend d32ae63:createFormInstance 是 hook 工厂,表单实例不可用
useMemo 缓存,否则重渲染时 hook 数量变化会抛
`Cannot read properties of undefined (reading 'length')`。
@xlorne
Update flow-frontend to latest main
f00791a
@xlorne
Update flow-frontend to latest main
1c13577
@xlorne
xlorne merged commit aae2f8f into main Nov 12, 2026
4 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@codecov

codecov Bot commented Nov 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 76.53061% with 46 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.58%. Comparing base (3766d75) to head (1c13577).
⚠️ Report is 76 commits behind head on main.

Files with missing lines Patch % Lines
...dingapi/flow/action/actions/ReduceAuditAction.java 76.19% 14 Missing and 11 partials ⚠️
.../codingapi/flow/action/actions/AddAuditAction.java 71.42% 3 Missing and 3 partials ⚠️
...in/java/com/codingapi/flow/node/BaseAuditNode.java 71.42% 2 Missing and 2 partials ⚠️
.../com/codingapi/flow/pojo/response/FlowContent.java 86.95% 1 Missing and 2 partials ⚠️
.../com/codingapi/flow/action/actions/PassAction.java 83.33% 0 Missing and 2 partials ⚠️
...dingapi/flow/exception/FlowExecutionException.java 75.00% 2 Missing ⚠️
...java/com/codingapi/flow/manager/ActionManager.java 33.33% 1 Missing and 1 partial ⚠️
...om/codingapi/flow/manager/NodeStrategyManager.java 80.00% 1 Missing ⚠️
...ain/java/com/codingapi/flow/record/FlowRecord.java 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main     #267      +/-   ##
============================================
+ Coverage     74.45%   74.58%   +0.13%     
- Complexity     1806     1871      +65     
============================================
  Files           236      238       +2     
  Lines          7484     7670     +186     
  Branches        861      895      +34     
============================================
+ Hits           5572     5721     +149     
- Misses         1490     1510      +20     
- Partials        422      439      +17     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@xlorne
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.