深挖审计(2026-07-26): - `AssignmentStatusRunning` 仅存在于读侧投影 `assignmentStatusFromPending`(agent_team_guard.go:226),**生产代码从不写入**;唯一状态写路径是 `UpdateAssignmentDispatchBinding`(pending→dispatched)。PR #1376 已临时放宽 CompleteAssignment 接受 dispatched 解除阻塞,但真正的设计问题未解:**谁在何时把 assignment 标记为 running**(edge 回调?dispatch ack?)。 - `hasTimedOutActiveAssignment`(guard.go:239)只用于拒绝新路由,**超时 assignment 本身永不转 failed**,无终结扫描。 - `TeamRunStatusCancelled`(model/agent_team.go:67)全仓库仅常量声明,无任何写入路径。 - `TeamEventRunStarted` 生产代码从不 append(StartTeamRun 只发 bus 事件),run.go 的对应重放分支是死代码。 - `pending_review` 无过期扫描(app/background.go 调度器只扫 pending_agent_tasks);`plan_expired` 在 hub-server 零命中。 需产品/架构决策后再动代码。
深挖审计(2026-07-26):
AssignmentStatusRunning仅存在于读侧投影assignmentStatusFromPending(agent_team_guard.go:226),生产代码从不写入;唯一状态写路径是UpdateAssignmentDispatchBinding(pending→dispatched)。PR fix(hub): agentteam 状态机 — 审阅投影恢复/终态守卫/assignment 可达性 #1376 已临时放宽 CompleteAssignment 接受 dispatched 解除阻塞,但真正的设计问题未解:谁在何时把 assignment 标记为 running(edge 回调?dispatch ack?)。hasTimedOutActiveAssignment(guard.go:239)只用于拒绝新路由,超时 assignment 本身永不转 failed,无终结扫描。TeamRunStatusCancelled(model/agent_team.go:67)全仓库仅常量声明,无任何写入路径。TeamEventRunStarted生产代码从不 append(StartTeamRun 只发 bus 事件),run.go 的对应重放分支是死代码。pending_review无过期扫描(app/background.go 调度器只扫 pending_agent_tasks);plan_expired在 hub-server 零命中。需产品/架构决策后再动代码。