Commit graph

1413 commits

Author SHA1 Message Date
daniel-lxs
f5cc227c09
Extract router models fetching logic into dedicated service
Refactor to improve separation of concerns:

- Create src/services/router-models/index.ts to handle provider model fetching
- Extract buildProviderFetchList() function for fetch options construction
- Extract fetchRouterModels() function for coordinated model fetching
- Move 150+ lines of provider-specific logic out of webviewMessageHandler
- Add comprehensive tests in router-models-service.spec.ts (11 test cases)

Benefits:
- Cleaner webviewMessageHandler with less business logic
- Reusable service for router model operations
- Better testability with isolated unit tests
- Clear separation between UI message handling and data fetching

Files changed:
- New: src/services/router-models/index.ts
- New: src/services/router-models/__tests__/router-models-service.spec.ts
- Modified: src/core/webview/webviewMessageHandler.ts (simplified)
2025-10-30 11:21:31 -05:00
daniel-lxs
97beb1366c
Remove coalescing, background refresh, and cache logging
Address review feedback by removing out-of-scope optimizations:

1. Remove in-flight coalescing infrastructure
   - Delete inFlightModelFetches and inFlightEndpointFetches maps
   - Eliminate promise sharing across concurrent requests

2. Remove background refresh on file cache hit
   - Simplify to synchronous flow: memory → file → network
   - No more fire-and-forget background updates

3. Remove cache performance logging
   - Delete console.log statements for cache_hit, file_hit, bg_refresh
   - Clean up debugging artifacts from development

4. Fix active-provider scoping gap
   - Include ollama/lmstudio/huggingface in requestRouterModels when active
   - Prevents empty response that breaks chat flows for local providers

Result: Simpler, more maintainable code focused on core goal of
reducing unnecessary network requests by scoping to active provider.
2025-10-30 11:00:30 -05:00
daniel-lxs
c4ddbf65d0
Propagate AbortSignal to all provider fetchers and use native timeout
- Remove inline withTimeout helper in favor of AbortSignal.timeout()
- Add optional AbortSignal parameter to all provider model fetchers:
  - openrouter, requesty, glama, unbound, litellm, ollama, lmstudio
  - deepinfra, io-intelligence, vercel-ai-gateway, huggingface, roo
- Standardize timeout handling across modelCache and modelEndpointCache
- Add useRouterModelsAll hook for settings UI to fetch all providers
- Update Unbound and ApiOptions to use requestRouterModelsAll

This ensures consistent cancellation behavior and prepares for better
request lifecycle management across the codebase.
2025-10-30 09:39:26 -05:00
Hannes Rudolph
632bbe77db Router models: coalesce fetches, file-cache pre-read, active-only scope + debounce
Implements Phase 1/2/3 from temp plan: 1) Coalesce in-flight per-provider fetches with timeouts in modelCache and modelEndpointCache; 2) Read file cache on memory miss (Option A) with background refresh; 3) Scope router-models to active provider by default and add requestRouterModelsAll for activation/settings; 4) Debounce requestRouterModels to reduce duplicates. Also removes immediate re-read after write and adds small logging for OpenRouter fetch counts. Test adjustments ensure deterministic behavior in CI by disabling debounce in NODE_ENV=test and fetching all providers in unit test paths.

Key changes: - src/api/providers/fetchers/modelCache.ts: add inFlightModelFetches and withTimeout; consult file cache on miss; remove immediate re-read after write; telemetry-style console logs - src/api/providers/fetchers/modelEndpointCache.ts: add inFlightEndpointFetches and withTimeout; consult file cache on miss - src/core/webview/webviewMessageHandler.ts: add requestRouterModelsAll; default requestRouterModels to active provider; debounce; warm caches on activation; NODE_ENV=test disables debounce and runs allFetches so tests remain stable - src/shared/WebviewMessage.ts: add 'requestRouterModelsAll' message type - src/shared/ExtensionMessage.ts: move includeCurrentTime/includeCurrentCost to optional fields - src/api/providers/openrouter.ts: log models/endpoints count after fetch - tests: update webviewMessageHandler.spec to use requestRouterModelsAll where full sweep is expected

