- {blockers.length > 0 - ? isStalled - ? stalledLeafBlockers.length > 1 - ? <>Work on this task is blocked by {blockerLabel}, but the chain is stalled in review without a clear next step. Resolve the stalled reviews below or remove them as blockers.> - : <>Work on this task is blocked by {blockerLabel}, but the chain is stalled in review without a clear next step. Resolve the stalled review below or remove it as a blocker.> - : <>Work on this task is blocked by {blockerLabel} until {blockers.length === 1 ? "it is" : "they are"} complete. Comments still wake the assignee for questions or triage.> - : <>Work on this task is blocked until it is moved back to todo. Comments still wake the assignee for questions or triage.>} -
+ {showNeedsAttentionNoBlockers ? ( + <> ++ This task is blocked but the system has no live next step. +
+
+ Earlier blockers resolved, and no recovery path or scheduled retry is active. The assignee
+ needs to either move it back to{" "}
+
+ todo
+ {" "}
+ so a fresh run is queued, or add a real blocker if work genuinely can't proceed.
+
+ Some ancestor blockers are still covered by active work — see the "Ultimately waiting on" row + below. +
+ ) : null} + > + ) : ( ++ {blockers.length > 0 + ? isStalled + ? stalledLeafBlockers.length > 1 + ? <>Work on this task is blocked by {blockerLabel}, but the chain is stalled in review without a clear next step. Resolve the stalled reviews below or remove them as blockers.> + : <>Work on this task is blocked by {blockerLabel}, but the chain is stalled in review without a clear next step. Resolve the stalled review below or remove it as a blocker.> + : <>Work on this task is blocked by {blockerLabel} until {blockers.length === 1 ? "it is" : "they are"} complete. Comments still wake the assignee for questions or triage.> + : <>Work on this task is blocked until it is moved back to todo. Comments still wake the assignee for questions or triage.>} +
+ )} {blockers.length > 0 ? (