Skip to content

UX: Differentiate system vs agent vs human-created blockers visually #487

@frankbria

Description

@frankbria

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

  1. Add created_by field to Blocker model: system | agent | human
  2. Display origin badge on each blocker card (e.g., "System", "Agent", "Manual")
  3. 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."
  4. Use different icon/color per origin type

Acceptance Criteria

  • Origin badge visible on every blocker
  • Badge uses distinct color/icon per origin type
  • Blocker detail text adapts to origin type
  • Recovery instructions match the origin
  • API returns created_by field in blocker response

Affected Components

web-ui/src/components/blockers/BlockerResolutionView.tsx, web-ui/src/app/blockers/page.tsx

Metadata

Metadata

Assignees

No one assigned

    Labels

    phase-6.3Phase 6.3: UX/UI design improvements for user journey through Think→Build→Prove→Shippriority:lowux

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions