Commit graph

1563 commits

Author SHA1 Message Date
Daniel
8a68b04c27
fix: filter orphaned tool_results when more results than tool_uses (#10027) 2025-12-11 12:48:40 -08:00
Daniel
87317091ee
fix: add missing tool_result blocks to prevent API errors (#10015) 2025-12-11 12:02:06 -08:00
Hannes Rudolph
6a30d9488e
chore: remove list_code_definition_names tool (#10005)
Co-authored-by: cte <cestreich@gmail.com>
2025-12-10 20:32:06 -08:00
Hannes Rudolph
0cbaed7e7b
feat: add toggle for Enter key behavior in chat input (#10002) 2025-12-10 20:31:43 -08:00
Hannes Rudolph
f05dd59a2b
Remove Glama provider (#9801) 2025-12-10 14:08:29 -08:00
Daniel
5a4315f58f
fix: prevent premature rawChunkTracker clearing for MCP tools (#9993) 2025-12-10 10:53:25 -08:00
roomote[bot]
ab18bf3e50
feat: add error details modal with on-demand display (#9985)
* feat: add error details modal with on-demand display

- Add errorDetails prop to ErrorRow component
- Show Info icon on hover in error header when errorDetails is provided
- Display detailed error message in modal dialog on Info icon click
- Add Copy to Clipboard button in error details modal
- Update generic error case to show localized message with details on demand
- Add i18n translations for error details UI

* UI Tweaks

* Properly handles error details

* i18n

* Lighter visual treatment for errors

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
2025-12-10 16:41:17 +00:00
Daniel
f472a8298e
fix: validate and fix tool_result IDs before API requests (#9952)
Co-authored-by: cte <cestreich@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-12-09 20:37:37 -08:00
Daniel
24eb6ae984
feat: add API error telemetry to OpenRouter provider (#9953)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-09 16:30:29 -08:00
Matt Rubens
721b02e58c
Add a way to save screenshots from the browser tool (#9963)
* Add a way to save screenshots from the browser tool

* fix: use cross-platform paths in BrowserSession screenshot tests

* fix: validate screenshot paths to prevent filesystem escape

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-09 16:12:36 -08:00
Matt Rubens
0068d1fee3
Revert "feat: change defaultToolProtocol default from xml to native" (#9956) 2025-12-09 13:09:28 -08:00
Bruno Bergher
8a98f140dc
feat: Make Architect save to /plans and gitignore it (#9944)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-09 06:51:43 -08:00
Hannes Rudolph
c103a4a639
feat: streaming tool stats + token usage throttling (#9926)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-08 19:40:12 -08:00
roomote[bot]
54a52655ac
feat: forbid time estimates in architect mode (#9931)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-08 19:06:07 -08:00
Dennise Bartlett
3356267aa0
Add timeout to OpenAI Compatible Provider Client (#9898) 2025-12-08 17:36:53 -08:00
roomote[bot]
375c103bd3
fix: exclude apply_diff from native tools when diffEnabled is false (#9920)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-08 17:20:44 -08:00
Daniel
ee48b3a1ae
fix: suppress 'ask promise was ignored' error in handleError (#9914) 2025-12-08 17:19:45 -08:00
Hannes Rudolph
fba8508b10
feat: add search_replace native tool for single-replacement operations (#9918)
Adds a new search_replace tool that performs a single search and replace
operation on a file, requiring the old_string to uniquely identify the
target text with 3-5 lines of context.

Parameters:
- file_path: Path to file (relative or absolute)
- old_string: Text to find (must be unique in file)
- new_string: Replacement text (must differ from old_string)
2025-12-08 10:45:55 -08:00
Hannes Rudolph
8aa13467d3
Refactor: Unified context-management architecture with improved UX (#9795)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-07 17:43:48 -05:00
roomote[bot]
946fd0390f
feat: change defaultToolProtocol default from xml to native (#9892)
* feat: change defaultToolProtocol to default to native instead of xml

* fix: add missing getMcpHub mock to Subtask Rate Limiting tests

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-06 11:51:16 -05:00
Daniel
dd92453276
refactor: decouple tools from system prompt (#9784) 2025-12-05 16:26:47 -05:00
Hannes Rudolph
9f4dcfc0e6
fix: sanitize removed/invalid API providers to prevent infinite loop (#9869) 2025-12-05 16:03:19 -05:00
Chris Estreich
5c501600cd
Better error logs for parseToolCall exceptions (#9857) 2025-12-04 23:06:58 -08:00
Daniel
9f111e174b
fix: handle unknown/invalid native tool calls to prevent extension freeze (#9834) 2025-12-04 22:21:09 -05:00
Hannes Rudolph
630c8bce90
FIX + feat: add MessageManager layer for centralized history coordination (#9842) 2025-12-04 20:48:31 -05:00
Hannes Rudolph
a1d392f5cc
fix: prevent cascading truncation loop by only truncating visible messages (#9844) 2025-12-04 20:41:49 -05:00
John Richmond
c719117fb4
Be safer about large file reads (#9843)
validateFileTokenBudget wasn't being called considering
the output budget.
2025-12-04 13:35:26 -08:00
Bruno Bergher
0eddc97d13
ux: improved error messages and documentation links (#9777)
* Minor ui tweaks

* Basic setup for richer API request errors

* Better errors messages and contact link

* i18n

* Update webview-ui/src/i18n/locales/en/chat.json

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

* Update webview-ui/src/i18n/locales/en/chat.json

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

* Empty better than null

* Update webview-ui/src/i18n/locales/nl/chat.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* i18n

* Start retryAttempt at 1

* Reverse retryAttempt number, just ommit it from the message

---------

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>
2025-12-04 15:25:23 +00:00
Matt Rubens
a698875315
Release v3.36.0 (#9814) 2025-12-04 09:17:33 -05:00
Hannes Rudolph
837ce3f334
chore: hide parallel tool calls experiment and disable feature (#9798) 2025-12-03 17:07:13 -07:00
Daniel
ce229012a3
refactor: remove insert_content tool (#9751)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 16:33:22 -05:00
roomote[bot]
86edc01cb1
fix: remove omission detection logic to fix false positives (#9787)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 13:20:22 -05:00
Hannes Rudolph
23605bed93
fix: restore context when rewinding after condense (#8295) (#9665) 2025-12-03 11:40:39 -05:00
SannidhyaSah
873a763ea7
feat: Add provider routing selection for OpenRouter embeddings (#9144) (#9693)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2025-12-02 22:59:55 -05:00
Daniel
aa40988e11
fix: handle malformed native tool calls to prevent hanging (#9758)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-02 19:40:43 -05:00
Hannes Rudolph
be69ef901e
Refactor: Remove line_count parameter from write_to_file tool (#9667) 2025-12-02 13:39:37 -05:00
Matt Rubens
aa507ad990
Add vendor confidentiality section to the system prompt for stealth models (#9742)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-02 10:23:54 -05:00
Daniel
edd7cc0986
fix: flush pending tool results before task delegation (#9726)
When tools are called in parallel (e.g., update_todo_list + new_task),
the tool results accumulate in userMessageContent but aren't saved to
API history until all tools complete. When new_task triggers delegation,
the parent is disposed before these pending results are saved, causing
400 errors when the parent resumes (missing tool_result for tool_use).

This fix:
- Adds flushPendingToolResultsToHistory() method in Task.ts that saves
  pending userMessageContent to API history
- Calls this method in delegateParentAndOpenChild() before disposing the
  parent task
- Safe for both native/XML protocols and sequential/parallel execution
  (returns early if there's nothing to flush)
2025-12-01 17:32:54 -05:00
Matt Rubens
bfb3386785
chore: add changeset for v3.35.0 (#9724) 2025-12-01 16:44:24 -05:00
Silentflower
bf3e4d8f1f
fix: preserve tool_use blocks in summary for parallel tool calls (#9714)
Co-authored-by: huajiwuyan <huajiwuyan@gmail.com>
2025-12-01 11:17:45 -05:00
Hannes Rudolph
f9eb6d9cf3
feat: add debug buttons to view API and UI history (#9684)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-28 23:18:15 -05:00
Hannes Rudolph
933534896a
feat: add apply_patch native tool (#9663)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-28 23:07:03 -05:00
Matt Rubens
53d1f43cc1
Include tool format in environment details (#9661) 2025-11-28 10:50:00 -05:00
Hannes Rudolph
e682c039de
feat: add search_and_replace tool for batch text replacements (#9549)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-27 21:19:10 -07:00
Hannes Rudolph
9b5f6392df
Metadata‑driven subtasks (no UI changes): automatic parent resume and single‑open safety (#9090) 2025-11-27 21:18:42 -07:00
Daniel
5a6dd58fcb
feat: add model-specific tool customization via excludedTools and includedTools (#9641)
* feat: add model-specific tool customization via excludedTools and includedTools

- Add excludedTools and includedTools to ModelInfo schema
- Implement applyModelToolCustomization helper to filter tools based on model config
- Integrate model tool filtering into filterNativeToolsForMode for native protocol
- Add comprehensive tests for tool customization functionality
- Wire up modelInfo through buildNativeToolsArray and Task.ts

This allows providers to override which native tools are available on a per-model basis via MODEL_DEFAULTS, enabling better control over tool selection for models with specific needs.

* feat: add customTools for opt-in only tools

- Add customTools array to ToolGroupConfig for defining opt-in only tools
- Update getToolsForMode() to exclude customTools from default tool set
- Modify applyModelToolCustomization() to include customTools only via includedTools
- Add tests for customTools functionality
- Add comprehensive documentation with usage examples

customTools allows defining tools that are NOT available by default,
even when a mode includes their group. These tools are only available
when explicitly included via a model's includedTools configuration.

This enables:
- Gradual rollout of experimental tools
- Model-specific specialized capabilities
- Safe experimentation without affecting default tool sets

* Add assertions for customTools tests per review feedback

* test: add tests for including customTools via includedTools

* Update src/core/prompts/tools/__tests__/filter-tools-for-mode.spec.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-27 13:45:32 -05:00
Daniel
d2d311e501
fix: race condition in new_task tool for native protocol (#9655)
The pendingNewTaskToolCallId was being set AFTER startSubtask() returned.
However, startSubtask() contains a 500ms delay during which the subtask
could complete. If the subtask completed during this window, completeSubtask()
would be called before pendingNewTaskToolCallId was set, causing it to
fall through to the XML protocol path and add a text message instead of
a proper tool_result block, breaking the API conversation structure.

This fix moves the pendingNewTaskToolCallId assignment to happen BEFORE
calling startSubtask(), ensuring the ID is set before the subtask starts.
If the subtask creation fails, the pending ID is cleared.
2025-11-27 12:30:55 -05:00
Daniel
4cdec7db8d
fix: create parent directories early in write_to_file to prevent ENOENT errors (#9640) 2025-11-26 19:53:10 -05:00
Daniel
867a5c79f9
fix: OpenRouter GPT-5 strict schema validation for read_file tool (#9633) 2025-11-26 19:37:36 -05:00
Daniel
87d646316e
fix: convert line_ranges strings to lineRanges objects in native tool calls (#9627) 2025-11-26 17:34:54 -05:00