Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1389 commits
Select commit Hold shift + click to select a range
e092e77
Fix: Correct TODO list display order in chat view (ROO-107) (#9991)
roomote[bot] Dec 10, 2025
5a4315f
fix: prevent premature rawChunkTracker clearing for MCP tools (#9993)
daniel-lxs Dec 10, 2025
fda020a
fix: filter out 429 rate limit errors from API error telemetry (#9987)
daniel-lxs Dec 10, 2025
2cd772c
Release v3.36.4 (#9994)
cte Dec 10, 2025
380a578
Changeset version bump (#9995)
github-actions[bot] Dec 10, 2025
1cf6ae6
feat(telemetry): add app version to exception captures and filter 402…
daniel-lxs Dec 10, 2025
f05dd59
Remove Glama provider (#9801)
hannesrudolph Dec 10, 2025
2a70a2e
@roo-code/types v1.90.0 (#9998)
cte Dec 10, 2025
483e70c
fix: apply versioned settings on nightly builds (#9997)
hannesrudolph Dec 10, 2025
0cbaed7
feat: add toggle for Enter key behavior in chat input (#10002)
hannesrudolph Dec 11, 2025
6a30d94
chore: remove list_code_definition_names tool (#10005)
hannesrudolph Dec 11, 2025
a1d3a43
Update roomotes.yml (#10008)
cte Dec 11, 2025
531eb95
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 11, 2025
f9cfc66
fix: add general API endpoints for Z.ai provider (#9894)
roomote[bot] Dec 11, 2025
47320dc
fix: handle empty Gemini responses and reasoning loops (#10007)
hannesrudolph Dec 11, 2025
8731709
fix: add missing tool_result blocks to prevent API errors (#10015)
daniel-lxs Dec 11, 2025
70704eb
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 11, 2025
51dbccf
feat: add gpt-5.2 model to openai-native provider (#10024)
hannesrudolph Dec 11, 2025
706e018
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 11, 2025
63e3625
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 11, 2025
3def1e8
test: update built-in commands count to 9
mini2s Dec 11, 2025
8a68b04
fix: filter orphaned tool_results when more results than tool_uses (#…
daniel-lxs Dec 11, 2025
526e195
Release v3.36.5 (#10029)
cte Dec 11, 2025
21c2d93
Changeset version bump (#10032)
github-actions[bot] Dec 11, 2025
c513df5
fix: merge settings and versionedSettings for Roo provider models (#1…
hannesrudolph Dec 11, 2025
7766b91
Revert "fix: merge settings and versionedSettings for Roo provider mo…
cte Dec 11, 2025
5072ff1
Revert the 3.6.5 release (we halted it) (#10036)
cte Dec 11, 2025
4dabd52
Release v3.36.5 (#10037)
cte Dec 11, 2025
f97b515
Changeset version bump (#10038)
github-actions[bot] Dec 11, 2025
bdce2cc
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 12, 2025
6ba0233
test: adjust terminal count limits in TerminalRegistry tests
mini2s Dec 12, 2025
2d1db85
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 12, 2025
8308cbd
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 12, 2025
495b5c6
ux: improve auto-approve timer visibility in follow-up suggestions (#…
brunobergher Dec 12, 2025
d976a9b
fix: cancel auto-approval timeout when user starts typing (#9937)
roomote[bot] Dec 12, 2025
f67c4cd
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 12, 2025
23a214c
fix: extract raw error message from OpenRouter metadata (#10039)
daniel-lxs Dec 12, 2025
ba7c553
feat: add tool alias support for model-specific tool customization (#…
daniel-lxs Dec 12, 2025
0f8fac9
fix: show tool protocol dropdown for LiteLLM provider (#10053)
daniel-lxs Dec 12, 2025
8da4d3d
feat: add WorkspaceTaskVisibility type for organization cloud setting…
roomote[bot] Dec 12, 2025
f60c14e
Release: v1.91.0 (#10055)
jr Dec 12, 2025
3521270
feat: sanitize MCP server/tool names for API compatibility (#10054)
daniel-lxs Dec 12, 2025
0742335
Release v3.36.6 (#10057)
cte Dec 12, 2025
4771de1
Changeset version bump (#10058)
github-actions[bot] Dec 12, 2025
a3b258a
fix: use JavaScript-based hover for checkpoint menu visibility (#10056)
hannesrudolph Dec 12, 2025
05e64dd
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 13, 2025
312fb62
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 13, 2025
1ae042d
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 13, 2025
0fbbe66
feat: remove auto-approve toggles for to-do and retry actions (#10062)
hannesrudolph Dec 14, 2025
3e0dbd1
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 14, 2025
e4b9568
feat(openrouter): add improvements to openrouter provider (#10082)
hannesrudolph Dec 14, 2025
1be8a99
feat: Add Amazon Nova 2 Lite model to Bedrock provider (#9830)
roomote[bot] Dec 14, 2025
9f3122f
feat: add AWS Bedrock service tier support (#9955)
roomote[bot] Dec 14, 2025
a80a74a
Capture more of OpenRouter's provider specific error details (#10073)
jr Dec 14, 2025
3254109
feat(web-evals): improve run logs and formatters (#10081)
hannesrudolph Dec 15, 2025
d2665c2
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 15, 2025
cd12313
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 15, 2025
afe4996
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 15, 2025
c713916
Move isToolAllowedForMode out of shared directory (#10089)
cte Dec 15, 2025
12d9fad
chore: add changeset for v3.36.7 (#10091)
mrubens Dec 15, 2025
1d4fc52
Changeset version bump (#10092)
github-actions[bot] Dec 15, 2025
1f3ab2b
fix: prevent duplicate MCP tools error by deduplicating servers at so…
daniel-lxs Dec 15, 2025
5929e26
feat: add metadata to error details dialog (#10050)
roomote[bot] Dec 15, 2025
1ff5d1d
web: Fixes link to provider pricing page (#10107)
brunobergher Dec 15, 2025
bf81fa7
feat(read-file): implement incremental token-budgeted file reading (#…
jr Dec 15, 2025
3502f41
Add config to control public sharing (#10105)
mrubens Dec 16, 2025
be894a6
Release: v1.92.0 (#10116)
mrubens Dec 16, 2025
a6caa55
Remove the description from bedrock service tiers (#10118)
mrubens Dec 16, 2025
8138c1b
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 16, 2025
ef3c88c
feat: remove strict ARN validation for Bedrock custom ARN users (#10110)
roomote[bot] Dec 16, 2025
69307ba
fix: prevent race condition from deleting wrong API messages (#10113)
hannesrudolph Dec 16, 2025
6619d46
feat(anthropic): enable native tools by default and add telemetry tra…
daniel-lxs Dec 16, 2025
a9a15b3
feat: enable native tools by default for multiple providers (#10059)
daniel-lxs Dec 16, 2025
eb249a0
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 16, 2025
596783d
Release v3.36.8 (#10119)
cte Dec 16, 2025
748004b
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 16, 2025
93bc8c4
fix: add additionalProperties: false to nested MCP tool schemas (#10109)
daniel-lxs Dec 16, 2025
a7b192a
fix: normalize tool call IDs for cross-provider compatibility via Ope…
daniel-lxs Dec 16, 2025
caf6142
feat: add full error details to streaming failure dialog (#10131)
roomote[bot] Dec 16, 2025
7ce329b
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 16, 2025
c7cdf83
fix: validate tool_result IDs in delegation resume flow (#10135)
daniel-lxs Dec 16, 2025
84c5d2f
feat(evals): improve evals UI with tool groups and duration fix (#10133)
hannesrudolph Dec 16, 2025
b4c6758
Changeset version bump (#10120)
github-actions[bot] Dec 16, 2025
6270c4b
Release v3.36.9 (#10138)
cte Dec 16, 2025
efef269
Changeset version bump (#10137)
github-actions[bot] Dec 16, 2025
f414ba4
fix: correct token counting for context truncation display (#9961)
hannesrudolph Dec 16, 2025
d274812
feat(deepseek): implement interleaved thinking mode for deepseek-reas…
hannesrudolph Dec 16, 2025
5eb4fe3
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 17, 2025
d7bd32b
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 17, 2025
2863b1c
Update next.js to ~15.2.8 (#10140)
jr Dec 17, 2025
f9997ba
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 17, 2025
343665f
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 17, 2025
970deea
fix(deepseek): preserve reasoning_content during tool call sequences …
hannesrudolph Dec 17, 2025
cc3bc35
feat: add gemini-3-flash-preview model (#10151)
hannesrudolph Dec 17, 2025
275ccf6
Release v3.36.10 (#10153)
mrubens Dec 17, 2025
752a950
Changeset version bump (#10154)
github-actions[bot] Dec 17, 2025
4693b9e
fix(bedrock): convert tool_result to XML text when native tools disab…
daniel-lxs Dec 17, 2025
ed631dc
fix: remove dots and colons from MCP tool names for Bedrock compatibi…
daniel-lxs Dec 17, 2025
bdf7d2a
fix: improve terminal process error handling and abort operation
mini2s Dec 17, 2025
65d1cde
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 17, 2025
affa5f2
fix(ROO-202): refresh Roo models cache with session token on auth sta…
daniel-lxs Dec 17, 2025
eac0d62
fix: support AWS GovCloud and China region ARNs in Bedrock provider (…
roomote[bot] Dec 17, 2025
9e9d779
feat: enable native tool calling by default for Z.ai models (#10158)
roomote[bot] Dec 17, 2025
0b86796
[feat] Claude Code Provider Native Tool Calling (#10077)
hannesrudolph Dec 17, 2025
aa3b4ae
fix: normalize MCP tool schemas for Bedrock and OpenAI strict mode (#…
daniel-lxs Dec 17, 2025
2a2411d
fix: enable native tools by default for OpenAI compatible provider (#…
daniel-lxs Dec 17, 2025
09552fa
Release v3.36.11 (#10161)
cte Dec 17, 2025
495664c
Changeset version bump (#10162)
github-actions[bot] Dec 17, 2025
45dbe4d
feat(telemetry): extract error messages from JSON payloads for better…
daniel-lxs Dec 17, 2025
f899de1
fix: add userAgentAppId to Bedrock embedder for code indexing (#10166)
roomote[bot] Dec 18, 2025
06c5c7f
feat: update OpenAI and Gemini tool preferences (#10170)
hannesrudolph Dec 18, 2025
50f28da
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 18, 2025
0bfdb97
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 18, 2025
cb2e53e
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 18, 2025
b64f09a
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 18, 2025
17b1680
Release v3.36.12 (#10181)
cte Dec 18, 2025
d376869
Changeset version bump (#10182)
github-actions[bot] Dec 18, 2025
3cb2c1d
Revert "Revert "feat: change defaultToolProtocol default from xml to …
mrubens Dec 18, 2025
d92d729
fix(litellm): merge default model info with router models for NTC sup…
daniel-lxs Dec 18, 2025
e84e334
Release: v1.93.0 (#10190)
cte Dec 18, 2025
157a097
feat(vscode-lm): add native tool support (#10191)
daniel-lxs Dec 18, 2025
8251170
feat: Replace edit_file tool alias with edit_file tool (#9983)
hannesrudolph Dec 18, 2025
3e0d9c6
feat: lock task tool protocol for consistent task resumption (#10192)
daniel-lxs Dec 18, 2025
3a2ad6b
feat(telemetry): add PostHog exception tracking for consecutive mista…
daniel-lxs Dec 18, 2025
7789b40
Release v3.36.13 (#10194)
cte Dec 18, 2025
b37b231
Changeset version bump (#10195)
github-actions[bot] Dec 18, 2025
e2d1599
feat: improve 'no tools used' error handling with grace retry (#10196)
hannesrudolph Dec 18, 2025
9c03476
feat(vertex): add native tool calling for Claude models on Vertex AI …
hannesrudolph Dec 19, 2025
c3a4d14
fix: strip unsupported JSON Schema format values for OpenAI compatibi…
daniel-lxs Dec 19, 2025
4b9d9b7
Release v3.36.14 (#10200)
cte Dec 19, 2025
3c05cae
Changeset version bump (#10201)
github-actions[bot] Dec 19, 2025
b67b1e8
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 19, 2025
bc50606
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 19, 2025
a475cd3
feat(telemetry): add telemetry event handling through webview messages
mini2s Dec 19, 2025
2dec78c
fix: refresh models button not flushing cache properly (#9870)
pdecat Dec 19, 2025
3f1f8be
feat(vertex): add 1M context window beta support for Claude Sonnet 4 …
hannesrudolph Dec 19, 2025
61903f9
feat(providers): add native tool calling support to LM Studio and Qwe…
hannesrudolph Dec 19, 2025
6e2b852
ux: improve API error handling and visibility (#10204)
brunobergher Dec 19, 2025
ae41af6
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 19, 2025
bb358fb
ux: add downloadable error diagnostics from chat errors (#10188)
brunobergher Dec 19, 2025
397328c
feat: merge native tool defaults for openai-compatible provider (#10213)
hannesrudolph Dec 19, 2025
aabee0f
fix: force additionalProperties false for strict mode compatibility (…
daniel-lxs Dec 19, 2025
bade932
fix: enable native tool calls for Requesty provider (ROO-235) (#10211)
daniel-lxs Dec 19, 2025
ccbb25d
Release v3.36.15 (#10218)
cte Dec 19, 2025
f7adc4b
Changeset version bump (#10219)
github-actions[bot] Dec 19, 2025
5c798a9
fix: normalize tool schemas for VS Code LM API to fix error 400 (#10221)
hannesrudolph Dec 20, 2025
d2814da
Release v3.36.16 (#10224)
mrubens Dec 20, 2025
78dc344
Changeset version bump (#10225)
github-actions[bot] Dec 20, 2025
6cf7be6
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 20, 2025
37765c8
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 20, 2025
f3ca7c4
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 21, 2025
5ae4d4d
Custom tool calling (#10083)
cte Dec 21, 2025
3beeac6
Remove the "test" custom tools (#10255)
cte Dec 21, 2025
2bb3755
Add custom tool definitions to @roo-code/types (#10233)
cte Dec 21, 2025
fb9245f
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 22, 2025
6b755ed
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 22, 2025
f23e9ac
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 22, 2025
08eed65
fix(evals): add missing packages/core to Dockerfile.runner (#10272)
hannesrudolph Dec 22, 2025
a148b0b
feat: add Cloud Team page with comprehensive team features (#10267)
roomote[bot] Dec 22, 2025
e3cd031
feat: remove parallel_tool_calls parameter from litellm provider (#10…
roomote[bot] Dec 22, 2025
c800c67
feat(build): add types package bundling and alias support
mini2s Dec 22, 2025
149e78e
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 22, 2025
a7d258b
update(settings): change default tool protocol to XML
mini2s Dec 22, 2025
529e0d7
fix: enable Requesty refresh models with credentials (#10273)
daniel-lxs Dec 22, 2025
6b141fb
fix: disable strict mode for MCP tools to preserve optional parameter…
daniel-lxs Dec 22, 2025
7fae76e
fix: move array-specific properties into anyOf variant in normalizeTo…
daniel-lxs Dec 22, 2025
24d988d
refactor(custom-tools): improve tool loading and instance consistency
mini2s Dec 22, 2025
a144a37
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 22, 2025
f462eeb
fix(chutes): add graceful fallback for model parsing (#10279)
hannesrudolph Dec 22, 2025
9b06a98
fix: emit tool_call_end events in OpenAI handler when streaming ends …
daniel-lxs Dec 22, 2025
0d3e81d
feat(core): add support for custom tool parsing in AssistantMessagePa…
mini2s Dec 23, 2025
2c5a4c8
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 23, 2025
d00d9ed
feat: deprecate XML tool protocol selection, force native for new tas…
daniel-lxs Dec 23, 2025
b37b387
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 23, 2025
518a440
feat(zai): add GLM-4.7 model with thinking mode support (#10282)
hannesrudolph Dec 23, 2025
44a7ba5
fix: improve reasoning_details accumulation and serialization (#10285)
hannesrudolph Dec 23, 2025
bd78a63
feat(evals): add message log deduper utility (#10286)
hannesrudolph Dec 23, 2025
e7c1851
feat(minimax): move environment_details to system message for thinkin…
hannesrudolph Dec 23, 2025
f21ec12
fix: add CRLF line ending normalization to search_replace and search_…
hannesrudolph Dec 23, 2025
eeaf33c
refactor(zai): merge environment_details into tool result instead of …
hannesrudolph Dec 23, 2025
edee332
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 23, 2025
2997566
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 23, 2025
061ae14
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 23, 2025
a8ac2ce
fix: emit tool_call_end events in BaseOpenAiCompatibleProvider (#10293)
hannesrudolph Dec 23, 2025
89e9261
fix: preserve reasoning_content in condense summary for DeepSeek-reas…
hannesrudolph Dec 23, 2025
dd44f8f
Release v3.37.0 (#10295)
mrubens Dec 23, 2025
30090de
Changeset version bump (#10296)
github-actions[bot] Dec 23, 2025
a7c1d24
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 23, 2025
71f312b
feat: enable mergeToolResultText for Roo Code Cloud provider (#10301)
hannesrudolph Dec 23, 2025
ddc0c01
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 23, 2025
044d502
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 23, 2025
0f3df0e
feat: add grace retry for empty assistant messages (#10297)
hannesrudolph Dec 23, 2025
40812dc
Release: v1.95.0 (#10309)
jr Dec 23, 2025
9b99890
feat(prompts): strengthen native tool-use guidance (#10311)
hannesrudolph Dec 23, 2025
ded6486
feat: enable mergeToolResultText for all OpenAI-compatible providers …
hannesrudolph Dec 23, 2025
53e1ff0
fix: preserve reasoning_details shape to prevent malformed responses …
hannesrudolph Dec 23, 2025
dfa7c35
fix(task): drain queued messages while waiting for ask (#10315)
hannesrudolph Dec 23, 2025
6afc59b
fix(openai): send native tool definitions by default (#10314)
hannesrudolph Dec 23, 2025
57cafa5
ux: Provider-centric signup (#10306)
brunobergher Dec 23, 2025
5c7939b
chore: add changeset for v3.37.1 (#10316)
mrubens Dec 23, 2025
1e71015
Changeset version bump (#10317)
github-actions[bot] Dec 23, 2025
efe97f7
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 24, 2025
d29555b
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 24, 2025
ae7d014
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 24, 2025
6d8be95
refactor: simplify tool protocol resolution logic
mini2s Dec 24, 2025
62a4ebf
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 25, 2025
02996f8
refactor: optimize stream rendering and file reading limits
mini2s Dec 25, 2025
ab0aff3
refactor(tools): simplify extractTextFromFile parameters
mini2s Dec 25, 2025
4a8f2bc
feat(chat): add tool protocol display to task header
mini2s Dec 25, 2025
e83f568
fix(test): respect user toolProtocol preference over model capabilities
mini2s Dec 25, 2025
66ef6d8
update(provider): update zgsm model handling and native tool protocol…
mini2s Dec 25, 2025
355f27b
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 25, 2025
446b7db
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 25, 2025
a07d28c
feat: remove OpenRouter Transforms feature (#10341)
roomote[bot] Dec 25, 2025
a510223
feat: remove simpleReadFileTool completely (#10254)
roomote[bot] Dec 25, 2025
8bce6cb
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 26, 2025
343d5e9
Add support for skills (#10335)
mrubens Dec 26, 2025
da4cf6d
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 26, 2025
c081410
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 26, 2025
6f16528
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 26, 2025
0d50ed6
Add support for npm packages and .env files to custom tools (#10336)
cte Dec 26, 2025
2eebf3c
fix: capture extended thinking signatures for tool use continuations …
daniel-lxs Dec 26, 2025
13370a2
feat: add optional mode field to slash command front matter (#10344)
roomote[bot] Dec 27, 2025
72c142b
refactor(core,webview): improve code review types and performance
mini2s Dec 27, 2025
41637d2
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 27, 2025
510af82
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 27, 2025
c61dd7a
Remove the mergeToolResultText in the Roo provider for now (#10359)
mrubens Dec 27, 2025
25f76ce
Revert "fix: capture extended thinking signatures for tool use contin…
mrubens Dec 27, 2025
5c5ddd3
Release v3.38.0 (#10361)
mrubens Dec 27, 2025
ba1dd3c
Changeset version bump (#10362)
github-actions[bot] Dec 27, 2025
7980cd3
fix: enforce maxConcurrentFileReads limit in read_file tool (#10363)
roomote[bot] Dec 27, 2025
c46532a
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 28, 2025
8cf3acc
refactor(zgsm): optimize native protocol handling and model ID usage
mini2s Dec 28, 2025
add06a2
docs: clarify path to Security Settings in privacy policy (#10367)
roomote[bot] Dec 28, 2025
a18c9b7
Improve error message when read_file is used on directory (#10371)
roomote[bot] Dec 29, 2025
1011064
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 29, 2025
b90e6cf
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 29, 2025
6948ed7
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 29, 2025
a42387e
Handle custom tool use similarly to MCP tools for ipc schema purposes…
jr Dec 29, 2025
e851b93
fix: correct GitHub repository URL in marketing page (#10377)
roomote[bot] Dec 29, 2025
6ba7931
Revert "feat: enable mergeToolResultText for all OpenAI-compatible pr…
hannesrudolph Dec 29, 2025
ca8fd5c
fix: flush pending tool results before condensing context (#10379)
daniel-lxs Dec 29, 2025
958705a
chore: add changeset for v3.38.1 (#10384)
mrubens Dec 29, 2025
c193f59
Changeset version bump (#10385)
github-actions[bot] Dec 29, 2025
19b7dac
fix: update Cerebras maxTokens to 16384 (#10387)
sebastiand-cerebras Dec 30, 2025
0e9a765
docs: Replace Todo Lists video with Context Management video (#10375)
SannidhyaSah Dec 30, 2025
6d8fa39
Release: v1.96.0 (#10395)
jr Dec 30, 2025
9539553
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Dec 30, 2025
f2abc39
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Dec 30, 2025
d33cdef
fix(utils): add optional chaining for provider settings
mini2s Dec 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ export function PillarsSection() {
<div className="text-muted-foreground my-4 space-y-1">
<p>
The Roo Code Extension is{" "}
<Link target="_blank" href="https://github.com/Roo-Code-Inc/Roo-Code">
<Link target="_blank" href="https://github.com/RooCodeInc/Roo-Code">
open source
</Link>{" "}
so you can see for yourself exactly what it&apos;s doing and we don&apos;t use
Expand Down
2 changes: 1 addition & 1 deletion packages/types/npm/package.metadata.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@roo-code/types",
"version": "1.95.0",
"version": "1.96.0",
"description": "TypeScript type definitions for Roo Code.",
"publishConfig": {
"access": "public",
Expand Down
18 changes: 10 additions & 8 deletions packages/types/src/global-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,16 @@ export const globalSettingsSchema = z.object({
listApiConfigMeta: z.array(providerSettingsEntrySchema).optional(),
pinnedApiConfigs: z.record(z.string(), z.boolean()).optional(),
// Auto cleanup settings
autoCleanup: z.object({
enabled: z.boolean().optional(),
strategy: z.nativeEnum(CleanupStrategy).optional(),
retentionDays: z.number().min(1).max(365).optional(),
maxHistoryCount: z.number().min(10).max(500).optional(),
excludeActive: z.boolean().optional(),
cleanupOnStartup: z.boolean().optional(),
}).optional(),
autoCleanup: z
.object({
enabled: z.boolean().optional(),
strategy: z.nativeEnum(CleanupStrategy).optional(),
retentionDays: z.number().min(1).max(365).optional(),
maxHistoryCount: z.number().min(10).max(500).optional(),
excludeActive: z.boolean().optional(),
cleanupOnStartup: z.boolean().optional(),
})
.optional(),

lastShownAnnouncementId: z.string().optional(),
customInstructions: z.string().optional(),
Expand Down
10 changes: 5 additions & 5 deletions packages/types/src/providers/cerebras.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export const cerebrasDefaultModelId: CerebrasModelId = "gpt-oss-120b"

export const cerebrasModels = {
"zai-glm-4.6": {
maxTokens: 8192, // Conservative default to avoid premature rate limiting (Cerebras reserves quota upfront)
maxTokens: 16384, // Conservative default to avoid premature rate limiting (Cerebras reserves quota upfront)
contextWindow: 131072,
supportsImages: false,
supportsPromptCache: false,
Expand All @@ -18,7 +18,7 @@ export const cerebrasModels = {
description: "Highly intelligent general purpose model with up to 1,000 tokens/s",
},
"qwen-3-235b-a22b-instruct-2507": {
maxTokens: 8192, // Conservative default to avoid premature rate limiting
maxTokens: 16384, // Conservative default to avoid premature rate limiting
contextWindow: 64000,
supportsImages: false,
supportsPromptCache: false,
Expand All @@ -29,7 +29,7 @@ export const cerebrasModels = {
description: "Intelligent model with ~1400 tokens/s",
},
"llama-3.3-70b": {
maxTokens: 8192, // Conservative default to avoid premature rate limiting
maxTokens: 16384, // Conservative default to avoid premature rate limiting
contextWindow: 64000,
supportsImages: false,
supportsPromptCache: false,
Expand All @@ -40,7 +40,7 @@ export const cerebrasModels = {
description: "Powerful model with ~2600 tokens/s",
},
"qwen-3-32b": {
maxTokens: 8192, // Conservative default to avoid premature rate limiting
maxTokens: 16384, // Conservative default to avoid premature rate limiting
contextWindow: 64000,
supportsImages: false,
supportsPromptCache: false,
Expand All @@ -51,7 +51,7 @@ export const cerebrasModels = {
description: "SOTA coding performance with ~2500 tokens/s",
},
"gpt-oss-120b": {
maxTokens: 8192, // Conservative default to avoid premature rate limiting
maxTokens: 16384, // Conservative default to avoid premature rate limiting
contextWindow: 64000,
supportsImages: false,
supportsPromptCache: false,
Expand Down
1 change: 1 addition & 0 deletions packages/types/src/tool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export const toolNames = [
"update_todo_list",
"run_slash_command",
"generate_image",
"custom_tool",
] as const

export const toolNamesSchema = z.enum(toolNames)
Expand Down
8 changes: 1 addition & 7 deletions src/api/providers/base-openai-compatible-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,7 @@ export abstract class BaseOpenAiCompatibleProvider<ModelName extends string>
model,
max_tokens,
temperature,
// Enable mergeToolResultText to merge environment_details and other text content
// after tool_results into the last tool message. This prevents reasoning/thinking
// models from dropping reasoning_content when they see a user message after tool results.
messages: [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
],
messages: [{ role: "system", content: systemPrompt }, ...convertToOpenAiMessages(messages)],
stream: true,
stream_options: { include_usage: true },
...(metadata?.tools && { tools: this.convertToolsForOpenAI(metadata.tools) }),
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/cerebras.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ export class CerebrasHandler extends BaseProvider implements SingleCompletionHan
supportsNativeTools && metadata?.tools && metadata.tools.length > 0 && metadata?.toolProtocol !== "xml"

// Convert Anthropic messages to OpenAI format (Cerebras is OpenAI-compatible)
const openaiMessages = convertToOpenAiMessages(messages, { mergeToolResultText: true })
const openaiMessages = convertToOpenAiMessages(messages)

// Prepare request body following Cerebras API specification exactly
const requestBody: Record<string, any> = {
Expand Down
5 changes: 1 addition & 4 deletions src/api/providers/chutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,7 @@ export class ChutesHandler extends RouterProvider implements SingleCompletionHan
const params: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
model,
max_tokens,
messages: [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
],
messages: [{ role: "system", content: systemPrompt }, ...convertToOpenAiMessages(messages)],
stream: true,
stream_options: { include_usage: true },
...(metadata?.tools && { tools: metadata.tools }),
Expand Down
5 changes: 1 addition & 4 deletions src/api/providers/deepinfra.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,7 @@ export class DeepInfraHandler extends RouterProvider implements SingleCompletion

const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
model: modelId,
messages: [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
],
messages: [{ role: "system", content: systemPrompt }, ...convertToOpenAiMessages(messages)],
stream: true,
stream_options: { include_usage: true },
reasoning_effort,
Expand Down
5 changes: 1 addition & 4 deletions src/api/providers/featherless.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,7 @@ export class FeatherlessHandler extends BaseOpenAiCompatibleProvider<Featherless
model,
max_tokens,
temperature,
messages: [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
],
messages: [{ role: "system", content: systemPrompt }, ...convertToOpenAiMessages(messages)],
stream: true,
stream_options: { include_usage: true },
}
Expand Down
5 changes: 1 addition & 4 deletions src/api/providers/huggingface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,7 @@ export class HuggingFaceHandler extends BaseProvider implements SingleCompletion
const params: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
model: modelId,
temperature,
messages: [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
],
messages: [{ role: "system", content: systemPrompt }, ...convertToOpenAiMessages(messages)],
stream: true,
stream_options: { include_usage: true },
}
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/lite-llm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export class LiteLLMHandler extends RouterProvider implements SingleCompletionHa
): ApiStream {
const { id: modelId, info } = await this.fetchModel()

const openAiMessages = convertToOpenAiMessages(messages, { mergeToolResultText: true })
const openAiMessages = convertToOpenAiMessages(messages)

// Prepare messages with cache control if enabled and supported
let systemMessage: OpenAI.Chat.ChatCompletionMessageParam
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/lm-studio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export class LmStudioHandler extends BaseProvider implements SingleCompletionHan
): ApiStream {
const openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
]

// LM Studio always supports native tools (https://lmstudio.ai/docs/developer/core/tools)
Expand Down
8 changes: 4 additions & 4 deletions src/api/providers/openai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
}
}

convertedMessages = [systemMessage, ...convertToOpenAiMessages(messages, { mergeToolResultText: true })]
convertedMessages = [systemMessage, ...convertToOpenAiMessages(messages)]

if (modelInfo.supportsPromptCache) {
// Note: the following logic is copied from openrouter:
Expand Down Expand Up @@ -235,7 +235,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
? convertToR1Format([{ role: "user", content: systemPrompt }, ...messages])
: enabledLegacyFormat
? [systemMessage, ...convertToSimpleMessages(messages)]
: [systemMessage, ...convertToOpenAiMessages(messages, { mergeToolResultText: true })],
: [systemMessage, ...convertToOpenAiMessages(messages)],
...(metadata?.tools && { tools: this.convertToolsForOpenAI(metadata.tools) }),
...(metadata?.tool_choice && { tool_choice: metadata.tool_choice }),
...(metadata?.toolProtocol === "native" && {
Expand Down Expand Up @@ -360,7 +360,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
role: "developer",
content: `Formatting re-enabled\n${systemPrompt}`,
},
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
],
stream: true,
...(isGrokXAI ? {} : { stream_options: { include_usage: true } }),
Expand Down Expand Up @@ -397,7 +397,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
role: "developer",
content: `Formatting re-enabled\n${systemPrompt}`,
},
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
],
reasoning_effort: modelInfo.reasoningEffort as "low" | "medium" | "high" | undefined,
temperature: undefined,
Expand Down
10 changes: 4 additions & 6 deletions src/api/providers/openrouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -229,15 +229,13 @@ export class OpenRouterHandler extends BaseProvider implements SingleCompletionH

// Convert Anthropic messages to OpenAI format.
// Pass normalization function for Mistral compatibility (requires 9-char alphanumeric IDs)
// Enable mergeToolResultText to merge environment_details after tool_results into the last
// tool message, preventing reasoning/thinking models from dropping reasoning_content.
const isMistral = modelId.toLowerCase().includes("mistral")
let openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, {
mergeToolResultText: true,
...(isMistral && { normalizeToolCallId: normalizeMistralToolCallId }),
}),
...convertToOpenAiMessages(
messages,
isMistral ? { normalizeToolCallId: normalizeMistralToolCallId } : undefined,
),
]

// DeepSeek highly recommends using user instead of system role.
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/qwen-code.ts
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ export class QwenCodeHandler extends BaseProvider implements SingleCompletionHan
content: systemPrompt,
}

const convertedMessages = [systemMessage, ...convertToOpenAiMessages(messages, { mergeToolResultText: true })]
const convertedMessages = [systemMessage, ...convertToOpenAiMessages(messages)]

const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
model: model.id,
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/requesty.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ export class RequestyHandler extends BaseProvider implements SingleCompletionHan

const openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
]

// Map extended efforts to OpenAI Chat Completions-accepted values (omit unsupported)
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/unbound.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ export class UnboundHandler extends RouterProvider implements SingleCompletionHa

const openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
]

if (info.supportsPromptCache) {
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/vercel-ai-gateway.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export class VercelAiGatewayHandler extends RouterProvider implements SingleComp

const openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
]

if (VERCEL_AI_GATEWAY_PROMPT_CACHING_MODELS.has(modelId) && info.supportsPromptCache) {
Expand Down
2 changes: 1 addition & 1 deletion src/api/providers/xai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export class XAIHandler extends BaseProvider implements SingleCompletionHandler
temperature: this.options.modelTemperature ?? XAI_DEFAULT_TEMPERATURE,
messages: [
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
] as OpenAI.Chat.ChatCompletionMessageParam[],
stream: true as const,
stream_options: { include_usage: true },
Expand Down
8 changes: 4 additions & 4 deletions src/api/providers/zgsm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ export class ZgsmAiHandler extends BaseProvider implements SingleCompletionHandl
}
: { role: "system" as const, content: systemPrompt }

convertedMessages = [systemMessage, ...convertToOpenAiMessages(messages, { mergeToolResultText: true })]
convertedMessages = [systemMessage, ...convertToOpenAiMessages(messages)]
}

// Apply cache control logic
Expand Down Expand Up @@ -481,7 +481,7 @@ export class ZgsmAiHandler extends BaseProvider implements SingleCompletionHandl
? convertToR1Format([{ role: "user", content: systemPrompt }, ...messages])
: isLegacyFormat
? [systemMessage, ...convertToSimpleMessages(messages)]
: [systemMessage, ...convertToOpenAiMessages(messages, { mergeToolResultText: true })],
: [systemMessage, ...convertToOpenAiMessages(messages)],
...(isNative
? {
...(metadata?.tools && { tools: this.convertToolsForOpenAI(metadata.tools) }),
Expand Down Expand Up @@ -825,7 +825,7 @@ export class ZgsmAiHandler extends BaseProvider implements SingleCompletionHandl
role: "developer",
content: `Formatting re-enabled\n${systemPrompt}`,
},
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
],
stream: true,
...(isGrokXAI ? {} : { stream_options: { include_usage: true } }),
Expand Down Expand Up @@ -865,7 +865,7 @@ export class ZgsmAiHandler extends BaseProvider implements SingleCompletionHandl
role: "developer",
content: `Formatting re-enabled\n${systemPrompt}`,
},
...convertToOpenAiMessages(messages, { mergeToolResultText: true }),
...convertToOpenAiMessages(messages),
],
reasoning_effort: modelInfo.reasoningEffort as "low" | "medium" | "high" | undefined,
temperature: undefined,
Expand Down
10 changes: 7 additions & 3 deletions src/core/assistant-message/NativeToolCallParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -595,9 +595,13 @@ export class NativeToolCallParser {
let resolvedName = resolveToolAlias(toolCall.name as string) as TName

// Validate tool name (after alias resolution).
const matchBuiltinToolName = (toolNames.find((name) => name === resolvedName || resolvedName.indexOf(name) > -1) ?? "") as TName
const matchCustomToolName = (customToolRegistry.list().find((name) => name === resolvedName || resolvedName.indexOf(name) > -1) ?? "" ) as TName

const matchBuiltinToolName = (toolNames.find(
(name) => name === resolvedName || resolvedName.indexOf(name) > -1,
) ?? "") as TName
const matchCustomToolName = (customToolRegistry
.list()
.find((name) => name === resolvedName || resolvedName.indexOf(name) > -1) ?? "") as TName

const _resolvedName = matchBuiltinToolName || matchCustomToolName

if (!_resolvedName) {
Expand Down
Loading