Skip to content

fix(core): serialize v2 session reverts - #37752

Closed
PrisonBreakPB wants to merge 1 commit into
anomalyco:devfrom
PrisonBreakPB:session-revert-lock
Closed

fix(core): serialize v2 session reverts#37752
PrisonBreakPB wants to merge 1 commit into
anomalyco:devfrom
PrisonBreakPB:session-revert-lock

Conversation

@PrisonBreakPB

Copy link
Copy Markdown

Issue for this PR

Closes #37751

Type of change

  • Bug fix

What does this PR do?

Prevent a session runner from resuming while a revert is staged.
Also commit a staged revert before admitting a new prompt.

How did you verify your code works?

  • bun test session-run-coordinator.test.ts session-prompt.test.ts session-runner.test.ts session-runner-recorded.test.ts
  • bun typecheck in packages/core

Screenshots / recordings

Not applicable.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@github-actions

Copy link
Copy Markdown
Contributor

Automated PR Cleanup

Thank you for contributing to opencode.

Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions.

This PR was closed because it matched the following cleanup criteria:

  • The PR was created more than 1 month ago
  • The PR had fewer than 2 positive reactions
  • Positive reactions are counted as thumbs-up, heart, celebration, or rocket reactions on the PR

PRs created within the last month are not affected by this cleanup.

If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate.

Thanks again for taking the time to contribute.

@github-actions github-actions Bot closed this Aug 19, 2026
CasualDeveloper added a commit to CasualDeveloper/opencode that referenced this pull request Sep 2, 2026
Serialize per-session revert and admission changes, commit staged
reverts atomically with their replacement admission, preserve queued
work across reverts, and compare undo boundaries chronologically
instead of by message ID. Plugin activation completes before session
changes are blocked so plugin setup can still admit its own input.

Includes the anomalyco#42461 boundary fix; supersedes that PR.
Closes anomalyco#37751. Continues the approach from anomalyco#37752.
CasualDeveloper added a commit to CasualDeveloper/opencode that referenced this pull request Sep 3, 2026
Serialize per-session revert and admission changes, commit staged
reverts atomically with their replacement admission, preserve queued
work across reverts, and compare undo boundaries chronologically
instead of by message ID. Plugin activation completes before session
changes are blocked so plugin setup can still admit its own input.

Includes the anomalyco#42461 boundary fix; supersedes that PR.
Closes anomalyco#37751. Continues the approach from anomalyco#37752.
CasualDeveloper added a commit to CasualDeveloper/opencode that referenced this pull request Sep 5, 2026
Serialize per-session revert and admission changes, commit staged
reverts atomically with their replacement admission, preserve queued
work across reverts, and compare undo boundaries chronologically
instead of by message ID. Plugin activation completes before session
changes are blocked so plugin setup can still admit its own input.

Includes the anomalyco#42461 boundary fix; supersedes that PR.
Closes anomalyco#37751. Continues the approach from anomalyco#37752.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

V2 session revert can race with session execution

1 participant