# 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。