Commit graph

6474 commits

Author SHA1 Message Date
Hannes Rudolph
a54ba5a86e
feat(logging): add raw HTTP logging parity for providers 2025-12-19 17:26:57 -05:00
Hannes Rudolph
0ae6ba7aa8
feat(api): integrate createLoggingFetch into all OpenAI-client providers
Addresses Daniel's review feedback to wire createLoggingFetch into other
providers that use the OpenAI client.

Providers updated:
- base-openai-compatible-provider.ts
- openai.ts (including Azure AI Inference and Azure OpenAI)
- openai-native.ts
- lm-studio.ts
- huggingface.ts
- xai.ts
- requesty.ts
- router-provider.ts
- qwen-code.ts

OpenRouter was already implemented as the reference.
2025-12-19 17:18:09 -05:00
Hannes Rudolph
85b23f6d95
test: add TTL-based timestamp cleanup tests for ApiLogger
Adds tests to verify the TTL-based cleanup mechanism that prevents memory
leaks from orphaned request timestamps. Tests cover:
- Cleanup after TTL (5 min) expires
- No cleanup before TTL expires
- Selective cleanup of only stale timestamps

This addresses the review feedback from @daniel-lxs regarding potential
memory leaks when requests fail before reaching logResponse/logError.
2025-12-19 17:17:36 -05:00
Hannes Rudolph
8b43a8448f
fix(api): tighten logging env + improve error/request body logging 2025-12-19 17:17:36 -05:00
Hannes Rudolph
13674b28fd
fix(api-logging): unify env var names and add TTL cleanup for timestamps
- Accept both ROO_CODE_API_LOGGING and ROO_CODE_LOGGING for backward compatibility
- Add automatic cleanup of stale request timestamps (5 min TTL)
- Prevents potential memory leaks if logResponse/logError is never called
2025-12-19 17:17:35 -05:00
Hannes Rudolph
a110c3b36e
fix(logging): update environment variable references from ROO_CODE_LOGGING to ROO_CODE_API_LOGGING 2025-12-19 17:17:35 -05:00
Hannes Rudolph
00ddd926b8
refactor: rename ROO_CODE_LOGGING to ROO_CODE_API_LOGGING and restore VSCODE_DEBUG_MODE
- Renamed environment variable to ROO_CODE_API_LOGGING for clarity
- Restored VSCODE_DEBUG_MODE in launch.json env section
- This preserves existing behavior (debug mode enabled, API logging opt-in)
2025-12-19 17:17:35 -05:00
Hannes Rudolph
5d588c427a
fix(logging): address PR review feedback
- withLogging: count tool_call_partial chunks using index-based tracking
  to avoid undercounting (resolves fix-id: 085ec7dcd8)
- createLoggingFetch: handle non-string request bodies (Blob, ArrayBuffer,
  FormData, ReadableStream) by returning descriptive placeholders instead
  of misleading toString() output (resolves fix-id: 78ceafcb0f)
- Added comprehensive tests for both fixes
2025-12-19 17:17:35 -05:00
Hannes Rudolph
6abacbe59f
feat(api): add centralized API logging module
- Add new logging module at src/api/core/logging/ with:
  - ApiLogger singleton for structured request/response/error logging
  - withLogging() wrapper for automatic stream metrics tracking
  - createLoggingFetch() HTTP interceptor for raw request/response logging
  - env-config for reading ROO_CODE_LOGGING from workspace .env.local

- Integrate logging into all 20+ providers via BaseProvider.getLogContext()
- Add protected providerName getter pattern to all provider classes
- Enable HTTP-level logging in OpenRouter provider as reference implementation

- Configuration: Set ROO_CODE_LOGGING=true in workspace .env.local to enable
- Logs include: provider name, model, operation, tokens, latency, errors

