Appearance
Rust 更新日志
当前版本 v1.0.12 · crates.io(
jeeflow-core/jeeflow-repository-sqlx/jeeflow-persist/jeeflow-facade四 crate,独立1.0.x版本线)· 仓库 mldong/jeeflow-rust · Releases 版本日期以本仓 git tag 为准;跨语言对齐脉络见 更新记录总览。
Rust 引擎(jeeflow-rust)为联邦第六个成员,独立版本线,API 对齐统一规范。2026-08-25 首发 crates.io v1.0.5(v1.0.0–v1.0.4 为 2026-08-24 联调期 tag,因 crates.io tag 已占而跳过;crate 间依赖
version="1.0.0"caret 兼容,1.0.5 直接可用)。发布通道:四 crate 拓扑序cargo publish(core → repository-sqlx → persist → facade),CI Release 由 tag push 触发。
v1.0.12 — 2026-09-10
- 修复 salvo S15「指定下一节点处理人」双缺口:① facade
collect_static_candidate_actors静态候选误收节点assignee——assignee 是默认处理人(运行时落task.actor_id)非候选池成员,Java/Python/Go 参考实现均只取 candidateUsers+candidateGroups;误收致 candidatePage 短路 user_search 全量搜索,弹窗只剩默认处理人。删 assignee 收集分支。② coreresolve_assignee优先级1 只取字符串形态,前端 UserSelectmultiple提交 JSON 数组取不到 → 落 assignee 字面量、指定不生效;对齐 Python_resolve_actors双形态(数组逐项 + 字符串逗号分隔)。 - 测试 双回归单测负向红/修复绿;workspace 全绿 core 129 / facade 96 / persist 33 / sqlx 28(
Cargo.lock顺带从过期 1.0.8 修正)。 - 集成栈 mldong-salvo-jeeflow pin 1.0.11 → 1.0.12(真拉 crates.io,31 单测绿);干净重建候选
c5871ce6全 gate(baseL2 11/11 + gate26 26/26 + wf-L3 18 passed/1 skipped 含 S15 绿 + base-L3 零新增)后原样晋升生产,生产冒烟 wf-L3 全绿,公网 demo 抽查健康。坑:crates.io api 端点对默认 curl UA 返回 403(Fastly 拦截),回拉验证需带自定义 UA 或直拉 static.crates.io。
v1.0.11 — 2026-09-09
- 修复 五语言 SQL 仓聚合水合:
find_instance_by_id(jeeflow-repository-sqlx)此前硬编码tasks: vec![],门面processInstance/detail的 tasks/activeTaskList 恒空(gate26 L2-12 门禁真根因,非会签语义)。二次查wf_process_task(内联查询 + 自由异步 fntasks_from_rows:批查 actor、保行序;不套block_on避免嵌套block_in_place)水合任务副本,语义对齐 JavafindTasksByInstanceId/ PHPPdoProcessRepository/ C#FindTasksInternalAsync(聚合水合口径)。update_instance本就不级联任务(仅实例行),withdraw 逐任务update_task路径不变。memory 仓本就水合(基线正确,未动);引擎核心会签语义未动。 - 测试 T0 新增
test_mysql_i110_find_instance_by_id_hydrates_tasks(真实 MySQL,独立 9008xx id 段——C8 占 9004xx,cargo test并行线程共用 160 DB 会撞主键);workspace 全绿:core 129 / facade 94 / persist 33 / sqlx 28。 - 集成栈 mldong-salvo-jeeflow pin 1.0.10 → 1.0.11 随 P3 收口(base+1,进行中)。
v1.0.10 — 2026-09-06
- 修复 分页双重分页:facade 6 个分页 action(processDefine/page、processInstance/page、ccList、todoList、doneList、processDesign/page)的
m_过滤 + 分页切片下推仓储(memory/sqlx 消费PageQuery.filters,core 新增filter_sql构造器 + 列白名单,对齐 java pushdown 与仓内processSurrogate/page正确形态)。两大主症状消除:recordCount= 总记录数(此前虚低为本页行数)、pageNum≥2不再恒空;m_过滤下total/rows口径自洽。 - 测试 新增多页/翻页/
m_过滤跨页单测;T0cargo test --workspace(core 129 / facade 94 / persist 33 / sqlx 27)+ T1 mysql-smoke(连 160)全绿;公网八语言processDefine/page pageNum=2&pageSize=3同参抽检全部15/5/3(修复前 rust3/1/0)。 - 集成栈 mldong-salvo pin 1.0.9 → 1.0.10 随本批收口(集成仓按 base+1 模式 squash 回薄壳单 commit
10c8248,cargo build+28 单测绿后 push feature/jeeflow)。
v1.0.9 — 2026-09-05(crates.io 拓扑序发布于 09-05,tag 09-04)
- 修复.3 兑现:
execute_and_jump_to_end_async(submitType=2 驳回路径)在 update + abandon 后直接返回Ok(Vec::new()),未 fire 任何事件——违反 spec 合并派「办结+拒绝都 fireProcessInstanceEnd(2)」。补 fireProcessInstanceEnd(对齐内联办结路径),salvo 集成层监听器ProcessInstanceEnd→ 发起人 NOTICE「流程已办结」由此恢复;新增回归测试(红证 +cargo test --workspace绿)。
v1.0.8 — 2026-09-04
- 新增 stats 契约对齐 A–E(wire 裸数组 / stateIn 生效 / trend 缺参报错 / define avg 口径 / define group 4 列映射,与 Java 参考实现逐字段一致)。
- 新增
CC_CREATE事件补齐 =CcCreate(4)(P0 抄送知会事件,六语言枚举对齐)。 - 修复 publisher 单监听器异常兜底(P2,一个监听器 panic 不打断其余监听器,六语言同语义)。
v1.0.7 — 2026-09-01(crates.io 发布成功,tag 09-02)
- 修复「wf 流程消息写路径缺失 / messagePage 恒空」的 salvo 栈引擎侧根因:
ProcessTaskStart事件在create_task/create_node_tasks的 3 处落库前 fire(此时task_id=0),监听器find_task(0)落空 → 静默丢,新待办 TODO 从不发出。统一改为在persist_tasks落库(save_task+add_task_actor之后)fire 一次(每任务每操作一次)。与 JavaCreateTaskHandler1.8.20 / go/python/node 1.8.23「落库后 fire」同一 批次对齐。 - 测试 新增回归
test_task_start_event_fires_after_persist:红证 + 绿证(cargo test --workspace253 tests 0 fail)。 - 集成栈 mldong-salvo pin 1.0.6 → 1.0.7 随本批收口(
Cargo.toml+Cargo.lock重锁,cargo check全绿)。
v1.0.6 — 2026-08-30
- 修复
processSurrogate/remove兼容{ids}批量:此前只读单数id→ 报「缺少id参数」,「我的委托」页删除不可用。改用本仓现成助手arg_ids()(数组优先 / 单 id 兼容 / 含 null 报非法)。 - 测试 A 档 2 例 + 6 类负向载荷;T0
cargo test --workspacecore 116 / facade 71 / persist 33 / sqlx 27 全绿;T1SKIP_MYSQL=0(连 160)真库绿 + 假主机反证(管道有效)。 - ⚠️ 负向文案仍为 Rust 既有的「缺少id参数」,与其余五语言「id 缺失或非法」存在 drift(已记)。
v1.0.5 — 2026-08-25(crates.io 首发)
首个 crates.io 正式版本。
- 发布 四 crate 拓扑序发布,T0
cargo test --workspace245 全绿 + T1 mysql-smoke 27 全绿(真库 M1–M4)。 - 五语言对齐缺口闭环(bootX / salvo 集成反馈):
- resume mergeVars:
execute_task/jump/jump_to_end三路径以实例variables为底、本次提交覆盖(对齐 Go),发起时f_*表单字段 resume 可达。 - 组织取人 7 个
AssignmentHandler实装:Applicant / Dept(×main)Leader / TaskRoleAssignee 等,注册时捕获 User/OrgUserProvider,空结果跳过节点(对齐 Java)。 - FormFieldAssignee 查找序:
f_前缀优先 → 裸名回落 →_NN后缀去后缀(对齐 Go/Java)。 - 发起抄送
f_ccActors数组/字符串双形态解析(对齐 Go)。 - facade
args_to_flow_data数组/对象原样透传(旧兜底to_string()把多选 ApiSelect 的 JSON 数组字符串化——L3 S6 根因)。 - 雪花 EPOCH 对齐 1288834974657(2010-11-04,同 Go/Java/Python/Node 联邦 ID 空间)。
- persist 语义对齐 Java/Go:状态字段探测错误传播、information_schema CAST、create_time 落库(8 处 INSERT 补审计列)。
- resume mergeVars:
- SPEC 语言指南
languages/rust/(快速开始 / 引擎 API / 流程定义 / SPI / persist / salvo 集成 / demo)随本版本入库文档站。 - 集成验收:mldong-salvo(Salvo 0.76 + SeaORM 1.1)薄集成栈一键部署 L0–L2 19/19 + L3 14 过 / 1 固定 skip(S12)/ 0 失败。
v1.0.0–v1.0.4 — 2026-08-24
- 联调期内部 tag(UI 契约对齐、种子联调、startAndExecute/submitType 分发),未发布 crates.io,被 v1.0.5 取代。