Goal mode: agent cannot reconfigure or resume a paused goal after explicit user instruction
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Codex version
Codex 0.147.0, using the desktop app with a remote Linux workspace.
Deficiency
An agent cannot recover a paused Goal when the user explicitly asks it to change the objective and restart the Goal.
The available goal tools create an impossible lifecycle state:
get_goalreports the existing Goal aspausedand unfinished.create_goalrefuses a replacement with:cannot create a new goal because this thread has an unfinished goal; complete the existing goal first.update_goalonly acceptscompleteorblocked; it explicitly cannot edit, cancel, pause, or resume a Goal.- Marking the Goal complete would be false because its objective was not achieved.
- Marking it blocked would also be false and still would not provide an edit/replacement path.
In this incident, the user explicitly instructed the agent to change a recurring monitoring Goal from reports at :00/:30 to :05/:35, extend it to 10:05, and restart it. The agent could not perform that authorized change. The user ultimately had to delete the Goal manually before the agent could create the corrected Goal.
Reproduction
- Create an active Goal with a time-based objective.
- Pause the Goal.
- Ask the agent to change the objective and restart it.
- Observe that
get_goalstill returnspaused. - Attempt
create_goalwith the corrected objective; it fails because the paused Goal is unfinished. - Observe that
update_goalexposes no valid operation for the requested edit/restart.
Expected behavior
After explicit user authorization, the agent should have one supported, atomic recovery path, such as:
- update the objective and resume the existing Goal; or
- cancel/supersede the paused Goal and create its replacement.
The API should preserve the strict safeguards around falsely marking goals complete or blocked. It should not force the agent to misuse those states or invent a parallel shell-based scheduler while waiting for the user to operate UI controls.
For future-time monitoring Goals, the platform should also provide a wait/wake mechanism that does not consume active turns or require long-running polling commands.
Related issues
- #31185: Goal objective cannot be edited by the agent after creation
- #31783: Expose Goal controls outside the interactive TUI
- #28144: Add wait/wake support for goals without spending tokens
- #28923: Goal future-time waits spin instead of handing off to heartbeat automation
This report is specifically about the combined recovery dead-end after an explicit user request to reconfigure and restart a paused Goal.
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
Begin with the get_goal, create_goal, and update_goal tool entry points and trace how paused, unfinished Goals are handled. Compare the six-step reproduction with existing Goal tests, then define done as an authorized atomic edit-and-resume or cancel-and-replace path that preserves the complete and blocked safeguards.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- ai-infra-agents, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100