Repository navigation
Releases
v0.11.2
Release of oekit/workflow v0.11.2(annotated tag,由 release_train 门禁后打点)。
变更记录
- fix: Run 家族六个入口 nil ctx 统一兜底 orBackground——pipe/switch 无提示空指针与 parallel/async context 包报错两种死法归一(#114)。对齐 #98 Future.Wait 的簇内口径。
关联问题单:workflow#114。
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.35.0
github.com/oekit/logx v0.10.0
github.com/oekit/pkg v0.47.1v0.11.1
Release of oekit/workflow v0.11.1(annotated tag,由 release_train 门禁后打点)。
变更记录
- Go 1.26 现代化清扫;依赖地板对齐 concurrency v0.34.1。纯等价重构+地板追平,行为零变更。
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.34.1
github.com/oekit/logx v0.10.0
github.com/oekit/pkg v0.46.0v0.11.0
Release of oekit/workflow v0.11.0(annotated tag,由 release_train 门禁后打点)。
变更记录
- 行为缺陷三连与样板收编:四类 Flow 的注册/快照/传播样板抽取 flowBase/flowHooks 公共基座,公开 API 形状不变(#94);AsyncFlow 三入口的 #82 豁免判据与 #35 取消兜底收敛为 errAggregator 单源,Run 判据对齐文档承诺的调用方 context(#96);panic→error 转换 5 处统一改走 pkg errors.Recovered 单源,panic 值是 error 时 errors.Is/As 身份透传、栈保留在文本与 Stack 字段(#97);Future.Wait(nil ctx) 按簇内口径兜底 context.Background,不再 nil 接口 panic(#98);HookManager.Add 加锁同步,Run 期间注册 Hook 不再是数据竞争,契约注释同步改写(#99)。Go 地板抬至 1.26.0;显式依赖 pkg v0.45.0,logx 抬至 v0.10.0。
关联问题单:workflow#94、workflow#96、workflow#97、workflow#98、workflow#99。
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.33.0
github.com/oekit/logx v0.10.0
github.com/oekit/pkg v0.45.0v0.10.1
Release of oekit/workflow v0.10.1(annotated tag,由 release_train 门禁后打点)。
变更记录
⚠️ 误贴 tag,按「接受为最新」处理:v0.10.1 这个版本号系批量发版脚本串仓取号误贴(network 的版本号打进了本仓,与 matrix-tools#290 幽灵 tag v0.2.12 同源 bug),tag 钉在本仓 main HEAD(8aff3af)。protect-release-tags 禁删,版本线接受 v0.4.0 → v0.10.1,后续跟版从 v0.10.1 起。本段补记该 tag 实际包含的内容(v0.4.0 之后的文档同步轮):
- docs: 矩阵表同步——DESC 31 合 1(config/tarx/resumable 收编,pkg#329/#326/#361)(#90)
- docs(agents): AGENTS.md 首行 DESC 同步矩阵真相源(#88)
- build: 矩阵依赖地板对齐(v0.33.0)(#87)
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.33.0
github.com/oekit/logx v0.9.2v0.4.0
Release of oekit/workflow v0.4.0(annotated tag,由 release_train 门禁后打点)。
变更记录
审计清扫轮(#80–#84)。定版 v0.4.0 而非 v0.3.13:#82 补充新增公开 API——结果三态哨兵 ErrSkipped(区分「未执行」,errors.Is 判定);另有 #84 的 After 回放顺序契约变更(0.x minor 允许 breaking)。
- fix(async): Run 的取消后收尾 drain 加上界——ctx 取消后最多再等 runCancelDrainGrace(500ms)的收尾窗口以浮出真实错误(#61 语义不回退),超时即按契约返回取消错误(#80)——此前收尾是裸
<-future.done,要等全部任务 goroutine 收尾,不合作任务(不响应 ctx 的阻塞)挂多久 Run 就挂多久,「阻塞直到全部完成或 context 取消」契约的「context 取消」一侧失效
关联问题单:#80。
- fix(hook): After 与 Before 逐 hook 配对——Before 短路后未执行 Before 的 Hook 不再收到 After,且 After 循环逐 hook recover(#81)——此前 After 无条件遍历全部 hook,注册序 [鉴权(拒绝), 追踪] 时追踪 Hook 收到无配对的 After,计数/追踪型 Hook 计数漂移、span 关闭错位;任一 hook 的 After panic 还会截断后续 hook 的 After,现 panic 聚合为 error 与任务错误 join(#62 口径不变)
关联问题单:#81。
- fix(async): 取消类错误豁免判据改测调用方 ctx——兄弟失败砍掉的任务不再记 Error:nil,报 context.Canceled 与「确实跑完」可区分;任务自身的超时错误不再被兄弟失败连带吞掉(#82)——此前四处判据测的是框架派生、会被框架在任务失败时 cancel 的 childCtx,退化成「此刻有没有兄弟失败过」,doc「绝不吞错」形态被吞;行为变更:RunAsyncWithResults 中被砍/未执行任务的 Error 从 nil 变为 context.Canceled 类错误(0.x breaking,消费方按
Error: nil = 成功判定的口径收紧)。新增公开哨兵ErrSkipped:未开始即被跳过的任务错误链携带该哨兵(fmt.Errorf多%w与 ctx 取消错误双链,errors.Is判定)——三态「成功 / 失败 / 未执行」显式可辨,Error: nil回归「确实成功」单义;调用方 ctx 主动取消的豁免语义不变(#45,ErrSkipped 仅在调用方 ctx 健康时出现)
关联问题单:#82。
- fix(pipe): Run 期间 SetHookManager 不再穿透嵌套快照契约——子流程本次执行以父流程快照的 manager 运行,同一 Run 不再混用两套 hook(#83)——此前 SetHookManager 立即递归写穿子流程的 manager 字段,而子流程稍后启动的执行读自己字段的快照,#46「本次 Run 继续使用快照中的旧 manager」的承诺只对直接层成立(AsyncFlow/SwitchFlow 同构,一并修复)
关联问题单:#83。
- BREAKING fix(hook): After 改按逆注册序执行——AOP 洋葱配对恢复,span/事务类嵌套 hook 不再交叉关闭(#84)——此前 Before 正序、After 也正序,外层 hook 的收尾先于内层执行(TracingHook 先关 span 导致 AuditHook 事件丢失/挂错 parent,事务型 hook 的 COMMIT 先于内层收尾);文档原明写「按注册序调用 After」属契约设计缺陷,本版改为逆序并同步 hook_manager.go/hook.go/doc.go 文案(0.x breaking:依赖 After 正序的消费方需反转收尾逻辑)
关联问题单:#84。
现代语言特性:fmt.Errorf 多 %w(ErrSkipped 与 ctx 错误双链)、errors.Join(hook panic 聚合);本轮回归测试的 #80/#82 用例定序全部改为屏障/事件序(started 信号 + gate channel),不再 sleep 猜时序。
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.32.0
github.com/oekit/logx v0.9.2v0.3.12
Release of oekit/workflow v0.3.12(annotated tag,由 release_train 门禁后打点)。
变更记录
-
- build: 依赖地板对齐(第二轮发版后 floor sync,无代码变更)
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.32.0
github.com/oekit/logx v0.9.2v0.3.11
Release of oekit/workflow v0.3.11(annotated tag,由 release_train 门禁后打点)。
变更记录
-
- build: 依赖地板对齐(floor sync,无代码变更)
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.31.2
github.com/oekit/logx v0.9.1v0.2.12
Release of oekit/workflow v0.2.12(annotated tag,由 release_train 门禁后打点)。
变更记录见 CHANGELOG.md。
v0.3.10
v0.3.9
Release of oekit/workflow v0.3.9(annotated tag,由 release_train 门禁后打点)。
变更记录
- build: 依赖地板对齐——本版把 oekit 依赖地板抬到各依赖当前最新已发布版本(matrix-tools/scripts/align_floors.py 维护轮)
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.28.4
github.com/oekit/logx v0.8.10