Skip to content

fix: keep Copilot Claude prompts user-final across continuation turns#16921

Open
sryantich wants to merge 3 commits intoanomalyco:devfrom
sryantich:fix/copilot-claude-user-final-prompts
Open

fix: keep Copilot Claude prompts user-final across continuation turns#16921
sryantich wants to merge 3 commits intoanomalyco:devfrom
sryantich:fix/copilot-claude-user-final-prompts

Conversation

@sryantich
Copy link

@sryantich sryantich commented Mar 10, 2026

Issue for this PR

Closes #12337

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Issue #12337 reports GitHub Copilot Claude / Opus 4.6 failing with "This model does not support assistant message prefill. The conversation must end with a user message."

In opencode, that can happen when the autonomous loop continues after an assistant response or tool phase and the prompt sent to Copilot Claude still ends on a non-user turn. The max-step path could also reintroduce the same shape by appending an assistant-final message.

This change fixes that in two places. The session prompt loop now keeps Anthropic-style and Copilot Claude prompts user-final when it needs to continue, including the max-step edge case. ProviderTransform also adds a narrow last-line repair for providers that require user-final prompts, so Copilot Claude does not receive an assistant-final or tool-final transcript even if one slips through earlier prompt construction. The tests cover the prompt helper, the provider transform, and the Copilot message serializer.

How did you verify your code works?

  • cd packages/opencode && bun test --timeout 30000
  • cd packages/opencode && bun run typecheck

Screenshots / recordings

Not a UI change.

Checklist

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

@github-actions github-actions bot added needs:compliance This means the issue will auto-close after 2 hours. needs:issue labels Mar 10, 2026
@github-actions
Copy link
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions github-actions bot removed needs:issue needs:compliance This means the issue will auto-close after 2 hours. labels Mar 10, 2026
@github-actions
Copy link
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

@sryantich sryantich requested a review from adamdotdevin as a code owner March 10, 2026 19:07
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.

Github Copilot / Opus 4.6 Error

1 participant