-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat: restore tool protocol setting for user override #10460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This restores the ability for users to override the tool call protocol in the Advanced Settings. This is useful for OpenAI-compatible models (like Qwen3 and Kimi2) that do not handle native tool calling well. Changes: - Updated resolveToolProtocol.ts to respect user toolProtocol preference - Re-added Tool Call Protocol dropdown in Advanced Settings (ApiOptions.tsx) - Updated tests to reflect new behavior Fixes #10459
Review complete. No issues found. Summary:
Latest commit review (d30b3b4): Added null check for Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
|
This is hugely needed @roomote can you fix broken test? |
Fixed the |
|
roo-cline:test: @roomote |
Fixed the reported test failures. All local tests pass. |
…eference behavior
|
The XML logic is going to be removed. Keeping two tool calling architectures massively increases complexity. Every fix, every feature, every tool-related issue forces Roo to reason about two completely different execution paths. That slows development, increases bugs, and makes it harder to move Roo forward. It also guarantees that XML users would slowly get stuck with an increasingly outdated experience as improvements land only in the native path. https://blog.roocode.com/p/sorry-we-didnt-listen-sooner-native |
Related GitHub Issue
Closes: #10459
Roo Code Task Context (Optional)
This PR was created by Roomote to address Issue #10459.
Description
This PR restores the Tool Call Protocol setting that was removed in PR #10281. The setting allows users to override the default tool protocol from Native to XML for models that do not handle native tool calling well (e.g., OpenAI-compatible models like Qwen3 and Kimi2).
Changes:
resolveToolProtocol.tsto respect usertoolProtocolpreference when explicitly setApiOptions.tsxPrecedence order:
providerSettings.toolProtocol) - allows users to force XMLTest Procedure
cd src && npx vitest run utils/__tests__/resolveToolProtocol.spec.ts)Pre-Submission Checklist
Screenshots / Videos
N/A - Settings UI change using existing translation strings
Documentation Updates
Additional Notes
This PR attempts to address Issue #10459. Feedback and guidance are welcome.
The translations for the Tool Call Protocol setting already existed in the codebase (settings.json lines 740-747), so no new translations were needed.
Get in Touch
Roomote Bot