情况:
8 个调查任务全部 done ✅(findings-arch/quality/tests/docs/cli/deps/ci/perf 都已产出)
但合成任务 task-3e92a2 仍是 pending,从未启动
根因: 合成任务的 dependsOn 用的是逻辑名(olive-review-arch、olive-review-quality…),而实际 task id 是 task-872342、task-951c9d… 两者对不上。所以依赖永远无法判定为"已满足",合成任务一直卡在 pending 不触发。
为什么我没收到通知: 只有合成任务带 notifyLead: true。它没跑,所以没有通知发给我——这就是我没主动推进的原因。8 个子任务都是 notifyLead: false,完成时不会通知 Lead。
这正好又是一个可观测性的真实案例:依赖名映射错误导致静默卡死,且无人被通知。
我现在去推 Director 触发合成任务:已通知 Director 推进。
回答你的问题:
我没收到通知 —— 因为唯一设了 notifyLead: true 的是合成任务,而它根本没启动。8 个子任务都是 notifyLead: false,完成时静默不通知。
为什么没推进 —— 合成任务卡在 pending:它的 dependsOn 用的是逻辑名(olive-review-arch 等),和实际 task id(task-872342 等)对不上,依赖判定永远不满足,所以从未触发。
我已经让 Director 修正依赖映射或直接 spawn 合成 worker(8 份 findings 已全部落盘)。
额外的产品反馈(给你这个作者): 这是一个很真实的可观测性缺陷案例——
依赖用逻辑名 vs 实际 id 不一致时静默失败:declare_tasks 应该校验 dependsOn 引用的 id 是否真实存在,对悬空依赖(dangling dependency)报错或警告,而不是让任务永久卡死。
全员 notifyLead: false 的任务链没有兜底通知:如果一批任务全部完成但下游被阻塞,Lead 完全无感知。建议提供"任务卡死/无人推进"的检测或定时巡检。
情况:
8 个调查任务全部 done ✅(findings-arch/quality/tests/docs/cli/deps/ci/perf 都已产出)
但合成任务 task-3e92a2 仍是 pending,从未启动
根因: 合成任务的 dependsOn 用的是逻辑名(olive-review-arch、olive-review-quality…),而实际 task id 是 task-872342、task-951c9d… 两者对不上。所以依赖永远无法判定为"已满足",合成任务一直卡在 pending 不触发。
为什么我没收到通知: 只有合成任务带 notifyLead: true。它没跑,所以没有通知发给我——这就是我没主动推进的原因。8 个子任务都是 notifyLead: false,完成时不会通知 Lead。
这正好又是一个可观测性的真实案例:依赖名映射错误导致静默卡死,且无人被通知。
我现在去推 Director 触发合成任务:已通知 Director 推进。
回答你的问题:
我没收到通知 —— 因为唯一设了 notifyLead: true 的是合成任务,而它根本没启动。8 个子任务都是 notifyLead: false,完成时静默不通知。
为什么没推进 —— 合成任务卡在 pending:它的 dependsOn 用的是逻辑名(olive-review-arch 等),和实际 task id(task-872342 等)对不上,依赖判定永远不满足,所以从未触发。
我已经让 Director 修正依赖映射或直接 spawn 合成 worker(8 份 findings 已全部落盘)。
额外的产品反馈(给你这个作者): 这是一个很真实的可观测性缺陷案例——
依赖用逻辑名 vs 实际 id 不一致时静默失败:declare_tasks 应该校验 dependsOn 引用的 id 是否真实存在,对悬空依赖(dangling dependency)报错或警告,而不是让任务永久卡死。
全员 notifyLead: false 的任务链没有兜底通知:如果一批任务全部完成但下游被阻塞,Lead 完全无感知。建议提供"任务卡死/无人推进"的检测或定时巡检。