Problem
BlockerResolutionView shows all blockers uniformly with no visual distinction between blockers created by: the system (stall timeout), the AI agent (missing file, stuck loop), or a human user.
Impact
Users apply the same recovery strategy to all blockers, but the correct approach differs by origin. A stall timeout needs different handling than a missing dependency blocker.
Recommendation
- Add
created_by field to Blocker model: system | agent | human
- Display origin badge on each blocker card (e.g., "System", "Agent", "Manual")
- Show different guidance text based on origin:
- System: "Agent was inactive for 5 min. Answer to continue or retry execution."
- Agent: "Agent requested information. Provide the answer below."
- Human: "Manually created blocker. Resolve and mark answered."
- Use different icon/color per origin type
Acceptance Criteria
Affected Components
web-ui/src/components/blockers/BlockerResolutionView.tsx, web-ui/src/app/blockers/page.tsx
Problem
BlockerResolutionViewshows all blockers uniformly with no visual distinction between blockers created by: the system (stall timeout), the AI agent (missing file, stuck loop), or a human user.Impact
Users apply the same recovery strategy to all blockers, but the correct approach differs by origin. A stall timeout needs different handling than a missing dependency blocker.
Recommendation
created_byfield to Blocker model:system | agent | humanAcceptance Criteria
created_byfield in blocker responseAffected Components
web-ui/src/components/blockers/BlockerResolutionView.tsx,web-ui/src/app/blockers/page.tsx