Skip to content

Conversation

@roomote
Copy link

@roomote roomote bot commented Oct 19, 2025

Summary

Enables the Roo Code extension to dynamically load available models from the Roo Code Cloud provider via the /v1/models endpoint.

Changes

  • New fetcher: Added getRooModels() function to fetch models from Roo Code Cloud /v1/models endpoint
  • Dynamic provider: Added "roo" to the list of dynamic providers
  • Type updates: Updated RooHandler to support dynamic model IDs (changed from RooModelId to string)
  • Model caching: Integrated with existing modelCache infrastructure for efficient caching
  • Graceful fallback: Falls back to static model definitions if dynamic loading fails

Technical Details

Model Loading Strategy

  • Models are loaded asynchronously on handler initialization
  • Dynamic models are merged with static models (static definitions take precedence)
  • Uses 5-minute memory cache + file cache from existing infrastructure
  • 10-second timeout prevents hanging on network issues

Type Safety

  • Maintains backward compatibility with existing static models
  • Generic type changed from RooModelId to string to support dynamic model IDs
  • All type definitions updated across shared/api.ts and provider-settings.ts

Testing

  • Linting passes
  • Type checks pass
  • Follows patterns from other dynamic providers (requesty, glama, unbound)
  • Error handling with descriptive logging

Related

This PR works in conjunction with Roo-Code-Cloud PR #1316 which adds the /v1/models endpoint.


Important

Adds dynamic model loading for Roo Code Cloud provider, integrating API fetching, caching, and UI updates for model selection.

  • Behavior:
    • Adds getRooModels() in fetchers/roo.ts to fetch models from /v1/models endpoint.
    • Integrates Roo Code Cloud as a dynamic provider in provider-settings.ts and webviewMessageHandler.ts.
    • Updates RooHandler in roo.ts to support dynamic model IDs and caching.
    • Falls back to static models if dynamic loading fails.
  • Type Updates:
    • Changes RooModelId to string in RooHandler.
    • Updates type definitions in shared/api.ts and WebviewMessage.ts.
  • UI Components:
    • Adds Roo component in providers/Roo.tsx for model selection.
    • Updates ApiOptions.tsx and ModelPicker.tsx to support dynamic model loading.
  • Testing:
    • Updates tests in webviewMessageHandler.spec.ts and validate.test.ts to cover new functionality.
  • Misc:
    • Adds Roo to dynamicProviders in provider-settings.ts.
    • Handles authentication state changes in ExtensionStateContext.tsx to refresh models.

This description was created by Ellipsis for 6a1c35e. You can customize this summary. It will automatically update as commits are pushed.

@roomote roomote bot requested review from cte, jr and mrubens as code owners October 19, 2025 02:47
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. enhancement New feature or request labels Oct 19, 2025
@roomote
Copy link
Author

roomote bot commented Oct 19, 2025

Review Summary

I've completed my re-review of this PR. All previously identified issues have been successfully addressed, and no new issues were found in the latest changes.

Issues Found

  • Remove accidentally committed pr-body.md file from repository root
  • Logout handler should flush shared model cache to maintain symmetry with login handler

Latest Changes Reviewed

The latest commit (6a1c35e) improves response handling in the Roo models fetcher:

  • ✅ Always sends response even when no models are returned
  • ✅ Prevents frontend from waiting indefinitely for a response
  • ✅ Adds clear comment explaining the behavior
  • ✅ No new issues introduced

Positive Observations

