Skip to content

Conversation

@CaitlynByrne
Copy link

Summary

  • Agents can now request structured human input when they encounter genuine blockers (API keys, design choices, external configs)
  • The request is displayed in the UI with a dynamic form, and the human's response is stored and made available when the agent resumes
  • Full stack implementation spanning database, MCP server, API, orchestrator, and UI (21 files changed, 1 new component)

Key changes

  • Database: 3 new columns (needs_human_input, human_input_request, human_input_response) with migration
  • MCP: New feature_request_human_input tool + guards on existing tools
  • API: New resolve-human-input endpoint, 4th feature bucket
  • Orchestrator: Skip needs_human_input features in scheduling
  • Progress: 4-tuple return from count_passing_tests
  • WebSocket: needs_human_input count in progress messages
  • UI: Conditional 4th Kanban column, HumanInputForm component, amber status indicators, dependency graph support

Test plan

  • Start the agent, verify features needing human input show in a 4th "Blocked" Kanban column
  • Submit human input via the form and verify the feature resumes
  • Verify dependency graph renders blocked features with amber indicators
  • Confirm orchestrator skips blocked features and continues with others
  • Run ruff check . and cd ui && npm run build to verify lint/type checks pass

🤖 Generated with Claude Code

Agents can now request structured human input when they encounter
genuine blockers (API keys, design choices, external configs). The
request is displayed in the UI with a dynamic form, and the human's
response is stored and made available when the agent resumes.

Changes span 21 files + 1 new component:
- Database: 3 new columns (needs_human_input, human_input_request,
  human_input_response) with migration
- MCP: new feature_request_human_input tool + guards on existing tools
- API: new resolve-human-input endpoint, 4th feature bucket
- Orchestrator: skip needs_human_input features in scheduling
- Progress: 4-tuple return from count_passing_tests
- WebSocket: needs_human_input count in progress messages
- UI: conditional 4th Kanban column, HumanInputForm component,
  amber status indicators, dependency graph support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant