fix: keep completed reviewed actions terminal on replay - #37
Merged
Merged
Conversation
Contributor
|
Needs one change before merge. The new test in |
kvnloo
force-pushed
the
fix/completed-action-replay
branch
from
September 26, 2026 01:59
3f1ddc1 to
82ff35b
Compare
kvnloo
force-pushed
the
fix/completed-action-replay
branch
from
September 26, 2026 02:11
da854c2 to
205cc38
Compare
davidmckayv
approved these changes
Sep 26, 2026
davidmckayv
left a comment
Contributor
There was a problem hiding this comment.
The missing Intelligence test setting is fixed. The merge conflict preserves both this replay regression and the browser-evidence regression from #29. Local lint, typecheck, all 16 focused tests, and the server build pass; merging is gated on the current CI run.
markhiltonapps
pushed a commit
to markhiltonapps/openmuse
that referenced
this pull request
Sep 27, 2026
Brings in five fixes from CopilotKit/OpenMuse main: - keep browser evidence identity separate from session identity (CopilotKit#29) - suggest the openai/ prefix for gateway model IDs (CopilotKit#55) - alert on every failure streak of a watch, not just the first (CopilotKit#60) - show the browser as offline when its worker is unreachable (CopilotKit#64) - keep completed reviewed actions terminal on replay (CopilotKit#37) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfTjvNDS5CdhPPisYxjwAv
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.
What changed
Fixes #36.
The action layer already treats an idempotency replay as the same logical action and can return an existing
succeededproposal. The task/model layer previously treated that returned proposal as though it were a fresh review, reinstallingactionIdand setting the task back towaiting_approval.This patch preserves the terminal receipt:
AgentService.prepare()returns an already-succeeded proposal without checkpointing it back into the task.prepare_email/prepare_eventtreat a succeeded replay as an existing receipt, checkpointapprovalResult, keepactionIdclear, and allow the model run to continue.awaiting_reviewbehavior is unchanged.The regression forces the model to call the exact same
prepare_eventafter the reviewed action has succeeded, then verifies there is still exactly one action, the task never ends in a fresh approval state, and the existing receipt is visible to the continuing model run.Verification
mainat82ff35b.tests/actions.test.tsalready pins that an idempotent proposal replay returns the completed action without a second provider preparation.Integration limits
Fixture-only model/action regression; no live Google write was performed.
AI-use note: I used an AI assistant to trace the reviewed-action state machine, draft the regression and patch, and review the final diff. I verified the replay behavior against the existing action-level idempotency regression before opening this PR.