Commit graph

6502 commits

Author SHA1 Message Date
Roo Code
6327187458 feat: Support XML tool call fallback when using native tool protocol
When native tool protocol is enabled, some models may still output XML-formatted
tool calls in their text stream instead of using the native tool_call chunks.
This change adds an XML fallback parser that runs alongside the native protocol
handler to detect and parse these XML tool calls.

The implementation:
1. Initializes an XML fallback parser when in native protocol mode
2. Feeds text chunks to the fallback parser during streaming
3. After stream completes, if no native tool_call chunks were received but
   the XML fallback parser found tool calls, uses those parsed blocks instead

This ensures tool calls are properly detected and executed regardless of whether
the model outputs them in native or XML format.

Fixes #10325
2025-12-24 09:32:01 +00:00
github-actions[bot]
1e71015e54
Changeset version bump (#10317)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-23 15:13:13 -08:00
Matt Rubens
5c7939becd
chore: add changeset for v3.37.1 (#10316) 2025-12-23 15:09:27 -08:00
Bruno Bergher
57cafa535a
ux: Provider-centric signup (#10306)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-23 14:59:29 -08:00
Hannes Rudolph
6afc59b928
fix(openai): send native tool definitions by default (#10314)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-23 15:57:18 -07:00
Hannes Rudolph
dfa7c357c2
fix(task): drain queued messages while waiting for ask (#10315) 2025-12-23 15:40:41 -07:00
Hannes Rudolph
53e1ff0058
fix: preserve reasoning_details shape to prevent malformed responses (#10313) 2025-12-23 14:58:35 -07:00
Hannes Rudolph
ded6486a46
feat: enable mergeToolResultText for all OpenAI-compatible providers (#10299) 2025-12-23 14:19:33 -07:00
Hannes Rudolph
9b99890c35
feat(prompts): strengthen native tool-use guidance (#10311) 2025-12-23 14:13:40 -07:00
John Richmond
40812dcb64
Release: v1.95.0 (#10309)
chore: bump version to v1.95.0
2025-12-23 10:21:55 -08:00
Hannes Rudolph
0f3df0e932
feat: add grace retry for empty assistant messages (#10297)
Implements grace retry error handling for 'no assistant messages' API
errors, following the same pattern as PR #10196 for 'no tools used'.

- Add consecutiveNoAssistantMessagesCount counter to Task.ts
- First failure: silent retry (grace retry)
- After 2+ consecutive failures: show MODEL_NO_ASSISTANT_MESSAGES error
- Add UI handling in ChatRow.tsx with ErrorRow component
- Add localized strings to all 18 locale files
- Add comprehensive tests for the grace retry behavior
2025-12-23 07:02:40 -08:00
Hannes Rudolph
71f312b488
feat: enable mergeToolResultText for Roo Code Cloud provider (#10301) 2025-12-23 00:57:55 -07:00
github-actions[bot]
30090de2e9
Changeset version bump (#10296)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-22 21:06:54 -08:00
Matt Rubens
dd44f8fb8c
Release v3.37.0 (#10295)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-22 21:03:15 -08:00
Hannes Rudolph
89e9261367
fix: preserve reasoning_content in condense summary for DeepSeek-reasoner (#10292) 2025-12-22 21:25:17 -07:00
Hannes Rudolph
a8ac2ced02
fix: emit tool_call_end events in BaseOpenAiCompatibleProvider (#10293) 2025-12-22 21:25:07 -07:00
Hannes Rudolph
eeaf33ce4e
refactor(zai): merge environment_details into tool result instead of system message (#10289) 2025-12-22 20:20:29 -07:00
Hannes Rudolph
f21ec127b1
fix: add CRLF line ending normalization to search_replace and search_and_replace tools (#10288)
- Normalize file content to LF after reading to ensure consistent matching
- Normalize search/replace strings to handle CRLF from model output
- Add comprehensive CRLF normalization tests for both tools
- Consistent with existing edit_file tool behavior
2025-12-22 19:19:24 -08:00
Hannes Rudolph
e7c1851a8b
feat(minimax): move environment_details to system message for thinking models (#10284) 2025-12-22 19:59:42 -07:00
Hannes Rudolph
bd78a63844
feat(evals): add message log deduper utility (#10286) 2025-12-22 19:42:38 -07:00
Hannes Rudolph
44a7ba5072
fix: improve reasoning_details accumulation and serialization (#10285) 2025-12-22 19:33:02 -07:00
Hannes Rudolph
518a4402a7
feat(zai): add GLM-4.7 model with thinking mode support (#10282)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 18:01:16 -08:00
Daniel
d00d9edec5
feat: deprecate XML tool protocol selection, force native for new tasks (#10281)
- Disable tool protocol selector UI in ApiOptions.tsx
- Force native protocol for all new tasks in resolveToolProtocol()
- Keep locked protocol support for resumed tasks that used XML
- Remove models without supportsNativeTools: true from providers:
  - baseten.ts: removed 6 models
  - bedrock.ts: removed 2 embedding models
  - featherless.ts: removed 3 models, updated default
  - groq.ts: removed 5 models
  - sambanova.ts: removed 2 models
  - vertex.ts: removed 7 models
  - vercel-ai-gateway.ts: added supportsNativeTools: true
- Update tests to expect native format output
2025-12-22 17:49:50 -08:00
Daniel
9b06a98b85
fix: emit tool_call_end events in OpenAI handler when streaming ends (#10280) 2025-12-22 17:00:58 -05:00
Hannes Rudolph
f462eeb80c
fix(chutes): add graceful fallback for model parsing (#10279)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-22 12:59:13 -07:00
Daniel
7fae76ec86
fix: move array-specific properties into anyOf variant in normalizeToolSchema (#10276)
* fix: move array-specific properties into anyOf variant in normalizeToolSchema

Fixes read_file tool schema rejection with GPT-5-mini which requires
items property to be inside the { type: 'array' } variant when using
anyOf for nullable arrays.

Resolves ROO-262

* refactor: extract array-specific properties constant and helper function
2025-12-22 11:01:43 -08:00
Daniel
6b141fbb25
fix: disable strict mode for MCP tools to preserve optional parameters (#10220)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 13:21:31 -05:00
Daniel
529e0d7a94
fix: enable Requesty refresh models with credentials (#10273) 2025-12-22 12:43:42 -05:00
roomote[bot]
e3cd031f17
feat: remove parallel_tool_calls parameter from litellm provider (#10274)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 09:11:47 -08:00
roomote[bot]
a148b0b7f3
feat: add Cloud Team page with comprehensive team features (#10267)
* feat: add Cloud Team page with features and pricing integration

* Copy tweaks

* Visual tweaks

* Content adjustments

* Update apps/web-roo-code/src/app/cloud/team/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-22 16:52:00 +00:00
Hannes Rudolph
08eed65aff
fix(evals): add missing packages/core to Dockerfile.runner (#10272) 2025-12-22 08:42:49 -08:00
Chris Estreich
2bb375534c
Add custom tool definitions to @roo-code/types (#10233)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-21 15:15:42 -08:00
Chris Estreich
3beeac6f58
Remove the "test" custom tools (#10255)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-21 14:19:25 -08:00
Chris Estreich
5ae4d4d635
Custom tool calling (#10083) 2025-12-21 12:43:06 -08:00
github-actions[bot]
78dc34498b
Changeset version bump (#10225)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-19 22:58:47 -05:00
Matt Rubens
d2814da574
Release v3.36.16 (#10224) 2025-12-19 22:54:57 -05:00
Hannes Rudolph
5c798a9877
fix: normalize tool schemas for VS Code LM API to fix error 400 (#10221) 2025-12-19 17:36:59 -07:00
github-actions[bot]
f7adc4b1cf
Changeset version bump (#10219)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-19 12:41:05 -08:00
Chris Estreich
ccbb25d62b
Release v3.36.15 (#10218) 2025-12-19 12:34:19 -08:00
Daniel
bade9326c6
fix: enable native tool calls for Requesty provider (ROO-235) (#10211) 2025-12-19 12:28:26 -08:00
Daniel
aabee0fb0b
fix: force additionalProperties false for strict mode compatibility (#10210) 2025-12-19 12:18:38 -08:00
Hannes Rudolph
397328cb53
feat: merge native tool defaults for openai-compatible provider (#10213) 2025-12-19 12:18:10 -08:00
Bruno Bergher
bb358fb8f9
ux: add downloadable error diagnostics from chat errors (#10188)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-19 11:50:40 -08:00
Bruno Bergher
6e2b85214e
ux: improve API error handling and visibility (#10204)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-12-19 11:38:56 -08:00
Hannes Rudolph
61903f9588
feat(providers): add native tool calling support to LM Studio and Qwen-Code (#10208) 2025-12-19 12:50:09 -05:00
Hannes Rudolph
3f1f8be2d1
feat(vertex): add 1M context window beta support for Claude Sonnet 4 (#10209) 2025-12-19 12:24:45 -05:00
Patrick Decat
2dec78ccb4
fix: refresh models button not flushing cache properly (#9870) 2025-12-19 12:03:50 -05:00
github-actions[bot]
3c05cae722
Changeset version bump (#10201)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 18:52:16 -08:00
Chris Estreich
4b9d9b7c09
Release v3.36.14 (#10200) 2025-12-18 17:48:44 -08:00
Daniel
c3a4d14b6b
fix: strip unsupported JSON Schema format values for OpenAI compatibility (#10198) 2025-12-18 16:57:06 -08:00