Files
orbit/docs/reports/phase-5-task-source.md

33 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P4/P5 流程任务来源追踪回归
日期:2026-09-18。本批补齐既有GetTaskSource路由和独立SDK的WORKFLOW种类,保留P4/P5完整历史、分页、信号审计和独立恢复示例等剩余范围。
## 实现与边界
- 任务可追溯到所属流程、固定定义版本、逻辑步骤、创建时的激活身份及代次;POLL同时返回业务轮编号和该任务对应的轮次记录。后续发布、流程结束或人工恢复不改指旧任务来源。
- TASK/POLL人工恢复任务保持WORKFLOW种类,workflow.retry_of只返回直接旧任务。恢复父任务须为同一步骤的前一激活,POLL还须属于同一业务轮;新一业务轮没有恢复父任务。
- tasks:read和任务队列范围只授予有限来源引用,不扩展成整个流程/其他队列/定义/管理权限。来源不返回业务输入、结果或完整定义。
- 查询显式核对命名空间、门控、固定定义摘要/策略、步骤处理器契约、正反向任务归属及直接父任务。所有者丢失、跨来源种类或缺失关联返回错误,不推测DIRECT;独立人工重试的父任务也校验反向关联。
- 所有查询沿已有主键、任务唯一键及步骤代次唯一键定位;不递归展开历史,不引入运行器父资源锁,不改变状态、额度或审计,不进入派发路径。新增SDK及响应字段均有中文注释,无新增持久化字段、迁移或外键。
## 验证
环境:darwin/arm64、Go 1.27.1、Docker MySQL 8.4.10;一次性隔离数据库、真实Orbit二进制与独立SDK。
| 验证 | 实际结果 |
| --- | --- |
| 基础检查 | make fmt/test/vet/build通过,包含竞态、静态检查和各独立模块构建 |
| 来源与恢复专项 | 存储包33.366秒通过;普通/计划/独立人工重试来源、TASK/POLL跨激活恢复及新来源损坏/权限场景 |
| HTTP与独立SDK专项 | 包30.638秒通过;五组实例场景29.23秒,含TASK恢复、POLL原间隔下一轮和人工恢复同一业务轮的来源读取 |
| 可运行示例 | workflow例子SUCCEEDED;workflow_sources_verified=3、fixed_version=v1,三个任务全部确认并排空 |
| 最终完整隔离回归 | scripts/test-mysql.sh退出0;存储210.939秒、流程进程恢复48.982秒、流程SDK24.214秒(五组实例22.69秒)、最终进程故障组97.183秒;20个SDK示例及2个业务模块全部通过,包含独立人工重试父任务反向关联拒绝;一次性环境已清理 |
| 模型与文档 | 305个直接持久化字段中文注释完整;实际MySQL为v22,外键0、业务字段缺COMMENT为0;1011个本地链接及62个JSON示例检查通过 |
专项验证固定版本发布后不变、仅有单队列tasks:read也能查当前任务来源、读取完整流程/定义仍拒绝、跨命名空间/队列拒绝;逐项注入错误所有者、门控、处理器版本、激活所属流程/步骤、任务反向引用、步骤类型、固定版本及策略错误;测试同时出现TASK/POLL关联、POLL父任务错误轮次及所有者丢失。真实恢复链验证业务第1轮→恢复第1轮→第2轮→再次恢复第2轮,激活与业务轮分别计数,原历史可读。
源码:[来源存储](../../internal/storage/mysql/task_workflow_source.go)、[关联损坏及权限测试](../../internal/storage/mysql/task_workflow_source_integration_test.go)、[TASK恢复](../../internal/storage/mysql/workflow_recovery_integration_test.go)、[POLL恢复](../../internal/storage/mysql/workflow_poll_recovery_integration_test.go)、[SDK协议验证](../../sdk/go/task_source_test.go)、[真实SDK链路](../../sdk/go/workflow_instances_integration_test.go)、[运行例子](../../examples/workflow/main.go)。完整复现入口:`make integration`,见[隔离脚本](../../scripts/test-mysql.sh)。
## 继续交付
本接口是单任务固定来源,不等同于流程完整历史浏览。实例筛选分页、历史激活/轮次/信号读取、信号资源审计和更多独立恢复示例继续按[计划](../08-development-plan.md)推进;随后核对P4/P5原功能范围,开展P6/P7监控、运维、容量及生产故障验收。本机回归不证明生产MySQL复制、跨故障域可用性或实际RPO/RTO。