✅ Follows the same patterns as other dynamic providers (glama, unbound, requesty)
✅ Type definitions correctly updated across all relevant files
✅ Proper integration with modelCache infrastructure
✅ Appropriate error handling with fallback to static models
✅ Async loading strategy is well-designed
✅ No breaking changes to existing functionality
✅ URL handling correctly prevents duplication of /v1 suffix
✅ Test coverage added for router models integration
✅ Zod schema validation properly integrated for type safety
✅ Improved error handling with validation errors logged
✅ Auth state change handling now properly reloads models on login
✅ Comment clarity improvements in latest commit
✅ Logout handler now properly flushes model cache with error handling
✅ Successfully removed redundant instance cache in favor of shared cache infrastructure
✅ Replaced axios with native fetch API and AbortController for better timeout handling
✅ Simplified URL normalization while maintaining correctness
✅ Comprehensive error handling for fetch-specific error types
✅ Auth state watcher properly triggers model refresh on login
✅ Response always sent to prevent frontend hangs, even with empty model lists


View Job

@mrubens mrubens marked this pull request as draft October 19, 2025 02:47
@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Oct 19, 2025
@mrubens mrubens marked this pull request as ready for review October 19, 2025 04:50
@roomote
Copy link
Author

roomote bot commented Oct 19, 2025

PR Review Complete

No issues found

This PR successfully implements dynamic model loading for the Roo Code Cloud provider. The implementation:

  • Follows established patterns from other dynamic providers
  • Has proper error handling and timeout mechanisms
  • Correctly integrates with existing model cache infrastructure
  • Includes appropriate fallback behavior
  • Updates all necessary type definitions and UI components

The code is ready to merge.

})

// Clear models cache when logged out
this.mergedModels = {}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On logout, mergedModels are cleared but the memory cache isn’t flushed. Consider calling flushModels('roo') in the logged-out branch to avoid stale dynamic models.

Comment on lines 80 to 82
// Clear models cache when logged out
this.mergedModels = {}
this.modelsLoaded = false
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logout handler clears the instance's model cache but doesn't flush the shared model cache via flushModels("roo"), creating an asymmetry with the login handler (lines 65-72) which does flush the cache. This could allow stale authenticated models to persist in the shared cache after logout, potentially causing the next login to use outdated model data until the 5-minute TTL expires.

Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review completed. Found 1 new issue regarding cache management symmetry in the logout handler.

Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review complete. One issue remains unresolved (logout handler cache flush). Otherwise, the implementation follows established patterns and integrates well with the existing codebase.

Copy link
Collaborator

@cte cte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Oct 24, 2025
Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All previously identified issues have been successfully resolved. The PR is ready for review and approval by a human reviewer.

})
this.modelsLoaded = true

this.mergedModels = dynamicModels as Record<string, ModelInfo>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a blocker, but this maintains this.mergedModels as an instance cache when modelCache.ts already handles caching. Requesty and other dynamic providers just call getModels() and let the shared cache do its thing. Should we keep this additional cache layer?

Copy link
Collaborator

@jr jr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it looks reasonable, at least from my phone. Left a number of non-blocking suggestions/seagulling.

headers["Authorization"] = `Bearer ${apiKey}`
}

// Normalize the URL to ensure proper /v1/models endpoint construction
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't harming anything, but probably isn't doing any good for a provider that doesn't take a user specified base url.

const url = urlObj.href

// Added timeout to prevent indefinite hanging
const response = await axios.get(url, { headers, timeout: 10000 })
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a blocker but iirc fetch() with an abort signal covers a wider range of timeout cases than axios.

* Roo Code Cloud API response schemas
*/

