Skip to content

Commit 3ccc049

Browse files
mini2sdaniel-lxsroomote[bot]roomotemrubens
authored
Workflow diff dev (#489)
* test: workflow2 * feat: add coworkflow support with file monitoring, CodeLens, and task decorations * refactor: update indentation handling and file watching patterns * refactor: update workflow directory structure and enhance document handling * feat: add zgsm code mode configuration and workflow modes * feat: add workflow mode and update task display * refactor: restructure workflow modes and update command mappings * 修复 ESLint 配置问题 - 移除 webview-ui/package.json 中已废弃的 --ext 参数 - 添加 @typescript-eslint/no-unused-expressions 规则的正确配置选项 - 修复与 ESLint flat config 格式的兼容性问题 * feat: add timestamp formatting to chat messages (#464) * Workflow test2 (#465) * feat: add timestamp formatting to chat messages * feat: add workflow task i18n prompts for en/zh-CN/zh-TW * Merge branch 'main' of github.com:zgsm-ai/costrict into workflow-dev * refactor(workflow): optimize workflow action handling * refactor: rename .coworkflow to .cospec and update workflow templates * docs: add task status update instructions and task markers * docs: fix typo in support-prompt instructions * docs: update task workflow instructions and status update process * build: update version and add test instructions * Roo to main (#477) (#478) * docs: update PR template branding from Roo Code to Costrict * feat: optimize memory usage for image handling in webview (#7556) * feat: optimize memory usage for image handling in webview - Replace base64 image data with webview URIs to reduce memory footprint - Add proper resource roots to webview for workspace file access - Implement convertToWebviewUri method for safe file-to-URI conversion - Update ImageViewer to handle both webview URIs and file paths separately - Add image message type for proper image rendering in chat - Improve error handling and display for failed image loads - Add comprehensive tests for ImageViewer component - Format display paths as relative for better readability This change significantly reduces memory usage by avoiding base64 encoding of images and instead using VSCode's webview URI system for direct file access. Images are now loaded on-demand from disk rather than being held in memory as base64 strings. * fix: address PR review comments - Use safeJsonParse instead of JSON.parse in ChatRow.tsx - Add type definition for parsed image info - Add more specific error types in ClineProvider.ts - Add comprehensive JSDoc comments to ImageBlock.tsx - Improve error handling and type safety * fix: address MrUbens' review comments - Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection - Internationalize 'No image data' text using i18n system * chore: remove useless comment * chore(i18n): add image.noData to all locales to fix translation check * test: update ImageViewer.spec to align with i18n key and flexible path formatting * feat: rename Account tab to Cloud tab (#7558) * feat: add Ollama API key support for Turbo mode (#7425) * feat: add Ollama API key support for Turbo mode - Add ollamaApiKey field to ProviderSettings schema - Add ollamaApiKey to SECRET_STATE_KEYS for secure storage - Update Ollama and NativeOllama providers to use API key for authentication - Add UI field for Ollama API key (shown when custom base URL is provided) - Add test coverage for API key functionality This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services. * fix: use VSCodeTextField for Ollama API key field Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations * Add missing translation keys for Ollama API key support - Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files - Support for authenticated Ollama instances and cloud services - Relates to PR #7425 * refactor: improve type safety for Ollama client configuration - Replace 'any' type with proper OllamaOptions (Config) type - Import Config type from ollama package for better type checking --------- * Disconnect extension bridge on logout (#7563) * Disconnect extension bridge on logout * Remove bad test * Cleanup * Fix claudeCode.notFound translation key (#7571) I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated. * v3.26.4 (#7579) * Update contributors list (#7462) * Changeset version bump (#7580) * feat: add configurable embedding batch size for code indexing (#7464) * Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (#7555) * Cloud: fix provider syncing (#7603) ClineProvider creation was moved before CloudService which broke the old way of doing things. * fix: add cache reporting support for OpenAI-Native provider (#7602) * fix: add cache reporting support for OpenAI-Native provider - Add normalizeUsage method to properly extract cache tokens from Responses API - Support both detailed token shapes (input_tokens_details) and legacy fields - Calculate cache read/write tokens with proper fallbacks - Include reasoning tokens when available in output_tokens_details - Ensure accurate cost calculation using uncached input tokens This fixes the issue where caching information was not being reported when using the OpenAI-Native provider with the Responses API. * fix: improve cache token normalization and add comprehensive tests - Add fallback to derive total input tokens from details when totals are missing - Remove unused convertToOpenAiMessages import - Add comment explaining cost calculation alignment with Gemini provider - Add comprehensive test coverage for normalizeUsage method covering: - Detailed token shapes with cached/miss tokens - Legacy field names and SSE-only events - Edge cases including missing totals with details-only - Cost calculation with uncached input tokens * fix: address PR review comments - Remove incorrect fallback to missFromDetails for cache write tokens - Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction) - Improve readability by extracting cache detail checks to intermediate variables - Remove redundant ?? undefined - Update tests to reflect correct behavior (miss tokens are not cache writes) - Add clarifying comments about cache miss vs cache write tokens * feat: add auto-approve support for MCP access_resource tool (#7606) * Move message queue to the extension host (#7604) * Send custom modes to the extension bridge (#7612) * Never give up in socket transport (#7616) * Fix socket-io client event handling (#7618) * More socket-io client fixes from PR feedback (#7619) * More socket-io client logging improvements (#7620) * Publish subtask events (#7626) * Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (#7578) * chore: add changeset for v3.26.5 (#7628) * Update contributors list (#7629) * Changeset version bump (#7630) * feat: add run_slash_command tool for executing slash commands (#7473) * Focus the extension when receiving bridge commands (#7633) * Release: v1.73.0 (#7636) * Cloud: remove extension_bridge_enabled for personal users (#7638) * Publish token usage metrics (#7637) * fix: preserve scroll position when switching tabs in settings (#7587) * fix: preserve scroll position when switching tabs in settings * ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools --------- * feat: add Kimi K2 Turbo model configuration to moonshotModels (#7593) * feat: add Kimi K2 Turbo model configuration to moonshotModels * feat: update Kimi K2 Turbo pricing and cache read prices * fix: use askApproval wrapper in insert_content and search_and_replace tools (#7649) Fixes issue where isWriteProtected was incorrectly passed as the partial flag to task.ask(), causing "Current ask promise was ignored (#1)" error. Both tools now use the askApproval wrapper function which correctly handles the parameter ordering, passing undefined for progressStatus and isWriteProtected as the fourth parameter. Fixes #7648 * Release v3.26.6 (#7650) * Changeset version bump (#7651) * Delete .github/workflows/discord-pr-notify.yml * Remove unused slack notif (#7655) * Handle zsh process substitution correctly (#7658) * Handle zsh glob qualifiers correctly (#7667) * Minor zh-TW Traditional Chinese locale typo fix (#7672) * feat: Add DeepInfra as a model provider in Roo Code (#7677) * fix: validate MCP tool exists before execution (#7632) * fix: add error transform to cryptic openAI SDK errors when API key is invalid (#7586) * feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (#7646) * fix: prevent countdown timer from showing in history for answered follow-up questions (#7686) * fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (#7673) * feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (#7663) * Fix test * Release v3.26.7 (#7691) * Delete .changeset/petite-rats-admire.md * feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (#7693) * Use an allowlist to keep the prompt default shell sane (#7681) * Changeset version bump (#7690) * Fix: Improve WelcomeView styling and readability (#7682) * fix: improve WelcomeView styling and readability - Reduced excessive padding from p-16 to p-6 - Removed excessive bold text throughout - Made provider cards more compact with smaller icons (32x32px) - Increased introduction text size from text-sm to text-base for better visibility - Centered the main greeting title - Improved visual hierarchy with proper text sizing and spacing - Added subtle borders and improved color contrast * fix: remove undefined color class from incentive text Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good. * feat: add Kimi K2-0905 model to Chutes provider (#7701) * fix: handle array paths from VSCode terminal profiles (#7697) * fix: handle array paths from VSCode terminal profiles - Updated terminal profile interfaces to support string | string[] for path property - Added normalizeShellPath helper to safely extract first element from array paths - Modified isShellAllowed to handle both string and array inputs - Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath - Added comprehensive tests for array path handling Fixes #7695 * feat: add validateShellPath export for robust shell validation - Created validateShellPath as a public API for shell path validation - Refactored internal validation logic into isShellAllowedInternal - Added comprehensive test coverage for all edge cases - Maintains backward compatibility with deprecated isShellAllowed - Handles arrays, strings, null, undefined, and nested arrays gracefully * Simplify roomote's work a little --------- * Edit/Delete User Message (#7447) * fix: prevent stack overflow in codebase indexing for large projects (#7712) * fix: identify mcp and slash command config path in multiple folder workspace (#6904) * fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (#7583) * fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (#7434) * fix: preserve context by retrying with full conversation on invalid previous_response_id (#7714) * chore: add changeset for v3.26.8 (#7715) * feat(checkpoints): create checkpoint when user sends a message (#7713) * feat(checkpoints): create checkpoint on user message send * fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row * Fix checkpoint suppression for user messages - Propagate suppressMessage flag through event chain properly - Update ChatView to check checkpoint metadata for suppressMessage flag - Ensure checkpoint messages are created but not rendered when suppressed - Fix bug where checkpointSave(false) should have been checkpointSave(true) * fix: only create checkpoint on user message when files have changed - Changed allowEmpty from true to false in checkpointSave call - Checkpoints will now only be created when there are actual file changes - This avoids creating empty commits in the shadow git repository * test: update checkpoint test to include suppressMessage parameter - Fixed test expectation to match the new function signature - saveCheckpoint now expects both allowEmpty and suppressMessage parameters --------- * Bump to 3.27.0 (#7719) * Changeset version bump (#7716) * fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (#7687) - Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output - Updated deepseek-reasoner pricing: same unified rates as deepseek-chat - Both models now have identical pricing as per DeepSeek announcement - Pricing takes effect at 16:00 UTC, Sept 5th, 2025 Fixes #7685 * feat: replace cloud waitlist ad with direct Cloud link in navigation (#7742) * feat: show dash instead of zero for missing data on evals page (#7748) * Feature/update vertex ai models and regions (#7727) * Add model info to eval runs table (#7749) * chore(deps): update dependency eslint-config-prettier to v10.1.8 (#6464) * chore(deps): update dependency esbuild to v0.25.9 (#5455) * chore(deps): update dependency @changesets/cli to v2.29.6 (#7376) * chore(deps): update dependency nock to v14.0.10 (#6465) * chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (#7764) * 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 #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594) * fix: reduce CodeBlock button z-index to prevent overlap with popovers (#7783) Fixes #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 (#7679) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#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 #7788 * fix: adjust padding and layout for ChatTextArea in edit mode * refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class --------- * Let people paste in the auth redirect url (#7805) * test: change console.error to console.warn in tests * fix: resolve chat message edit/delete duplication issues (#7793) * fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (#7819) * UI: Render reasoning as plain italic (match <thinking>) (#7752) * Add taskSyncEnabled to userSettingsConfigSchema (#7827) feat: add taskSyncEnabled to userSettingsConfigSchema * Release: v1.75.0 (#7829) chore: bump version to v1.75.0 * fix: prevent negative cost values and improve label visibility in evals chart (#7830) * Fix Groq context window display (#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 (#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 --------- * feat: In-extension dismissible upsells for Roo Code Cloud (#7850) * First pass at separate upsell dialog * Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594) * fix: reduce CodeBlock button z-index to prevent overlap with popovers (#7783) Fixes #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 (#7679) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#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 #7788 * fix: adjust padding and layout for ChatTextArea in edit mode * refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class --------- * Let people paste in the auth redirect url (#7805) * fix: resolve chat message edit/delete duplication issues (#7793) * fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (#7819) * UI: Render reasoning as plain italic (match <thinking>) (#7752) * Add taskSyncEnabled to userSettingsConfigSchema (#7827) feat: add taskSyncEnabled to userSettingsConfigSchema * Release: v1.75.0 (#7829) chore: bump version to v1.75.0 * fix: prevent negative cost values and improve label visibility in evals chart (#7830) * Fix Groq context window display (#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 * Fix dismissed flicker * Fix long task upsell --------- * v3.28.0 (#7858) * Changeset version bump (#7859) * feat(chat): add chat search functionality with highlighting * feat: show notification when the checkpoint initialization fails (#7766) * Bust cache in generated image preview (#7860) * test: disable TaskHeader upsell tests * test: refactor TaskHeader test file * feat: Add cloud task button for opening tasks in Roo Code Cloud (#7572) * fix: center active mode in selector dropdown on open (#7883) * Make Posthog telemetry the default (#7909) * Fix: Preserve first message during conversation condensing (#7910) * In-app announcement for Roo Code Cloud (#7914) * chore: add changeset for v3.28.1 (#7916) * Changeset version bump (#7917) * 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 (#7876) * Fix message queue re-queue loop in Task.ask() (#7823) * fix: preserve original first message context during conversation condensing (#7939) * Add a little padding to the cloudview (#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 (#7885) * fix: include API key in Ollama /api/tags requests (#7903) * feat: add Qwen3 Next 80B A3B models to chutes provider (#7948) * ux: Smaller and more subtle auto-approve UI (#7894) * Disable Roomote Control on logout (#7976) * Remove chevrons from chat buttons (#7970) * chore: add changeset for v3.28.2 (#7979) * Changeset version bump (#7980) * ux: Makes text area buttons appear only when there's text (#7987) * fix: corrected C# tree-sitter query (#7813) * feat: Move slash commands to Settings tab with gear icon for discoverability (#7988) * Add Z.ai coding plan support (#8003) * chore(deps): bump axios from 1.9.0 to 1.12.0 (#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](https://github.com/axios/axios/compare/v1.9.0...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... * Fix context menu is obscured when edit message. (#7951) * feat: add keyboard shortcut for "Add to Context" action (#7908) * fix: handle ByteString conversion errors in OpenAI embedders (#8008) * CONTRIBUTING.md tweaks and issue template rewrite (#8014) * feat: Reposition Add Image button inside ChatTextArea (#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 (#7813) * feat: Move slash commands to Settings tab with gear icon for discoverability (#7988) * Add Z.ai coding plan support (#8003) * chore(deps): bump axios from 1.9.0 to 1.12.0 (#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](https://github.com/axios/axios/compare/v1.9.0...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... * Fix context menu is obscured when edit message. (#7951) * feat: add keyboard shortcut for "Add to Context" action (#7908) * fix: handle ByteString conversion errors in OpenAI embedders (#8008) * CONTRIBUTING.md tweaks and issue template rewrite (#8014) * Visual tweaks --------- * 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 (#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) (#7818) * fix: handle square bracket HTML entities in Gemini responses (#7577) * feat: Replace + icon with edit icon for New Task button (#7942) * Release v3.28.3 (#8025) * Changeset version bump (#8026) * feat: remove web-docs app (#8027) * fix: skip flaky Windows test in custom-system-prompt.spec.ts (#8023) * feat: add GDPR-compliant cookie consent banner (#8022) * Release: v1.76.0 (#8030) * Types 1.77.0 (#8031) * feat(web): update homepage headline and tagline for remote control capabilities (#7911) * Merge remote-tracking branch 'upstream/main' into roo-to-main * ux: Responsive Auto-Approve (#8032) * feat(cloud): Add telemetry retry queue for network resilience (#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 (#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. --------- * Add organizationFeaturesSchema with roomoteControlEnabled (#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 * Release: v1.78.0 (#8089) chore: bump version to v1.78.0 * Get the model id property for a given provider (#8009) * Fix: Transform keybindings in nightly build to fix command+y shortcut (#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. --------- * Add a list of sub-processors (#8163) * Add cookie policy (#8165) * ux: Redesigned Message Feed (#7985) * Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main * bug: Incorrect copy for "Run" command when approving execution (#8179) * test: set default language to English in prompt tests * Supernova (#8175) * chore: add changeset for v3.28.4 (#8182) * Changeset version bump (#8183) * feat(chat): enhance user info display and file path highlighting * fix: support dash prefix in parseMarkdownChecklist for todo lists (#8055) - Updated regex pattern to support optional dash prefix (e.g., "- [ ] Task") - Added comprehensive test coverage for both formats - Fixes issue where todo lists with dash prefixes were not being parsed correctly Fixes #8054 * Updating the privacy policy to allow us to send occasional emails (#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 (#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 #8017 * Delete src/api/providers/__tests__/vertex-tiered-pricing.spec.ts --------- * update sambanova models (#8186) * update sambanova models * fix typo * Fix duplicate rehydrate during reasoning; centralize rehydrate and preserve cancel metadata (#8171) * Wrap code blocks by default (#8194) * Merge remote-tracking branch 'upstream/main' into roo-to-main * Add an announcement for Supernova (#8197) * Add an announcement for Supernova * Remove duplicate keys * refactor(chat): optimize ChatRow rendering and user info handling * Release v3.28.5 (#8198) chore: add changeset for v3.28.5 * Changeset version bump (#8199) * Remove language selection and word wrap toggle from CodeBlock (#8208) * feat: Add keyboard shortcut for toggling auto-approve (Cmd/Ctrl+Alt+A) (#8214) * Bare metal evals fixes (#8224) * Fix: Improve reasoning block formatting for better readability (#7868) * fix: prevent checkpoint text from wrapping in non-English languages (#8207) * fix: respect Ollama Modelfile num_ctx configuration (#7798) * Merge remote-tracking branch 'upstream/main' into roo-to-main --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Daniel <[email protected]> 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: Daniel Riccio <[email protected]> Co-authored-by: Christiaan Arnoldus <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: mrubens <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: John Richmond <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: Chris Estreich <[email protected]> Co-authored-by: Mohammad Danaee nia <[email protected]> Co-authored-by: 淡草 <[email protected]> Co-authored-by: WangXiaolong <[email protected]> Co-authored-by: Peter Dave Hello <[email protected]> Co-authored-by: Thach Nguyen <[email protected]> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: CellenLee <[email protected]> Co-authored-by: NaccOll <[email protected]> Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]> Co-authored-by: ssweens <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: ItsOnlyBinary <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Mubeen Zulfiqar <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: James Edward Dillard <[email protected]> Co-authored-by: Jorge Piedrahita Ortiz <[email protected]> * feat: project wiki (#476) * feat: add file diff functionality for workflow updates * refactor: move wiki helpers to costrict module and update imports * feat: add test and project wiki tips with i18n support * feat: add workflow diff and project wiki (#480) * Roo to main (#477) * docs: update PR template branding from Roo Code to Costrict * feat: optimize memory usage for image handling in webview (#7556) * feat: optimize memory usage for image handling in webview - Replace base64 image data with webview URIs to reduce memory footprint - Add proper resource roots to webview for workspace file access - Implement convertToWebviewUri method for safe file-to-URI conversion - Update ImageViewer to handle both webview URIs and file paths separately - Add image message type for proper image rendering in chat - Improve error handling and display for failed image loads - Add comprehensive tests for ImageViewer component - Format display paths as relative for better readability This change significantly reduces memory usage by avoiding base64 encoding of images and instead using VSCode's webview URI system for direct file access. Images are now loaded on-demand from disk rather than being held in memory as base64 strings. * fix: address PR review comments - Use safeJsonParse instead of JSON.parse in ChatRow.tsx - Add type definition for parsed image info - Add more specific error types in ClineProvider.ts - Add comprehensive JSDoc comments to ImageBlock.tsx - Improve error handling and type safety * fix: address MrUbens' review comments - Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection - Internationalize 'No image data' text using i18n system * chore: remove useless comment * chore(i18n): add image.noData to all locales to fix translation check * test: update ImageViewer.spec to align with i18n key and flexible path formatting * feat: rename Account tab to Cloud tab (#7558) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * feat: add Ollama API key support for Turbo mode (#7425) * feat: add Ollama API key support for Turbo mode - Add ollamaApiKey field to ProviderSettings schema - Add ollamaApiKey to SECRET_STATE_KEYS for secure storage - Update Ollama and NativeOllama providers to use API key for authentication - Add UI field for Ollama API key (shown when custom base URL is provided) - Add test coverage for API key functionality This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services. * fix: use VSCodeTextField for Ollama API key field Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations * Add missing translation keys for Ollama API key support - Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files - Support for authenticated Ollama instances and cloud services - Relates to PR #7425 * refactor: improve type safety for Ollama client configuration - Replace 'any' type with proper OllamaOptions (Config) type - Import Config type from ollama package for better type checking --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Daniel Riccio <[email protected]> * Disconnect extension bridge on logout (#7563) * Disconnect extension bridge on logout * Remove bad test * Cleanup * Fix claudeCode.notFound translation key (#7571) I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated. * v3.26.4 (#7579) * Update contributors list (#7462) Co-authored-by: mrubens <[email protected]> * Changeset version bump (#7580) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: add configurable embedding batch size for code indexing (#7464) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Daniel Riccio <[email protected]> * Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (#7555) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Cloud: fix provider syncing (#7603) ClineProvider creation was moved before CloudService which broke the old way of doing things. * fix: add cache reporting support for OpenAI-Native provider (#7602) * fix: add cache reporting support for OpenAI-Native provider - Add normalizeUsage method to properly extract cache tokens from Responses API - Support both detailed token shapes (input_tokens_details) and legacy fields - Calculate cache read/write tokens with proper fallbacks - Include reasoning tokens when available in output_tokens_details - Ensure accurate cost calculation using uncached input tokens This fixes the issue where caching information was not being reported when using the OpenAI-Native provider with the Responses API. * fix: improve cache token normalization and add comprehensive tests - Add fallback to derive total input tokens from details when totals are missing - Remove unused convertToOpenAiMessages import - Add comment explaining cost calculation alignment with Gemini provider - Add comprehensive test coverage for normalizeUsage method covering: - Detailed token shapes with cached/miss tokens - Legacy field names and SSE-only events - Edge cases including missing totals with details-only - Cost calculation with uncached input tokens * fix: address PR review comments - Remove incorrect fallback to missFromDetails for cache write tokens - Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction) - Improve readability by extracting cache detail checks to intermediate variables - Remove redundant ?? undefined - Update tests to reflect correct behavior (miss tokens are not cache writes) - Add clarifying comments about cache miss vs cache write tokens * feat: add auto-approve support for MCP access_resource tool (#7606) * Move message queue to the extension host (#7604) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Send custom modes to the extension bridge (#7612) * Never give up in socket transport (#7616) * Fix socket-io client event handling (#7618) * More socket-io client fixes from PR feedback (#7619) * More socket-io client logging improvements (#7620) * Publish subtask events (#7626) * Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (#7578) Co-authored-by: Matt Rubens <[email protected]> * chore: add changeset for v3.26.5 (#7628) * Update contributors list (#7629) Co-authored-by: mrubens <[email protected]> * Changeset version bump (#7630) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: add run_slash_command tool for executing slash commands (#7473) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Daniel Riccio <[email protected]> * Focus the extension when receiving bridge commands (#7633) * Release: v1.73.0 (#7636) * Cloud: remove extension_bridge_enabled for personal users (#7638) * Publish token usage metrics (#7637) * fix: preserve scroll position when switching tabs in settings (#7587) * fix: preserve scroll position when switching tabs in settings * ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools --------- Co-authored-by: Daniel Riccio <[email protected]> * feat: add Kimi K2 Turbo model configuration to moonshotModels (#7593) * feat: add Kimi K2 Turbo model configuration to moonshotModels * feat: update Kimi K2 Turbo pricing and cache read prices * fix: use askApproval wrapper in insert_content and search_and_replace tools (#7649) Fixes issue where isWriteProtected was incorrectly passed as the partial flag to task.ask(), causing "Current ask promise was ignored (#1)" error. Both tools now use the askApproval wrapper function which correctly handles the parameter ordering, passing undefined for progressStatus and isWriteProtected as the fourth parameter. Fixes #7648 Co-authored-by: Roo Code <[email protected]> * Release v3.26.6 (#7650) * Changeset version bump (#7651) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Delete .github/workflows/discord-pr-notify.yml * Remove unused slack notif (#7655) * Handle zsh process substitution correctly (#7658) * Handle zsh glob qualifiers correctly (#7667) * Minor zh-TW Traditional Chinese locale typo fix (#7672) * feat: Add DeepInfra as a model provider in Roo Code (#7677) * fix: validate MCP tool exists before execution (#7632) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Daniel Riccio <[email protected]> * fix: add error transform to cryptic openAI SDK errors when API key is invalid (#7586) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Daniel Riccio <[email protected]> * feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (#7646) Co-authored-by: Daniel Riccio <[email protected]> * fix: prevent countdown timer from showing in history for answered follow-up questions (#7686) * fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (#7673) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (#7663) * Fix test * Release v3.26.7 (#7691) * Delete .changeset/petite-rats-admire.md * feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (#7693) * Use an allowlist to keep the prompt default shell sane (#7681) * Changeset version bump (#7690) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Fix: Improve WelcomeView styling and readability (#7682) * fix: improve WelcomeView styling and readability - Reduced excessive padding from p-16 to p-6 - Removed excessive bold text throughout - Made provider cards more compact with smaller icons (32x32px) - Increased introduction text size from text-sm to text-base for better visibility - Centered the main greeting title - Improved visual hierarchy with proper text sizing and spacing - Added subtle borders and improved color contrast * fix: remove undefined color class from incentive text Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good. * feat: add Kimi K2-0905 model to Chutes provider (#7701) Co-authored-by: Roo Code <[email protected]> * fix: handle array paths from VSCode terminal profiles (#7697) * fix: handle array paths from VSCode terminal profiles - Updated terminal profile interfaces to support string | string[] for path property - Added normalizeShellPath helper to safely extract first element from array paths - Modified isShellAllowed to handle both string and array inputs - Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath - Added comprehensive tests for array path handling Fixes #7695 * feat: add validateShellPath export for robust shell validation - Created validateShellPath as a public API for shell path validation - Refactored internal validation logic into isShellAllowedInternal - Added comprehensive test coverage for all edge cases - Maintains backward compatibility with deprecated isShellAllowed - Handles arrays, strings, null, undefined, and nested arrays gracefully * Simplify roomote's work a little --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: John Richmond <[email protected]> * Edit/Delete User Message (#7447) * fix: prevent stack overflow in codebase indexing for large projects (#7712) * fix: identify mcp and slash command config path in multiple folder workspace (#6904) * fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (#7583) * fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (#7434) Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: preserve context by retrying with full conversation on invalid previous_response_id (#7714) * chore: add changeset for v3.26.8 (#7715) * feat(checkpoints): create checkpoint when user sends a message (#7713) * feat(checkpoints): create checkpoint on user message send * fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row * Fix checkpoint suppression for user messages - Propagate suppressMessage flag through event chain properly - Update ChatView to check checkpoint metadata for suppressMessage flag - Ensure checkpoint messages are created but not rendered when suppressed - Fix bug where checkpointSave(false) should have been checkpointSave(true) * fix: only create checkpoint on user message when files have changed - Changed allowEmpty from true to false in checkpointSave call - Checkpoints will now only be created when there are actual file changes - This avoids creating empty commits in the shadow git repository * test: update checkpoint test to include suppressMessage parameter - Fixed test expectation to match the new function signature - saveCheckpoint now expects both allowEmpty and suppressMessage parameters --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: Daniel Riccio <[email protected]> * Bump to 3.27.0 (#7719) * Changeset version bump (#7716) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (#7687) - Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output - Updated deepseek-reasoner pricing: same unified rates as deepseek-chat - Both models now have identical pricing as per DeepSeek announcement - Pricing takes effect at 16:00 UTC, Sept 5th, 2025 Fixes #7685 Co-authored-by: Roo Code <[email protected]> * feat: replace cloud waitlist ad with direct Cloud link in navigation (#7742) Co-authored-by: Roo Code <[email protected]> * feat: show dash instead of zero for missing data on evals page (#7748) Co-authored-by: Roo Code <[email protected]> * Feature/update vertex ai models and regions (#7727) * Add model info to eval runs table (#7749) * chore(deps): update dependency eslint-config-prettier to v10.1.8 (#6464) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency esbuild to v0.25.9 (#5455) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @changesets/cli to v2.29.6 (#7376) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency nock to v14.0.10 (#6465) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (#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 #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594) * fix: reduce CodeBlock button z-index to prevent overlap with popovers (#7783) Fixes #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 (#7679) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#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 #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 (#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 (#7793) * fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (#7819) * UI: Render reasoning as plain italic (match <thinking>) (#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 (#7827) feat: add taskSyncEnabled to userSettingsConfigSchema Co-authored-by: Roo Code <[email protected]> * Release: v1.75.0 (#7829) chore: bump version to v1.75.0 * fix: prevent negative cost values and improve label visibility in evals chart (#7830) Co-authored-by: Roo Code <[email protected]> * Fix Groq context window display (#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 (#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 (#7850) * First pass at separate upsell dialog * Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594) * fix: reduce CodeBlock button z-index to prevent overlap with popovers (#7783) Fixes #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 (#7679) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#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 #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 (#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 (#7793) * fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (#7819) * UI: Render reasoning as plain italic (match <thinking>) (#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 (#7827) feat: add taskSyncEnabled to userSettingsConfigSchema Co-authored-by: Roo Code <[email protected]> * Release: v1.75.0 (#7829) chore: bump version to v1.75.0 * fix: prevent negative cost values and improve label visibility in evals chart (#7830) Co-authored-by: Roo Code <[email protected]> * Fix Groq context window display (#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 (#7858) * Changeset version bump (#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 (#7766) Co-authored-by: daniel-lxs <[email protected]> * Bust cache in generated image preview (#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 (#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 (#7883) Co-authored-by: Roo Code <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * Make Posthog telemetry the default (#7909) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Fix: Preserve first message during conversation condensing (#7910) * In-app announcement for Roo Code Cloud (#7914) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * chore: add changeset for v3.28.1 (#7916) * Changeset version bump (#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 (#7876) Co-authored-by: Roo Code <[email protected]> * Fix message queue re-queue loop in Task.ask() (#7823) * fix: preserve original first message context during conversation condensing (#7939) * Add a little padding to the cloudview (#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 (#7885) Co-authored-by: Roo Code <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * fix: include API key in Ollama /api/tags requests (#7903) Co-authored-by: Roo Code <[email protected]> * feat: add Qwen3 Next 80B A3B models to chutes provider (#7948) * ux: Smaller and more subtle auto-approve UI (#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 (#7976) * Remove chevrons from chat buttons (#7970) * chore: add changeset for v3.28.2 (#7979) * Changeset version bump (#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 (#7987) * fix: corrected C# tree-sitter query (#7813) * feat: Move slash commands to Settings tab with gear icon for discoverability (#7988) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[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 (#8003) * chore(deps): bump axios from 1.9.0 to 1.12.0 (#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](https://github.com/axios/axios/compare/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. (#7951) * feat: add keyboard shortcut for "Add to Context" action (#7908) Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: handle ByteString conversion errors in OpenAI embedders (#8008) * CONTRIBUTING.md tweaks and issue template rewrite (#8014) * feat: Reposition Add Image button inside ChatTextArea (#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 (#7813) * feat: Move slash commands to Settings tab with gear icon for discoverability (#7988) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[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 (#8003) * chore(deps): bump axios from 1.9.0 to 1.12.0 (#7963) Bumps [axios](https://github.com/axios/axios) from 1.9.0…
1 parent 80e66be commit 3ccc049

File tree

119 files changed

+20599
-353
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+20599
-353
lines changed

.cospec/add-demo/.cometa.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"design": {
3+
"lastTaskId": "",
4+
"lastCheckpointId": ""
5+
},
6+
"requirements": {
7+
"lastTaskId": "",
8+
"lastCheckpointId": ""
9+
},
10+
"tasks": {
11+
"lastTaskId": "",
12+
"lastCheckpointId": ""
13+
}
14+
}

.cospec/add-demo/design.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# 前置依赖文件: [requirements.md](./requirements.md)
2+
3+
# Design Document
4+
5+
## Overview
6+
7+
This feature implements comprehensive support for .coworkflow directory Markdown files by adding file monitoring, CodeLens operations, and visual decorations. The implementation follows VS Code extension patterns and integrates with the existing extension architecture.
8+
9+
## Architecture
10+
11+
The feature consists of three main components:
12+
13+
1. **CoworkflowFileWatcher**: Monitors .coworkflow directory files and coordinates updates
14+
2. **CoworkflowCodeLensProvider**: Provides contextual actions via CodeLens for different document types
15+
3. **CoworkflowDecorationProvider**: Manages visual decorations for task status indicators
16+
17+
### Component Interaction Flow
18+
19+
```mermaid
20+
graph TD
21+
A[Extension Activation] --> B[CoworkflowFileWatcher]
22+
B --> C[File System Watchers]
23+
B --> D[CoworkflowCodeLensProvider]
24+
B --> E[CoworkflowDecorationProvider]
25+
26+
C --> F[File Change Events]
27+
F --> D
28+
F --> E
29+
30+
D --> G[CodeLens Actions]
31+
G --> H[Command Execution]
32+
33+
E --> I[Text Editor Decorations]
34+
I --> J[Visual Status Indicators]
35+
```
36+
37+
## Components and Interfaces
38+
39+
### 1. CoworkflowFileWatcher
40+
41+
**Purpose**: Central coordinator for file monitoring and provider management
42+
43+
**Key Responsibilities**:
44+
45+
- Monitor .coworkflow directory for requirements.md, design.md, tasks.md
46+
- Coordinate updates between CodeLens and decoration providers
47+
- Handle workspace changes and re-establish watchers
48+
49+
**Interface**:
50+
51+
```typescript
52+
interface CoworkflowFileWatcher {
53+
initialize(): void
54+
dispose(): void
55+
onFileChanged(uri: vscode.Uri): void
56+
getCoworkflowPath(): string | undefined
57+
}
58+
```
59+
60+
### 2. CoworkflowCodeLensProvider
61+
62+
**Purpose**: Provide contextual actions for different document types
63+
64+
**Key Responsibilities**:
65+
66+
- Parse document structure to identify action locations
67+
- Provide document-specific actions (Update, Run, Retry)
68+
- Handle CodeLens command execution
69+
70+
**Interface**:
71+
72+
```typescript
73+
interface CoworkflowCodeLensProvider extends vscode.CodeLensProvider {
74+
provideCodeLenses(document: vscode.TextDocument): vscode.CodeLens[]
75+
resolveCodeLens(codeLens: vscode.CodeLens): vscode.CodeLens
76+
}
77+
```
78+
79+
**Document-Specific Actions**:
80+
81+
- **requirements.md**: "Update" actions at requirement section headers
82+
- **design.md**: "Update" actions at major section headers
83+
- **tasks.md**: "Run" and "Retry" actions at individual task items
84+
85+
### 3. CoworkflowDecorationProvider
86+
87+
**Purpose**: Manage visual status indicators for tasks
88+
89+
**Key Responsibilities**:
90+
91+
- Parse task status indicators: `[ ]`, `[-]`, `[x]`
92+
- Apply appropriate background decorations
93+
- Update decorations when task status changes
94+
95+
**Interface**:
96+
97+
```typescript
98+
interface CoworkflowDecorationProvider {
99+
updateDecorations(document: vscode.TextDocument): void
100+
dispose(): void
101+
}
102+
```
103+
104+
**Decoration Types**:
105+
106+
- `[ ]` (未开始): No background decoration
107+
- `[-]` (进行中): Light yellow background (`rgba(255, 255, 0, 0.2)`)
108+
- `[x]` (已完成): Light green background (`rgba(0, 255, 0, 0.2)`)
109+
110+
## Data Models
111+
112+
### Task Status Model
113+
114+
```typescript
115+
interface TaskStatus {
116+
line: number
117+
range: vscode.Range
118+
status: "not_started" | "in_progress" | "completed"
119+
text: string
120+
}
121+
```
122+
123+
### CodeLens Action Model
124+
125+
```typescript
126+
interface CoworkflowCodeLens extends vscode.CodeLens {
127+
documentType: "requirements" | "design" | "tasks"
128+
actionType: "update" | "run" | "retry"
129+
context?: {
130+
taskId?: string
131+
sectionTitle?: string
132+
}
133+
}
134+
```
135+
136+
### File Context Model
137+
138+
```typescript
139+
interface CoworkflowFileContext {
140+
uri: vscode.Uri
141+
type: "requirements" | "design" | "tasks"
142+
lastModified: Date
143+
isActive: boolean
144+
}
145+
```
146+
147+
## Error Handling
148+
149+
### File System Errors
150+
151+
- **Missing .coworkflow directory**: Gracefully disable watchers without errors
152+
- **Missing target files**: Handle file absence without crashing providers
153+
- **File permission errors**: Log warnings and continue with available functionality
154+
155+
### Parsing Errors
156+
157+
- **Malformed Markdown**: Provide basic functionality, skip problematic sections
158+
- **Invalid task status**: Default to 'not_started' status for unknown formats
159+
- **Corrupted file content**: Use fallback parsing with error logging
160+
161+
### Provider Errors
162+
163+
- **CodeLens resolution failures**: Return empty CodeLens array
164+
- **Decoration application failures**: Log errors and continue
165+
- **Command execution errors**: Show user-friendly error messages
166+
167+
## Testing Strategy
168+
169+
### Unit Tests
170+
171+
- **CoworkflowFileWatcher**: Test file monitoring, workspace changes, disposal
172+
- **CoworkflowCodeLensProvider**: Test document parsing, CodeLens generation, command resolution
173+
- **CoworkflowDecorationProvider**: Test task status parsing, decoration application
174+
175+
### Integration Tests
176+
177+
- **File System Integration**: Test actual file watching with temporary files
178+
- **VS Code API Integration**: Test CodeLens and decoration providers with mock documents
179+
- **Command Integration**: Test command execution and error handling
180+
181+
### Edge Case Tests
182+
183+
- **Empty files**: Ensure providers handle empty documents
184+
- **Large files**: Test performance with documents containing many tasks
185+
- **Concurrent changes**: Test behavior when multiple files change simultaneously
186+
- **Workspace switching**: Test proper cleanup and re-initialization
187+
188+
## Implementation Phases
189+
190+
### Phase 1: Core Infrastructure
191+
192+
- Implement CoworkflowFileWatcher with basic file monitoring
193+
- Set up provider registration and disposal patterns
194+
- Create basic command structure
195+
196+
### Phase 2: CodeLens Implementation
197+
198+
- Implement CoworkflowCodeLensProvider with document parsing
199+
- Add document-specific action detection
200+
- Implement command handlers for Update, Run, Retry actions
201+
202+
### Phase 3: Decoration Implementation
203+
204+
- Implement CoworkflowDecorationProvider with task status parsing
205+
- Create decoration types for different task statuses
206+
- Add real-time decoration updates
207+
208+
### Phase 4: Integration and Polish
209+
210+
- Integrate all components with extension activation
211+
- Add comprehensive error handling
212+
- Implement performance optimizations
213+
- Add configuration options if needed

.cospec/add-demo/requirements.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Requirements Document
2+
3+
## Introduction
4+
5+
This feature adds comprehensive support for .coworkflow directory Markdown files in the VS Code extension. It provides file monitoring, CodeLens operations, and visual decorations for task status tracking in requirements.md, design.md, and tasks.md files.
6+
7+
## Requirements
8+
9+
### Requirement 1
10+
11+
**User Story:** As a developer, I want the extension to monitor .coworkflow directory files, so that I can get real-time updates and interactions with my workflow documents.
12+
13+
#### Acceptance Criteria
14+
15+
1. WHEN a .coworkflow directory exists in the workspace THEN the extension SHALL monitor requirements.md, design.md, and tasks.md files
16+
2. WHEN any of these files are created, modified, or deleted THEN the extension SHALL update the corresponding providers and decorations
17+
3. WHEN the workspace changes THEN the extension SHALL re-establish file watchers for the new workspace
18+
19+
### Requirement 2
20+
21+
**User Story:** As a developer, I want CodeLens operations on specific document sections, so that I can quickly perform actions relevant to each document type.
22+
23+
#### Acceptance Criteria
24+
25+
1. WHEN viewing requirements.md THEN the extension SHALL provide "Update" CodeLens actions at appropriate locations
26+
2. WHEN viewing design.md THEN the extension SHALL provide "Update" CodeLens actions at appropriate locations
27+
3. WHEN viewing tasks.md THEN the extension SHALL provide "Run" and "Retry" CodeLens actions for each task item
28+
4. WHEN clicking a CodeLens action THEN the extension SHALL execute the corresponding command with proper context
29+
30+
### Requirement 3
31+
32+
**User Story:** As a developer, I want visual status indicators for tasks, so that I can quickly identify task progress at a glance.
33+
34+
#### Acceptance Criteria
35+
36+
1. WHEN viewing tasks.md THEN tasks with `[ ]` status SHALL have no background decoration
37+
2. WHEN viewing tasks.md THEN tasks with `[-]` status SHALL have a light yellow background decoration
38+
3. WHEN viewing tasks.md THEN tasks with `[x]` status SHALL have a light green background decoration
39+
4. WHEN task status changes THEN decorations SHALL update automatically
40+
5. WHEN multiple tasks exist THEN each SHALL have independent status decoration
41+
42+
### Requirement 4
43+
44+
**User Story:** As a developer, I want the CodeLens to appear at meaningful locations in each document, so that the actions are contextually relevant.
45+
46+
#### Acceptance Criteria
47+
48+
1. WHEN viewing requirements.md THEN CodeLens SHALL appear at requirement section headers
49+
2. WHEN viewing design.md THEN CodeLens SHALL appear at major section headers
50+
3. WHEN viewing tasks.md THEN CodeLens SHALL appear at individual task items
51+
4. WHEN document structure changes THEN CodeLens positions SHALL update accordingly
52+
53+
### Requirement 5
54+
55+
**User Story:** As a developer, I want the extension to handle edge cases gracefully, so that the feature works reliably in various scenarios.
56+
57+
#### Acceptance Criteria
58+
59+
1. WHEN .coworkflow directory doesn't exist THEN the extension SHALL not activate file watchers
60+
2. WHEN monitored files don't exist THEN the extension SHALL handle missing files without errors
61+
3. WHEN files have malformed content THEN the extension SHALL provide basic functionality without crashing
62+
4. WHEN multiple workspaces are open THEN each workspace SHALL have independent file monitoring

0 commit comments

Comments
 (0)