Skip to content

Commit d3dd4f4

Browse files
mini2srenovate[bot]daniel-lxsItsOnlyBinaryroomote[bot]
authored
Roo to main (#513)
* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * refactor(utils): simplify shell detection logic * Merge remote-tracking branch 'upstream/main' into roo-to-main * test: update shell detection test expectation and mocks * test: add mock cleanup in shell detection tests * test: update shell detection tests to prioritize PowerShell 7 * fix(workspace-event-monitor): increase max retries and improve retry logic * refactor(codebase): improve error handling and workspace validation * Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594) * fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783) Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional. * Make ollama models info transport work like lmstudio (RooCodeInc#7679) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency - Enable click-to-edit for past messages by making message text clickable - Add ESC key handler to cancel edit mode in ChatTextArea - Fix padding consistency between past and queued message editors - Adjust right padding for edit mode to accommodate cancel button Fixes RooCodeInc#7788 * fix: adjust padding and layout for ChatTextArea in edit mode * refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * Let people paste in the auth redirect url (RooCodeInc#7805) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <[email protected]> * test: change console.error to console.warn in tests * fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793) * fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819) * UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827) feat: add taskSyncEnabled to userSettingsConfigSchema Co-authored-by: Roo Code <[email protected]> * Release: v1.75.0 (RooCodeInc#7829) chore: bump version to v1.75.0 * fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830) Co-authored-by: Roo Code <[email protected]> * Fix Groq context window display (RooCodeInc#7839) * test: enhance vscode mock implementations and error handling * feat(chat): replace edit button with copy functionality * refactor(core): enhance binary file detection and encoding handling * separate task sync roomote control (RooCodeInc#7799) * feat: separate Task Sync and Roomote Control settings - Add new taskSyncEnabled setting to control task content syncing - Keep remoteControlEnabled for Roomote Control functionality - Task Sync controls whether task content is sent to cloud - Roomote Control controls whether cloud can send instructions back - Roomote Control now depends on Task Sync being enabled - Usage metrics (tokens, cost) always reported regardless of settings - Update UI with two separate toggles and clear descriptions - Add info text explaining usage metrics are always reported * feat: add missing translations for Task Sync and Roomote Control settings - Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files - Updated cloudBenefit keys to match English structure - Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features * Cloud: cleanup taskSyncEnabled additions * fix: correct indentation localization files --------- Co-authored-by: Roo Code <[email protected]> * feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850) * First pass at separate upsell dialog * Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594) * fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783) Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional. * Make ollama models info transport work like lmstudio (RooCodeInc#7679) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency - Enable click-to-edit for past messages by making message text clickable - Add ESC key handler to cancel edit mode in ChatTextArea - Fix padding consistency between past and queued message editors - Adjust right padding for edit mode to accommodate cancel button Fixes RooCodeInc#7788 * fix: adjust padding and layout for ChatTextArea in edit mode * refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * Let people paste in the auth redirect url (RooCodeInc#7805) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <[email protected]> * fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793) * fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819) * UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827) feat: add taskSyncEnabled to userSettingsConfigSchema Co-authored-by: Roo Code <[email protected]> * Release: v1.75.0 (RooCodeInc#7829) chore: bump version to v1.75.0 * fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830) Co-authored-by: Roo Code <[email protected]> * Fix Groq context window display (RooCodeInc#7839) * feat: add DismissibleUpsell component for dismissible messages - Created DismissibleUpsell component with variant support (banner/default) - Added dismissedUpsells to GlobalState for persistence - Implemented message handlers for dismissing and retrieving dismissed upsells - Added comprehensive tests for the component - Uses VSCode extension globalState for persistent storage * fix: Apply PR feedback for DismissibleUpsell component - Changed from className to separate 'id' and 'className' props for better semantics - Added i18n support for accessibility labels (aria-label and title) - Fixed memory leak by adding mounted flag to prevent state updates after unmount - Fixed race condition by sending dismiss message before hiding component - Fixed inefficient array operations in webviewMessageHandler - Added comprehensive test coverage for edge cases including: - Multiple rapid dismissals - Component unmounting during async operations - Invalid/malformed message handling - Proper message sending before unmount - Added null checks for message data to handle edge cases gracefully * New Cloud upsell dialog in task share and cloud view, shared component * Properly working DismissibleUpsell * Working upsell for long-running tasks * CTA in AutoApproveMenu * Home page CTA * Fixes the autoapprove upsell and some tests * Visual and copy fixes * Test fix * Translations * Stray className attribute * Cloud view fixes in a left-aligned layout * Removes unnecessary test * Less flaky tests * Fixes sharebutton behavior and updates associated tests * Update webview-ui/src/i18n/locales/it/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Fix dismissed flicker * Fix long task upsell --------- Co-authored-by: Daniel <[email protected]> Co-authored-by: ItsOnlyBinary <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: John Richmond <[email protected]> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * v3.28.0 (RooCodeInc#7858) * Changeset version bump (RooCodeInc#7859) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat(chat): add chat search functionality with highlighting * feat: show notification when the checkpoint initialization fails (RooCodeInc#7766) Co-authored-by: daniel-lxs <[email protected]> * Bust cache in generated image preview (RooCodeInc#7860) Co-authored-by: Roo Code <[email protected]> * test: disable TaskHeader upsell tests * test: refactor TaskHeader test file * feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> * fix: center active mode in selector dropdown on open (RooCodeInc#7883) Co-authored-by: Roo Code <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * Make Posthog telemetry the default (RooCodeInc#7909) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Fix: Preserve first message during conversation condensing (RooCodeInc#7910) * In-app announcement for Roo Code Cloud (RooCodeInc#7914) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * chore: add changeset for v3.28.1 (RooCodeInc#7916) * Changeset version bump (RooCodeInc#7917) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Remove Roo Code 3.25 release announcement Removed the section about Roo Code 3.25 release notes. * fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876) Co-authored-by: Roo Code <[email protected]> * Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823) * fix: preserve original first message context during conversation condensing (RooCodeInc#7939) * Add a little padding to the cloudview (RooCodeInc#7954) * test: increase test timeout configuration * test(ci): enable translation check and optimize test workflow * fix: make nested git repository warning persistent with path info (RooCodeInc#7885) Co-authored-by: Roo Code <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * fix: include API key in Ollama /api/tags requests (RooCodeInc#7903) Co-authored-by: Roo Code <[email protected]> * feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948) * ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Daniel <[email protected]> Co-authored-by: ItsOnlyBinary <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: John Richmond <[email protected]> * Disable Roomote Control on logout (RooCodeInc#7976) * Remove chevrons from chat buttons (RooCodeInc#7970) * chore: add changeset for v3.28.2 (RooCodeInc#7979) * Changeset version bump (RooCodeInc#7980) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * ux: Makes text area buttons appear only when there's text (RooCodeInc#7987) * fix: corrected C# tree-sitter query (RooCodeInc#7813) * feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Mubeen Zulfiqar <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * Add Z.ai coding plan support (RooCodeInc#8003) * chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963) Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.9.0...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix context menu is obscured when edit message. (RooCodeInc#7951) * feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908) Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008) * CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014) * feat: Reposition Add Image button inside ChatTextArea (RooCodeInc#7989) * feat: move Add Image button inside ChatTextArea - Moved Add Image button from bottom toolbar to top-right inside text area - Repositioned Enhance Prompt button to be above Send button (bottom-right) - Both buttons now follow similar positioning pattern as Send button - Maintains consistent button styling and transitions * fix: corrected C# tree-sitter query (RooCodeInc#7813) * feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Mubeen Zulfiqar <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * Add Z.ai coding plan support (RooCodeInc#8003) * chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963) Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.9.0...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix context menu is obscured when edit message. (RooCodeInc#7951) * feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908) Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008) * CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014) * Visual tweaks --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Mubeen Zulfiqar <[email protected]> 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> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Daniel <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: NaccOll <[email protected]> Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> * feat: add i18n support for git commits and file operations * feat(i18n): update context menu translations in zh-CN and zh-TW locales * feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (RooCodeInc#8024) * Visual improvements and code cleanup (removes duplication) * Brings back an 'enabled' toggle for auto-approve * fix: filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (RooCodeInc#7818) Co-authored-by: Roo Code <[email protected]> * fix: handle square bracket HTML entities in Gemini responses (RooCodeInc#7577) Co-authored-by: Roo Code <[email protected]> * feat: Replace + icon with edit icon for New Task button (RooCodeInc#7942) Co-authored-by: Roo Code <[email protected]> * Release v3.28.3 (RooCodeInc#8025) * Changeset version bump (RooCodeInc#8026) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: remove web-docs app (RooCodeInc#8027) Co-authored-by: Roo Code <[email protected]> * 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 --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel <[email protected]> Co-authored-by: ItsOnlyBinary <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: John Richmond <[email protected]> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Chris Estreich <[email protected]> Co-authored-by: Mubeen Zulfiqar <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: NaccOll <[email protected]> Co-authored-by: James Edward Dillard <[email protected]> Co-authored-by: Jorge Piedrahita Ortiz <[email protected]> Co-authored-by: John Costa <[email protected]> Co-authored-by: SannidhyaSah <[email protected]>
1 parent 7edf40f commit d3dd4f4

File tree

19 files changed

+357
-29
lines changed

19 files changed

+357
-29
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div align="center">
22
<h1>Costrict (prev. Shenma)</h1>
3-
<h2>An enterprise-grade AI agent built for serious development</h2>
3+
<h2>Strict AI coder for enterprises</h2>
44
</div>
55
<br>
66
<div align="center">

apps/web-roo-code/src/app/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
} from "@/components/homepage"
1515
import { EXTERNAL_LINKS } from "@/lib/constants"
1616
import { ArrowRight } from "lucide-react"
17+
import { StructuredData } from "@/components/structured-data"
1718

