Let foreground user follow-ups revise paused Goals safely - #186
Open
ByBrawe wants to merge 18 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A paused Goal only treats a narrow
devam et/continuemessage as lifecycle control. A substantial foreground user follow-up (including long multi-item requirements) remains ordinary chat, so work can move forward while the durable Goal contract stays paused/stale.Historical user session snapshots show this repeatedly: completed/newly requested work remains behind a paused Goal, stale Todo state, or a manual
/goal resume//goal editboundary.Design
opencode_goal_revise_from_userwithextendandreplacemodes; the model cannot supply replacement text of its own.extendpreserves the current objective and appends the exact human follow-up;replaceuses that exact message as the new objective./goal resumepath.budget_limitedorusage_limitedstates.Coverage
Adds regressions for a 100-line exact user follow-up, extend/replace behavior, single-use authorization, fresh Todo planning, stale-turn mutation blocking, natural resume staying same-revision, and budget/provider limit fail-closed behavior.
Rationale
This follows the stronger parts of current agent UX: user follow-ups can redirect task execution, while queue/steer/replace semantics remain explicit and plans are rebuilt when scope materially changes. The host—not the model—remains authoritative for which exact user text can alter the Goal contract.