Commit graph

6670 commits

Author SHA1 Message Date
Hannes Rudolph
dd5670df12 Fix strict tool schemas for nullable objects 2026-01-17 15:27:53 -07:00
Hannes Rudolph
95a2390744 fix: ensure truncatedByLimit is only true when content is actually excluded 2026-01-17 15:27:53 -07:00
Hannes Rudolph
cb75197502 fix: align read_file tool with plan spec
- Fix MAX_LINE_BYTES to 500 (was 2000), rename from MAX_LINE_LENGTH for clarity
- Implement byte-based UTF-8 line truncation at safe boundaries (safeUtf8Truncate)
- Rename FALLBACK_LIMIT to DEFAULT_LINE_LIMIT for clarity
- Add maxLines property to indentation schema in tool definition
- Add test for UTF-8 boundary truncation with emoji
2026-01-17 15:27:53 -07:00
Hannes Rudolph
c6b4d1abca fix: update FALLBACK_LIMIT to 2000 lines 2026-01-17 15:27:53 -07:00
Hannes Rudolph
e184ca6216 fix: resolve conflicts and address review comments regarding FileEntry.limit and truncatedByLimit 2026-01-17 15:27:53 -07:00
Hannes Rudolph
06e5cff342 fix: add missing mock methods to presentAssistantMessage-custom-tool test
The ReadFileTool's execute method requires additional Task methods that were
not mocked:
- sayAndCreateMissingParamError: called when files array is empty/undefined
- cwd: used for path resolution
- apiConfiguration: used for protocol resolution
- taskToolProtocol: used for protocol resolution
- rooIgnoreController: used for access validation
- fileContextTracker: used for tracking file context

This fix ensures the test properly mocks all dependencies required by the
ReadFileTool when invoked through presentAssistantMessage.
2026-01-17 15:27:53 -07:00
Hannes Rudolph
26890a5c28 test: update read_file.spec.ts tests for new offset/mode/indentation API
Updates tests to match the new API that replaces line_ranges with:
- offset: 1-indexed starting line number
- mode: 'slice' or 'indentation' reading mode
- indentation: configuration for indentation mode

Also updates strict mode expectations since partialReadsEnabled (default true)
now sets strict to false to allow optional parameters.
2026-01-17 15:27:53 -07:00
Hannes Rudolph
58e9f26e1d docs: clarify limit is not exposed to models, controlled by maxReadFileLine setting
Addresses review comment about FileEntry.limit being defined but ignored.
The limit parameter was intentionally not exposed to models - it's controlled
by the maxReadFileLine user setting instead. Updated the comment in
NativeToolCallParser.ts to clarify this design decision.
2026-01-17 15:27:53 -07:00
Hannes Rudolph
9154c06442 fix: update type import from ReadFileToolOptions to CreateReadFileToolOptions 2026-01-17 15:27:53 -07:00
Hannes Rudolph
e098a86e4b fix: remove unused FileEntry.limit from types and parser
The limit parameter was defined in FileEntry but intentionally ignored by
ReadFileTool since the line limit is controlled by the maxReadFileLine
setting. This removes the unused type field and parsing code to align
the types with actual behavior.

- Remove limit from FileEntry interface in tool-params.ts
- Remove limit parsing from NativeToolCallParser.convertFileEntries()
- Remove limit from FileResult interface in ReadFileTool.ts
- Update comment to remove obsolete limit mention
2026-01-17 15:27:53 -07:00
Hannes Rudolph
d2122e6c9c fix: update readFileTool tests to use native format instead of XML 2026-01-17 15:27:53 -07:00
Hannes Rudolph
e072ffc91f fix(read_file): empty files should not report hasMoreBefore: true in indentation mode
When totalLinesInFile is 0, there are no lines before the anchor point,
so hasMoreBefore must be false regardless of the offset/anchorLine value.
2026-01-17 15:27:52 -07:00
Hannes Rudolph
c903656abc fix(read_file): make indentation offset beyond EOF return empty page 2026-01-17 15:27:52 -07:00
Hannes Rudolph
cd60bc4fd5 fix(read_file): normalize indentation config keys and pagination metadata 2026-01-17 15:27:52 -07:00
Hannes Rudolph
823bd2afac fix(read_file): address PR review feedback
- Use consistent camelCase in error messages (anchorLine, maxLines instead of snake_case)
- Accept both camelCase and snake_case for indentation config in NativeToolCallParser
- Continue counting total lines after hitting limit in readSlice() for accurate metadata
- Return empty content instead of throwing when offset exceeds file length
- Disable strict mode in tool schema when partial reads enabled to allow truly optional params
- Update tests to match new behavior
2026-01-17 15:27:52 -07:00
Hannes Rudolph
00e62bf8b1 i18n: add read file tool strings 2026-01-17 15:27:52 -07:00
Hannes Rudolph
5fc2700682 feat(read_file): implement CodexCLI-inspired slice/indentation reading modes
Replace line_ranges with new offset/limit/mode API for improved file reading:
- Slice mode: simple line-by-line reading with offset pagination
- Indentation mode: smart code block extraction based on indentation
- Add rich metadata for pagination awareness (hasMoreBefore/After, etc.)
- Remove deprecated truncateDefinitions helper
- Update tool definition with new parameters and examples
- Default maxReadFileLine from 500 to 2000 lines
2026-01-17 15:27:52 -07:00
roomote[bot]
802b40a790
Fix thinking block word-breaking to prevent horizontal scroll (#10806)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-17 12:15:27 -05:00
Chris Estreich
6608ed618a
chore(cli): prepare release v0.0.48 (#10800) 2026-01-16 23:29:54 -08:00
Chris Estreich
98d35f7cfc
Use a redirect instead of a fetch for cli auth (#10799) 2026-01-16 23:26:04 -08:00
Chris Estreich
f6c77c1643
Release cli v0.0.47 (#10798) 2026-01-16 23:02:17 -08:00
Chris Estreich
8fa2c1d598
Claude-like cli flags, auth fixes (#10797)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 22:54:24 -08:00
Chris Estreich
87a5afa629
Revert "feat(e2e): Enable E2E tests - 39 passing tests" (#10794)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-16 17:22:43 -08:00
Chris Estreich
f58b908293
Roo Code Router fixes for the cli (#10789)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-16 17:16:44 -08:00
github-actions[bot]
c1f7099698
Changeset version bump (#10790)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-16 18:03:24 -05:00
Matt Rubens
cad0320315
Release v3.41.2 (#10788) 2026-01-16 17:58:04 -05:00
Daniel
95be704ebf
fix(litellm): detect Gemini models with space-separated names for thought signature injection (#10787) 2026-01-16 17:43:51 -05:00
roomote[bot]
c40c882561
fix: add openai-codex to providers that don't require API key (#10786)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 17:13:50 -05:00
Hannes Rudolph
9533f0be3c
fix(openai-codex): reset invalid model selection (#10777) 2026-01-16 14:55:01 -07:00
Bruno Bergher
9bf7173725
feat: add button to open markdown in VSCode preview (#10773)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 10:56:19 -05:00
github-actions[bot]
8b9f02aa0d
Changeset version bump (#10768)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-16 00:48:45 -05:00
Matt Rubens
7e3fcd7212
Release v3.41.1 (#10767) 2026-01-16 00:44:43 -05:00
Daniel
ddac338fdd
fix: Gemini thought signature validation errors (#10694)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-15 23:25:42 -05:00
Daniel
e34d93e2cb
fix: truncate call_id to 64 chars for OpenAI Responses API (#10763) 2026-01-15 23:09:54 -05:00
Daniel
bbb6a6e4b4
fix: prevent duplicate tool_use IDs causing API 400 errors (#10760) 2026-01-15 23:08:21 -05:00
Daniel
df42655fc9
fix: flatten top-level anyOf/oneOf/allOf in MCP tool schemas (#10726) 2026-01-15 23:05:00 -05:00
Daniel
3a884ee01e
fix: filter out empty text blocks from user messages for Gemini compatibility (#10728) 2026-01-15 23:03:16 -05:00
Daniel
bbf3196837
fix: filter Ollama models without native tool support (#10735) 2026-01-15 23:01:25 -05:00
roomote[bot]
245e0f66c6
feat: add settings tab titles to search index (#10761)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-15 22:59:40 -05:00
T
f48ea389df
Feat/issue 5376 aggregate subtask costs (#10757) 2026-01-15 16:44:55 -05:00
Hannes Rudolph
f2b16d400d
fix: handle missing tool identity in OpenAI Native streams (#10719) 2026-01-15 11:42:34 -07:00
Matt Rubens
4ee494b08c
Release: v1.106.0 (#10749) 2026-01-15 01:44:14 -05:00
roomote[bot]
724571c7bd
feat: clarify Slack and Linear are Cloud Team only features (#10748)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-15 01:16:30 -05:00
github-actions[bot]
5183be22a4
Changeset version bump (#10747)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-15 00:44:59 -05:00
Matt Rubens
afc588b8d3
Release v3.41.0 (#10746) 2026-01-15 00:39:13 -05:00
Archimedes
dba76f51e7
fix(e2e): add alwaysAllow config for MCP time server tools (#10733) 2026-01-14 23:50:17 -05:00
Daniel
d7b7e17a21
fix(litellm): inject dummy thought signatures on ALL tool calls for Gemini (#10743) 2026-01-14 23:49:22 -05:00
Hannes Rudolph
4ebbca08b0
feat: add OpenAI Codex provider with OAuth subscription authentication (#10736)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-14 23:48:51 -05:00
Hannes Rudolph
739b91ec40
Clear terminal output buffers to prevent memory leaks (#7666) 2026-01-14 21:24:14 -07:00
Archimedes
dbf206f06b
feat(e2e): Enable E2E tests - 39 passing tests (#10720)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-14 12:15:54 -08:00