Skip to content

fix(goals): resume a runtime-stopped goal when the user writes again - #6439

Open
Hmbown wants to merge 1 commit into
mainfrom
fix/goal-resume-after-runtime-stop
Open

Hmbown wants to merge 1 commit into
mainfrom
fix/goal-resume-after-runtime-stop

Conversation

@Hmbown

@Hmbown Hmbown commented Sep 23, 2026

Copy link
Copy Markdown
Owner

No-Issue: 0.10.1 release-readiness recovery and first-call tool work, found in dogfooding; no public issue tracks it.

When a goal continuation turn failed, timed out or never started, the
Engine marked the goal Blocked. The next message from the person still
arrived with the host's Blocked status, so it ran as an ordinary
goalless turn: the goal stayed blocked on an obsolete runtime blocker
and the model's progress updates were refused ("requires an active
goal") with no way forward except a manual /goal resume.

The Engine now records whether a blocker came from the runtime
(block_goal_continuation) or was reported by the model/user
(update_goal / mark_blocked). A message from the person (ExternalUser
provenance) naming the same objective resumes a runtime-blocked goal as
a new control revision and publishes GoalUpdated plus a status line.
Reported blockers stay until an explicit resume; runtime and automated
inputs never resume anything. Known limitation: the origin is
session-local, so a restored Blocked goal still needs /goal resume.

Evidence: 150 passed, 0 failed (13,108 skipped) on the goal selection,
including the new engine test. With the resume hook disabled, that test
fails (0 passed, 1 failed: "the continue turn ran as a resumed goal
revision"). TUI all-target/all-feature Clippy with CI flags and fmt
passed.

🤖 Generated with Claude Code

When a goal continuation turn failed, timed out or never started, the
Engine marked the goal Blocked. The next message from the person still
arrived with the host's Blocked status, so it ran as an ordinary
goalless turn: the goal stayed blocked on an obsolete runtime blocker
and the model's progress updates were refused ("requires an active
goal") with no way forward except a manual /goal resume.

The Engine now records whether a blocker came from the runtime
(block_goal_continuation) or was reported by the model/user
(update_goal / mark_blocked). A message from the person (ExternalUser
provenance) naming the same objective resumes a runtime-blocked goal as
a new control revision and publishes GoalUpdated plus a status line.
Reported blockers stay until an explicit resume; runtime and automated
inputs never resume anything. Known limitation: the origin is
session-local, so a restored Blocked goal still needs /goal resume.

Evidence: 150 passed, 0 failed (13,108 skipped) on the `goal` selection,
including the new engine test. With the resume hook disabled, that test
fails (0 passed, 1 failed: "the continue turn ran as a resumed goal
revision"). TUI all-target/all-feature Clippy with CI flags and fmt
passed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 23, 2026 15:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants