Skip to content

Commit 6d31d1d

Browse files
committed
3.29.0
1 parent d0af636 commit 6d31d1d

File tree

10 files changed

+196
-10
lines changed

10 files changed

+196
-10
lines changed

docs/advanced-usage/available-tools/read-file.md

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ This tool reads the content of a specified file and returns it with line numbers
7474
- Can read specific portions of files by specifying line ranges
7575
- Extracts readable text from PDF and DOCX files
7676
- **Image support**: Displays images in multiple formats (PNG, JPG, JPEG, GIF, WebP, SVG, BMP, ICO, TIFF)
77+
- **Intelligent reading**: Token-budget aware reading that auto-truncates to fit remaining budget instead of failing
78+
- **Large file preview**: Returns a 100KB preview for very large files to enable quick inspection
79+
- **Graceful error recovery**: Recovers from stream errors and guides you to use line_range for targeted reads
7780
- Automatically truncates large text files when no line range is specified, showing the beginning of the file
7881
- Provides method summaries with line ranges for truncated large code files
7982
- Efficiently streams only requested line ranges for better performance
@@ -113,12 +116,13 @@ When the `maxConcurrentFileReads` setting is greater than 1, the `read_file` too
113116

114117
## Limitations
115118

116-
- May not handle extremely large files efficiently without using line range parameters
119+
- **Large files**: For extremely large files, the tool provides a preview and guides you to use line_range for targeted reading
117120
- For binary files (except PDF, DOCX, and supported image formats), may return content that isn't human-readable
118121
- **Multi-file mode**: Requires `maxConcurrentFileReads` > 1 in settings
119122
- **Image files**: Returns base64-encoded data URLs which may be large for high-resolution images
120123
- Default max single image size: 20MB
121124
- Default max total image size: 20MB
125+
- **Token budget**: Automatically truncates content to fit remaining token budget to prevent context overruns
122126

123127
---
124128

@@ -148,7 +152,14 @@ The tool uses a clear decision hierarchy to determine how to read a file:
148152
- The implementation efficiently streams only the requested lines, making it suitable for processing large files
149153
- This takes precedence over all other options
150154

151-
2. **Second Priority: Automatic Truncation for Large Text Files**
155+
2. **Second Priority: Token Budget Management**
156+
- The tool respects the remaining token budget to prevent context overruns
157+
- If a file would exceed the remaining budget, it automatically truncates to fit
158+
- For very large files (exceeding practical limits), returns a 100KB preview for quick inspection
159+
- Provides guidance to use `line_range` for targeted reading of specific sections
160+
- Recovers gracefully from stream errors and suggests alternative approaches
161+
162+
3. **Third Priority: Automatic Truncation for Large Text Files**
152163
- This applies only when **all** of the following conditions are met:
153164
- Neither `start_line` nor `end_line` is specified.
154165
- The file is identified as a text-based file (not binary like PDF/DOCX).
@@ -159,7 +170,7 @@ The tool uses a clear decision hierarchy to determine how to read a file:
159170
- For code files, it may also append a summary of source code definitions found within the truncated portion.
160171
- **Special Case - Definitions Only Mode**: When `maxReadFileLine` is set to `0`, the tool returns only source code definitions without any file content.
161172

162-
3. **Default Behavior: Read Entire File**
173+
4. **Default Behavior: Read Entire File**
163174
- If neither an explicit range is given nor automatic truncation applies (e.g., the file is within the line limit, or it's a supported binary type), the tool reads the entire content.
164175
- For supported formats like PDF and DOCX, it attempts to extract the full text content.
165176
- For image formats, it returns a base64-encoded data URL that can be displayed in the chat interface.
@@ -291,6 +302,44 @@ If the file is excluded by rules in a `.rooignore` file:
291302
<read_file>
292303
<path>.env</path>
293304
</read_file>
305+
### Intelligent Reading with Token Budget Management
306+
307+
When reading large files, the tool automatically manages token budgets to prevent context overruns:
308+
309+
**Scenario:** Reading a very large file without specifying a line range.
310+
311+
**Input:**
312+
```xml
313+
<read_file>
314+
<path>logs/massive-debug.log</path>
315+
</read_file>
316+
```
317+
318+
**Simulated Output (for a file exceeding token budget):**
319+
```
320+
[First 100KB of file content shown as preview...]
321+
322+
[File exceeds remaining token budget. Showing 100KB preview. Use line_range to read specific sections.]
323+
```
324+
325+
This intelligent behavior ensures that:
326+
- Small files read completely with zero overhead
327+
- Large files auto-truncate to fit remaining token budget
328+
- Very large files provide a quick preview
329+
- You receive guidance to use `line_range` for targeted reads
330+
- Stream errors are recovered gracefully
331+
332+
**Example with line_range for targeted reading:**
333+
```xml
334+
<read_file>
335+
<path>logs/massive-debug.log</path>
336+
<start_line>1000</start_line>
337+
<end_line>1100</end_line>
338+
</read_file>
339+
```
340+
341+
---
342+
294343
```
295344
296345
**Simulated Output (Error):**

docs/advanced-usage/available-tools/search-files.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ The tool accepts these parameters:
2626
- `path` (required): The path of the directory to search in, relative to the current workspace directory. The search is confined to the workspace.
2727
- `regex` (required): The regular expression pattern to search for (uses Rust regex syntax)
2828
- `file_pattern` (optional): Glob pattern to filter files (e.g., '*.ts' for TypeScript files)
29+
- `respect_gitignore` (optional): Whether to respect `.gitignore` patterns (default: `true`). Set to `false` to search all files including those in `.gitignore`.
2930

3031
---
3132

@@ -47,6 +48,7 @@ This tool searches across files in a specified directory using regular expressio
4748
## Key Features
4849

4950
- Searches across multiple files in a single operation using high-performance Ripgrep
51+
- **Respects .gitignore**: Automatically excludes files and directories listed in `.gitignore` (including nested `.gitignore` files)
5052
- Shows context around each match (1 line before and after)
5153
- Filters files by type using glob patterns (e.g., only TypeScript files)
5254
- Provides line numbers for easy reference
@@ -66,6 +68,7 @@ This tool searches across files in a specified directory using regular expressio
6668
- Default context size is fixed (1 line before and after)
6769
- May display varying context sizes when matches are close together due to result grouping
6870
- For security, searches are strictly limited to the current workspace and cannot access parent directories or other locations on the file system.
71+
- **Respects .gitignore by default**: Files listed in `.gitignore` are excluded from searches unless explicitly overridden with `respect_gitignore: false`
6972

7073
---
7174

@@ -155,6 +158,45 @@ Finding all usages of a specific function:
155158
Searching for a specific import pattern across the entire project:
156159
```
157160
<search_files>
161+
162+
## Respecting .gitignore
163+
164+
By default, `search_files` respects `.gitignore` patterns in your workspace, including nested `.gitignore` files. This prevents searches in excluded directories like `node_modules/`, `dist/`, or other ignored paths.
165+
166+
### Default Behavior (Respecting .gitignore)
167+
168+
**Input:**
169+
```xml
170+
<search_files>
171+
<path>.</path>
172+
<regex>TODO</regex>
173+
</search_files>
174+
```
175+
176+
This search will **exclude** files and directories listed in `.gitignore`, ensuring focused results on tracked code.
177+
178+
### Overriding .gitignore (Search All Files)
179+
180+
To search **all files** including those in `.gitignore`, explicitly set `respect_gitignore` to `false`:
181+
182+
**Input:**
183+
```xml
184+
<search_files>
185+
<path>.</path>
186+
<regex>TODO</regex>
187+
<respect_gitignore>false</respect_gitignore>
188+
</search_files>
189+
```
190+
191+
This searches **everything**, including `node_modules/`, build artifacts, and other ignored paths.
192+
193+
**When to override:**
194+
- Debugging issues in dependencies or build output
195+
- Searching through generated code
196+
- Comprehensive audits that need to check all files
197+
- Investigating ignored configuration files
198+
199+
---
158200
<path>.</path>
159201
<regex>import\s+.*\s+from\s+['"]@components/</regex>
160202
</search_files>

docs/features/browser-use.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Roo Code provides sophisticated browser automation capabilities that let you int
3535
<div style={{ marginTop: '20px' }}></div>
3636

3737
:::caution Model Support Required
38-
Browser Use within Roo Code requires the use of Claude Sonnet 3.5 or 3.7
38+
Browser Use within Roo Code requires models that support images. Some models may not navigate pages well.
3939
:::
4040

4141
---
@@ -56,7 +56,7 @@ All of this happens directly within VS Code, with no setup required.
5656

5757
A typical browser interaction follows this pattern:
5858

59-
**Important:** Browser Use requires Claude Sonnet 3.5 or 3.7 model.
59+
**Important:** Browser Use requires models that support images (vision-capable models).
6060

6161
1. Ask Roo to visit a website
6262
2. Roo launches the browser and shows you a screenshot

docs/features/checkpoints.mdx

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,21 @@ Checkpoints let you:
5353
Access checkpoint settings in Roo Code settings under the "Checkpoints" section:
5454

5555
1. Open Settings by clicking the gear icon <Codicon name="gear" /> → Checkpoints
56-
2. Check or uncheck the "Enable automatic checkpoints" checkbox
56+
2. Configure checkpoint behavior:
57+
- Check or uncheck the "Enable automatic checkpoints" checkbox
58+
- Adjust the "Checkpoint initialization timeout" (10-60 seconds, default: 30s)
5759

5860
<img src="/img/checkpoints/checkpoints.png" alt="Checkpoint settings in Roo Code configuration" width="500" />
5961

62+
#### Checkpoint Initialization Timeout
63+
64+
Controls how long the system waits for checkpoint initialization to complete before showing a warning. If your project has many files or is on slower storage, increasing this timeout can prevent premature warnings.
65+
66+
- **Range**: 10-60 seconds
67+
- **Default**: 30 seconds
68+
- **When to increase**: Large projects, slow disk I/O, or network-mounted directories
69+
- **Location**: Settings → Checkpoints → "Checkpoint initialization timeout"
70+
6071
---
6172

6273
## How Checkpoints Work
@@ -85,13 +96,13 @@ Checkpoints appear directly in your chat history:
8596
- **Regular checkpoints** are created before file modifications, allowing easy undo of any changes
8697
<img src="/img/checkpoints/checkpoints-2.png" alt="Regular checkpoint indicator in chat" width="500" />
8798

88-
Each checkpoint provides two primary functions:
99+
Each checkpoint provides two primary functions that are always available in both the chat history and checkpoint menu:
89100

90101
### Viewing Differences
91102

92103
To compare your current workspace with a previous checkpoint:
93104

94-
1. Locate the checkpoint in your chat history
105+
1. Locate the checkpoint in your chat history or open the checkpoint menu
95106
2. Click the checkpoint's `View Differences` button
96107

97108
<img src="/img/checkpoints/checkpoints-6.png" alt="View Differences button interface" width="100" />
@@ -107,10 +118,12 @@ To compare your current workspace with a previous checkpoint:
107118

108119
### Restoring Checkpoints
109120

121+
Restore options are always visible in checkpoint buttons and dialogs, regardless of whether changes are detected. This ensures you can always revert to any checkpoint state.
122+
110123
To restore a project to a previous checkpoint state:
111124

112-
1. Locate the checkpoint in your chat history
113-
2. Click the checkpoint's `Restore Checkpoint` button
125+
1. Locate the checkpoint in your chat history or checkpoint menu
126+
2. Click the checkpoint's `Restore Checkpoint` button (always visible)
114127
<img src="/img/checkpoints/checkpoints-7.png" alt="Restore checkpoint button interface" width="100" />
115128
3. Choose one of these restoration options:
116129

docs/providers/openrouter.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ OpenRouter provides an [optional "middle-out" message transform](https://openrou
5858
* **Prompt Caching:**
5959
* OpenRouter passes caching requests to underlying models that support it. Check the [OpenRouter Models page](https://openrouter.ai/models) to see which models offer caching.
6060
* For most models, caching should activate automatically if supported by the model itself (similar to how Requesty works).
61+
* **Models with prompt caching support include:**
62+
* Anthropic Claude Sonnet 3.5, 3.7
63+
* Anthropic Claude Haiku 3.5
64+
* **Anthropic Claude Haiku 4.5** (newly added)
65+
* Google Gemini models (with manual activation - see below)
6166
* **Exception for Gemini Models via OpenRouter:** Due to potential response delays sometimes observed with Google's caching mechanism when accessed via OpenRouter, a manual activation step is required *specifically for Gemini models*.
6267
* If using a **Gemini model** via OpenRouter, you **must manually check** the "Enable Prompt Caching" box in the provider settings to activate caching for that model. This checkbox serves as a temporary workaround. For non-Gemini models on OpenRouter, this checkbox is not necessary for caching.
6368
* **Bring Your Own Key (BYOK):** If you use your own key for the underlying service, OpenRouter charges 5% of what it normally would. Roo Code automatically adjusts the cost calculation to reflect this.

docs/providers/zai.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,18 @@ Z AI (Zhipu AI) provides advanced language models with the GLM-4.5 series. The p
4545
Z AI provides different model catalogs based on your selected region:
4646

4747
### International Models
48+
* **GLM-4.6** - Context: 200K tokens
49+
* **GLM-4.5-X** - Enhanced reasoning and analysis capabilities
50+
* **GLM-4.5-AirX** - Balanced performance and efficiency
51+
* **GLM-4.5-Flash** - Optimized for speed with lower latency
4852
* GLM-4.5 series models
4953
* GLM-4.5-Air models
5054

5155
### China Mainland Models
56+
* **GLM-4.6** - Context: 200K tokens
57+
* **GLM-4.5-X** - Enhanced reasoning and analysis capabilities
58+
* **GLM-4.5-AirX** - Balanced performance and efficiency
59+
* **GLM-4.5-Flash** - Optimized for speed with lower latency
5260
* GLM-4.5 series models
5361
* GLM-4.5-Air models
5462

docs/update-notes/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ image: /img/social-share.jpg
1616

1717

1818
---
19+
20+
### Version 3.29
21+
22+
* [3.29.0](/update-notes/v3.29.0) (2025-10-24)
1923

24+
---
25+
2026
### Version 3.28
2127

2228
* [3.28](/update-notes/v3.28) (Combined)

docs/update-notes/v3.29.0.mdx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
description: Intelligent file reading, browser-use on image-capable models, dynamic Roo Code Cloud model loading, plus fixes and provider updates.
3+
keywords:
4+
- roo code 3.29.0
5+
- new features
6+
- bug fixes
7+
image: /img/v3.29.0/v3.29.0.png
8+
---
9+
10+
# Roo Code 3.29.0 Release Notes (2025-10-24)
11+
12+
This release adds intelligent file reading, enables browser-use for all image-capable models, and adds dynamic Roo Code Cloud model loading — plus many fixes and model updates.
13+
14+
<img src="/img/v3.29.0/v3.29.0.png" alt="Roo Code v3.29.0 Release" width="600" />
15+
16+
## Introducing Roo Code's first Cloud Agent, the PR Reviewer
17+
18+
It runs Roo in the cloud, giving extremely high quality code reviews instantly. We’ve been using it heavily to build Roo and now it's also available to the community.
19+
20+
Learn more: https://roocode.com/reviewer
21+
22+
## QOL Improvements
23+
24+
* Intelligent file reading with token‑budget management and a 100KB preview for very large files (thanks daniel-lxs, liwilliam2021!) ([#8789](https://github.com/RooCodeInc/Roo-Code/pull/8789))
25+
* Browser‑use enabled for all image‑capable models (thanks app/roomote, hannesrudolph!) ([#8121](https://github.com/RooCodeInc/Roo-Code/pull/8121), issue #8116)
26+
* Reduce ui_messages.json bloat by removing GPT‑5 instructions/reasoning_summary ([#8756](https://github.com/RooCodeInc/Roo-Code/pull/8756))
27+
* Adjustable checkpoint initialization timeout and clearer warnings (thanks NaccOll!) ([#8019](https://github.com/RooCodeInc/Roo-Code/pull/8019), issue #7843)
28+
* Improve auto‑approve button responsiveness ([#8798](https://github.com/RooCodeInc/Roo-Code/pull/8798))
29+
* Retry API requests on stream failures instead of aborting the task ([#8794](https://github.com/RooCodeInc/Roo-Code/pull/8794))
30+
* Improve checkpoint menu translations ([#8796](https://github.com/RooCodeInc/Roo-Code/pull/8796))
31+
* Try a 5s status mutation timeout to reduce flaky status changes ([#8734](https://github.com/RooCodeInc/Roo-Code/pull/8734))
32+
33+
## Bug Fixes
34+
35+
* search_files now respects .gitignore (including nested) by default; override when needed ([#8804](https://github.com/RooCodeInc/Roo-Code/pull/8804), issue #7921)
36+
* apply_diff export preserves trailing newlines (fix stripLineNumbers) ([#8227](https://github.com/RooCodeInc/Roo-Code/pull/8227), issue #8020)
37+
* Export: exclude max tokens for models that don’t support it (thanks elianiva!) ([#8464](https://github.com/RooCodeInc/Roo-Code/pull/8464), issue #7944)
38+
* Checkpoints: always show restore options regardless of change detection ([#8758](https://github.com/RooCodeInc/Roo-Code/pull/8758))
39+
40+
## Provider Updates
41+
42+
* Roo Code Cloud: dynamic model loading in the Model Picker with 5‑minute caching, auth‑state refresh, and graceful fallback to static models on failure ([#8728](https://github.com/RooCodeInc/Roo-Code/pull/8728))
43+
* Chutes: add zai‑org/GLM‑4.6‑turbo (204.8K context; clear pricing) (thanks mohammad154!) ([#8502](https://github.com/RooCodeInc/Roo-Code/pull/8502))
44+
* OpenRouter: add Anthropic Claude Haiku 4.5 to prompt‑caching models ([#8764](https://github.com/RooCodeInc/Roo-Code/pull/8764))
45+
* Z.ai: expand model coverage with GLM‑4.5‑X, AirX, Flash ([#8745](https://github.com/RooCodeInc/Roo-Code/pull/8745))
46+
* Mistral: update “Medium” model name (thanks ThomsenDrake!) ([#8364](https://github.com/RooCodeInc/Roo-Code/pull/8364))
47+
48+
49+
## Misc Updates
50+
51+
* Reviewer page copy clarifications for clearer expectations ([#8753](https://github.com/RooCodeInc/Roo-Code/pull/8753))
52+
* Dynamic OpenGraph images for clean link previews ([#8773](https://github.com/RooCodeInc/Roo-Code/pull/8773))
53+
* Fix link text to “Roomote Control” in README (thanks laz-001!) ([#8742](https://github.com/RooCodeInc/Roo-Code/pull/8742))
54+
* Remove a very verbose cloud‑agents error ([#8795](https://github.com/RooCodeInc/Roo-Code/pull/8795))
55+
* Update X/Twitter username from roo_code to roocode ([#8780](https://github.com/RooCodeInc/Roo-Code/pull/8780))
56+
* Update “Configuring Profiles” video link across localized READMEs ([#8189](https://github.com/RooCodeInc/Roo-Code/pull/8189))

sidebars.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,13 @@ const sidebars: SidebarsConfig = {
218218
label: 'Update Notes',
219219
items: [
220220
'update-notes/index',
221+
{
222+
type: 'category',
223+
label: '3.29',
224+
items: [
225+
{ type: 'doc', id: 'update-notes/v3.29.0', label: '3.29.0' },
226+
],
227+
},
221228
{
222229
type: 'category',
223230
label: '3.28',

static/img/v3.29.0/v3.29.0.png

1.03 MB
Loading

0 commit comments

Comments
 (0)