export const RooPricingSchema = z.object({
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need some kind of tiered pricing support (or is that allowed with this pattern/standard)?


if (!modelId) continue

// Extract model data from the validated API response
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might be able to lean on zod for more of this, but I don't think that's blocking either.

Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All previously identified issues have been successfully resolved. No new issues found in this review.

@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Oct 24, 2025
@RooCodeInc RooCodeInc deleted a comment from ellipsis-dev bot Oct 24, 2025
Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found.

Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found.

Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All previously identified issues have been successfully resolved. No new issues found in the latest changes.

Copy link
Author

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found.

@mrubens mrubens merged commit ab9a485 into main Oct 24, 2025
9 checks passed
@mrubens mrubens deleted the feature/dynamic-roo-cloud-models branch October 24, 2025 04:58
@github-project-automation github-project-automation bot moved this from Triage to Done in Roo Code Roadmap Oct 24, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Oct 24, 2025
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Oct 24, 2025
* fix: skip flaky Windows test in custom-system-prompt.spec.ts (RooCodeInc#8023)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add GDPR-compliant cookie consent banner (RooCodeInc#8022)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Release: v1.76.0 (RooCodeInc#8030)

* Types 1.77.0 (RooCodeInc#8031)

* feat(web): update homepage headline and tagline for remote control capabilities (RooCodeInc#7911)

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* ux: Responsive Auto-Approve (RooCodeInc#8032)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* feat(cloud): Add telemetry retry queue for network resilience (RooCodeInc#7597)

* feat(cloud): Add telemetry retry queue for network resilience

- Implement RetryQueue class with workspace-scoped persistence
- Queue failed telemetry events for automatic retry
- Retry events every 60 seconds with fresh auth tokens
- FIFO eviction when queue reaches 100 events
- Persist queue across VS Code restarts

This ensures telemetry data isn't lost during network failures or temporary server issues.
Migrated from RooCodeInc/Roo-Code-Cloud#744

* fix: address PR review feedback for retry queue

- Fix retry order to use consistent FIFO processing
- Add retry limit enforcement with max retries check
- Add configurable request timeout (default 30s)
- Add comprehensive tests for retryAll() method
- Add request-max-retries-exceeded event
- Fix timeout test to avoid timing issues

* fix: resolve TypeScript errors in RetryQueue tests

* fix(cloud): Address PR feedback for telemetry retry queue

- Handle HTTP error status codes (500s, 401/403, 429) as failures that trigger retry
- Remove queuing of backfill operations since they're user-initiated
- Fix race condition in concurrent retry processing with isProcessing flag
- Add specialized retry logic for 429 with Retry-After header support
- Clean up unnecessary comments
- Add comprehensive tests for new status code handling
- Add temporary debug logs with emojis for testing

* refactor: address PR feedback for telemetry retry queue

- Remove unused X-Organization-Id header from auth header provider
- Simplify enqueue() API by removing operation parameter
- Fix error retry logic: only retry 5xx, 429, and network failures
- Stop retrying 4xx client errors (400, 401, 403, 404, 422)
- Implement queue-wide pause for 429 rate limiting
- Add auth state management integration:
  - Pause queue when not in active-session
  - Clear queue on logout or user change
  - Preserve queue when same user logs back in
- Remove debug comments
- Fix ESLint no-case-declarations error with proper block scope
- Update tests for all new behaviors

* Docs: Overhaul README (RooCodeInc#8005)

* docs: overhaul README for clarity and impact

* fix: update badge links and styles in README for improved visibility

* docs(README): stronger CTAs for Discord/Reddit; restore Modes/Roles incl. cloud agents

* docs(readme): add support CTA; refine modes section; clarify custom modes wording

- add centered help/links CTA under badges: [README.md](README.md:8-10)
- expand feature list to explicitly include modes: [README.md](README.md:45)
- rename section header “Modes and Roles” → “Modes”: [README.md](README.md:52)
- update wording to “Custom Modes: build specialized modes for your team or workflow”: [README.md](README.md:60)

* docs: implement @jdilla1277 suggestions for English README

- Updated header to "Your AI-Powered Dev Team, Right in Your Editor" (removed Cline reference)
- Changed line 44 to "Generate Code from natural language descriptions and specs" for better SEO
- Removed "not the other way around" phrase from line 54
- Replaced "Cloud Agents" with "Roomote Control" on line 61

As requested by @hannesrudolph, these changes are only applied to the English README.

* docs: clarify Roomote Control description and update related links in README

* Reworked the contributor list. Made translastion corrections.

---------

Co-authored-by: Roo Code <[email protected]>

* Add organizationFeaturesSchema with roomoteControlEnabled (RooCodeInc#8085)

feat: add organizationFeaturesSchema with roomoteControlEnabled

- Add organizationFeaturesSchema with optional roomoteControlEnabled boolean
- Integrate features property into organizationSettingsSchema as optional
- Add comprehensive tests for new schema validation
- Maintain backward compatibility with existing organization settings

Co-authored-by: Roo Code <[email protected]>

* Release: v1.78.0 (RooCodeInc#8089)

chore: bump version to v1.78.0

* Get the model id property for a given provider (RooCodeInc#8009)

* Fix: Transform keybindings in nightly build to fix command+y shortcut (RooCodeInc#8070)

* fix: transform keybindings command references in nightly build

The keybindings section was not being transformed during the nightly build process, causing command+y keybinding to reference the wrong command name (roo-cline.addToContext instead of roo-code-nightly.addToContext).

- Added keybindings schema to types.ts
- Updated generatePackageJson to transform keybindings command references
- This ensures keybindings work correctly in the nightly build

* fix: only include keybindings in output when they exist

Updated generatePackageJson to conditionally add keybindings to avoid including undefined values in the generated package.json. Fixed eslint-disable comment placement.

---------

Co-authored-by: Roo Code <[email protected]>

* Add a list of sub-processors (RooCodeInc#8163)

* Add cookie policy (RooCodeInc#8165)

* ux: Redesigned Message Feed (RooCodeInc#7985)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main

* bug: Incorrect copy for "Run" command when approving execution (RooCodeInc#8179)

* test: set default language to English in prompt tests

* Supernova (RooCodeInc#8175)

Co-authored-by: Chris Estreich <[email protected]>

* chore: add changeset for v3.28.4 (RooCodeInc#8182)

* Changeset version bump (RooCodeInc#8183)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): enhance user info display and file path highlighting

* fix: support dash prefix in parseMarkdownChecklist for todo lists (RooCodeInc#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 RooCodeInc#8054

Co-authored-by: Roo Code <[email protected]>

* Updating the privacy policy to allow us to send occasional emails (RooCodeInc#8180)

* Updating the privacy policy to allow us to send onboarding and occasional marketing emails.

* docs: Clarified unsubscribe behavior and updated the Last Updated date

* docs: update Last Updated date in Privacy Policy page

* fix: apply tiered pricing for Gemini models via Vertex AI (RooCodeInc#8018)

* fix: apply tiered pricing for Gemini models via Vertex AI

- Modified calculateCost method to handle models where cacheReadsPrice is only defined in tiers
- Added comprehensive tests for Vertex AI tiered pricing calculation
- Fixes issue where local cost calculation always showed highest tier rates

Fixes RooCodeInc#8017

* Delete src/api/providers/__tests__/vertex-tiered-pricing.spec.ts

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel <[email protected]>

* update sambanova models (RooCodeInc#8186)

* update sambanova models

* fix typo

* Fix duplicate rehydrate during reasoning; centralize rehydrate and preserve cancel metadata (RooCodeInc#8171)

Co-authored-by: daniel-lxs <[email protected]>

* Wrap code blocks by default (RooCodeInc#8194)

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* Add an announcement for Supernova (RooCodeInc#8197)

* Add an announcement for Supernova

* Remove duplicate keys

* refactor(chat): optimize ChatRow rendering and user info handling

* Release v3.28.5 (RooCodeInc#8198)

chore: add changeset for v3.28.5

* Changeset version bump (RooCodeInc#8199)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Remove language selection and word wrap toggle from CodeBlock (RooCodeInc#8208)

* feat: Add keyboard shortcut for toggling auto-approve (Cmd/Ctrl+Alt+A) (RooCodeInc#8214)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Bare metal evals fixes (RooCodeInc#8224)

Co-authored-by: Roo Code <[email protected]>

* Fix: Improve reasoning block formatting for better readability (RooCodeInc#7868)

* fix: prevent checkpoint text from wrapping in non-English languages (RooCodeInc#8207)

Co-authored-by: Roo Code <[email protected]>

* fix: respect Ollama Modelfile num_ctx configuration (RooCodeInc#7798)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* feat: add package.nls.json checking to find-missing-translations script (RooCodeInc#8255)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat(types): add GPT-5-Codex model (RooCodeInc#8260)

* chore: add changeset for v3.28.6 (RooCodeInc#8261)

* Follow-up questions should trigger the "interactive" state (RooCodeInc#8259)

* chore: add changeset for v3.28.6 (RooCodeInc#8263)

* Changeset version bump (RooCodeInc#8262)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add image for 3.28.5 (RooCodeInc#8266)

* feat: add zai-org/GLM-4.5-turbo model to Chutes provider (RooCodeInc#8157)

Co-authored-by: Roo Code <[email protected]>

* Cloud account switcher (RooCodeInc#8223)

* Cloud account switcher

* Bare metal evals fixes (RooCodeInc#8224)

Co-authored-by: Roo Code <[email protected]>

* 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 <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* fix: checkpoint restore popover positioning issue (RooCodeInc#8219) (RooCodeInc#8220)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* ux: Collapse thinking blocks by default (but control all of them with a keyboard shortcut) (RooCodeInc#8254)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Remove org switcher tooltip (RooCodeInc#8269)

* chore: add changeset for v3.28.7 (RooCodeInc#8268)

* Changeset version bump (RooCodeInc#8271)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* fix(i18n):  spelling mistake in zh-CN chat.json

* web: Opengraph image (RooCodeInc#8285)

Co-authored-by: Matt Rubens <[email protected]>

* Set port 3446 for web-evals in production mode (RooCodeInc#8288)

* Show cloud switcher and option to add a team when logged in (RooCodeInc#8291)

* fix: include initial ask in condense summarization (RooCodeInc#8293) (RooCodeInc#8298)

* fix: include initial ask in condense summarization (RooCodeInc#8293)

---------

Co-authored-by: Matt Rubens <[email protected]>

* Fix frequent "No tool used" errors by clarifying tool-use rules (RooCodeInc#8292)

* Add a couple more free models to the Roo provider (RooCodeInc#8304)

* Release v3.28.8 (RooCodeInc#8305)

* Changeset version bump (RooCodeInc#8306)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: log out from cloud when resetting extension state (RooCodeInc#8312)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* feat: Add telemetry tracking to DismissibleUpsell component (RooCodeInc#8309)

* feat: add telemetry tracking to DismissibleUpsell component

- Added UPSELL_DISMISSED and UPSELL_CLICKED events to TelemetryEventName enum
- Updated DismissibleUpsell component to track clicks and dismissals with telemetry
- Added telemetry tests to DismissibleUpsell test suite
- Events include upsellId in the payload for tracking specific upsells

* refactor(webview): make handleDismiss synchronous in DismissibleUpsell

test(webview): add scenario where dismissOnClick=true without onClick tracks only UPSELL_DISMISSED; update tests; all tests passing locally

---------

Co-authored-by: Roo Code <[email protected]>

* Correct tool use suggestion to improve model adherence to suggestion (RooCodeInc#8315)

* Correct tool use suggestion to improve model adherence to suggestion

* tweak

* removing user hint when refreshing models (RooCodeInc#7710)

* feat(zgsm): add quota info display and periodic updates

* Show the Roo provider on the welcome screen (RooCodeInc#8317)

* wip: Website Improvements (RooCodeInc#8303)

Co-authored-by: Matt Rubens <[email protected]>

* refactor: remove pr-reviewer mode (RooCodeInc#8222)

* feat: add animated quota display with staggered transitions

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* web: More website copy tweaks (RooCodeInc#8326)

Co-authored-by: Matt Rubens <[email protected]>

* fix: remove <thinking> tags from prompts for cleaner output and fewer tokens (RooCodeInc#8319)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Upgrade Supernova (RooCodeInc#8330)

* chore: add changeset for v3.28.9 (RooCodeInc#8336)

* Changeset version bump (RooCodeInc#8337)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Track when telemetry settings change (RooCodeInc#8339)

* fix: use max_completion_tokens for GPT-5 models in LiteLLM provider (RooCodeInc#6980)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make chat icons shrink-0 (RooCodeInc#8343)

* web: Testimonials (RooCodeInc#8360)

* Adds lots of testimonials, 5-stars from marketplace

* Fits more testimonials in one page

* Testimonial heading tweak

* ci: refresh contrib.rocks cache workflow (RooCodeInc#8083)

* feat: add Claude 4.5 Sonnet model across all providers (RooCodeInc#8368)

* chore: add changeset for v3.28.10 (RooCodeInc#8369)

* Changeset version bump (RooCodeInc#8370)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: correct AWS Bedrock Claude Sonnet 4.5 model identifier (RooCodeInc#8372)

Fixes RooCodeInc#8371 - Updates the model ID from anthropic.claude-4.5-sonnet-v1:0
to anthropic.claude-sonnet-4-5-20250929-v1:0 to match AWS Bedrock naming convention

Co-authored-by: Roo Code <[email protected]>

* fix: correct Claude Sonnet 4.5 model ID format (RooCodeInc#8373)

* chore: add changeset for v3.28.11 (RooCodeInc#8374)

* Changeset version bump (RooCodeInc#8375)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: Anthropic Sonnet 4.5 model id + Bedrock 1M context checkbox (RooCodeInc#8384)

fix(anthropic): use claude-sonnet-4-5 id
fix(bedrock): enable 1M context checkbox for Sonnet 4.5 via shared list
closes RooCodeInc#8379
closes RooCodeInc#8381

* chore: add changeset for v3.28.12 (RooCodeInc#8385)

* Changeset version bump (RooCodeInc#8376)

* changeset version bump

* Revise changelog for version 3.28.12

Updated version number and consolidated patch notes.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix Vertex Sonnet 4.5 (RooCodeInc#8391)

* fix: remove topP parameter from Bedrock inference config (RooCodeInc#8388)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.28.13 (RooCodeInc#8393)

* Changeset version bump (RooCodeInc#8394)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add GLM-4.6 model support for z.ai provider (RooCodeInc#8408)

Co-authored-by: Roo Code <[email protected]>

* chore: add changeset for v3.28.14 (RooCodeInc#8413)

* Changeset version bump (RooCodeInc#8414)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* A couple more sonnet 4.5 fixes (RooCodeInc#8421)

* chore: Remove unsupported Gemini 2.5 Flash Image Preview free model (RooCodeInc#8359)

* Include reasoning messages in cloud tasks (RooCodeInc#8401)

* fix: show send button when only images are selected in chat textarea (RooCodeInc#8423)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add structured data to the homepage (RooCodeInc#8427)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* fix(ui): disable send button when no input content and update tests

* fix: Addresses overeager 'there are unsaved changes' dialog in settings (RooCodeInc#8410)

Fixes overeager 'there are unsaved changes' dialog in settings

* feat: add UsageStats schema and type (RooCodeInc#8441)

feat: add UsageStats schema and type to cloud.ts

Co-authored-by: Roo Code <[email protected]>

* Release: v1.80.0 (RooCodeInc#8442)

chore: bump version to v1.80.0

* feat: add new DeepSeek and GLM models with detailed descriptions to the Chutes provider (RooCodeInc#8467)

* Deprecate free grok 4 fast (RooCodeInc#8481)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix: improve save button activation in prompts settings (RooCodeInc#5780) (RooCodeInc#8267)

Co-authored-by: MuriloFP <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: properly reset cost limit tracking when user clicks "Reset and Continue" (RooCodeInc#6890)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* chore(deps): update dependency vite to v6.3.6 [security] (RooCodeInc#7838)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency glob to v11.0.3 (RooCodeInc#7767)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.15 (RooCodeInc#8491)

* Changeset version bump (RooCodeInc#8492)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Clamp GPT-5 max output tokens to 20% of context window (RooCodeInc#8495)

* fix: add ollama and lmstudio to MODELS_BY_PROVIDER (RooCodeInc#8511)

Co-authored-by: Roo Code <[email protected]>

* Release: v1.81.0 (RooCodeInc#8519)

* Add the parent task ID in telemetry (RooCodeInc#8532)

* Release: v1.82.0 (RooCodeInc#8535)

* feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud (RooCodeInc#8415)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: SannidhyaSah <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Revert "feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud" (RooCodeInc#8559)

* Identify cloud tasks in the extension bridge (RooCodeInc#8539)

* Revert "Clamp GPT-5 max output tokens to 20% of context window" (RooCodeInc#8582)

* feat: Add Claude Sonnet 4.5 1M context window support for Claude Code… (RooCodeInc#8586)

feat: Add Claude Sonnet 4.5 1M context window support for Claude Code provider

* chore: add changeset for v3.28.16 (RooCodeInc#8592)

* Changeset version bump (RooCodeInc#8593)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix(i18n): Update zh-TW run command title (RooCodeInc#8631)

* feat(commands, webview): Add TDD built-in command; Refactor welcome tips and test guide definition

* refactor(project-wiki): separate command from subtask initialization

* feat(command): update built-in commands count and names in tests

* Add Claude Haiku 4.5 (RooCodeInc#8673)

* Release v3.28.17 (RooCodeInc#8674)

* Changeset version bump (RooCodeInc#8675)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix(editor): prevent file editing issues when git diff views are open (RooCodeInc#8676)

* fix(editor): prevent file editing issues when git diff views are open

Add scheme checks to ensure only file:// URIs are matched when finding editors,
avoiding issues with git diffs and other schemes. Includes error logging for
failed editor lookups.

* Remove the warnings

* fix(editor): enforce file:// scheme in editor lookups to prevent git diff issues

---------

Co-authored-by: daniel-lxs <[email protected]>

* web: Cloud page and updates to Pricing to explain Cloud Agent Credits (RooCodeInc#8605)

* Adds mention of Cloud agents to /pricing

* Credit pricing FAQ

* Skeleton of a /cloud page and more pricing page tweaks

* Lint

* Update apps/web-roo-code/src/app/cloud/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Code review

* Updates copy to new credit system

* Moves Terms of Service to be backed by a markdown file, easier to read/edit/diff

* Updated ToS

* Twerm copy tweaks

* Cloud screenshot and style adjustments

* Style tweaks

* Styles

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: Add userAgent to Bedrock client for version tracking (RooCodeInc#8663)

Co-authored-by: Roo Code <[email protected]>

* feat: Cloud agents in extension (RooCodeInc#8470)

Co-authored-by: Matt Rubens <[email protected]>

* feat: Z AI: only two coding endpoints (RooCodeInc#8687) (RooCodeInc#8693)

* Remove request content from UI messages (RooCodeInc#8696)

* Left align the welcome title (RooCodeInc#8700)

* Update image generation model selection (RooCodeInc#8698)

* feat(core): enhance client ID validation and CSP configuration

* web: Mobile image in /cloud (RooCodeInc#8705)

* feat(ui): add option to hide API request details by default

* Revert cloud agents for now (RooCodeInc#8713)

* chore: add changeset for v3.28.18 (RooCodeInc#8715)

* fix(task): adjust API request handling and error message assignment

* Changeset version bump (RooCodeInc#8716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* test: update telemetry client mocks and fix test id typo

* Normalize docs-extractor audience tags; remove admin/stakeholder; strip tool invocations (RooCodeInc#8717)

docs(extractor): normalize audience to type="user"; remove admin/stakeholder; strip tool invocation examples

* Add Intercom as a subprocessor (RooCodeInc#8718)

* web: Leftover white bg (RooCodeInc#8719)

Leftover white bg

* feat(zgsm): add supportsMaxTokens flag and adjust max token handling

* docs: update Configuring Profiles video link (RooCodeInc#8189)

Co-authored-by: Roo Code <[email protected]>

* Fix link text for Roomote Control in README (RooCodeInc#8742)

* Try a 5s status mutation timeout (RooCodeInc#8734)

* web: Landing page for the reviewerFirst pass (RooCodeInc#8740)

* First pass

* SEO

* Update apps/web-roo-code/src/app/reviewer/page.tsx

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>

* Remove GPT‑5 instructions/reasoning_summary from UI message metadata to prevent ui_messages.json bloat (RooCodeInc#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.

* Z.ai: add GLM-4.5-X, AirX, Flash (expand model coverage) (RooCodeInc#8745)

* feat(zai): add GLM-4.5-X, AirX, Flash; sync with Z.ai docs; keep canonical api line keys

* feat(zai): add GLM-4.5V vision model (supportsImages, pricing, 16K max output); add tests

* feat(types,zai): sync Z.AI international model map and tests
- Update pricing, context window, and capabilities for:
  glm-4.5-x, glm-4.5-airx, glm-4.5-flash, glm-4.5v, glm-4.6
- Add glm-4-32b-0414-128k
- Align tests with new model specs

* fix(zai): align handler generics with expanded model ids to satisfy CI compile step

* chore(zai): remove tier pricing blocks for Z.ai models

* fix(zai): simplify names in zaiApiLineConfigs for clarity

* chore(zai): set default temperature to 0.6

---------

Co-authored-by: Roo Code <[email protected]>

* Enable browser-use tool for all image-capable models (RooCodeInc#8121)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Skip failing tools tests (RooCodeInc#8767)

* Update text for clarity in reviewer page (RooCodeInc#8753)

* feat: add GLM-4.6-turbo model to chutes ai provider (RooCodeInc#8502)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* web: Dynamic OpenGraph images (RooCodeInc#8773)

Co-authored-by: Roo Code <[email protected]>

* web: Updates CTA link in /reviewer to send people to /cloud-agents/welcome (RooCodeInc#8774)

* feat: add 'anthropic/claude-haiku-4.5' to prompt caching models (RooCodeInc#8764)

Co-authored-by: daniel-lxs <[email protected]>

* refactor(core): consolidate global custom instructions and improve shell handling

* fix: update X/Twitter username from roo_code to roocode (RooCodeInc#8780)

Co-authored-by: Roo Code <[email protected]>

* fix(zgsm): safely pass optional language metadata to avoid runtime errors

* test: update test expectations for shell handling and prompt enhancement

* fix: always show checkpoint restore options regardless of change detection (RooCodeInc#8758)

* feat: add token-budget based file reading with intelligent preview (RooCodeInc#8789)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Remove a very verbose error for cloud agents (RooCodeInc#8795)

* fix: retry API requests on stream failures instead of aborting task (RooCodeInc#8794)

* feat: improve auto-approve button responsiveness (RooCodeInc#8798)

- Add responsive breakpoint at 300px for compact view
- Icon correctly reflects state (X when off, ✓ when on) at all screen sizes
- Show abbreviated labels on very narrow screens (< 300px)
- Add triggerLabelOffShort translation key to all locales

Fixes issues from PR RooCodeInc#8152:
- Icon always showing checkmark on narrow screens
- Breakpoint activating too early (was 400px)
- Incorrect Tailwind class ordering

* Add checkpoint initialization timeout settings and fix checkpoint timeout warnings (RooCodeInc#8019)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add dynamic model loading for Roo Code Cloud provider (RooCodeInc#8728)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* refactor(tools): move imageHelpers to tools directory and update imports

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: James Edward Dillard <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Chris Estreich <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jorge Piedrahita Ortiz <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: John Costa <[email protected]>
Co-authored-by: SannidhyaSah <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: MuriloFP <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Colby Serpa <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: laz-001 <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. lgtm This PR has been approved by a maintainer size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants