Cross-thread orchestration cannot resolve pending request_user_input
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- rust
- Domain
- ai-infra-agents, backend-api-design
Research direction
Start by tracing the shipped cross-thread orchestration surface and the app-server request_user_input response lifecycle named in the issue. Use the acceptance criteria to define completion: an authorized coordinator resolves one valid pending request, rejects invalid or stale targets, records both-task attribution, emits serverRequest/resolved, and leaves ordinary messages non-resolving.
Written by the indexing model from the issue text.
Description
Summary
Codex Desktop cross-thread tools can send text to another task, but they cannot resolve a structured request_user_input that is already pending in that task.
For example, task B can be blocked in waitingOnUserInput. Task A can call send_message_to_thread with text that exactly matches one of the displayed choices, but the message is only delivered as text. It does not answer the pending tool request, and task B remains blocked until the user opens that task and clicks the control.
This makes durable task orchestration stop at every structured input gate, even when the user has explicitly authorized task A to coordinate task B.
Requested native capability
Add a first-party, permissioned cross-thread operation for structured input responses. Possible shapes:
respond_to_thread_user_input(thread_id, request_id, answers); or- a typed response mode on
send_message_to_thread.
The thread-management surface must also expose enough pending-request metadata for the coordinator to select the exact request and valid options.
This is not a request to treat ordinary prose as approval. A structured response must:
- target one exact thread and pending request;
- use the request's declared answer schema;
- reject stale, completed, or mismatched requests;
- preserve normal user and thread permission boundaries;
- produce an audit record in both tasks;
- emit the normal
serverRequest/resolvedlifecycle event; - allow the blocked target turn to continue without requiring manual navigation.
Acceptance criteria
- Task B enters
waitingOnUserInputwith a two-optionrequest_user_input. - An authorized task A can inspect the pending request and submit one valid option through a typed cross-thread API.
- The exact request resolves and task B continues.
- Sending the same words as an ordinary message does not implicitly resolve or authorize anything.
- Wrong-thread, wrong-request, invalid-option, duplicate, and stale responses fail clearly.
- The UI shows who answered and from which task.
Related issues
These are adjacent but do not provide this capability:
- #36843 proposes typed cross-thread events and authority metadata, but not resolution of a pending structured input request.
- #23664 covers visibility of child approval prompts.
- #31565 covers unanswerable delegated MCP approval elicitations.
- #13289 covers subagents becoming stuck on
request_user_input.
The missing piece is a native bridge between the shipped cross-thread orchestration surface and the app-server's structured request_user_input response lifecycle.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·