Skip to content

Commit 032b04f

Browse files
3.20 (#229)
* feat: add Concurrent File Reads feature and Marketplace documentation * tweaked formatting of sections within files. * fix: add sidebar label for Multi-File Reads in documentation * Revert "tweaked formatting of sections within files." This reverts commit e932fb4. * Fixed formatting * fix: update parameter names and enhance documentation for read_file tool * feat: add documentation for experimental Concurrent File Edits feature * fix: update sidebar label and enhance keyboard navigation documentation * fix: update links in documentation for Concurrent File Reads and Footgun Prompting features * feat: add release notes for version 3.19.7 and update sidebar configuration * feat: add reasoning budget support for Claude models and update sidebar for version 3.20.0 * feat: add release notes for version 3.20 and update sidebar configuration * feat: update Marketplace documentation and add new images for enhanced user guidance * fix: clarify removal process for marketplace items in documentation * feat: enhance documentation for modes, code actions, and multi-file features; add new images for clarity * Update docs/update-notes/v3.19.0.mdx 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>
1 parent d08a623 commit 032b04f

File tree

322 files changed

+2702
-184
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

322 files changed

+2702
-184
lines changed

docs/advanced-usage/available-tools/access-mcp-resource.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,32 @@
22

33
The `access_mcp_resource` tool retrieves data from resources exposed by connected Model Context Protocol (MCP) servers. It allows Roo to access files, API responses, documentation, or system information that provides additional context for tasks.
44

5+
---
6+
57
## Parameters
68

79
The tool accepts these parameters:
810

911
- `server_name` (required): The name of the MCP server providing the resource
1012
- `uri` (required): The URI identifying the specific resource to access
1113

14+
---
15+
1216
## What It Does
1317

1418
This tool connects to MCP servers and fetches data from their exposed resources. Unlike `use_mcp_tool` which executes actions, this tool specifically retrieves information that serves as context for tasks.
1519

20+
---
21+
1622
## When is it used?
1723

1824
- When Roo needs additional context from external systems
1925
- When Roo needs to access domain-specific data from specialized MCP servers
2026
- When Roo needs to retrieve reference documentation hosted by MCP servers
2127
- When Roo needs to integrate real-time data from external APIs via MCP
2228

29+
---
30+
2331
## Key Features
2432

2533
- Retrieves both text and image data from MCP resources
@@ -33,6 +41,8 @@ This tool connects to MCP servers and fetches data from their exposed resources.
3341
- Processes structured response data with metadata
3442
- Handles image content special rendering
3543

44+
---
45+
3646
## Limitations
3747

3848
- Depends on external MCP servers being available and connected
@@ -43,6 +53,8 @@ This tool connects to MCP servers and fetches data from their exposed resources.
4353
- URI formats are determined by the specific MCP server implementation
4454
- No offline or cached resource access capabilities
4555

56+
---
57+
4658
## How It Works
4759

4860
When the `access_mcp_resource` tool is invoked, it follows this process:
@@ -68,6 +80,8 @@ When the `access_mcp_resource` tool is invoked, it follows this process:
6880
- Handles image data specially for appropriate display
6981
- Returns the processed resource data to Roo for use in the current task
7082

83+
---
84+
7185
## Resource Types
7286

7387
MCP servers can provide two main types of resources:
@@ -84,13 +98,17 @@ MCP servers can provide two main types of resources:
8498
- Can represent queries or filtered views of data
8599
- More flexible but require additional URI formatting
86100

101+
---
102+
87103
## Examples When Used
88104

89105
- When helping with API development, Roo retrieves endpoint specifications from MCP resources to ensure correct implementation.
90106
- When assisting with data visualization, Roo accesses current data samples from connected MCP servers.
91107
- When working in specialized domains, Roo retrieves technical documentation to provide accurate guidance.
92108
- When generating industry-specific code, Roo references compliance requirements from documentation resources.
93109

110+
---
111+
94112
## Usage Examples
95113

96114
Accessing current weather data:

docs/advanced-usage/available-tools/apply-diff.md

Lines changed: 84 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
The `apply_diff` tool makes precise, surgical changes to files by specifying exactly what content to replace. It uses a sophisticated strategy for finding and applying changes while maintaining proper code formatting and structure.
44

5+
---
6+
57
## Parameters
68

79
The tool accepts these parameters:
@@ -11,17 +13,23 @@ The tool accepts these parameters:
1113
- `start_line` (optional): A hint for where the search content begins. _Note: This top-level parameter appears unused by the current main strategy, which relies on `:start_line:` within the diff content._
1214
- `end_line` (optional): A hint for where the search content ends. _Note: This top-level parameter appears unused by the current main strategy._
1315

16+
---
17+
1418
## What It Does
1519

1620
This tool applies targeted changes to existing files using fuzzy matching guided by line number hints to locate and replace content precisely. Unlike simple search and replace, it identifies the exact block for replacement based on the provided content and location hints.
1721

22+
---
23+
1824
## When is it used?
1925

2026
- When Roo needs to make precise changes to existing code without rewriting entire files.
2127
- When refactoring specific sections of code while maintaining surrounding context.
2228
- When fixing bugs in existing code with surgical precision.
2329
- When implementing feature enhancements that modify only certain parts of a file.
2430

31+
---
32+
2533
## Key Features
2634

2735
- Uses fuzzy matching (Levenshtein distance on normalized strings) guided by a `:start_line:` hint, with configurable confidence thresholds (typically 0.8-1.0).
@@ -33,6 +41,8 @@ This tool applies targeted changes to existing files using fuzzy matching guided
3341
- Validates file access against `.rooignore` rules.
3442
- Handles multi-line edits effectively.
3543

44+
---
45+
3646
## Limitations
3747

3848
- Works best with unique, distinctive code sections for reliable identification.
@@ -41,6 +51,8 @@ This tool applies targeted changes to existing files using fuzzy matching guided
4151
- Each diff strategy has specific format requirements.
4252
- Complex edits might require careful strategy selection or manual review.
4353

54+
---
55+
4456
## How It Works
4557

4658
When the `apply_diff` tool is invoked, it follows this process:
@@ -58,6 +70,8 @@ When the `apply_diff` tool is invoked, it follows this process:
5870
8. **Error Handling**: If errors occur (e.g., match failure, partial application), increments the `consecutiveMistakeCountForApplyDiff` for the file and reports the failure type.
5971
9. **Feedback**: Returns the result, including any user feedback or error details.
6072

73+
---
74+
6175
## Diff Format Requirements
6276

6377
The `<diff>` parameter requires a specific format supporting one or more changes in a single request. Each change block requires a line number hint for the original content.
@@ -88,4 +102,73 @@ Example format for the `<diff>` block:
88102
const defaultTimeout = 5000;
89103
=======
90104
const defaultTimeout = 10000; // Increased timeout
91-
>>>>>>> REPLACE
105+
>>>>>>> REPLACE
106+
```
107+
108+
---
109+
110+
## Experimental: Multi-File Edits (`MULTI_FILE_APPLY_DIFF`)
111+
112+
An experimental version of `apply_diff` allows for applying changes to multiple files within a single tool call. This feature is activated by the `MULTI_FILE_APPLY_DIFF` experiment flag.
113+
114+
### Key Features of Experimental Mode
115+
116+
- **Multi-File Operations**: Edit multiple files in one request, streamlining complex refactoring tasks.
117+
- **Batch Approval UI**: When multiple files are targeted, a single UI appears for the user to approve or deny all changes at once, or manage permissions for each file individually.
118+
- **New XML Format**: Introduces a new, more structured XML format using `<args>` and `<file>` tags to handle multiple operations.
119+
- **Backward Compatibility**: The experimental tool remains compatible with the legacy single-file `path` and `diff` parameter format.
120+
121+
### How It Works (Experimental)
122+
123+
1. **Experiment Check**: The tool first checks if the `MULTI_FILE_APPLY_DIFF` experiment is enabled. If not, it falls back to the legacy `apply_diff` implementation.
124+
2. **Parameter Parsing**: It parses the new `<args>` XML format to identify all target files and their corresponding diff operations. It can also handle the legacy `path`/`diff` parameters.
125+
3. **Validation and Approval**:
126+
* It validates that all target files exist and are accessible (not blocked by `.rooignore`).
127+
* If multiple files are being modified, it presents a **batch approval** dialog to the user.
128+
4. **Diff Application**: For each approved file, it applies the specified diffs using the `MultiFileSearchReplaceDiffStrategy`. This strategy can apply multiple, non-overlapping changes to a single file.
129+
5. **Results**: It returns a consolidated result message summarizing the outcome for all attempted operations.
130+
131+
### New Diff Format (Experimental)
132+
133+
The experimental mode uses a new XML structure within the `<apply_diff>` tool call.
134+
135+
- **`<args>`**: A container for all file operations.
136+
- **`<file>`**: A block for each file to be modified. Contains `<path>` and one or more `<diff>` tags.
137+
- **`<path>`**: The relative path to the file.
138+
- **`<diff>`**: A block containing the change.
139+
- **`<content>`**: The `SEARCH/REPLACE` block.
140+
- **`<start_line>`**: (Optional) A line number hint.
141+
142+
**Example: Modifying two files in one call**
143+
144+
```xml
145+
<apply_diff>
146+
<args>
147+
<file>
148+
<path>src/services/auth.service.ts</path>
149+
<diff>
150+
<content>
151+
<<<<<<< SEARCH
152+
:start_line:50
153+
-------
154+
const token_expiration = '15m';
155+
>>>>>>> REPLACE
156+
</content>
157+
</diff>
158+
</file>
159+
<file>
160+
<path>src/config/auth.config.ts</path>
161+
<diff>
162+
<content>
163+
<<<<<<< SEARCH
164+
:start_line:12
165+
-------
166+
rateLimit: 5,
167+
=======
168+
rateLimit: 10,
169+
>>>>>>> REPLACE
170+
</content>
171+
</diff>
172+
</file>
173+
</args>
174+
</apply_diff>

docs/advanced-usage/available-tools/ask-followup-question.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,23 @@
22

33
The `ask_followup_question` tool enables interactive communication by asking specific questions to gather additional information needed to complete tasks effectively.
44

5+
---
6+
57
## Parameters
68

79
The tool accepts these parameters:
810

911
- `question` (required): The specific question to ask the user
1012
- `follow_up` (optional): A list of 2-4 suggested answers that help guide user responses, each within `<suggest>` tags
1113

14+
---
15+
1216
## What It Does
1317

1418
This tool creates a conversational interface between Roo and the user, allowing for gathering clarification, additional details, or user preferences when facing ambiguities or decision points. Each question can include suggested responses to streamline the interaction.
1519

20+
---
21+
1622
## When is it used?
1723

1824
- When critical information is missing from the original request
@@ -21,6 +27,8 @@ This tool creates a conversational interface between Roo and the user, allowing
2127
- When Roo encounters ambiguities that need resolution
2228
- When additional context would significantly improve the solution quality
2329

30+
---
31+
2432
## Key Features
2533

2634
- Provides a structured way to gather specific information without breaking workflow
@@ -32,6 +40,8 @@ This tool creates a conversational interface between Roo and the user, allowing
3240
- Formats responses with `<answer>` tags to distinguish them from regular conversation
3341
- Resets consecutive error counter when used successfully
3442

43+
---
44+
3545
## Limitations
3646

3747
- Limited to asking one specific question per tool use
@@ -42,6 +52,8 @@ This tool creates a conversational interface between Roo and the user, allowing
4252
- No built-in validation for user responses
4353
- Contains no mechanism to enforce specific answer formats
4454

55+
---
56+
4557
## How It Works
4658

4759
When the `ask_followup_question` tool is invoked, it follows this process:
@@ -84,6 +96,8 @@ When the `ask_followup_question` tool is invoked, it follows this process:
8496
- Contains safeguards to prevent tool execution when required parameters are missing
8597
- Increments consecutive mistake count when errors occur
8698

99+
---
100+
87101
## Workflow Sequence
88102

89103
The question-answer cycle follows this sequence:
@@ -102,6 +116,8 @@ The question-answer cycle follows this sequence:
102116
9. **Context Integration**: Response is added to the conversation history
103117
10. **Task Continuation**: Roo proceeds with the task using the new information
104118

119+
---
120+
105121
## Examples When Used
106122

107123
- When developing a web application, Roo might ask about preferred styling frameworks (Bootstrap, Tailwind, custom CSS)
@@ -111,6 +127,8 @@ The question-answer cycle follows this sequence:
111127
- When creating a custom feature, Roo might ask about specific behavior expectations
112128
- When troubleshooting errors, Roo might ask about specific environment details
113129

130+
---
131+
114132
## Response Format
115133

116134
When a user responds to a question, the response is formatted with `<answer>` tags for clarity and consistency. This format helps clearly separate the user's answer from other conversation elements.
@@ -128,6 +146,8 @@ Key characteristics of the response format:
128146
- Maintains images if included in the response
129147
- Returns the complete text, even for long responses
130148

149+
---
150+
131151
## Usage Examples
132152

133153
Asking about implementation preferences:

docs/advanced-usage/available-tools/attempt-completion.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,23 @@
22

33
The `attempt_completion` tool signals that Roo believes a task is complete and presents results to the user. It provides a summary of what was accomplished, optionally includes a command to demonstrate the result, and supports continued refinement through user feedback.
44

5+
---
6+
57
## Parameters
68

79
The tool accepts these parameters:
810

911
- `result` (required): The final result description summarizing what was accomplished
1012
- `command` (optional): A CLI command to execute to demonstrate the result
1113

14+
---
15+
1216
## What It Does
1317

1418
This tool marks the end of a task by presenting a final summary of what was accomplished. It signals to both the user and the system that the current task is complete. When a command is provided, it can also demonstrate the result through a live execution.
1519

20+
---
21+
1622
## When is it used?
1723

1824
- When Roo believes the user's task has been completed
@@ -21,6 +27,8 @@ This tool marks the end of a task by presenting a final summary of what was acco
2127
- When providing a checkpoint for user feedback on the solution
2228
- When transitioning from one phase of work to potential refinements
2329

30+
---
31+
2432
## Key Features
2533

2634
- Provides a clear signal that Roo believes the task is complete
@@ -34,6 +42,8 @@ This tool marks the end of a task by presenting a final summary of what was acco
3442
- Ensures users receive a clear summary of what was done
3543
- Available in all modes as part of the "always available" tool group
3644

45+
---
46+
3747
## Limitations
3848

3949
- Should not be used until previous tool uses are confirmed successful (guideline, not enforced)
@@ -44,6 +54,8 @@ This tool marks the end of a task by presenting a final summary of what was acco
4454
- Cannot be used for partial task completion or progress updates
4555
- Result formatting strips XML closing tags through internal processing
4656

57+
---
58+
4759
## How It Works
4860

4961
When the `attempt_completion` tool is invoked, it follows this process:
@@ -78,6 +90,8 @@ When the `attempt_completion` tool is invoked, it follows this process:
7890
- Tool results are parsed through the system's parsing mechanism in `parse-assistant-message.ts`
7991
- The tool is part of the "ALWAYS_AVAILABLE_TOOLS" constant, making it available in all modes
8092

93+
---
94+
8195
## Result Formatting Guidelines
8296

8397
The result message should follow these guidelines:
@@ -92,6 +106,8 @@ The result message should follow these guidelines:
92106

93107
Note: The system automatically strips XML closing tags from the result text through the `removeClosingTag` function.
94108

109+
---
110+
95111
## Command Selection Guidelines
96112

97113
When including a command, follow these guidelines:
@@ -106,6 +122,8 @@ When including a command, follow these guidelines:
106122
- Remember that commands require user approval before execution
107123
- Ensure the command is valid for the user's operating system
108124

125+
---
126+
109127
## Feedback and UI Representation
110128

111129
The `attempt_completion` tool has a unique feedback mechanism:
@@ -123,6 +141,8 @@ When used within subtasks:
123141
- The parent task resumes with context from the completed subtask
124142
- This enables complex, nested workflows while maintaining context
125143

144+
---
145+
126146
## Examples When Used
127147

128148
- When creating a website, Roo presents the solution and uses `open index.html` to show the result. The user provides feedback, and Roo refines the design.
@@ -131,6 +151,8 @@ When used within subtasks:
131151
- When setting up a development environment, Roo confirms all components are installed. The user requests additional configuration, and Roo continues.
132152
- When creating a data processing script, Roo summarizes the functionality. The user suggests performance improvements, and Roo optimizes the code.
133153

154+
---
155+
134156
## Usage Examples
135157

136158

0 commit comments

Comments
 (0)