Skip to content

ledger: lanes that halt on an external decision record 'completed' — need a 'blocked' terminal state with reason #1154

Description

@agents-squads

Observed (2026-07-17)

A lane correctly halted mid-plan on an external gate (a required vendor component turned out to be behind a license key; standing directive forbids hand-rolling a copy). It ended its turn cleanly — and the ledger recorded a plain completed with zero artifacts, indistinguishable from the zero-deliverable false-success class (#1130/#1149) and invisible on the board as anything needing attention.

Fix

  • Terminal classification: run ends with no pushed branch/PR AND the final message declares a blocker → status=blocked + blocked_reason (from the result text), not completed.
  • blocked rows surface in squads status/board as needs-attention (amber), and in the kanban's stall/triage lane (squads-app#159 — this is exactly its 'catch up with tasks that don't move' requirement).
  • Harness nudge: a lane declaring a blocker should also comment it on the issue before ending (tonight the orchestrator had to transplant the finding from the stream log to the issue by hand).

Builds on #1149's classifier seam. Public-repo hygiene: no internal vendor/pricing details in this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions