Agent mindlessly polls long-running work instead of checking progress or advancing independent tasks
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
When Codex starts a long-running build or deployment, it can fall into a low-value polling loop: repeatedly re-observing substantially unchanged UI state instead of checking the authoritative progress source and using the wait interval for independent work that is already available.
This is not only a token-efficiency problem. It is an orchestration problem: the agent has enough context to identify useful parallel work, but behaves as though polling is the whole task.
Reproduction
- Ask Codex Desktop to work through a nested Windows VDI.
- Have it start a container build or deployment in a web dashboard.
- Leave other independent work available, such as:
- inspect the build/deployment status or logs through the most direct available surface;
- prepare the next code change;
- inspect repository abstractions;
- add tests;
- validate a previously deployed endpoint.
- Observe Codex repeatedly capture or inspect the same waiting screen.
- Interrupt Codex and point out that it could check progress or do something else.
- In the observed case, the container build had already completed by the time of the interruption.
Actual behavior
- Codex repeatedly polls an effectively unchanged surface.
- It does not switch to an authoritative progress source when one is available.
- It does not advance independent queued work during the wait.
- It may miss that the asynchronous operation has already completed.
- User intervention is required to redirect it from waiting to useful work.
Expected behavior
Codex should treat a long-running operation as asynchronous work:
- Prefer an authoritative, structured progress surface over repeated screenshots of an unchanged page.
- Choose a sensible/event-driven wait or a long checkpoint interval instead of short model-driven polling.
- While the operation is pending, execute safe independent work already in scope.
- Re-check the asynchronous operation after a meaningful event, elapsed checkpoint, or when the independent work finishes.
- If no useful independent work exists, remain efficiently idle rather than repeatedly reasoning about the same state.
- Detect and act on completion promptly.
A useful orchestration rule would be:
Before polling again, ask whether the pending operation has an authoritative status source and whether any independent in-scope task can make progress. Poll only if neither path can advance the task.
Why this is distinct from related issues
- #13733 covers repeated background-process polling and full-history token cost.
- #40299 covers unreliable subagent management and aggressive waiting.
- #33485 covers waiting-status UI spam.
This report is narrower: the model fails to schedule useful independent work and fails to switch to the best progress source while a long-running build/deployment is pending.
Environment
- Surface: Codex Desktop
- Host: Windows
- Target: nested Windows VDI
- Workload: container build followed by deployment and endpoint validation
- Observed: 2026-08-26
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.
Research direction
No implementation files or tests are named. Start by reproducing the Codex Desktop scenario with a long-running container build or deployment, then trace the orchestration path for pending work; done means it uses an authoritative status source, advances safe independent work, and avoids redundant polling.
Written by the indexing model from the issue text.
Assessment
- Domain
- ai, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100