Working directory summary: M src/api/providers/fetchers/modelCache.ts, M src/api/providers/fetchers/modelEndpointCache.ts, M src/api/providers/openrouter.ts, M src/core/webview/webviewMessageHandler.ts, M src/shared/ExtensionMessage.ts, M src/shared/WebviewMessage.ts, M src/core/webview/__tests__/webviewMessageHandler.spec.ts. Excluded: temp_plan.md (not committed).
2025-10-29 12:25:59 -06:00
Matt Rubens
0d3817505e
Focus textbox and add newlines after adding to context (#8877) 2025-10-27 23:26:34 -04:00
roomote[bot]
3cbdbc2af6
feat: add settings to configure time and cost in system prompt (#8451)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-10-27 18:40:16 -04:00
Christiaan Arnoldus
c232057e54
Use monotonic clock for rate limiting (#8456) 2025-10-27 17:01:54 -04:00
roomote[bot]
13d20bbe8b
fix: process queued messages after context condensing completes (#8478)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-27 16:57:34 -04:00
Matt Rubens
6428d099fa
chore: add changeset for v3.29.0 (#8806)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-24 17:46:06 -04:00
Dicha Zelianivan Arkana
aae255d1b8
fix(export): exclude max tokens field for models that don't support it (#8464) 2025-10-24 16:20:31 -04:00
Matt Rubens
19e06900ee
Fix checkpoints test (#8803) 2025-10-24 10:18:19 -04:00
roomote[bot]
ad56791c3e
fix: preserve trailing newlines in stripLineNumbers for apply_diff (#8227)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-24 10:16:00 -04:00
Daniel
485b551cf3
Improve checkpoint menu translations for PR #7841 (#8796)
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <wuyoubin0504@gmail.com>
2025-10-24 10:03:03 -04:00
roomote[bot]
ab9a48578c
feat: add dynamic model loading for Roo Code Cloud provider (#8728)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-24 00:58:34 -04:00
NaccOll
f4121e2568
Add checkpoint initialization timeout settings and fix checkpoint timeout warnings (#8019)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-23 22:18:58 -04:00
Daniel
4f084f89e4
fix: retry API requests on stream failures instead of aborting task (#8794) 2025-10-23 16:54:51 -05:00
Chris Estreich
ac88d66194
Remove a very verbose error for cloud agents (#8795) 2025-10-23 12:37:45 -07:00
Daniel
93c13e2d13
feat: add token-budget based file reading with intelligent preview (#8789)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-23 15:35:43 -04:00
roomote[bot]
d9ed33db67
Enable browser-use tool for all image-capable models (#8121)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-21 22:23:42 -04:00
Hannes Rudolph
6ffdd440ce
Remove GPT‑5 instructions/reasoning_summary from UI message metadata to prevent ui_messages.json bloat (#8756)
chore(gpt5): stop persisting instructions/reasoning_summary in UI message metadata

Problem: ui_messages.json was getting bloated with unused or duplicated content (system 'instructions' and 'reasoning_summary') that we do not read back. Root cause: earlier OpenAI Responses API implementation persisted these fields to per-message metadata; however, 'instructions' are already sent as top-level request instructions and 'reasoning_summary' is surfaced live via streaming events. Neither field is consumed from storage. Changes: (1) Task.persistGpt5Metadata now stores only previous_response_id; (2) removed instructions and reasoning_summary from types; (3) updated Zod schema; (4) persistence layer writes messages as-is (no sanitizer); (5) tests green. Impact: smaller ui_messages.json, no runtime behavior change for requests. Migration: old metadata fields will be ignored by schema.
2025-10-21 14:55:29 -06:00
Chris Estreich
4e6c717915
Try a 5s status mutation timeout (#8734) 2025-10-20 15:36:05 -07:00
Matt Rubens
236957b818
Revert cloud agents for now (#8713) 2025-10-17 16:59:16 -04:00
Christiaan Arnoldus
3aa9762d04
Update image generation model selection (#8698) 2025-10-17 10:07:27 -04:00
Matt Rubens
4405f5a0b3
Remove request content from UI messages (#8696) 2025-10-17 07:34:27 -04:00
Bruno Bergher
0978ba3996
feat: Cloud agents in extension (#8470)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-17 00:18:16 -04:00
Chris Estreich
b011b63c93
Identify cloud tasks in the extension bridge (#8539) 2025-10-08 20:54:08 -07:00
Matt Rubens
eeaafef786
Revert "feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud" (#8559) 2025-10-07 21:37:10 -04:00
Bruno Bergher
cd8036d2d8
feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud (#8415)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: SannidhyaSah <sah_sannidhya@outlook.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-10-07 17:48:23 -04:00
Matt Rubens
28b642d28c
Add the parent task ID in telemetry (#8532) 2025-10-06 11:30:01 -04:00
roomote[bot]
38c8028528
fix: properly reset cost limit tracking when user clicks "Reset and Continue" (#6890)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-03 09:56:34 -04:00
Matt Rubens
c552027960
Include reasoning messages in cloud tasks (#8401) 2025-09-30 15:49:30 -04:00
SannidhyaSah
e33efc6242
chore: Remove unsupported Gemini 2.5 Flash Image Preview free model (#8359) 2025-09-30 15:33:01 -04:00
Matt Rubens
b5c58b64aa
Track when telemetry settings change (#8339) 2025-09-26 22:48:33 -04:00
Matt Rubens
8a7d90e43b
Upgrade Supernova (#8330) 2025-09-26 15:37:36 -04:00
roomote[bot]
5e218febdb
fix: remove <thinking> tags from prompts for cleaner output and fewer tokens (#8319)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-09-26 10:30:09 -04:00
Hannes Rudolph
ab0644d367
Correct tool use suggestion to improve model adherence to suggestion (#8315)
* Correct tool use suggestion to improve model adherence to suggestion

* tweak
2025-09-25 11:53:31 -06:00
roomote[bot]
43c1de0d7e
feat: log out from cloud when resetting extension state (#8312)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-25 12:24:46 -04:00
Hannes Rudolph
798801d582
Fix frequent "No tool used" errors by clarifying tool-use rules (#8292) 2025-09-25 09:24:46 -04:00
Hannes Rudolph
2f1b94f430
fix: include initial ask in condense summarization (#8293) (#8298)
* fix: include initial ask in condense summarization (#8293)

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-24 23:14:44 -06:00
Bruno Bergher
d8dd19a6ed
ux: Collapse thinking blocks by default (but control all of them with a keyboard shortcut) (#8254)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-23 18:48:04 -04:00
Matt Rubens
0682629ac8
Cloud account switcher (#8223)
* Cloud account switcher

* Bare metal evals fixes (#8224)

Co-authored-by: Roo Code <roomote@roocode.com>

* Rounded icons in chat account switcher

* Visual tweaks to CloudView

* Remove hardcoded timeout

* Safer check

* PR feedback

* Fix test

* Check for org mismatches in handleCredentialsChange

* Cloud: use the existing auth event flow to handle org switching

* Cleanup: broadcast() might be confusingly named.

---------

Co-authored-by: Chris Estreich <cestreich@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-09-23 18:18:28 -04:00
Daniel
9dabb85007
Fix: Improve reasoning block formatting for better readability (#7868) 2025-09-22 23:02:11 -04:00
Bruno Bergher
6c2aa63cfd
feat: Add keyboard shortcut for toggling auto-approve (Cmd/Ctrl+Alt+A) (#8214)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-22 11:26:29 -04:00
Matt Rubens
32d7e6f2ad
Add an announcement for Supernova (#8197)
* Add an announcement for Supernova

* Remove duplicate keys
2025-09-20 16:28:28 -04:00
Hannes Rudolph
d956cdb727
Fix duplicate rehydrate during reasoning; centralize rehydrate and preserve cancel metadata (#8171)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-20 00:34:21 -04:00
roomote[bot]
f7a6589719
fix: support dash prefix in parseMarkdownChecklist for todo lists (#8055)
- Updated regex pattern to support optional dash prefix (e.g., "- [ ] Task")
- Added comprehensive test coverage for both formats
- Fixes issue where todo lists with dash prefixes were not being parsed correctly

Fixes #8054

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-19 22:45:46 -04:00
Chris Estreich
a255c95bd0
Get the model id property for a given provider (#8009) 2025-09-17 15:24:27 -07:00
roomote[bot]
6d8de53c8f
fix: skip flaky Windows test in custom-system-prompt.spec.ts (#8023)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-16 13:47:56 -04:00
roomote[bot]
94b4511053
feat: Move slash commands to Settings tab with gear icon for discoverability (#7988)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Mubeen Zulfiqar <mubeen_zulfiqar@yahoo.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-15 15:41:00 -04:00
Chris Estreich
b309a6ad8b
Disable Roomote Control on logout (#7976) 2025-09-14 10:47:16 -07:00