Skip to content

Conversation

@daniel-lxs
Copy link
Member

@daniel-lxs daniel-lxs commented Oct 29, 2025

Problem

Part of the webview memory mitigation effort. When auth state changes (login/logout), the extension was triggering requestRooModels regardless of which provider was active. This caused unnecessary router model fetches and cache reconciliation even when using non-Roo providers.

Solution

Gate the auth-driven requestRooModels effect to only fire when:

  1. cloudIsAuthenticated transitions to true, AND
  2. Current provider === "roo"

Changes

  • ExtensionStateContext: Added provider check before posting requestRooModels
  • Test: Added comprehensive test coverage for auth gating behavior

Impact

Before: Auth changes triggered Roo model fetches for all providers
After: Roo models only fetched when Roo is the active provider

Files Changed

  • webview-ui/src/context/ExtensionStateContext.tsx
  • webview-ui/src/context/__tests__/ExtensionStateContext.roo-auth-gate.spec.tsx (new)

Testing

  • ✅ New test verifies auth transitions only trigger requestRooModels when provider === "roo"
  • ✅ All webview UI tests passing

Part of

This is the first PR in a series to reduce webview memory usage. Follow-up PRs will add:

  • Backend provider filtering support
  • Frontend provider-scoped fetches

Important

Optimize requestRooModels to trigger only for 'roo' provider in ExtensionStateContext.tsx, with tests added in ExtensionStateContext.roo-auth-gate.spec.tsx.

  • Behavior:
    • requestRooModels in ExtensionStateContext.tsx now only triggers when cloudIsAuthenticated is true and apiProvider is 'roo'.
  • Testing:
    • Added ExtensionStateContext.roo-auth-gate.spec.tsx to test requestRooModels behavior when auth state changes.
    • Tests ensure requestRooModels is not called for non-'roo' providers.
  • Impact:
    • Reduces unnecessary model fetches and cache reconciliation for non-'roo' providers.

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

Prevents unnecessary router model fetches when auth state changes
and Roo is not the active provider. This reduces memory pressure
by avoiding large model payload fetches and cache reconciliation
when using non-Roo providers.

- Gate requestRooModels by current provider === 'roo'
- Add test coverage for auth gating behavior
@daniel-lxs daniel-lxs requested review from cte, jr and mrubens as code owners October 29, 2025 20:18
@dosubot dosubot bot added size:M This PR changes 30-99 lines, ignoring generated files. bug Something isn't working labels Oct 29, 2025
@roomote
Copy link
Contributor

roomote bot commented Oct 29, 2025

Code Review Summary

No issues found. The implementation correctly gates requestRooModels to only trigger when both authentication transitions to true AND the active provider is "roo". Test coverage validates both scenarios appropriately.

Follow Along on Roo Code Cloud

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Oct 29, 2025
@mrubens mrubens merged commit bd5807b into main Oct 29, 2025
20 checks passed
@mrubens mrubens deleted the fix/roo-auth-gate-only branch October 29, 2025 20:23
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Oct 29, 2025
@github-project-automation github-project-automation bot moved this from Triage to Done in Roo Code Roadmap Oct 29, 2025
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Oct 31, 2025
* 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

* Improve checkpoint menu translations for PR RooCodeInc#7841 (RooCodeInc#8796)

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

* Handle Roo provider pricing correctly (RooCodeInc#8802)

* fix: preserve trailing newlines in stripLineNumbers for apply_diff (RooCodeInc#8227)

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

* Fix checkpoints test (RooCodeInc#8803)

* Chore: Update magistral-medium-latest in mistral.ts (RooCodeInc#8364)

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

* fix: respect nested .gitignore files in search_files (RooCodeInc#8804)

* fix(export): exclude max tokens field for models that don't support it (RooCodeInc#8464)

* chore: add changeset for v3.29.0 (RooCodeInc#8806)

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

* Changeset version bump (RooCodeInc#8807)

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

* fix: adjust GLM-4.6-turbo max output tokens to prevent context limit errors (RooCodeInc#8822)

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

* fix: change Add to Context keybinding to avoid Redo conflict (RooCodeInc#8653)

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

* feat: add Google Ads conversion tracking to reviewer page (RooCodeInc#8831)

* feat: add Google Ads conversion tracking to reviewer page

* fix: add asChild prop to first button to prevent invalid HTML nesting

---------

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