1819
// Invalidate cache when a request comes in, at most once every hour.
1920
export const revalidate = 3600
@@ -23,6 +24,7 @@ export default async function Home() {
2324

2425
return (
2526
<>
27+
<StructuredData />
2628
<section className="relative flex h-[calc(125vh-theme(spacing.12))] items-center overflow-hidden md:h-[calc(80svh-theme(spacing.12))]">
2729
<AnimatedBackground />
2830
<div className="container relative flex items-center h-full z-10 mx-auto px-4 sm:px-6 lg:px-8">
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { getStructuredData } from "@/lib/structured-data"
2+
3+
/**
4+
* StructuredData Component
5+
*
6+
* Renders JSON-LD structured data in the document head for SEO.
7+
*
8+
* The structured data includes:
9+
* - Organization information (brand, logo, social profiles)
10+
* - WebSite metadata (site name for Google Search)
11+
* - SoftwareApplication details (VS Code extension)
12+
*
13+
* @see https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
14+
*/
15+
export function StructuredData() {
16+
const structuredData = getStructuredData()
17+
18+
return (
19+
<script
20+
type="application/ld+json"
21+
dangerouslySetInnerHTML={{
22+
__html: JSON.stringify(structuredData),
23+
}}
24+
/>
25+
)
26+
}

apps/web-roo-code/src/lib/seo.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL ?? "https://roocode.com"
33
export const SEO = {
44
url: SITE_URL,
55
name: "Roo Code",
6-
title: "Roo Code – Your AI-Powered Dev Team in VS Code and Beyond",
6+
title: "Roo Code – The AI dev team that gets things done",
77
description:
88
"Roo Code puts an entire AI dev team right in your editor, outpacing closed tools with deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.",
99
locale: "en_US",
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
import { SEO } from "./seo"
2+
import { EXTERNAL_LINKS } from "./constants"
3+
4+
/**
5+
* Type definitions for Schema.org structured data
6+
*/
7+
interface ImageObject {
8+
"@type": "ImageObject"
9+
url: string
10+
width: number
11+
height: number
12+
}
13+
14+
interface Organization {
15+
"@type": "Organization"
16+
"@id": string
17+
name: string
18+
url: string
19+
logo: ImageObject
20+
alternateName: string[]
21+
sameAs: string[]
22+
}
23+
24+
interface WebSite {
25+
"@type": "WebSite"
26+
"@id": string
27+
url: string
28+
name: string
29+
alternateName: string[]
30+
publisher: { "@id": string }
31+
}
32+
33+
interface SoftwareApplication {
34+
"@type": "SoftwareApplication"
35+
"@id": string
36+
name: string
37+
applicationCategory: string
38+
operatingSystem: string
39+
url: string
40+
downloadUrl: string
41+
offers: {
42+
"@type": "Offer"
43+
price: string
44+
priceCurrency: string
45+
}
46+
isAccessibleForFree: boolean
47+
publisher: { "@id": string }
48+
}
49+
50+
interface StructuredDataGraph {
51+
"@context": "https://schema.org"
52+
"@graph": [Organization, WebSite, SoftwareApplication]
53+
}
54+
55+
/**
56+
* Generates the complete JSON-LD structured data for SEO
57+
*
58+
* This includes:
59+
* - Organization schema (brand identity, logo, social profiles)
60+
* - WebSite schema (site name for Google Search)
61+
* - SoftwareApplication schema (VS Code extension metadata)
62+
*
63+
* @returns Complete structured data object ready for JSON-LD injection
64+
*/
65+
export function getStructuredData(): StructuredDataGraph {
66+
// Organization ID - used to link all entities
67+
const orgId = `${SEO.url}#org`
68+
69+
const organization: Organization = {
70+
"@type": "Organization",
71+
"@id": orgId,
72+
name: SEO.name,
73+
url: SEO.url,
74+
logo: {
75+
"@type": "ImageObject",
76+
url: `${SEO.url}/android-chrome-512x512.png`,
77+
width: 512,
78+
height: 512,
79+
},
80+
alternateName: ["RooCode"],
81+
sameAs: [
82+
EXTERNAL_LINKS.GITHUB,
83+
EXTERNAL_LINKS.MARKETPLACE,
84+
EXTERNAL_LINKS.X,
85+
EXTERNAL_LINKS.LINKEDIN,
86+
EXTERNAL_LINKS.REDDIT,
87+
EXTERNAL_LINKS.DISCORD,
88+
EXTERNAL_LINKS.YOUTUBE,
89+
],
90+
}
91+
92+
const website: WebSite = {
93+
"@type": "WebSite",
94+
"@id": `${SEO.url}#website`,
95+
url: SEO.url,
96+
name: SEO.name,
97+
alternateName: ["RooCode"],
98+
publisher: { "@id": orgId },
99+
}
100+
101+
const softwareApplication: SoftwareApplication = {
102+
"@type": "SoftwareApplication",
103+
"@id": `${SEO.url}#vscode-extension`,
104+
name: "Roo Code (VS Code extension)",
105+
applicationCategory: "DeveloperApplication",
106+
operatingSystem: "Windows, macOS, Linux",
107+
url: SEO.url,
108+
downloadUrl: EXTERNAL_LINKS.MARKETPLACE,
109+
offers: {
110+
"@type": "Offer",
111+
price: "0",
112+
priceCurrency: "USD",
113+
},
114+
isAccessibleForFree: true,
115+
publisher: { "@id": orgId },
116+
}
117+
118+
return {
119+
"@context": "https://schema.org",
120+
"@graph": [organization, website, softwareApplication],
121+
}
122+
}
123+
124+
/**
125+
* Type export for use in components
126+
*/
127+
export type { StructuredDataGraph }

packages/types/src/providers/bedrock.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,6 @@ export const BEDROCK_REGIONS = [
457457
{ value: "us-gov-west-1", label: "us-gov-west-1" },
458458
].sort((a, b) => a.value.localeCompare(b.value))
459459

460-
export const BEDROCK_CLAUDE_SONNET_4_MODEL_ID = "anthropic.claude-sonnet-4-20250514-v1:0"
461460
export const BEDROCK_1M_CONTEXT_MODEL_IDS = [
462461
"anthropic.claude-sonnet-4-20250514-v1:0",
463462
"anthropic.claude-sonnet-4-5-20250929-v1:0",

packages/types/src/providers/zai.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ export const internationalZAiModels = {
3232
description:
3333
"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.",
3434
},
35+
"glm-4.6": {
36+
maxTokens: 98_304,
37+
contextWindow: 204_800,
38+
supportsImages: false,
39+
supportsPromptCache: true,
40+
inputPrice: 0.6,
41+
outputPrice: 2.2,
42+
cacheWritesPrice: 0,
43+
cacheReadsPrice: 0.11,
44+
description:
45+
"GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.",
46+
},
3547
} as const satisfies Record<string, ModelInfo>
3648

3749
export type MainlandZAiModelId = keyof typeof mainlandZAiModels
@@ -101,6 +113,44 @@ export const mainlandZAiModels = {
101113
},
102114
],
103115
},
116+
"glm-4.6": {
117+
maxTokens: 98_304,
118+
contextWindow: 204_800,
119+
supportsImages: false,
120+
supportsPromptCache: true,
121+
inputPrice: 0.29,
122+
outputPrice: 1.14,
123+
cacheWritesPrice: 0,
124+
cacheReadsPrice: 0.057,
125+
description:
126+
"GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.",
127+
tiers: [
128+
{
129+
contextWindow: 32_000,
130+
inputPrice: 0.21,
131+
outputPrice: 1.0,
132+
cacheReadsPrice: 0.043,
133+
},
134+
{
135+
contextWindow: 128_000,
136+
inputPrice: 0.29,
137+
outputPrice: 1.14,
138+
cacheReadsPrice: 0.057,
139+
},
140+
{
141+
contextWindow: 200_000,
142+
inputPrice: 0.29,
143+
outputPrice: 1.14,
144+
cacheReadsPrice: 0.057,
145+
},
146+
{
147+
contextWindow: Infinity,
148+
inputPrice: 0.29,
149+
outputPrice: 1.14,
150+
cacheReadsPrice: 0.057,
151+
},
152+
],
153+
},
104154
} as const satisfies Record<string, ModelInfo>
105155