Test coverage: 67 tests passing for logging module and providers
2025-12-19 17:17:35 -05:00
github-actions[bot]
f7adc4b1cf
Changeset version bump (#10219)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-19 12:41:05 -08:00
Chris Estreich
ccbb25d62b
Release v3.36.15 (#10218) 2025-12-19 12:34:19 -08:00
Daniel
bade9326c6
fix: enable native tool calls for Requesty provider (ROO-235) (#10211) 2025-12-19 12:28:26 -08:00
Daniel
aabee0fb0b
fix: force additionalProperties false for strict mode compatibility (#10210) 2025-12-19 12:18:38 -08:00
Hannes Rudolph
397328cb53
feat: merge native tool defaults for openai-compatible provider (#10213) 2025-12-19 12:18:10 -08:00
Bruno Bergher
bb358fb8f9
ux: add downloadable error diagnostics from chat errors (#10188)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-19 11:50:40 -08:00
Bruno Bergher
6e2b85214e
ux: improve API error handling and visibility (#10204)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-12-19 11:38:56 -08:00
Hannes Rudolph
61903f9588
feat(providers): add native tool calling support to LM Studio and Qwen-Code (#10208) 2025-12-19 12:50:09 -05:00
Hannes Rudolph
3f1f8be2d1
feat(vertex): add 1M context window beta support for Claude Sonnet 4 (#10209) 2025-12-19 12:24:45 -05:00
Patrick Decat
2dec78ccb4
fix: refresh models button not flushing cache properly (#9870) 2025-12-19 12:03:50 -05:00
github-actions[bot]
3c05cae722
Changeset version bump (#10201)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 18:52:16 -08:00
Chris Estreich
4b9d9b7c09
Release v3.36.14 (#10200) 2025-12-18 17:48:44 -08:00
Daniel
c3a4d14b6b
fix: strip unsupported JSON Schema format values for OpenAI compatibility (#10198) 2025-12-18 16:57:06 -08:00
Hannes Rudolph
9c03476a0f
feat(vertex): add native tool calling for Claude models on Vertex AI (#10197)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-12-18 16:09:55 -08:00
Hannes Rudolph
e2d1599f9c
feat: improve 'no tools used' error handling with grace retry (#10196)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-18 15:29:01 -07:00
github-actions[bot]
b37b231dfc
Changeset version bump (#10195)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 13:11:30 -08:00
Chris Estreich
7789b40000
Release v3.36.13 (#10194) 2025-12-18 13:07:38 -08:00
Daniel
3a2ad6b0e1
feat(telemetry): add PostHog exception tracking for consecutive mistake errors (#10193) 2025-12-18 12:59:37 -08:00
Daniel
3e0d9c65e8
feat: lock task tool protocol for consistent task resumption (#10192)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-18 11:54:26 -08:00
Hannes Rudolph
8251170b84
feat: Replace edit_file tool alias with edit_file tool (#9983) 2025-12-18 12:48:30 -07:00
Daniel
157a097032
feat(vscode-lm): add native tool support (#10191) 2025-12-18 11:25:54 -08:00
Chris Estreich
e84e3346dd
Release: v1.93.0 (#10190) 2025-12-18 10:30:31 -08:00
Daniel
d92d729219
fix(litellm): merge default model info with router models for NTC support (#10187)
* feat(types): add defaultToolProtocol: native to providers

- Added supportsNativeTools: true and defaultToolProtocol: native to all chutes models
- Added defaultToolProtocol: native to moonshot models (already had supportsNativeTools)
- Added defaultToolProtocol: native to litellm default model (already had supportsNativeTools)
- Added defaultToolProtocol: native to minimax models (already had supportsNativeTools)

This enables native tool calling by default for these providers, reducing
the number of users falling back to XML tool protocol unnecessarily.

* fix(litellm): merge only native tool defaults with router models

Only merges supportsNativeTools and defaultToolProtocol from litellmDefaultModelInfo,
not prices or other model-specific info that could be incorrect for different models.
2025-12-18 11:46:45 -05:00
Matt Rubens
3cb2c1de66
Revert "Revert "feat: change defaultToolProtocol default from xml to native"" (#10186)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-18 10:31:33 -05:00
github-actions[bot]
d3768690be
Changeset version bump (#10182)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 01:15:07 -08:00
Chris Estreich
17b1680e38
Release v3.36.12 (#10181) 2025-12-18 01:08:19 -08:00
Hannes Rudolph
06c5c7f980
feat: update OpenAI and Gemini tool preferences (#10170) 2025-12-17 19:46:33 -08:00
roomote[bot]
f899de1f53
fix: add userAgentAppId to Bedrock embedder for code indexing (#10166)
Adds userAgentAppId configuration to the BedrockRuntimeClient in the
code indexing embedder, matching the implementation pattern already
used in the main Bedrock API provider.

This enables proper user agent identification in CloudTrail AWS requests
when using Bedrock for code indexing embeddings.

Fixes #10165

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 20:20:36 -05:00
Daniel
45dbe4d028
feat(telemetry): extract error messages from JSON payloads for better PostHog grouping (#10163) 2025-12-17 13:59:17 -08:00
github-actions[bot]
495664c261
Changeset version bump (#10162)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-17 13:28:34 -08:00
Chris Estreich
09552fa49b
Release v3.36.11 (#10161) 2025-12-17 13:08:25 -08:00
Daniel
2a2411d37c
fix: enable native tools by default for OpenAI compatible provider (#10159) 2025-12-17 13:02:45 -08:00
Daniel
aa3b4ae9cc
fix: normalize MCP tool schemas for Bedrock and OpenAI strict mode (#10148) 2025-12-17 13:01:48 -08:00
Hannes Rudolph
0b86796b8f
[feat] Claude Code Provider Native Tool Calling (#10077)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-17 12:57:27 -08:00
roomote[bot]
9e9d77934c
feat: enable native tool calling by default for Z.ai models (#10158)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 12:26:17 -08:00
roomote[bot]
eac0d62cfc
fix: support AWS GovCloud and China region ARNs in Bedrock provider (#10157)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 14:50:11 -05:00
Daniel
affa5f2019
fix(ROO-202): refresh Roo models cache with session token on auth state change (#10156) 2025-12-17 14:23:24 -05:00
Daniel
ed631dccc3
fix: remove dots and colons from MCP tool names for Bedrock compatibility (#10152) 2025-12-17 08:47:52 -08:00
Daniel
4693b9eb06
fix(bedrock): convert tool_result to XML text when native tools disabled (#10155) 2025-12-17 08:46:34 -08:00
github-actions[bot]
752a95087e
Changeset version bump (#10154)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-17 11:23:17 -05:00
Matt Rubens
275ccf6729
Release v3.36.10 (#10153) 2025-12-17 11:19:03 -05:00