When a workflow hits a prompt step the execution stays in status running. The Executions list therefore shows it exactly like any other running job, and the only way to discover that it is blocked on a human is to open the detail modal. The Status Filter dropdown offers a Waiting option and CSS exists for .status.waiting, but the server never emits a waiting status, so the filter always returns "No executions match your filters".
Where
server.jsexecutePromptStep() and POST /api/executions – status stays running while _executionPrompts holds a resolver.
public/index.htmlrenderFilteredExecutions() / <select id="statusFilter"> – waiting option with nothing to match.
GET /api/executions list endpoint does not expose waiting_for_input (only the detail endpoint does).
Impact
Prompts time out after 60 minutes (PROMPT_TIMEOUT_MS) and the workflow silently continues with null. Operators regularly miss prompts because nothing in the list or the header says "needs your attention".
Suggested fix
Include waiting_for_input: _executionPrompts.has(id) in the list response, or persist a waiting status.
Render a distinct [⏳ waiting] badge in the list and make the Waiting filter use it.
Show a persistent header banner / toast ("1 execution awaiting input") on execution_prompt broadcasts even when the modal is closed.
## Overview
When a workflow hits a `prompt` step the execution stays in status `running`. The Executions list therefore shows it exactly like any other running job, and the only way to discover that it is blocked on a human is to open the detail modal. The Status Filter dropdown offers a **Waiting** option and CSS exists for `.status.waiting`, but the server never emits a `waiting` status, so the filter always returns "No executions match your filters".
## Where
- `server.js` `executePromptStep()` and `POST /api/executions` – status stays `running` while `_executionPrompts` holds a resolver.
- `public/index.html` `renderFilteredExecutions()` / `<select id="statusFilter">` – `waiting` option with nothing to match.
- `GET /api/executions` list endpoint does not expose `waiting_for_input` (only the detail endpoint does).
## Impact
Prompts time out after 60 minutes (`PROMPT_TIMEOUT_MS`) and the workflow silently continues with `null`. Operators regularly miss prompts because nothing in the list or the header says "needs your attention".
## Suggested fix
- Include `waiting_for_input: _executionPrompts.has(id)` in the list response, or persist a `waiting` status.
- Render a distinct `[⏳ waiting]` badge in the list and make the Waiting filter use it.
- Show a persistent header banner / toast ("1 execution awaiting input") on `execution_prompt` broadcasts even when the modal is closed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Overview
When a workflow hits a
promptstep the execution stays in statusrunning. The Executions list therefore shows it exactly like any other running job, and the only way to discover that it is blocked on a human is to open the detail modal. The Status Filter dropdown offers a Waiting option and CSS exists for.status.waiting, but the server never emits awaitingstatus, so the filter always returns "No executions match your filters".Where
server.jsexecutePromptStep()andPOST /api/executions– status staysrunningwhile_executionPromptsholds a resolver.public/index.htmlrenderFilteredExecutions()/<select id="statusFilter">–waitingoption with nothing to match.GET /api/executionslist endpoint does not exposewaiting_for_input(only the detail endpoint does).Impact
Prompts time out after 60 minutes (
PROMPT_TIMEOUT_MS) and the workflow silently continues withnull. Operators regularly miss prompts because nothing in the list or the header says "needs your attention".Suggested fix
waiting_for_input: _executionPrompts.has(id)in the list response, or persist awaitingstatus.[⏳ waiting]badge in the list and make the Waiting filter use it.execution_promptbroadcasts even when the modal is closed.