106156
export const ZAI_DEFAULT_TEMPERATURE = 0

releases/3.28.14-release.png

1.19 MB
Loading

src/api/providers/__tests__/bedrock.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ vi.mock("@aws-sdk/client-bedrock-runtime", () => {
2525

2626
import { AwsBedrockHandler } from "../bedrock"
2727
import { ConverseStreamCommand, BedrockRuntimeClient } from "@aws-sdk/client-bedrock-runtime"
28-
import { BEDROCK_CLAUDE_SONNET_4_MODEL_ID } from "@roo-code/types"
28+
import { BEDROCK_1M_CONTEXT_MODEL_IDS } from "@roo-code/types"
2929

3030
import type { Anthropic } from "@anthropic-ai/sdk"
3131

@@ -569,7 +569,7 @@ describe("AwsBedrockHandler", () => {
569569
describe("1M context beta feature", () => {
570570
it("should enable 1M context window when awsBedrock1MContext is true for Claude Sonnet 4", () => {
571571
const handler = new AwsBedrockHandler({
572-
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
572+
apiModelId: BEDROCK_1M_CONTEXT_MODEL_IDS[0],
573573
awsAccessKey: "test",
574574
awsSecretKey: "test",
575575
awsRegion: "us-east-1",
@@ -584,7 +584,7 @@ describe("AwsBedrockHandler", () => {
584584

585585
it("should use default context window when awsBedrock1MContext is false for Claude Sonnet 4", () => {
586586
const handler = new AwsBedrockHandler({
587-
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
587+
apiModelId: BEDROCK_1M_CONTEXT_MODEL_IDS[0],
588588
awsAccessKey: "test",
589589
awsSecretKey: "test",
590590
awsRegion: "us-east-1",
@@ -614,7 +614,7 @@ describe("AwsBedrockHandler", () => {
614614

615615
it("should include anthropic_beta parameter when 1M context is enabled", async () => {
616616
const handler = new AwsBedrockHandler({
617-
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
617+
apiModelId: BEDROCK_1M_CONTEXT_MODEL_IDS[0],
618618
awsAccessKey: "test",
619619
awsSecretKey: "test",
620620
awsRegion: "us-east-1",
@@ -644,7 +644,7 @@ describe("AwsBedrockHandler", () => {
644644

645645
it("should not include anthropic_beta parameter when 1M context is disabled", async () => {
646646
const handler = new AwsBedrockHandler({
647-
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
647+
apiModelId: BEDROCK_1M_CONTEXT_MODEL_IDS[0],
648648
awsAccessKey: "test",
649649
awsSecretKey: "test",
650650
awsRegion: "us-east-1",
@@ -698,7 +698,7 @@ describe("AwsBedrockHandler", () => {
698698

699699
it("should enable 1M context window with cross-region inference for Claude Sonnet 4", () => {
700700
const handler = new AwsBedrockHandler({
701-
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
701+
apiModelId: BEDROCK_1M_CONTEXT_MODEL_IDS[0],
702702
awsAccessKey: "test",
703703
awsSecretKey: "test",
704704
awsRegion: "us-east-1",
@@ -711,12 +711,12 @@ describe("AwsBedrockHandler", () => {
711711
// Should have 1M context window even with cross-region prefix
712712
expect(model.info.contextWindow).toBe(1_000_000)
713713
// Model ID should have cross-region prefix
714-
expect(model.id).toBe(`us.${BEDROCK_CLAUDE_SONNET_4_MODEL_ID}`)
714+
expect(model.id).toBe(`us.${BEDROCK_1M_CONTEXT_MODEL_IDS[0]}`)
715715
})
716716

717717
it("should include anthropic_beta parameter with cross-region inference for Claude Sonnet 4", async () => {
718718
const handler = new AwsBedrockHandler({
719-
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
719+
apiModelId: BEDROCK_1M_CONTEXT_MODEL_IDS[0],
720720
awsAccessKey: "test",
721721
awsSecretKey: "test",
722722
awsRegion: "us-east-1",
@@ -746,7 +746,7 @@ describe("AwsBedrockHandler", () => {
746746
// Should not include anthropic_version since thinking is not enabled
747747
expect(commandArg.additionalModelRequestFields.anthropic_version).toBeUndefined()
748748
// Model ID should have cross-region prefix
749-
expect(commandArg.modelId).toBe(`us.${BEDROCK_CLAUDE_SONNET_4_MODEL_ID}`)
749+
expect(commandArg.modelId).toBe(`us.${BEDROCK_1M_CONTEXT_MODEL_IDS[0]}`)
750750
})
751751
})
752752
})

src/api/providers/__tests__/zai.spec.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,19 @@ describe("ZAiHandler", () => {
7171
expect(model.id).toBe(testModelId)
7272
expect(model.info).toEqual(internationalZAiModels[testModelId])
7373
})
74+
75+
it("should return GLM-4.6 international model with correct configuration", () => {
76+
const testModelId: InternationalZAiModelId = "glm-4.6"
77+
const handlerWithModel = new ZAiHandler({
78+
apiModelId: testModelId,
79+
zaiApiKey: "test-zai-api-key",
80+
zaiApiLine: "international",
81+
})
82+
const model = handlerWithModel.getModel()
83+
expect(model.id).toBe(testModelId)
84+
expect(model.info).toEqual(internationalZAiModels[testModelId])
85+
expect(model.info.contextWindow).toBe(204_800)
86+
})
7487
})
7588

7689
describe("China Z AI", () => {
@@ -108,6 +121,19 @@ describe("ZAiHandler", () => {
108121
expect(model.id).toBe(testModelId)
109122
expect(model.info).toEqual(mainlandZAiModels[testModelId])
110123
})
124+
125+
it("should return GLM-4.6 China model with correct configuration", () => {
126+
const testModelId: MainlandZAiModelId = "glm-4.6"
127+
const handlerWithModel = new ZAiHandler({
128+
apiModelId: testModelId,
129+
zaiApiKey: "test-zai-api-key",
130+
zaiApiLine: "china",
131+
})
132+
const model = handlerWithModel.getModel()
133+
expect(model.id).toBe(testModelId)
134+
expect(model.info).toEqual(mainlandZAiModels[testModelId])
135+
expect(model.info.contextWindow).toBe(204_800)
136+
})
111137
})
112138

113139
describe("Default behavior", () => {

0 commit comments

Comments
 (0)