diff --git a/.env.example b/.env.example index 241f77e4..bbc3cb50 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,2 @@ POSTHOG_API_KEY=your_posthog_api_key +INTERCOM_APP_ID=your_intercom_app_id diff --git a/.github/workflows/docusaurus-build.yml b/.github/workflows/docusaurus-build.yml index 39cbbdc8..b556f29b 100644 --- a/.github/workflows/docusaurus-build.yml +++ b/.github/workflows/docusaurus-build.yml @@ -26,6 +26,9 @@ jobs: - name: Install dependencies run: npm ci + - name: TypeScript type check + run: npm run typecheck + - name: Build site run: npm run build env: diff --git a/.roo/rules-architect/AGENTS.md b/.roo/rules-architect/AGENTS.md new file mode 100644 index 00000000..ac1dbe32 --- /dev/null +++ b/.roo/rules-architect/AGENTS.md @@ -0,0 +1,11 @@ +# AGENTS.md + +This file provides guidance to agents when working with code in this repository. + +- Theme components swizzled from Docusaurus core; modifying requires understanding [src/theme/](src/theme/) override hierarchy. +- Sitemap uses custom plugin ([docusaurus.config.ts](docusaurus.config.ts:94-107)) filtering "/page/" URLs; preset sitemap disabled. Don't re-enable preset. +- Redirects required when moving docs ([docusaurus.config.ts](docusaurus.config.ts:109-271)); onBrokenLinks won't fail builds but creates poor UX. +- Constants centralized in [src/constants.ts](src/constants.ts) for all external URLs. Never hardcode URLs in config or components. +- PostHog analytics conditionally loaded based on env var ([docusaurus.config.ts](docusaurus.config.ts:84-93)); architectural decision for privacy/GDPR. +- Search uses local plugin (@easyops-cn/docusaurus-search-local) with docsRouteBasePath "/" - maintain consistency. +- No blog feature (disabled in preset); this is pure documentation site, not a content platform. \ No newline at end of file diff --git a/.roo/rules-ask/AGENTS.md b/.roo/rules-ask/AGENTS.md new file mode 100644 index 00000000..4956fc47 --- /dev/null +++ b/.roo/rules-ask/AGENTS.md @@ -0,0 +1,11 @@ +# AGENTS.md + +This file provides guidance to agents when working with code in this repository. + +- Docusaurus docs, not source code. This is documentation for the Roo Code VS Code extension at docs.roocode.com. +- Legacy [Rakefile](Rakefile) is from old Jekyll site. Ignore it; current build uses Docusaurus/npm scripts. +- Tutorial videos defined in [docs/tutorial-videos.json](docs/tutorial-videos.json), dynamically loaded in [sidebars.ts](sidebars.ts:37-42). Titles truncated to 40 chars. +- Release notes have thanking exclusions: don't thank daniel-lxs, cte, hannesrudolph, jr, roomote, app/roomote, dleffel, mrubens per [.roorules](.roorules:14). +- Many docs moved; check redirects in [docusaurus.config.ts](docusaurus.config.ts:109-271) when referencing old paths. +- Context7 MCP configured in [.roo/mcp.json](.roo/mcp.json) with library ID "/facebook/docusaurus" for structural research. +- Sidebar structure in [sidebars.ts](sidebars.ts) has nested categories; update-notes organized by major.minor versions. \ No newline at end of file diff --git a/.roo/rules-code/AGENTS.md b/.roo/rules-code/AGENTS.md new file mode 100644 index 00000000..a3bf5dfd --- /dev/null +++ b/.roo/rules-code/AGENTS.md @@ -0,0 +1,14 @@ +# AGENTS.md + +This file provides guidance to agents when working with code in this repository. + +- Linting targets only /src; docs are excluded. Use "npm run lint:unused" to enforce removal of unused imports. See [package.json](package.json). +- Type checking uses tsc only (no emit); [tsconfig.json](tsconfig.json) is editor-focused. Run "npm run typecheck" locally; CI does not typecheck. +- Use Docusaurus @site alias for cross-root imports from theme/MDX; example at [src/theme/MDXComponents.ts](src/theme/MDXComponents.ts:2). +- Centralize external URLs in [src/constants.ts](src/constants.ts); consumed by [docusaurus.config.ts](docusaurus.config.ts:21) for navbar/footer. +- When moving docs, add redirects in [docusaurus.config.ts](docusaurus.config.ts:109); onBrokenLinks is warn ([docusaurus.config.ts](docusaurus.config.ts:40)) so missing redirects won’t fail CI. +- Internal doc links must be absolute and extensionless per [.roorules](.roorules) (e.g., /basic-usage/how-tools-work). +- Images in docs must use HTML tags: ... (Markdown image syntax is disallowed). +- Builds preload dotenv; PostHog plugin loads only when POSTHOG_API_KEY is set. Use [.env.example](.env.example). See [docusaurus.config.ts](docusaurus.config.ts:83) and [package.json](package.json:7). +- Use Node 20 locally to match CI ([.github/workflows/docusaurus-build.yml](.github/workflows/docusaurus-build.yml:23)); package engines allow >=18. +- “Tutorial Videos” sidebar is driven by [docs/tutorial-videos.json](docs/tutorial-videos.json); titles truncated to 40 chars in [sidebars.ts](sidebars.ts:5). \ No newline at end of file diff --git a/.roo/rules-debug/AGENTS.md b/.roo/rules-debug/AGENTS.md new file mode 100644 index 00000000..40bbf264 --- /dev/null +++ b/.roo/rules-debug/AGENTS.md @@ -0,0 +1,10 @@ +# AGENTS.md + +This file provides guidance to agents when working with code in this repository. + +- CI only builds, doesn't lint/typecheck ([.github/workflows/docusaurus-build.yml](.github/workflows/docusaurus-build.yml:29)). Run "npm run lint" and "npm run typecheck" locally before pushing. +- PostHog analytics silently skips if POSTHOG_API_KEY missing. Check [.env](.env) exists with key from [.env.example](.env.example). +- No test framework configured. Scripts exist in package.json but no test files or jest/vitest config present. +- Docusaurus dev server at localhost:3000. Hot reload may fail for theme swizzled components; restart if changes don't appear. +- onBrokenLinks set to "warn" ([docusaurus.config.ts](docusaurus.config.ts:40)) - broken links won't fail build but check console warnings. +- Node version mismatch (engines >=18, CI uses 20) can cause subtle differences. Use Node 20 locally. \ No newline at end of file diff --git a/.roo/rules-docs/1_writing_style.xml b/.roo/rules-docs/1_writing_style.xml deleted file mode 100644 index eefd1244..00000000 --- a/.roo/rules-docs/1_writing_style.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - This guide defines the writing style for Roo Code documentation. The style is direct, concise, and technical. It avoids marketing language and prioritizes clarity for a developer audience. All output must be in markdown. - - - - - Start with the most important information. No filler introductions. - In this guide, we will explore how to configure the tool. - To configure the tool, open... - - - Use short sentences. Cut unnecessary words. If it doesn't add value, remove it. - - - Focus on what the user can do and why it matters. Provide actionable steps. - - - When editing a document, use its existing style, structure, and format as a guideline for any updates. Do not make major changes unless explicitly asked. - - - - - Avoid marketing jargon, buzzwords, and clichés. These words are ambiguous and reduce signal. - - seamlessly - comprehensive - enhanced - streamlined - powerful - improved - intuitive - state-of-the-art - revolutionary - robust - easily - simply - - - - - Use structured headings, lists, and short paragraphs for scannability. - Provide clear, copy-pasteable code snippets. - Assume user familiarity with basic concepts. Do not over-explain. - - \ No newline at end of file diff --git a/.roo/rules-docs/2_docusaurus_conventions.xml b/.roo/rules-docs/2_docusaurus_conventions.xml deleted file mode 100644 index a70ca0cc..00000000 --- a/.roo/rules-docs/2_docusaurus_conventions.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - This guide covers Docusaurus-specific formatting rules for Roo Code documentation. - - - - - Use absolute paths from `/docs/`. Do not include the `.md` extension. - [Link to Guide](/intro/) - [Link to Guide](../intro.md) - - - Use `@site` for code imports or asset references from the project root. Do not use it for Markdown links. - import Header from \'@site/src/components/Header\'; - [Link](@site/docs/intro.md) - - - - - - Place images in `/static/img/`. Use a relative path in `src`. - - - ]]> - - - - - - - Do not include version numbers or phrases like "as of version X.Y" in general documentation. Version information belongs only in `docs/update-notes`. - - - - - All pages must include frontmatter with description, keywords, and a social share image. The title will be automatically generated from the first H1 heading. - - - - - - \ No newline at end of file diff --git a/.roo/rules-documentation-writer/1_writing_style.xml b/.roo/rules-documentation-writer/1_writing_style.xml new file mode 100644 index 00000000..bd1d631a --- /dev/null +++ b/.roo/rules-documentation-writer/1_writing_style.xml @@ -0,0 +1,311 @@ + + + This guide defines the writing style for Roo Code documentation. The style is direct, concise, and technical. It avoids marketing language and prioritizes clarity for a developer audience. All output must be in markdown. + + + + Before writing or editing documentation, always explore existing documentation to understand established patterns, style, and structure. + + Use list_files to explore the documentation structure + Read similar existing documents to understand the style + Follow established patterns rather than imposing new ones + + + + + MANDATORY: Before making ANY changes to existing documentation files, you MUST complete the redundancy validation workflow. This is NOT optional. + + You CANNOT proceed with edits until validation is complete + You MUST document validation results before making changes + Skipping validation steps will result in task rejection + + + Use codebase_search to find ALL mentions of the topic across documentation + Search for multiple variations of key terms (e.g., if editing "authentication", also search "auth", "login", "security", "credentials") + Read and analyze EVERY discovered location thoroughly + Create a validation report listing: + - All locations where similar content exists + - The current state of each location + - Potential conflicts or duplications + - Recommendation for how to proceed + + If similar content exists, you MUST determine: + - Is this an update to existing content? (proceed to that location) + - Is this a consolidation opportunity? (merge content) + - Is this truly new, non-redundant content? (proceed with caution) + + + + Check for contradictions with existing documentation + Verify that new content aligns with established terminology and concepts + Ensure cross-references are accurate and bidirectional where appropriate + Validate that the change enhances rather than fragments the documentation flow + Document how the change improves overall documentation cohesion + + + You MUST use ask_followup_question to confirm validation results with the user BEFORE proceeding with any edits + + + + + + + Start with the most important information. No filler introductions. + In this guide, we will explore how to configure the tool. + To configure the tool, open... + + + Use short sentences. Cut unnecessary words. If it doesn't add value, remove it. + + + Focus on what the user can do and why it matters. Provide actionable steps. + + + + Keep only what changes decisions, prevents mistakes, or unlocks outcomes. Cut narration of obvious UI. + + Why it matters (value/outcome; 1–3 sentences at the top) + Decision points and trade-offs (e.g., Pro vs free, security implications) + Non-obvious behavior, caveats, limits, prerequisites + Short, actionable steps; error handling and recovery + + + Listing every visible control or tab on a page + Describing screenshots (“This page shows…”, “It includes…”) without decisions or implications + Explaining basic concepts common to developers + Redundant restatement of labels already visible in screenshots + + + + + When editing a document, use its existing style, structure, and format as a guideline for any updates. Do not make major changes unless explicitly asked. + + Read the entire document first to understand its current style + Identify patterns in headings, formatting, and tone + Match the existing style in your edits + + + + + Bold, honest, human. No fluff, no fake hype. + + Short, punchy sentences. Speak like a helpful colleague. + Expose real value. If it matters, state it clearly; if not, leave it out. + Be excited when the feature earns it. Be candid about limits. + + + Don’t use buzzwords, clickbait, or corporate tone. + Don’t exaggerate beyond the truth—real impact sells itself. + Don’t narrate the screen. Focus on decisions and outcomes. + + + + + + Avoid marketing jargon, buzzwords, and clichés. These words are ambiguous and reduce signal. + When editing existing documentation, check if any of these words are already used and maintain consistency with the existing approach. + + seamlessly + comprehensive + enhanced + streamlined + powerful + improved + intuitive + state-of-the-art + revolutionary + robust + easily + simply + + + + + Use structured headings, lists, and short paragraphs for scannability. + Provide clear, copy-pasteable code snippets. + Assume user familiarity with basic concepts. Do not over-explain. + + +
Explain the outcome and value in 1–3 sentences.
+
Concrete capabilities and decision points; link to authoritative references instead of duplication.
+
Minimal steps to success (include only non-obvious choices).
+
Important limits, access requirements, pricing—only what affects decisions.
+
Common failure modes and fixes.
+
+ + + Only include screenshots when they clarify a decision, show non-obvious state, or demonstrate outcome. + + 1 + 3 + + + No narration of on-screen labels or obvious layout. + No screenshot that repeats text already stated without adding decision context. + + + Alt text describes action/outcome, not the UI chrome. + Prefer width="800" unless smaller improves readability. + Use captions or surrounding text to explain the decision/implication. + Follow Docusaurus image rules; see rules in 2_docusaurus_conventions.xml. + + + + + Before formatting new content, examine existing documentation for: + - Heading hierarchy patterns (H1, H2, H3 usage) + - List formatting preferences (bullets vs numbers) + - Code block styling and language tags + - Paragraph length and structure + + Match the discovered patterns to maintain consistency + +
+ + + Have I explored the existing documentation structure? + Have I read similar documents to understand the established style? + Have I identified the patterns for paths, links, and references? + Am I following discovered patterns rather than making assumptions? + Have I searched for existing content that might overlap with my changes? + Have I verified that my changes don't contradict existing documentation? + Have I checked that cross-references will remain valid? + + + + + This workflow is MANDATORY for ALL documentation changes. Each phase MUST be completed in order. + Skipping any phase or step will invalidate the entire change request. + + + + Analyze the requested change and its impact + You CANNOT proceed to the next phase until ALL steps are complete + + Identify the scope and purpose of the requested change + List ALL key concepts, terms, and their variations (e.g., "config" → "configuration", "setup", "settings") + Determine which documents might be affected (use list_files to verify) + Document your analysis results before proceeding + + + + + Search for ALL existing related content - this phase is NOT optional + You MUST find and analyze ALL related content before proceeding + + Use codebase_search with the primary term from the request + Use codebase_search with EACH variation of key terms identified in analysis + Read ALL potentially related documentation sections in full + Create a comprehensive map documenting: + - Every location where related information exists + - The specific content at each location + - How each location relates to the requested change + + Identify any gaps, overlaps, or contradictions + If you find existing content, you MUST read it completely before proceeding + + + + + Validate the change against existing content - MUST be completed before ANY edits + You MUST answer ALL questions and get user confirmation before implementation + + Does this exact information already exist elsewhere? (If yes, STOP and redirect to existing location) + Does similar but incomplete information exist? (If yes, enhance existing rather than duplicate) + Will this change create any contradictions with existing docs? + Have you verified ALL cross-references will remain valid? + Does this enhance the documentation flow or fragment it? + Have you identified ALL files that need updates to maintain consistency? + + + You MUST use ask_followup_question to present validation findings and get approval + Include specific file paths and line numbers in your validation report + Provide clear recommendations based on your findings + + + + + Apply changes ONLY after validation is approved by user + You can ONLY enter this phase after user approves validation results + + If updating existing content, preserve ALL valuable context + If adding new content, ensure it links appropriately to ALL related topics discovered in phase 2 + Update ALL affected cross-references in other documents + Maintain consistent terminology throughout ALL affected files + Verify no information is lost or contradicted by your changes + + + + + Verify the changes maintain documentation integrity + + Re-run codebase_search to ensure no duplicates were created + Verify all cross-references still work + Confirm terminology remains consistent + Document what was changed and why for future reference + + + + + Minimize right-sidebar ToC noise. Reserve H3 for jump-worthy anchors and prefer H4 for in-body sub-chunking. + + H1 is implicit (page title). Do not write H1 in the body. + H2 = primary sections; aim for 3–6 per page. + H3 = ToC-worthy anchors only. Target 0–2 per page; hard cap 4. + H4 = break up long H2 sections without adding ToC items. Prefer H4 over H3 for minor subtopics. + Disallow H5/H6 entirely. + No orphan headings: any H2/H3/H4 must be followed by ≥2 sentences or a list. + Any H3 under ~75 words or a single short paragraph must be demoted to H4 . + Convert chains of small H3s into a single H2 with a numbered list; use H4 callouts if needed. + If an H4 exceeds ~200–250 words or needs substructure, split it into its own page (new H2 there) rather than promoting inside the same page. + + + 3–6 + typical ≤ 2, max 4 + + + Outline H2 skeleton first. + Mark jump-worthy items as H3 only if sidebar navigation helps. + Everything else becomes H4 under the H2. + Preview ToC; demote noisy H3s to H4s before publishing. + + + Demote unnecessary H3s under “Working with Checkpoints”. + +## Working with Checkpoints +### Viewing Differences +### Restoring Checkpoints +### Limitations and Considerations + + +## Working with Checkpoints +#### Viewing differences: when it helps +#### Restore a checkpoint: trade-off +#### Limits and gotchas + + + + + + Include sections: “Why it matters”, “What you can’t do (and why)”, and “Troubleshooting”. + + symptom + cause + fix + prevention + + + + + + Colloquial, informal, light. Use contractions and “you” voice. + Bold, honest, human—avoid mechanical or professoral tone. + + + + + Every screenshot must include a one-line “why this view matters” caption in addition to outcome-focused alt text. + +
\ No newline at end of file diff --git a/.roo/rules-documentation-writer/2_docusaurus_conventions.xml b/.roo/rules-documentation-writer/2_docusaurus_conventions.xml new file mode 100644 index 00000000..a7a28387 --- /dev/null +++ b/.roo/rules-documentation-writer/2_docusaurus_conventions.xml @@ -0,0 +1,385 @@ + + + This guide covers Docusaurus-specific formatting rules for Roo Code documentation. Before applying these conventions, always explore the project structure to understand the actual directory layout. + + + + Always use list_files to discover the actual project structure before making assumptions about paths + Check for existing patterns in similar files before creating new content + Verify directory existence before referencing specific paths + + + + + Use paths relative to the documentation root. Do not include the `.md` extension. Discover the documentation structure first. + + Use list_files to find the documentation root directory + Identify the path structure used in existing documentation + Follow the established pattern + + [Link to Guide](/intro/) + [Link to Guide](../intro.md) + + + Use `@site` for code imports or asset references from the project root. Do not use it for Markdown links. + import Header from '@site/src/components/Header'; + [Link](@site/docs/intro.md) + + + + + + Discover the image storage location in the project before placing images. Look for existing image references to understand the pattern. + + Use list_files to find where images are stored (commonly in static/img or similar) + Check existing documentation for image reference patterns + Follow the established convention + + + + + Clarify a decision point or non-obvious UI state + Demonstrate outcome/results that text alone cannot convey + + + Narrating obvious UI (“This page shows…”, “It includes…”) without decisions or implications + Listing every field/tab in a screen + + + 1 + 3 + + + Describe the action or outcome, not the chrome. Example: "Toggle Roomote Control to enable remote tasks". + + 800 + Use HTML img tags per project rules. See Image Tag Format in .roorules. + + + + + + VS Code's Install from VSIX dialog + + + + + + + + Do not include version numbers or phrases like "as of version X.Y" in general documentation. First discover where version information is stored in the project. + + Use list_files to find version-related documentation directories + Check for patterns like update-notes, changelog, or release directories + Place version-specific information in the appropriate location + + + + + + + Check existing documentation files for frontmatter patterns before adding new ones. The required fields may vary by project. + + Read several existing documentation files to understand the frontmatter pattern + Identify which fields are consistently used + Follow the established pattern + + + +--- +description: A concise summary of the page content. +keywords: + - relevant + - keywords + - for + - search +image: /img/social-share.jpg +--- + + + + + + + Use list_files to explore the project structure + Read existing files similar to what you're creating/editing + Identify patterns in paths, formatting, and conventions + Follow the established patterns rather than assuming standard locations + When in doubt, ask for clarification rather than making assumptions + + + + + This workflow is MANDATORY for ALL edits to existing documentation files + You CANNOT skip any step - each must be completed and documented + Failure to complete this workflow will result in rejection of changes + + + + CRITICAL: This workflow MUST be completed BEFORE making ANY changes to existing documentation. No exceptions. + + + + Comprehensive Content Discovery + You CANNOT proceed without completing ALL searches + + Use codebase_search with the exact topic/feature name + Use codebase_search with ALL variations of key terms (minimum 3-5 variations required) + Search for related concepts that might contain overlapping information + Document EVERY location found with file path and line numbers + + + You MUST provide evidence of searches performed: + - List each search query used + - Number of results found for each + - File paths discovered + + + + + +authentication setup configuration +docs + + + + +auth config login security +docs + + + + +user access credentials permissions +docs + + + + + + + Exhaustive Duplication Analysis + You MUST read EVERY discovered file before proceeding + + Read ALL discovered related content in full - no skimming + Create a detailed comparison table showing: + - What information exists where + - How it relates to the requested change + - Overlap percentage with requested content + + Identify if the requested change would duplicate ANY existing information + Document your findings in a structured format + + + + STOP immediately. Inform user with specific file location. DO NOT create duplicate content. + + + STOP creating new content. Enhance existing content at its current location instead. + + + STOP and propose consolidation plan to user before any edits. + + + Document this finding and proceed with caution to next step. + + + + + + Impact Analysis and Cross-Reference Validation + Complete impact analysis before ANY file modifications + + List ALL internal links that reference or might reference this content + Identify ALL files that would need updates if content is moved or changed + Check for hardcoded references in: + - Other documentation files + - Configuration files + - Code examples + - Tutorials or guides + + Create an impact report listing all affected files + Plan redirect updates for docusaurus.config.ts if needed + + + + + Terminology and Consistency Verification + + Create a terminology map of all technical terms used + Verify terms match existing usage across ALL documentation + Check glossary or terminology guide for standard definitions + Document any terminology conflicts found + + + + + User Approval Gate + You CANNOT proceed with edits without explicit user approval + + Present complete validation findings using ask_followup_question + Include: + - All discovered duplicate or related content with specific locations + - Impact analysis results + - Recommended approach (update existing, consolidate, or create new) + - List of all files that would be affected + + Wait for explicit user approval before making ANY changes + + + + + + + Maintain logical information hierarchy and flow + + Does this content belong in the current section? + Would users expect to find this information here? + Does it follow the progression from basic to advanced? + + + + + Each piece of information should have one authoritative location + + Core information lives in one place + Other locations reference the authoritative source + Use includes or references rather than duplication + + + + + Connect related content through meaningful links + + Link to prerequisites before advanced topics + Provide "See also" sections for related content + Ensure bidirectional linking where appropriate + + + + + + This protocol is MANDATORY for ALL updates to existing documentation + Skipping any validation step will invalidate the entire update + + + + CRITICAL: When updating existing documentation, this protocol MUST be followed completely. No shortcuts allowed. + + + + You CANNOT begin updates until ALL validation steps are complete + Run codebase_search to identify ALL documents that reference the content being updated + Create a dependency map showing: + - Which files reference this content + - Which examples depend on this content + - Which tutorials or guides link to this content + + Read EVERY dependent file to understand impact + Verify that the update won't invalidate ANY existing instructions + Document backward compatibility concerns if features have changed + Create a comprehensive update plan BEFORE making any changes + + + + You MUST answer ALL questions with evidence before proceeding + Will this update require changes to other documents? List each file. + Are there code examples that need to be updated? Provide file paths. + Do any quickstart guides or tutorials reference this content? List them. + Will this change affect the logical flow of the documentation? Explain how. + Have you verified this won't create contradictions? Provide evidence. + + If ANY answer is "yes" or "maybe", you MUST: + 1. Document all required changes + 2. Get user approval for the full scope + 3. Update ALL affected files in the correct order + + + + + Only proceed after pre-update validation is complete and approved + Updates must be made in dependency order to prevent broken states + + Update the primary content first + Update all dependent content in order of dependency + Verify each update before proceeding to the next + Test all cross-references after each change + + + + + EVERY item must be verified before considering the update complete + Re-run codebase_search to verify all references are still valid + Test EVERY cross-reference link in affected documents + Verify NO broken links have been introduced (use search for old paths) + Confirm terminology remains consistent across ALL affected documents + Verify the update enhances rather than contradicts existing content + Ensure version-specific information is properly isolated + Document what was changed and why in a change log + + + + Use ask_followup_question to confirm all updates are complete and validated + Provide a summary of: + - All files that were updated + - All validation checks performed + - Any remaining concerns or follow-up needed + + + + + + Use ask_followup_question when uncertainty exists about redundancy or impact + + When similar content exists in multiple locations + When the requested change might contradict existing documentation + When consolidation might be better than addition + When the impact on other documents is unclear + + + + +I found existing content about this topic in three different locations. How would you like me to proceed? + +Update the main guide and add cross-references from the other locations +Consolidate all information into a single comprehensive guide +Keep them separate but ensure they're consistent and cross-linked +Show me the existing locations first so I can decide + + + + + + + Control sidebar ToC noise and standardize heading usage. + + H1 comes from the page title; do not include H1 in body content. + Use H2 for primary sections (aim for 3–6 per page). + Use H3 only for ToC-worthy anchors users may want to jump to (target 0–2; hard cap 4 per page). + Prefer H4 for in-body sub-chunking so minor topics don’t pollute the ToC. + Disallow H5/H6 entirely. + No orphan headings: any H2/H3/H4 must be followed by at least two sentences or a list. + Any H3 under ~75 words or a single short paragraph must be demoted to H4 under its H2. + Convert chains of small H3s into one H2 with a numbered list; optional H4 callouts for sub-points. + + Total H3 ≤ 4 (typical ≤ 2). Demote non‑essential H3s to H4. + + +## Working with Checkpoints +### Viewing Differences +### Restoring Checkpoints +### Limitations and Considerations + + +## Working with Checkpoints +#### Viewing differences: when it helps +#### Restore a checkpoint: trade-offs +#### Limits and gotchas + + + + + + Each screenshot must have a one‑line “why this view matters” caption in addition to outcome‑focused alt text. Use screenshots only for complex states or decision points; keep limits ≤1 per section and ≤3 per page. + + \ No newline at end of file diff --git a/.roo/rules-documentation-writer/3_validation_enforcement.xml b/.roo/rules-documentation-writer/3_validation_enforcement.xml new file mode 100644 index 00000000..5f1b78f7 --- /dev/null +++ b/.roo/rules-documentation-writer/3_validation_enforcement.xml @@ -0,0 +1,290 @@ + + + This document defines the strict enforcement rules and consequences for the documentation writer mode. + ALL validation steps are MANDATORY when editing existing documentation files. + + + + + Violations that result in immediate task rejection + + Skipping the redundancy prevention workflow when editing existing files + Making changes without completing content discovery searches + Creating duplicate content when similar content already exists + Proceeding with edits without user approval after validation + + + Task is immediately rejected + All changes are reverted + Mode must restart from the beginning + + + + + Issues that prevent progression until resolved + + Incomplete validation checklist items + Missing impact analysis for cross-references + Failing to read all discovered related content + Not searching for term variations during discovery + + + Cannot proceed to implementation phase + Must complete all missing steps + Must document completion of each step + + + + + Issues that require correction but allow conditional progression + + Inconsistent terminology usage + Missing bidirectional links + Incomplete post-update verification + + + Must acknowledge the issue + Must create a plan to address it + May proceed with user approval + + + + + + + MANDATORY gate before ANY edits to existing files + + Must complete ALL content discovery searches + Must read ALL discovered related content + Must document validation findings + Must get explicit user approval to proceed + + + If ANY requirement is not met: + - You CANNOT make any edits + - You MUST inform the user what's missing + - You MUST complete missing steps before proceeding + + + + + Prevents creation of duplicate content + + If similar content exists, MUST update existing location + If content is scattered, MUST propose consolidation + CANNOT create new content if it duplicates existing + + + If duplicate content is detected: + - IMMEDIATELY STOP all work + - Report exact locations of existing content + - Redirect efforts to enhancing existing content + + + + + Enforces value-first writing and bans obvious-UI narration. + + Include a brief "Why it matters" section or opener (1–3 sentences) that frames value/outcomes. + Document decision points/trade-offs where the user must choose (e.g., Pro vs free, security implications). + Remove or condense any enumeration of on-screen elements unless each item carries a decision, consequence, or non-obvious behavior. + Apply screenshot limits (≤1 per section, ≤3 per page) and ensure alt text describes action/outcome. + + + Checklist confirming presence of "Why it matters" and decisions + Notes on removed UI narration and reasons + Screenshot count and alt-text review + + + If requirements are not met: + - Block the edit and return a summary of violations with specific locations. + - Require revision to pass this gate before proceeding. + + + + + Blocks screen narration that restates visible UI without adding decisions or implications. + + This page shows + It includes + The page displays + List of + + + Allowed only when each listed item includes why it matters, a decision, or an implication. + + + If narration-only content is detected: + - Remove or compress into a single contextual sentence tied to a decision or outcome. + + + + + Ensures documentation remains consistent + + All terminology must match existing usage + All cross-references must remain valid + No contradictions with existing content + + + If inconsistencies are found: + - Document all inconsistencies + - Create a resolution plan + - Get approval before proceeding + + + + Prevents noisy sidebars and redundant anchors. + + Total H3 ≤ 4 (typical ≤ 2) + Demote non-essential H3s to H4 under the parent H2 + No orphan headings (H2/H3/H4 must be followed by ≥2 sentences or a list) + + + If limits are exceeded or headings are orphaned: + - Demote H3s to H4 under the parent H2 before proceeding. + + + + + Restricts heading depth. + + Allow only H2–H4 + Reject H5/H6 + + + Any H5/H6 usage blocks the edit until replaced or removed. + + + + + Prevents shallow ToC items. + + Any H3 under ~75 words or a single short paragraph must be demoted to H4 under its H2 + + + + + Requires explanatory sections when applicable. + + Include “Why it matters” + Include “What you can’t do (and why)” when applicable + Include “Troubleshooting” using symptom → cause → fix → prevention when applicable + + + + + Enforces complex-state-only screenshots and caption/alt-text quality. + + Use screenshots only for complex states or decision points + Provide outcome-focused alt text and a one-line “why this view matters” caption + Respect limits: ≤1 per section, ≤3 per page + + + + + + + MANDATORY workflow for ANY edit to existing documentation + + Run redundancy prevention workflow + Complete content discovery with multiple search terms + Read and analyze ALL discovered content + Create validation report with findings + Pass the Value Filter Gate and Obvious-UI Narration Blocker with documented evidence + Get user approval via ask_followup_question + Proceed with approved approach only + Verify all changes maintain consistency + + + Skipping ANY mandatory step results in: + - Immediate task rejection + - Requirement to restart from step 1 + - Documentation of the violation + + + + + + Documentation required to prove validation completion + + + List of all codebase_search queries performed + Query text, number of results, relevant findings + + + Summary of all discovered related content + File path, line numbers, content summary, relevance + + + List of all files affected by the change + File path, type of impact, required updates + + + Comprehensive report of all validation findings + Structured summary with recommendations + + + + + + + MUST report validation findings before making changes + + + + + + + Every validation step must be logged + + Timestamp of each step + Actions taken + Results found + Decisions made + + + + Every edit must have documented justification + + Why the change is needed + What validation was performed + How it improves documentation + What alternatives were considered + + + + + + + These enforcement rules are NOT optional. They are MANDATORY for ALL documentation edits. + The documentation writer mode MUST follow these rules without exception. + Failure to comply will result in task rejection and requirement to start over. + + + \ No newline at end of file diff --git a/.roo/rules-mode-writer/1_mode_creation_workflow.xml b/.roo/rules-mode-writer/1_mode_creation_workflow.xml index 15a48aa8..77a17285 100644 --- a/.roo/rules-mode-writer/1_mode_creation_workflow.xml +++ b/.roo/rules-mode-writer/1_mode_creation_workflow.xml @@ -1,124 +1,278 @@ - + - This workflow guides you through creating a new custom mode to be used in the Roo Code Software, - from initial requirements gathering to final implementation. + This workflow guides you through creating new custom modes or editing existing modes + for the Roo Code Software, ensuring comprehensive understanding and cohesive implementation. - + - Gather Requirements + Determine User Intent - Understand what the user wants the mode to accomplish + Identify whether the user wants to create a new mode or edit an existing one - - Ask about the mode's primary purpose and use cases - Identify what types of tasks the mode should handle - Determine what tools and file access the mode needs - Clarify any special behaviors or restrictions - - + + + + User mentions a specific mode by name or slug + User references a mode directory path (e.g., .roo/rules-[mode-slug]) + User asks to modify, update, enhance, or fix an existing mode + User says "edit this mode" or "change this mode" + + + + + User asks to create a new mode + User describes a new capability not covered by existing modes + User says "make a mode for" or "create a mode that" + + + + - What is the primary purpose of this new mode? What types of tasks should it handle? + I want to make sure I understand correctly. Are you looking to create a brand new mode or modify an existing one? - A mode for writing and maintaining documentation - A mode for database schema design and migrations - A mode for API endpoint development and testing - A mode for performance optimization and profiling + Create a new mode for a specific purpose + Edit an existing mode to add new capabilities + Fix issues in an existing mode + Enhance an existing mode with better workflows - + + - - Design Mode Configuration - - Create the mode definition with all required fields - - - - Unique identifier (lowercase, hyphens allowed) - Keep it short and descriptive (e.g., "api-dev", "docs-writer") - - - Display name with optional emoji - Use an emoji that represents the mode's purpose - - - Detailed description of the mode's role and expertise - - Start with "You are Roo Code, a [specialist type]..." - List specific areas of expertise - Mention key technologies or methodologies - - - - Tool groups the mode can access - - - - - - - - - - - - Clear description for the Orchestrator - Explain specific scenarios and task types - - - - Do not include customInstructions in the .roomodes configuration. - All detailed instructions should be placed in XML files within - the .roo/rules-[mode-slug]/ directory instead. - - + + + + Gather Requirements for New Mode + + Understand what the user wants the new mode to accomplish + + + Ask about the mode's primary purpose and use cases + Identify what types of tasks the mode should handle + Determine what tools and file access the mode needs + Clarify any special behaviors or restrictions + + + + What is the primary purpose of this new mode? What types of tasks should it handle? + + A mode for writing and maintaining documentation + A mode for database schema design and migrations + A mode for API endpoint development and testing + A mode for performance optimization and profiling + + + + - - Implement File Restrictions - - Configure appropriate file access permissions - - - Restrict edit access to specific file types - + + Design Mode Configuration + + Create the mode definition with all required fields + + + + Unique identifier (lowercase, hyphens allowed) + Keep it short and descriptive (e.g., "api-dev", "docs-writer") + + + Display name with optional emoji + Use an emoji that represents the mode's purpose + + + Detailed description of the mode's role and expertise + + Start with "You are Roo Code, a [specialist type]..." + List specific areas of expertise + Mention key technologies or methodologies + + + + Tool groups the mode can access + + + + + + + + + + + + Clear description for the Orchestrator + Explain specific scenarios and task types + + + + Do not include customInstructions in the .roomodes configuration. + All detailed instructions should be placed in XML files within + the .roo/rules-[mode-slug]/ directory instead. + + + + + Implement File Restrictions + + Configure appropriate file access permissions + + + Restrict edit access to specific file types + groups: - read - - edit - fileRegex: \.(md|txt|rst)$ description: Documentation files only - command - - - - Use regex patterns to limit file editing scope - Provide clear descriptions for restrictions - Consider the principle of least privilege - - + + + + Use regex patterns to limit file editing scope + Provide clear descriptions for restrictions + Consider the principle of least privilege + + + + + Create XML Instruction Files + + Design structured instruction files in .roo/rules-[mode-slug]/ + + + Main workflow and step-by-step processes + Guidelines and conventions + Reusable code patterns and examples + Specific tool usage instructions + Complete workflow examples + + + Use semantic tag names that describe content + Nest tags hierarchically for better organization + Include code examples in CDATA sections when needed + Add comments to explain complex sections + + + - - Create XML Instruction Files + + + Immerse in Existing Mode + + Fully understand the existing mode before making any changes + + + Locate and read the mode configuration in .roomodes + Read all XML instruction files in .roo/rules-[mode-slug]/ + Analyze the mode's current capabilities and limitations + Understand the mode's role in the broader ecosystem + + + + What specific aspects of the mode would you like to change or enhance? + + Add new capabilities or tool permissions + Fix issues with current workflows or instructions + Improve the mode's roleDefinition or whenToUse description + Enhance XML instructions for better clarity + + + + + + + Analyze Change Impact + + Understand how proposed changes will affect the mode + + + Compatibility with existing workflows + Impact on file permissions and tool access + Consistency with mode's core purpose + Integration with other modes + + + + I've analyzed the existing mode. Here's what I understand about your requested changes. Is this correct? + + Yes, that's exactly what I want to change + Mostly correct, but let me clarify some details + No, I meant something different + I'd like to add additional changes + + + + + + + Plan Modifications + + Create a detailed plan for modifying the mode + + + Identify which files need to be modified + Determine if new XML instruction files are needed + Check for potential conflicts or contradictions + Plan the order of changes for minimal disruption + + + + + Implement Changes + + Apply the planned modifications to the mode + + + Update .roomodes configuration if needed + Modify existing XML instruction files + Create new XML instruction files if required + Update examples and documentation + + + + + + + + Validate Cohesion and Consistency - Design structured instruction files in .roo/rules-[mode-slug]/ + Ensure all changes are cohesive and don't contradict each other - - Main workflow and step-by-step processes - Guidelines and conventions - Reusable code patterns and examples - Specific tool usage instructions - Complete workflow examples - - - Use semantic tag names that describe content - Nest tags hierarchically for better organization - Include code examples in CDATA sections when needed - Add comments to explain complex sections - + + + Mode slug follows naming conventions + File restrictions align with mode purpose + Tool permissions are appropriate + whenToUse clearly differentiates from other modes + + + All XML files follow consistent structure + No contradicting instructions between files + Examples align with stated workflows + Tool usage matches granted permissions + + + Mode integrates well with Orchestrator + Clear boundaries with other modes + Handoff points are well-defined + + + + + I've completed the validation checks. Would you like me to review any specific aspect in more detail? + + Review the file permission patterns + Check for workflow contradictions + Verify integration with other modes + Everything looks good, proceed to testing + + + - + Test and Refine Verify the mode works as intended @@ -129,14 +283,19 @@ groups: Instructions are clear and actionable Mode integrates well with Orchestrator All examples are accurate and helpful + Changes don't break existing functionality (for edits) + New capabilities work as expected - + Create mode in .roomodes for project-specific modes Create mode in global custom_modes.yaml for system-wide modes Use list_files to verify .roo folder structure Test file regex patterns with search_files + Use codebase_search to find existing mode implementations + Read all XML files in a mode directory to understand its structure + Always validate changes for cohesion and consistency - \ No newline at end of file + \ No newline at end of file diff --git a/.roo/rules-mode-writer/5_complete_mode_examples.xml b/.roo/rules-mode-writer/5_complete_mode_examples.xml index 45fd577c..7c8f8a4c 100644 --- a/.roo/rules-mode-writer/5_complete_mode_examples.xml +++ b/.roo/rules-mode-writer/5_complete_mode_examples.xml @@ -1,96 +1,214 @@ - - - Generate OpenAPI documentation for a REST API with user management endpoints - - - - - Discover API endpoints - -express router app.get app.post app.put app.delete @Route @Get @Post - - ]]> - Found routes in src/routes/users.ts - - - - Analyze endpoint implementation - + + + Edit the test mode to add support for performance testing and benchmarking + + + + I want to edit the test mode to add benchmark testing capabilities + + + + + Determine user intent and clarify scope + +I understand you want to edit the test mode to add performance testing capabilities. Before we proceed, let me confirm the scope of changes. What specific performance testing features do you need? + +Add benchmark testing with Vitest's bench API +Include performance profiling and memory usage tracking +Add load testing capabilities for API endpoints +All of the above - comprehensive performance testing suite + + + ]]> + User selected: Add benchmark testing with Vitest's bench API + + + + Immerse in existing test mode configuration + +.roomodes + + ]]> + Found test mode configuration with current roleDefinition and file restrictions + + + + Explore existing test mode instructions + +.roo/rules-test +true + + ]]> + -src/routes/users.ts +.roo/rules-test/1_workflow.xml - ]]> - + ]]> + Understood current test workflows and patterns + + + + Validate changes for cohesion + +I've analyzed the test mode. Adding benchmark testing would require: +1. Updating the roleDefinition to include performance testing expertise +2. Modifying file restrictions to include .bench.ts files +3. Adding new workflow instructions for benchmark creation +4. Including Vitest bench API examples - - Generate OpenAPI specification - + +Yes, implement all the changes as described +Start with just the roleDefinition and file restrictions +Focus only on the workflow instructions first +Let me review the specific changes before proceeding + + + ]]> + User selected: Yes, implement all the changes as described + + + + Update mode configuration in .roomodes + +.roomodes + +<<<<<<< SEARCH + roleDefinition: |- + You are Roo, a Vitest testing specialist with deep expertise in: - Writing and maintaining Vitest test suites - Test-driven development (TDD) practices - Mocking and stubbing with Vitest - Integration testing strategies - TypeScript testing patterns - Code coverage analysis - Test performance optimization +======= + roleDefinition: |- + You are Roo, a Vitest testing specialist with deep expertise in: - Writing and maintaining Vitest test suites - Test-driven development (TDD) practices - Mocking and stubbing with Vitest - Integration testing strategies - TypeScript testing patterns - Code coverage analysis - Test performance optimization - Benchmark testing with Vitest bench API - Performance profiling and optimization - Memory usage analysis in tests +>>>>>>> REPLACE + + + ]]> + + + + Update file restrictions to include benchmark files + +.roomodes + +<<<<<<< SEARCH + - fileRegex: (__tests__/.*|__mocks__/.*|\.test\.(ts|tsx|js|jsx)$|\.spec\.(ts|tsx|js|jsx)$|/test/.*|vitest\.config\.(js|ts)$|vitest\.setup\.(js|ts)$) + description: Test files, mocks, and Vitest configuration +======= + - fileRegex: (__tests__/.*|__mocks__/.*|\.test\.(ts|tsx|js|jsx)$|\.spec\.(ts|tsx|js|jsx)$|\.bench\.(ts|tsx|js|jsx)$|/test/.*|vitest\.config\.(js|ts)$|vitest\.setup\.(js|ts)$) + description: Test files, benchmarks, mocks, and Vitest configuration +>>>>>>> REPLACE + + + ]]> + + + + Create new benchmark workflow instructions + -docs/api/openapi.yaml +.roo/rules-test/5_benchmark_testing.xml -openapi: 3.0.0 -info: - title: User Management API - version: 1.0.0 - description: API for managing user accounts - -servers: - - url: https://api.example.com/v1 - description: Production server - - url: http://localhost:3000/v1 - description: Development server - -paths: - /users: - get: - summary: List all users - operationId: listUsers - tags: - - Users - parameters: - - name: page - in: query - schema: - type: integer - default: 1 - - name: limit - in: query - schema: - type: integer - default: 20 - responses: - '200': - description: Successful response - content: - application/json: - schema: - type: object - properties: - users: - type: array - items: - $ref: '#/components/schemas/User' - pagination: - $ref: '#/components/schemas/Pagination' - -components: - schemas: - User: - type: object - required: - - id - - email - properties: - id: - type: string - format: uuid - email: - type: string - format: email - name: - type: string - createdAt: - type: string - format: date-time \ No newline at end of file + + + Guidelines for creating and maintaining performance benchmarks using Vitest bench API + + + + + Basic benchmark structure + { + bench('Array.push', () => { + const arr = []; + for (let i = 0; i < 1000; i++) { + arr.push(i); + } + }); + + bench('Array spread', () => { + let arr = []; + for (let i = 0; i < 1000; i++) { + arr = [...arr, i]; + } + }); +}); + ]]> + + + + + Use meaningful benchmark names that describe what's being measured + Include baseline comparisons when optimizing code + Run benchmarks in isolation to avoid interference + Document performance expectations and thresholds + + + +38 + + ]]> + + + + Validate all changes for consistency + +I've completed all the changes to add benchmark testing capabilities to the test mode: + +1. ✓ Updated roleDefinition to include benchmark expertise +2. ✓ Modified file restrictions to include .bench.ts files +3. ✓ Created new benchmark workflow instructions +4. ✓ Added Vitest bench API examples + +All changes are cohesive and align with the existing test mode structure. Would you like me to test any specific aspect of these changes? + +Test creating a new benchmark file to verify file permissions +Review the complete changes one more time +Everything looks good, the mode is ready +Create a simple benchmark example to test + + + ]]> + + + + + +I've successfully enhanced the test mode with benchmark testing capabilities: + +1. Updated the roleDefinition to include: + - Benchmark testing with Vitest bench API + - Performance profiling and optimization + - Memory usage analysis in tests + +2. Modified file restrictions to include .bench.ts files, allowing the mode to create and edit benchmark files + +3. Created new workflow instructions at .roo/rules-test/5_benchmark_testing.xml with: + - Basic benchmark patterns + - Best practices for performance testing + - Example code using Vitest's bench API + +All changes have been validated for cohesion and consistency with the existing test mode structure. The mode now supports comprehensive performance testing alongside its existing unit and integration testing capabilities. + + + ]]> + + + Always immerse yourself in the existing mode before making changes + Use ask_followup_question aggressively to clarify scope and validate changes + Validate all changes for cohesion and consistency + Update all relevant parts: configuration, file restrictions, and instructions + Test changes to ensure they work as expected + + + \ No newline at end of file diff --git a/.roo/rules-mode-writer/7_validation_cohesion_checking.xml b/.roo/rules-mode-writer/7_validation_cohesion_checking.xml new file mode 100644 index 00000000..a327a1e4 --- /dev/null +++ b/.roo/rules-mode-writer/7_validation_cohesion_checking.xml @@ -0,0 +1,201 @@ + + + Guidelines for thoroughly validating mode changes to ensure cohesion, + consistency, and prevent contradictions across all mode components. + + + + + + Every change must be reviewed in context of the entire mode + + + Read all existing XML instruction files + Verify new changes align with existing patterns + Check for duplicate or conflicting instructions + Ensure terminology is consistent throughout + + + + + + Use ask_followup_question extensively to clarify ambiguities + + + User's intent is unclear + Multiple interpretations are possible + Changes might conflict with existing functionality + Impact on other modes needs clarification + + +I notice this change might affect how the mode interacts with file permissions. Should we also update the file regex patterns to match? + +Yes, update the file regex to include the new file types +No, keep the current file restrictions as they are +Let me explain what file types I need to work with +Show me the current file restrictions first + + + ]]> + + + + + Actively search for and resolve contradictions + + + + Permission Mismatch + Instructions reference tools the mode doesn't have access to + Either grant the tool permission or update the instructions + + + Workflow Conflicts + Different XML files describe conflicting workflows + Consolidate workflows and ensure single source of truth + + + Role Confusion + Mode's roleDefinition doesn't match its actual capabilities + Update roleDefinition to accurately reflect the mode's purpose + + + + + + + + Before making any changes + + Read and understand all existing mode files + Create a mental model of current mode behavior + Identify potential impact areas + Ask clarifying questions about intended changes + + + + + While making changes + + Document each change and its rationale + Cross-reference with other files after each change + Verify examples still work with new changes + Update related documentation immediately + + + + + After changes are complete + + + All XML files are well-formed and valid + File naming follows established patterns + Tag names are consistent across files + No orphaned or unused instructions + + + + roleDefinition accurately describes the mode + whenToUse is clear and distinguishable + Tool permissions match instruction requirements + File restrictions align with mode purpose + Examples are accurate and functional + + + + Mode boundaries are well-defined + Handoff points to other modes are clear + No overlap with other modes' responsibilities + Orchestrator can correctly route to this mode + + + + + + + + Maintain consistent tone and terminology + + Use the same terms for the same concepts throughout + Keep instruction style consistent across files + Maintain the same level of detail in similar sections + + + + + Ensure instructions flow logically + + Prerequisites come before dependent steps + Complex concepts build on simpler ones + Examples follow the explained patterns + + + + + Ensure all aspects are covered without gaps + + Every mentioned tool has usage instructions + All workflows have complete examples + Error scenarios are addressed + + + + + + + + Before we proceed with changes, I want to ensure I understand the full scope. What is the main goal of these modifications? + + Add new functionality while keeping existing features + Fix issues with current implementation + Refactor for better organization + Expand the mode's capabilities into new areas + + + + + + + This change might affect other parts of the mode. How should we handle the impact on [specific area]? + + Update all affected areas to maintain consistency + Keep the existing behavior for backward compatibility + Create a migration path from old to new behavior + Let me review the impact first + + + + + + + I've completed the changes and validation. Which aspect would you like me to test more thoroughly? + + Test the new workflow end-to-end + Verify file permissions work correctly + Check integration with other modes + Review all changes one more time + + + + + + + + Instructions reference tools not in the mode's groups + Either add the tool group or remove the instruction + + + File regex doesn't match described file types + Update regex pattern to match intended files + + + Examples don't follow stated best practices + Update examples to demonstrate best practices + + + Duplicate instructions in different files + Consolidate to single location and reference + + + \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/10_discord_only_workflow.xml b/.roo/rules-release-notes-writer/10_discord_only_workflow.xml deleted file mode 100644 index a7e14038..00000000 --- a/.roo/rules-release-notes-writer/10_discord_only_workflow.xml +++ /dev/null @@ -1,309 +0,0 @@ - - - Specialized workflow for generating Discord-formatted release notes from existing release files. - This allows users to quickly get Discord-ready announcements without creating release notes from scratch. - - - - - User messages that trigger the Discord-only workflow - - - Discord release notes for X.Y.Z - Generate Discord format for vX.Y.Z - Discord announcement for X.Y.Z, A.B.C, D.E.F - Discord notes for v3.23.14 - Discord release notes for 3.23.14, 3.23.15 - - - - - - Parse Version Numbers - Extract version numbers from user request -
- Support multiple formats: - - Single version: "3.23.14" or "v3.23.14" - - Multiple versions: "3.23.14, 3.23.15, 3.23.16" - - Mixed formats: "v3.23.14, 3.23.15, v3.23.16" -
- - Strip 'v' prefix if present - Split by commas for multiple versions - Trim whitespace - Validate version format (X.Y.Z) - -
- - - Check File Existence - Verify release notes files exist - list_files -
- Check docs/update-notes/ for each requested version file (vX.Y.Z.mdx) -
- - - Report which versions are missing - -I couldn't find release notes for the following versions: v3.23.16, v3.23.17. Would you like me to: - -Generate Discord notes for the versions that exist (3.23.14, 3.23.15) -Create release notes for v3.23.16 first -Cancel this request - - - ]]> - - -
- - - Process Each Version Using Subtasks - Create Discord formatting subtask for each existing version -
- For each version that exists, create a subtask to handle the Discord formatting. - This ensures consistency with the standard workflow's Discord formatting approach. -
- - - Create temporary results file - write_to_file - temp_discord_results.md - # Discord Release Notes Results - - -
Initialize a file to collect results from subtasks
-
- - Create Discord formatting subtask for each version - new_task -
- For each existing version, create a release-notes-writer subtask. -
- - Generate Discord-formatted release notes for version X.Y.Z. - - Requirements: - 1. Strip all PR links and numbers (#XXXX). - 2. Keep structure and content. - 3. Prepend https://docs.roocode.com/ to all internal doc links. - 4. If compressing, summarize with this format: - ## :wrench: [Other Improvements and Fixes](https://docs.roocode.com/update-notes/vX.Y.Z#section-anchor) - This release includes X other fixes covering [list key areas]. Thanks to contributors: [list contributors]. - 5. Add footer link: - [Full X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z) - - Convert docs/update-notes/vX.Y.Z.mdx to Discord format. - Write the result to temp_discord_release_notes.md. - - Special handling: [Include any compression or highlights-only requests from user] - -
- - Wait for subtask completion -
- The subtask will handle reading the file, applying transformations, and writing results. -
-
- - Read subtask results and append to collection - read_file - temp_discord_release_notes.md -
- After each subtask completes, read its output and append to the results collection. -
-
-
-
- - - Combine Multiple Versions - When multiple versions requested, intelligently combine content - - - Sort versions in descending order (newest first) - Present most recent changes first for better visibility - - - Extract and merge content by category - - - Combine all major features across versions - List under unified "## Major Features" section - - - Merge all bug fixes - Group under "## Bug Fixes" with version indicators - - - Combine QOL and other improvements - List under "## Improvements" section - - - - - Add version indicators to each item - Append (vX.Y.Z) to each bullet point - * **File Handling**: Fixed large file errors (v3.23.15) (thanks user!) - - - Consolidate duplicate contributors -
If same contributor appears in multiple versions, list once
-
-
-
- - - Compile and Format Final Output - Read all subtask results and format based on version count - - - Read collected results - read_file - temp_discord_results.md -
Read all Discord-formatted content from subtasks
-
- - Determine output format -
- Based on number of versions and user preferences, choose appropriate format: - - Single version: Present as-is from subtask - - Multiple versions with "combine" request: Merge into unified sections - - Multiple versions default: Present separately -
-
- - Apply final formatting if needed -
- For multiple versions, may need to: - - Combine sections by category - - Add version indicators to items - - Consolidate duplicate contributors - - Create unified header and footer -
-
-
- - For single versions, the subtask output can be used directly without additional formatting. - - - For multiple versions, additional processing may be needed to combine or organize the content appropriately. - -
- - - Provide Copy Instructions - Give user the formatted text with copy guidance - - Here's the Discord-formatted release notes. You can copy and paste this directly into Discord. - - [Include formatted text in a code block for easy copying] - - - If output exceeds 2000 characters - Warn user about Discord's character limit and suggest splitting - - -
- - - - This workflow does not create or modify any permanent files - It only reads existing files and uses temporary files for subtask coordination - - - No GitHub API calls are needed - All information comes from existing release note files - - - Uses subtasks for consistency with standard workflow - Ensures Discord formatting logic remains consistent across all workflows - - - Uses temporary files for subtask communication - - temp_discord_results.md - Collects all subtask outputs - temp_discord_release_notes.md - Individual subtask output - - - - - - - Discord release notes for 3.23.14 - - 1. Parse version: 3.23.14 - 2. Check file exists: docs/update-notes/v3.23.14.mdx ✓ - 3. Create Discord formatting subtask - 4. Subtask reads file and transforms content - 5. Read subtask output and present to user - - - - - Generate Discord announcement for v3.23.14, v3.23.15, v3.23.16 - - 1. Parse versions: 3.23.14, 3.23.15, 3.23.16 - 2. Check files: v3.23.14.mdx ✓, v3.23.15.mdx ✓, v3.23.16.mdx ✗ - 3. Ask user how to proceed with missing v3.23.16 - 4. Create subtasks for existing versions - 5. Collect subtask outputs - 6. Format as separate sections for each version - 7. Output Discord announcement with version sections - - - - - Combine Discord release notes for 3.23.14 and 3.23.15 - - 1. Parse versions: 3.23.14, 3.23.15 - 2. Check both files exist - 3. Create subtasks for each version - 4. Collect subtask outputs - 5. Detect "combine" keyword - use combined format - 6. Merge features, fixes, and improvements with version tags - 7. Output single combined announcement - - - - - Discord notes for 3.23.14, compress the minor fixes - - 1. Parse version and compression request - 2. Check file exists - 3. Create subtask with compression instructions - 4. Subtask applies compression during transformation - 5. Output condensed Discord format - - - - - Discord release notes for 3.23.14-3.23.16 combined - - 1. Parse range: 3.23.14 to 3.23.16 - 2. Find all versions in range - 3. Create subtasks for each version - 4. Collect all subtask outputs - 5. Combine into unified sections with version indicators - 6. Output merged announcement - - - - - - - User provides version numbers but no files exist - Explain that no release notes exist and offer to create them - - - User provides invalid version format (e.g., "3.23" without patch) - Ask for clarification on the full version number - - - Unclear if user wants Discord format or full release notes - Ask for clarification with suggested options - - -
\ No newline at end of file diff --git a/.roo/rules-release-notes-writer/11_discord_workflow_tests.xml b/.roo/rules-release-notes-writer/11_discord_workflow_tests.xml deleted file mode 100644 index 8dcb2e26..00000000 --- a/.roo/rules-release-notes-writer/11_discord_workflow_tests.xml +++ /dev/null @@ -1,273 +0,0 @@ - - - Test scenarios to validate the Discord-only workflow functionality. - These tests ensure the mode correctly handles various user requests for Discord formatting. - - - - - Single existing version - Discord release notes for 3.23.14 - - 1. Detect Discord-only workflow pattern - 2. Parse version: 3.23.14 - 3. Check if docs/update-notes/v3.23.14.mdx exists - 4. Read file and apply Discord transformations - 5. Output formatted text with footer link - - - - No GitHub API calls made - - No files created or modified - - PR links removed from output - - Internal links converted to full URLs - - - - - Multiple existing versions - Generate Discord format for v3.23.14, v3.23.15, v3.23.16 - - 1. Detect Discord-only workflow pattern - 2. Parse versions: 3.23.14, 3.23.15, 3.23.16 - 3. Check existence of all three files - 4. Process each existing file - 5. Output combined Discord announcement - - - - Each version gets its own section - - Footer includes links to all versions - - Consistent formatting across versions - - - - - Mixed existing and missing versions - Discord announcement for 3.23.14, 3.23.99 - - 1. Parse versions: 3.23.14, 3.23.99 - 2. Check files: v3.23.14.mdx exists, v3.23.99.mdx missing - 3. Ask user how to proceed with missing version - 4. Based on response, either: - - Process only existing version - - Offer to create missing release notes first - - - - Clear error message about missing version - - Actionable suggestions provided - - Graceful handling of partial success - - - - - With compression request - Discord notes for 3.23.14, compress the bug fixes - - 1. Detect Discord-only workflow and compression flag - 2. Process version with compression - 3. Summarize bug fixes section - 4. Output condensed format - - - - Bug fixes compressed into summary - - Major features remain expanded - - Contributor list preserved in summary - - - - - Invalid version format - Discord release notes for 3.23 - - 1. Detect incomplete version number - 2. Ask for clarification - 3. Suggest checking available versions - - - - Clear error about version format - - Helpful suggestions provided - - - - - Ambiguous request (not Discord-specific) - Release notes for 3.23.14 - - 1. Detect main workflow pattern (not Discord-only) - 2. Proceed with full release notes creation - 3. Fetch PRs from GitHub - - - - Does NOT trigger Discord-only workflow - - Follows standard release notes creation - - - - - Discord with date range - Discord release notes for all versions from 3.23.10 to 3.23.14 - - 1. Recognize range request - 2. List files in update-notes directory - 3. Find all versions in range - 4. Process each found version - - - - Correctly identifies versions in range - - Processes in version order - - Combined output for all versions - - - - - Combined format request - Combine Discord release notes for 3.23.14 and 3.23.15 - - 1. Detect "combine" keyword - 2. Parse versions: 3.23.14, 3.23.15 - 3. Check both files exist - 4. Read and process both versions - 5. Merge content by category with version indicators - 6. Output single combined announcement - - - - Features from both versions in one section - - Bug fixes merged with version tags - - No duplicate sections - - Version indicators on each item - - - - - Multiple patch versions auto-combine - Discord release notes for 3.23.14, 3.23.15 - - 1. Detect consecutive patch versions - 2. Automatically choose combined format - 3. Merge all content with version tags - 4. Present unified announcement - - - - Smart format selection based on version proximity - - Clear version attribution for each change - - Consolidated contributor list - - - - - Mixed major/minor versions - Discord notes for 3.22.0, 3.23.0, 3.23.14 - - 1. Detect mix of major/minor versions - 2. Use separate format (not combined) - 3. Create section for each version - 4. Maintain clear separation - - - - Each version gets its own section - - No attempt to merge different minor versions - - Clear version headers - - - - - - - Discord release notes for - Ask user to specify version numbers - - - - Discrod release notes for 3.23.14 - May not trigger Discord workflow - handle gracefully - - - - Discord format for v3.23.1, v3.23.2, v3.23.3, ... (20+ versions) - Process all but suggest breaking into smaller groups - - - - Discord release notes for 3.23.14 and 3.23.15 separately - Use separate format even for consecutive patches - - - - Combine Discord notes for 3.23.14, 3.23.20 - Still combine but note version gap - - - - - - Ensure smooth transition between workflows - - 1. Start with Discord-only request - 2. If version missing, offer to create it - 3. If user accepts, switch to main workflow - 4. After creation, return to Discord formatting - - - - - Verify correct pattern matching priority - - - Generate Discord-formatted release notes for version 3.23.14 - subtask_discord (not discord_only) - - - Discord release notes for 3.23.14 - discord_only - - - - - - Verify correct format selection based on context - - - 3.23.14, 3.23.15 - none - combined (auto-detected for consecutive patches) - - - 3.23.14, 3.23.15, 3.23.16 - combine - combined (explicit request) - - - 3.22.0, 3.23.0 - combine - combined (respecting user request despite major versions) - - - 3.23.14, 3.23.15 - separately - separate (explicit request overrides auto-detection) - - - - - - Verify proper content merging in combined format - - Version tags added to each item - Categories properly merged - No duplicate content - Contributors consolidated - Proper sorting (newest first) - - - - - - - File reading efficiency - When processing multiple versions, read files sequentially to avoid memory issues - - - Output size - Discord has message length limits - warn if output exceeds 2000 characters - - - \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/1_main_workflow.xml b/.roo/rules-release-notes-writer/1_main_workflow.xml new file mode 100644 index 00000000..19ae9a2f --- /dev/null +++ b/.roo/rules-release-notes-writer/1_main_workflow.xml @@ -0,0 +1,716 @@ + + + Automates creating release notes for new Roo Code versions. Fetches pull requests + from GitHub, analyzes changes, generates user-focused notes, and handles Discord and Reddit + formatting. Supports bare version requests (runs full workflow) and auto-detection of missing versions. + + + + + Create release notes for X.Y.Z + Full release notes workflow + + + Discord release notes for X.Y.Z + Generate Discord format from existing files + + + Combined Discord announcement for X.Y.Z, X.Y.Z, and X.Y.Z + Generate combined Discord format from multiple release files + + + ^v?[\d.]+$ + Full release notes workflow (PR-by-PR analysis, changelog alignment, inclusion policy) + + + latest + Auto-detect missing versions from changelog + + + Reddit release notes for X.Y.Z + Generate Reddit format from existing files + + + + + ISO 8601: YYYY-MM-DD + + - YYYY = 4-digit year (e.g., 2025) + - MM = 2-digit MONTH (01-12) - NOT the day! + - DD = 2-digit day (01-31) + + + 2025-07-18 (July 18, 2025) + 2025-01-13 (January 13, 2025) + 2025-18-07 (Invalid - would mean 18th month) + + + When PR list provided directly: Use new Date().toISOString().split('T')[0] (UTC) + Note: toISOString returns UTC; do not convert to local time to avoid off-by-one day differences. + + + + + + + Analyze request type and route to appropriate workflow + + Execute latest_version_detection + Execute discord_workflow + Continue with standard workflow + Continue with standard workflow + + + + + Initialize tracking + update_todo_list + + - Determine version range + - Fetch PRs (if needed) + - Process and analyze PRs + - Create documentation files + - Update indexes and sidebars + - Handle user review + + + + + + + Determine version range + list_files in docs/update-notes + + + + Handle user-provided PR list + User provides PR numbers directly + Validate date format (MM is month, not day) + + + + Fetch PRs from GitHub using simplified approach + User provided PR list + = "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' + ]]> + + Returns JSON array of PR objects sorted by merge date, including all metadata needed for PR processing + + + + + + + Create .roo/tmp/release-notes/temp_pr_analysis_v[version].md +
+ Parent task MUST create this file (and .roo/tmp/release-notes/temp_pr_inclusion_v[version].json, .roo/tmp/release-notes/temp_pr_list_v[VERSION].md if needed) before ANY subtasks. + Subtasks will ONLY append using insert_content. + Parent task MUST NOT append to temp_pr_analysis_v[version].md; this file is reserved exclusively for subtask outputs. The parent may only create/initialize the empty file(s). + Temp files live under .roo/tmp/release-notes/ +
+
+ + + PR in list + Create investigation subtask using new_task tool + + new_task + release-notes-writer + + For each PR in the fetched or provided list, create a separate subtask + using the new_task tool. Each subtask investigates one PR independently. + + + Process PRs sequentially or in batches, creating a new_task for each PR number. + Wait for all subtasks to complete before proceeding to compilation phase. + + + + Investigate PR #[number] for release notes v[version]. + 1. Get PR details: gh pr view [number] --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,body,url + 2. Extract linked issues from PR body + 3. Get issue details if linked + 4. Categorize change (Feature/QOL/Bug Fix/Provider Update) + 5. Identify documentation needs (new features, behavior changes, deprecations) + 6. Append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md using insert_content line 0 + + Include documentation flags: + - docs-new: Completely new feature + - docs-update: Existing docs need updating + - docs-example: New examples needed + - docs-migration: Breaking changes + + CRITICAL: Never create/overwrite files, only append. + MANDATORY: Insert the marker line '<!-- generated-by-subtask: true -->' immediately before the '---' separator in each PR entry. + + +[ ] Fetch PR #[number] details using gh pr view --repo RooCodeInc/Roo-Code +[ ] Extract linked issues from PR body +[ ] Get issue details for each linked issue +[ ] Categorize the change (Feature/QOL/Bug Fix/Provider Update) +[ ] Identify documentation needs +[ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md + + + + +## PR #[number]: [Title] + +**Author**: [username] +**Linked Issues**: #[issue] (reporter: [username]) +**Category**: [Category] +**User Impact**: [Benefit description] +**Contributors**: [list] +**Documentation Needs**: [none|docs-new|docs-update|docs-example|docs-migration] +**Documentation Notes**: [If applicable, what needs documenting] +<!-- generated-by-subtask: true --> + +--- + + + + Example of creating subtasks for a PR list + Given PRs: #1234, #1235, #1236 for version 3.20.1 + + +release-notes-writer +Investigate PR #1234 for release notes v3.20.1. + +Get PR details: gh pr view 1234 --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,body,url +Extract linked issues and get details +Categorize the change and identify documentation needs +Append analysis to .roo/tmp/release-notes/temp_pr_analysis_v3.20.1.md using insert_content line 0 + +[ ] Fetch PR #1234 details +[ ] Extract linked issues and get details +[ ] Categorize and analyze +[ ] Write to temp_pr_analysis_v3.20.1.md + + + ]]> + + - Parent creates temp files first + - Each PR gets its own subtask + - Subtasks only append, never overwrite + + +
+ + + Align the working PR set with the repository changelog for the selected version(s) + + Fetch changelog content for v[VERSION] + + The release body contains the curated list of changes for this version + + + + Extract hero image URL candidates from release body and changelog; persist + + .roo/tmp/release-notes/changelog_vX.Y.Z.md + ]]> + /tmp/chlog64.txt 2>/dev/null; then + base64 -D "$CHANGELOG_TAG_FILE" || true +# Fallback to tag if main fails +elif gh api "repos/RooCodeInc/Roo-Code/contents/CHANGELOG.md?ref=vX.Y.Z" --jq '.content' >/tmp/chlog64.txt 2>/dev/null; then + base64 -D "$CHANGELOG_TAG_FILE" || true +else + : > "$CHANGELOG_TAG_FILE" +fi +# Extract the vX.Y.Z section if present +# CRITICAL: If the version header is not found, create an EMPTY section file. +# Do NOT fall back to the entire changelog—that would pull images from other versions. +if [ -s "$CHANGELOG_TAG_FILE" ]; then + START_LINE=$(grep -nE '^[#]{2,3}[[:space:]]*\[?v?X\.Y\.Z\]?' "$CHANGELOG_TAG_FILE" | head -n1 | cut -d: -f1 || true) + if [ -n "${START_LINE:-}" ]; then + END_LINE=$(tail -n +"$((START_LINE+1))" "$CHANGELOG_TAG_FILE" | grep -nE '^[#]{2,3}[[:space:]]*' | head -n1 | cut -d: -f1 || true) + if [ -n "${END_LINE:-}" ]; then + END_ABS=$((START_LINE + END_LINE - 1)) + sed -n "${START_LINE},${END_ABS}p" "$CHANGELOG_TAG_FILE" > "$SECTION_FILE" + else + tail -n +"$START_LINE" "$CHANGELOG_TAG_FILE" > "$SECTION_FILE" + fi + else + # Version header not found—create empty section to avoid pulling images from other versions + : > "$SECTION_FILE" + fi +else + : > "$SECTION_FILE" +fi + ]]> + "$CANDIDATES_FILE" + +# From CHANGELOG section markdown images (absolute or relative) +grep -Eo '!\[[^]]*\]\(([^)]+)\)' "$SECTION_FILE" 2>/dev/null \ + | sed -E 's/.*\(([^)]+)\).*/\1/' | grep -Ei '\.(png|jpe?g|gif|webp)' >> "$CANDIDATES_FILE" || true + +# From CHANGELOG section bare URLs (absolute or relative) +grep -Eo 'https?://[^ )]+' "$SECTION_FILE" 2>/dev/null | grep -Ei '\.(png|jpe?g|gif|webp)' >> "$CANDIDATES_FILE" || true +grep -Eo '(/[^ )]+|[A-Za-z0-9_./-]+)\.(png|jpe?g|gif|webp)' "$SECTION_FILE" 2>/dev/null >> "$CANDIDATES_FILE" || true + +# Deduplicate +if [ -s "$CANDIDATES_FILE" ]; then + sort -u "$CANDIDATES_FILE" > "$CANDIDATES_FILE.tmp" && mv "$CANDIDATES_FILE.tmp" "$CANDIDATES_FILE" +fi + ]]> + + + .roo/tmp/release-notes/image_candidates_v[version].txt + One URL or relative path per line; may be empty if no images present + + + + + Resolve hero image from discovered candidates, falling back to social-share when none exist + "$FRONTMATTER_FILE" + exit 0 +fi + +# Try the first candidate URL/path as the hero image source +mkdir -p "static/img/v$VERSION" +OUT="static/img/v$VERSION/v$VERSION.png" +SRC="$(head -n1 "$CANDIDATES_FILE")" + +# If SRC is a relative docs path, prefix it with the raw GitHub base for Roo-Code +if echo "$SRC" | grep -qE '^(https?://)'; then + URL="$SRC" +else + # Treat as repository-relative path; adjust as needed if release assets move + URL="https://raw.githubusercontent.com/RooCodeInc/Roo-Code/main/$SRC" +fi + +curl -L "$URL" -o "$OUT" || true +if [ -s "$OUT" ]; then + echo "/img/v$VERSION/v$VERSION.png" > "$FRONTMATTER_FILE" +else + echo "/img/social-share.jpg" > "$FRONTMATTER_FILE" +fi + ]]> + + - Skip hero image download entirely when no candidates were discovered; default to /img/social-share.jpg + - When candidates exist, attempt to download the first one and persist it as /img/v$VERSION/v$VERSION.png + - If download fails or the file is empty, fall back to /img/social-share.jpg + - Prefer PNG when multiple candidates are present (candidates list should already be filtered/ordered) + + + + + Extract version section lines from changelog_source +
+ If using Release body: treat the entire body as the v[VERSION] section. + If using CHANGELOG.md: isolate the v[VERSION] section by heading match: + - Headings commonly appear as "## vX.Y.Z", "## X.Y.Z", or "## [X.Y.Z]". +
+ + Detect PR references as: /#(\d{1,7})/g + + Purpose: Count changelog bullets without explicit PR numbers as "referenced" when they confidently map to a PR. + Matching algorithm: + - Normalize both bullet text and PR titles: + - lowercase; remove punctuation; strip prefixes like "fix:", "feat:", "add:", "improve:", "chore:", "refactor:" + - remove parentheticals such as "(thanks @user!)", "(PR by @user)", "(#1234 ...)" + - collapse whitespace + - Tokenize and compute token-overlap score = |intersection(tokens)| / |union(tokens)| + - Author signal: if bullet contains "thanks @user", "by @user", or "PR by @user" and that user equals the PR author or credited issue reporter, add +0.20 to score + - Keyword boost: +0.05 when provider/model/domain keywords (e.g., OpenAI, Claude, Grok, Chutes, Qwen, LongCat, etc.) appear in both + Confidence thresholds: + - score >= 0.65 (after boosts) -> linked (confident). Treat as changelog-referenced. + - 0.45 <= score < 0.65 OR multiple candidates within 0.05 -> ambiguous (needs review) + - score < 0.45 -> unlinked + Tie-breakers: higher score; if within 0.02 then same author; then closer merge date to release date; then lowest PR number + Edge case: If bullet credits exactly one username and exactly one PR in the window has that author, accept with score >= 0.50 (confidence="author-boost") + Implementation notes: + - Match only against PRs fetched for the version's date window + - Persist mapping bullet_text -> { prNumber, confidenceScore, rationaleSignals[] } and use it to compute linked/ambiguous/unlinked counts + + +
+ + + Supplement candidate PR set with changelog-referenced PRs not in fetched list and spawn analysis subtasks +
+ - Identify referenced PR numbers from step 2 that are missing from .roo/tmp/release-notes/temp_pr_analysis_v[version].md + - For each missing PR, fetch details and create a new investigation subtask (same pattern as pr_processing) to append analysis to temp_pr_analysis_v[version].md + - Mark these as out_of_range if their mergedAt is outside the computed date window + - Wait for all spawned subtasks to complete before proceeding +
+ + + +release-notes-writer +Investigate PR #[NUMBER] (changelog-referenced, possibly out of original range) for release notes v[version]. Follow standard analysis and append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. + +[ ] Fetch PR #[NUMBER] details using gh pr view --repo RooCodeInc/Roo-Code +[ ] Extract linked issues from PR body +[ ] Get issue details for each linked issue +[ ] Categorize the change (Feature/QOL/Bug Fix/Provider Update) +[ ] Identify documentation needs +[ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md + + + ]]> + +
+ + + Detect out-of-range referenced PRs + + Number of referenced PRs with mergedAt outside the YYYY-MM-DD..YYYY-MM-DD window + + + + + Partition PRs using changelog + + PRs explicitly referenced or confidently matched to changelog lines + PRs not referenced or ambiguous + + + Provide a brief summary: + - Included: [IN_COUNT] PRs + - Excluded: [EX_COUNT] PRs + Possible reasons for exclusion: + - Not mentioned in changelog + - Combined under a meta PR + - Documentation-only or infra work + - Outside computed date window + - Title did not match any changelog line + + + + + Ask for inclusion policy + ask_followup_question + + Do not proceed until one of the provided options is selected. + + + + User selects per-PR review + Iteratively review excluded PRs + + For each PR in the excluded set: + - Show title, author, brief labels, and a 1-2 sentence user-impact summary + - Ask: include this PR? + - Options: "Yes, include this PR" or "No, skip this PR" + - Build the final inclusion set as (in_changelog U user_selected_inclusions) + + + After the loop, proceed with the finalized PR set. + + + Proceed to feature selection using the finalized PR set. Persist included/excluded lists to .roo/tmp/release-notes/temp_pr_inclusion_v[version].json for downstream filtering. +
+ + + + Read and organize PR findings (filtered to finalized inclusion set) + + .roo/tmp/release-notes/temp_pr_analysis_v[version].md + .roo/tmp/release-notes/temp_pr_inclusion_v[version].json + + + - Inclusion policy required: If .roo/tmp/release-notes/temp_pr_inclusion_v[version].json does not exist, you MUST execute the changelog_alignment phase now to obtain an inclusion decision, then retry this step. + - Subtask provenance required: All PR analysis entries MUST contain the marker '<!-- generated-by-subtask: true -->'. If any entries are missing this marker, HALT and re-run PR analysis via per-PR subtasks before proceeding. + + + Include only PRs listed in "included" from .roo/tmp/release-notes/temp_pr_inclusion_v[version].json. Do not fall back to using all analyzed PRs without an explicit inclusion policy. + + Features, QOL Improvements, Bug Fixes, Provider Updates + QOL Improvements MUST come before Bug Fixes + + + + Confirm feature highlighting with user + ask_followup_question + + + Do not proceed until an explicit selection from the provided options is received. + On freeform responses, re-ask with reformulated options derived from the user's input until a provided option is chosen. + + Must get explicit confirmation before writing notes; see user_interactions.feature_selection.gating_rules + + + + Create release notes file + + For patch versions (X.Y.Z): docs/update-notes/vX.Y.Z.mdx + For minor/major summaries (X.Y): docs/update-notes/vX.Y.mdx + + + .roo/tmp/release-notes/frontmatter_image_v[version].txt + + - If the source file exists and starts with "/img/", set frontmatter "image" to that value + - Otherwise set "image" to /img/social-share.jpg + + + + .roo/tmp/release-notes/frontmatter_image_v[version].txt + Immediately after the intro summary sentence below the H1 title + + - If the persisted path starts with "/img/" and is not "/img/social-share.jpg", insert an HTML image tag under the intro paragraph + - Use the exact path value from the source file for src + - Follow .roorules Image Tag Format and use width="600" + - If the persisted path is "/img/social-share.jpg", skip inline insertion + + + ]]> + + + + + For patch releases: Get user confirmation + + Do NOT update combined notes until user confirms patch notes are final + + + + + Update documentation indexes + + - index.md (chronological list) + - sidebars.ts (navigation) + - Combined notes for patch releases (ONLY after confirmation) + + + + + Create documentation update task + If any documentation flags were identified + new_task with mode="documentation-writer" + + + Cleanup temporary files +
Delete .roo/tmp/release-notes/* (temp_pr_analysis_v[version].md, temp_pr_list_v[version].md, temp_pr_inclusion_v[version].json) after notes are finalized.
+
+
+
+ + + + Generate Discord format from existing release files, preserving original structure + + Preserve original headings and section structure from source docs exactly. + Do NOT rename, merge, or reorganize sections. + + + - Remove PR links and numbers from all content + - Convert /path to https://docs.roocode.com/path + - Convert "* " list bullets to "- " bullets + - Remove inline hero images + - Add footer link with markdown format + - Wrap entire output in markdown code block + + + Title format: # Roo Code X.Y.Z Release Updates (no emoji) + Preserve all section headings EXACTLY as in source docs + Preserve section order EXACTLY as in source docs + Copy all bullet points exactly (only change * to -) + No version numbers in body text (only header/footer) + No "Happy coding!" or similar closings + Footer: See full release notes [vX.Y.Z](link) + + Formatted text wrapped in ```markdown code block (no files created) + + + + Generate combined Discord format from multiple release files, preserving original structure + + Preserve original headings and section structure from source docs exactly. + Merge content from same-named sections across versions. + + + Read all specified release note files + Preserve all section headings exactly as they appear + Merge content from same-named sections across versions + Apply minimal Discord transformations + + + Title format: # Roo Code X.Y.Z-X.Y.Z Release Updates (no emoji) + Preserve all section headings EXACTLY as in source docs + Footer with links to each version: [vX.Y.Z](link) | [vX.Y.Z](link) + Wrap entire output in ```markdown code block + + Combined formatted text (no files created) + + + + Generate Reddit format from existing release files, preserving original structure + + Preserve original headings and section structure from source docs exactly. + Do NOT rename, merge, or reorganize sections. + + + - Remove all PR links and numbers + - Convert /path to https://docs.roocode.com/path + - Convert "* " list bullets to "- " bullets + - Remove inline hero images + - Wrap entire output in markdown code block + + + Title: Plain text with key features separated by pipes + Preserve all section headings EXACTLY as in source docs + Preserve section order EXACTLY as in source docs + No @everyone + Footer: See full release notes [vX.Y.Z](link) + + Formatted text wrapped in ```markdown code block (no files created) + + + + Auto-detect missing versions + + List existing docs files in docs/update-notes + Get recent releases from GitHub with full details + Identify missing versions (releases without docs) + Ask which to process + + + + + + + + Compare the release list with existing docs to identify missing versions. + Present the missing versions with their publish dates for user selection. + + After the user selects versions to process, use the simplified PR extraction for each selected version + + + + + + The PR extraction uses release timestamps to find all PRs merged between releases. + This is simple, reliable, and captures all changes in a single command. + + + = "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' + ]]> + + + 1. Gets the release timestamp for your version + 2. Finds the previous release's timestamp + 3. Fetches ALL PRs merged between those timestamps + 4. Returns them sorted by merge date with full metadata + + + + + + Date format is YYYY-MM-DD (ISO 8601) where MM is month (01-12) + + + Parent task creates temp files, subtasks only append + + + For each PR, the parent MUST create a subtask via new_task. The parent MUST NOT write PR analysis entries; only subtasks may append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. Do not proceed to changelog_alignment or compilation until all PR subtasks complete. + Even when the parent already has the PR number, title, description, or a user‑provided + summary list, it MUST still create and wait on the per‑PR subtask. These summaries are + insufficient for functional understanding of the change, discovery of linked issues, and + correct contributor attribution (PR authors and issue reporters). + + + Use the simplified PR extraction command for consistent results + + + Always acknowledge PR author AND issue reporter + + + Focus on user benefits, not technical implementation + + + QOL Improvements section MUST come before Bug Fixes + + + When the user asks for Discord or Reddit notes, output both variants in a single response + + +
diff --git a/.roo/rules-release-notes-writer/1_workflow.xml b/.roo/rules-release-notes-writer/1_workflow.xml deleted file mode 100644 index 209efc0e..00000000 --- a/.roo/rules-release-notes-writer/1_workflow.xml +++ /dev/null @@ -1,437 +0,0 @@ - - - Automates creating release notes for new Roo Code versions. Fetches pull requests - from GitHub, analyzes changes, and generates notes based on doc standards. - Can also generate Discord-formatted notes for existing release versions. - - - - - Analyze user request type -
- Determine if user wants to: - 1. Create new release notes from scratch (e.g., "Create release notes for 3.20.3") - 2. Generate Discord format for existing release (e.g., "Discord release notes for 3.20.3") -
- - - User requests Discord format for existing version(s) - Skip to discord_only_workflow - - - User requests to create new release notes - Continue with standard workflow - - -
- - - Initialize todo list for tracking progress - update_todo_list -
- Create a comprehensive todo list to track all phases of release notes creation. -
- - -[ ] Determine version range and previous version -[ ] Fetch release dates from GitHub -[ ] Search for merged PRs in date range -[ ] Process each PR (create subtasks) -[ ] Compile and organize PR findings -[ ] Create release notes file -[ ] Update index.md -[ ] Update sidebars.ts -[ ] Update combined release notes (if patch release) -[ ] Ask if user wants to create a PR -[ ] Generate Discord format (if requested) - - - ]]> -
- - - Determine version range - - list_files - Find previous version in docs/update-notes - -
- List files in docs/update-notes to find the last version file and set the range for fetching changes. -
- Mark "Determine version range and previous version" as complete -
-
- - - - Collect PR data from GitHub. Skipped if user provides a PR number list. - - - Check for user-provided PR list -
If user gives a list of PR numbers, skip to 'process_each_pr' phase. When skipping, use the current date or explicitly ask the user for the release date.
-
- - Fetch release dates - gh api (get tag) -
Get commit dates for new and previous version tags to set a date range using gh CLI.
- Mark "Fetch release dates from GitHub" as complete -
- - Search for merged PRs within date range - gh pr list or gh search prs -
- Use release date range to search for merged PRs. - Query: `--state merged --search "merged:YYYY-MM-DD..YYYY-MM-DD"` -
- Mark "Search for merged PRs in date range" as complete -
-
-
- - Determine the release date when user provides PR list directly. - Only when user provides a PR list instead of using GitHub date range search. - - - Check if user provided a date -
- Look for date in user's message (e.g., "3.23.15" followed by a date like "2025-07-18"). - If no date provided, use current date. -
-
- - Validate date format -
- Ensure date is in YYYY-MM-DD format (ISO 8601). - Common mistake: Confusing MM-DD with DD-MM. - Example: 2025-07-18 is July 18, not January 18. -
-
-
-
- - Process PRs with subtasks. Each subtask investigates one PR, storing findings in a temp file. - - - Create temporary analysis file - write_to_file - temp_pr_analysis.md - # PR Analysis for Release Notes v[version] - - -
Create an empty temp file that subtasks will append to.
-
- - Update todo list with PR processing status - update_todo_list -
Update the main todo to show PR processing is in progress
- Mark "Process each PR (create subtasks)" as in progress [-] -
-
- - - For each PR, create a subtask with new_task. Each subtask investigates one PR and appends findings to temp_pr_analysis.md. - - - - - Create PR investigation subtask - new_task -
- Create a release-notes-writer subtask to investigate the PR. -
- - Investigate PR #[number] for release notes v[version]. - - Task: - 1. Get PR details with gh pr view - 2. Extract linked issues from PR description (e.g., "Fixes #123") - 3. Get details for linked issues with gh issue view - 4. Analyze and categorize the change (bug fix, feature, etc.) - 5. Append findings to temp_pr_analysis.md in the specified format. Use insert_content with line 0 to append to the end of the file. - - Use update_todo_list to track your progress through these steps. - -
- - - Wait for subtask completion -
- The subtask handles these steps: fetch PR/issue details, analyze change, write findings to temp_pr_analysis.md, and report completion. -
-
- - - Move to next PR -
- After subtask is confirmed complete, create the next PR investigation subtask. -
-
-
- - - After each subtask writes its findings, move to the next PR. - -
- - Update todo after all PRs processed - Mark "Process each PR (create subtasks)" as complete [x] - -
- - Read temporary analysis file and compile findings into the final release notes. - - - Read temporary analysis file -
- Read temp_pr_analysis.md, which contains all PR investigation findings. -
-
- - Group and organize findings -
- Group PRs by category (Bug Fixes, QOL Improvements, etc.) based on the analysis. -
- Mark "Compile and organize PR findings" as complete -
- - Format for release notes -
- Convert findings into final release note format with acknowledgments and direct language. -
-
- Clean up temporary file -
- Optionally remove the temporary analysis file after completion. -
-
-
-
- - Create and update all documentation files. - - - Create release notes file -
- Create docs/update-notes/vX.Y.Z.mdx with correct title, date, and sections. -
- Mark "Create release notes file" as complete -
- - Update index.md -
- Add new release entry to the list. -
- Mark "Update index.md" as complete -
- - Update sidebars.ts -
- Add new release to the "Update Notes" sidebar. -
- Mark "Update sidebars.ts" as complete -
- - Update combined release notes -
- For patch releases, intelligently integrate changes into the parent minor/major release file. - Follow the detailed workflow in 9_combined_notes_integration.xml to: - - Read and parse the existing combined notes structure - - Categorize new changes by section - - Strip PR links and numbers - - Merge items into appropriate existing sections - - Maintain chronological order within sections - - Handle edge cases like duplicate fixes - Example: For v3.20.3, update v3.20.mdx by merging changes into existing sections. -
- Mark "Update combined release notes (if patch release)" as complete -
-
-
- - Iterative review process allowing users to refine release notes before creating a PR. - - This phase loops until the user chooses to create a PR. - - - - Ask if user wants to make changes - ask_followup_question -
- Ask if the user wants to make any changes to the generated release notes before creating a PR. - This question will be repeated after each change until the user is satisfied. -
- -The release notes for version X.Y.Z have been created and all documentation files have been updated. Would you like to make any changes to the release notes before creating a PR? - -No, create a PR with the title "Release notes for vX.Y.Z" -Yes, I'd like to make some changes to the release notes -Show me the current release notes file -Show me all changed files - - - ]]> -
- - Process user response -
- Handle the user's response: - - If response contains "no, create a pr" (case-insensitive): Proceed to PR creation - - If "show me the current release notes": Display the vX.Y.Z.mdx file content - - If "show me all changed files": List all modified files - - Any other response: Treat as requested changes to implement -
- - Response contains "no, create a pr" - Exit loop and proceed to PR creation - Any other response - Implement requested changes and loop back to step 1 - -
- - Implement requested changes -
- If user provides specific changes: - 1. Parse the user's request - 2. Apply the changes to the appropriate files - 3. Confirm changes were made - 4. Loop back to step 1 to ask again -
- Update "Ask if user wants to create a PR" to reflect ongoing review -
- - Create PR when ready -
- When user selects "No, create a PR": - 1. Create PR using gh pr create with title "Release notes for vX.Y.Z" - 2. Include a standard PR description - 3. Mark the todo item as complete -
- -gh pr create --repo RooCodeInc/Roo-Code --title "Release notes for vX.Y.Z" --body "This PR adds release notes for version X.Y.Z. - -## Changes -- Created release notes file -- Updated index.md -- Updated sidebars.ts -- Updated combined release notes (if applicable)" - - ]]> - Mark "Ask if user wants to create a PR" as complete -
-
-
- - Generate Discord-formatted release notes via a subtask. - When user asks for Discord formatting. - - - Create Discord formatting subtask - new_task -
- Create a subtask to convert the release notes file to Discord format. -
- - Generate Discord-formatted release notes for version X.Y.Z. - - Requirements: - 1. Strip all PR links and numbers (#XXXX). - 2. Keep structure and content. - 3. Prepend https://docs.roocode.com/ to all internal doc links. - 4. If compressing, summarize with this format: - ## :wrench: [Other Improvements and Fixes](https://docs.roocode.com/update-notes/vX.Y.Z#section-anchor) - This release includes X other fixes covering [list key areas]. Thanks to contributors: [list contributors]. - 5. Add footer link: - [Full X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z) - - Convert docs/update-notes/vX.Y.Z.mdx to Discord format. - -
- - Handle compression requests -
- If user asks to compress sections, the subtask should summarize changes, thank only contributors from those sections, and link to the full notes. -
-
-
-
-
- - - Direct workflow for generating Discord notes from existing release files. - - Discord release notes for X.Y.Z - Generate Discord notes for vX.Y.Z - Discord format for versions X.Y.Z, A.B.C - Discord announcement for X.Y.Z - - - - - Parse version numbers from request -
- Extract one or more version numbers from the user's request. - Support formats: "3.20.3", "v3.20.3", multiple versions separated by commas. -
-
- - - Verify release notes exist -
- For each requested version, check if docs/update-notes/vX.Y.Z.mdx exists. -
- list_files - - - Inform user which versions don't have release notes - Offer to create release notes first or skip missing versions - - -
- - - Process each version -
- For each existing version file: - 1. Read the release notes file - 2. Apply Discord formatting transformations - 3. Handle any compression requests - 4. Generate output -
- - Generate Discord format directly - - - Generate separate Discord format for each version - - -
- - - Present Discord-formatted output -
- Display the Discord-ready text for the user to copy. - Include any special formatting notes or suggestions. -
-
-
- - - Complete without creating PR or updating files - Discord-formatted text ready for posting - -
- - - Release notes file created with correct formatting. - All PRs analyzed and described by user benefit. - Index and sidebar files updated. - Combined release notes updated for patch releases. - Links and references are correct. - Final release notes include only items from the version's changelog. - User has reviewed release notes and confirmed readiness for PR creation. - PR has been created (or user explicitly declined PR creation). - -
diff --git a/.roo/rules-release-notes-writer/2_content_standards.xml b/.roo/rules-release-notes-writer/2_content_standards.xml new file mode 100644 index 00000000..dcac72f8 --- /dev/null +++ b/.roo/rules-release-notes-writer/2_content_standards.xml @@ -0,0 +1,447 @@ + + + Formatting, content standards, and PR analysis patterns for release notes. + Ensures consistent, user-focused documentation in docs/update-notes. + + + + + + vX.Y.Z.mdx + v3.20.3.mdx + + + vX.Y.mdx + v3.20.mdx + Summarizes a release cycle + + + + + + +--- +description: A concise summary of the release. +keywords: + - roo code x.y.z + - new features + - bug fixes +image: /img/social-share.jpg +--- + + + + + # Roo Code X.Y.Z Release Notes (YYYY-MM-DD) + + - Include version number + - Include release date in ISO 8601 format + - Date from GitHub tag OR current date if PR list provided + + + + + Below title + This release adds context condensing, improves performance, and fixes UI bugs. + + + + Immediately after the intro summary sentence + + - Insert only if frontmatter image path resolves to "/img/..." and is not "/img/social-share.jpg" + - Use an HTML image tag per site rules with width="600" + - Set src from .roo/tmp/release-notes/frontmatter_image_v[version].txt and alt to "Roo Code v[VERSION] Release" + + + + + + + + + What changed? (Identify core feature) + Why did it change? (Problem solved) + How does this impact users? (Concrete benefits) + + + + + New functionality changing user experience + Own ## heading with expanded description + + + + + UI/UX enhancements, workflow optimizations + Under ## QOL Improvements + MUST come before Bug Fixes section + + + + Resolves issues, fixes errors + Under ## Bug Fixes as bullet points + MUST come after QOL Improvements section + + + + API provider changes + Under ## Provider Updates + + + + + Completely new feature requiring new page + Existing documentation needs updating + New examples or use cases to add + Migration guide needed for breaking changes + + + + + + Major features with details + +## Feature Name + +Description of what the feature does (thanks contributor!) ([#PR](link)): + +- **Key Point 1**: Explanation of this aspect. +- **Key Point 2**: Another explanation. + +Concluding sentence about the benefit. + +> **📚 Documentation**: See [Feature Guide](/path/to/feature) for detailed usage. + + + + + Smaller fixes and improvements + +## Section Name + +* **Item Name**: Single-line description (thanks contributor!) ([#PR](link)) +* **Another Item**: Another description ([#PR](link)) + + + + + (thanks username!) + (thanks author, reporter!) + + - Omit @ from GitHub usernames + - Place inside parentheses before PR link + - Include both PR author and issue reporter + - List PR author first + - If PR author equals issue reporter, use a single username once + - Do not thank these names: outlined in the special instructions section `Release Notes "thank you" exclusions` + + + + + ([#PR_NUMBER](https://github.com/RooCodeInc/Roo-Code/pull/PR_NUMBER)) + + In intro paragraph or bullet points + At end of each bullet point + + + + + + + 1. Major feature sections (each with own heading) + 2. ## QOL Improvements + 3. ## Bug Fixes + 4. ## Misc Improvements + 5. ## Provider Updates + 6. ## Documentation Updates + + QOL Improvements MUST always come before Bug Fixes + + + + docs/update-notes/index.md + [X.Y.Z](/update-notes/vX.Y.Z) (YYYY-MM-DD) + + - List chronologically, newest first + - Use absolute paths from site root (no /docs prefix) + - Omit .md extension + - Include release date in ISO 8601 format + + + + + sidebars.ts + 'update-notes/vX.Y.Z' + + - Add to "Update Notes" category + - Use Docusaurus ID format + - Maintain chronological order + + + + + Integrate patch releases into parent minor/major file + + - Add changes to corresponding existing sections + - Maintain consistent formatting and section order + - Append new items to end of respective sections + - Consolidate duplicate fixes across patches + - Update summary sentence if significant features added + + + + + User benefits, not implementation details + Present tense ("adds" not "added") + + RefactoredImproved + ImplementedAdded + Optimized algorithmMade faster + Fixed race conditionFixed timing issue + + + + + + [Feature Name](/path/to/feature) + +> **📚 Documentation**: See [Feature Guide](/path) for detailed usage instructions. + + +> **🔄 Migration Guide**: If upgrading from v[OLD], see our [migration guide](/migration/vX-to-vY). + + + + - Modes: /features/modes/[mode-slug] + - Tools: /advanced-usage/available-tools#[tool-name] + - MCP: /features/mcp/ + - Providers: /providers/ + + + - Use absolute paths starting from root (without /docs prefix) + - No .md extensions in links + - All major features must have documentation links + + + + + - "Summary" or "Highlights" sections in docs/update-notes (Discord announcements may use "Feature Highlights") + - Version numbers in docs outside update-notes + - Temporal references like "as of version X.Y.Z" + - Marketing language or buzzwords + - Generic headings like "## Changes" or "## Updates" + + + + + Discord announcements preserve the original structure and headings from source release notes. + Only minimal transformations are applied for platform compatibility. + + + + Preserve original headings and section structure from the source release notes files exactly. + Do NOT rename, merge, or reorganize sections. The Discord version should mirror the docs version. + + + + + ```markdown ... ``` + Wrap the entire announcement in a markdown code block + + + + # Roo Code X.Y.Z Release Updates + # Roo Code X.Y.Z-X.Y.Z Release Updates + + - No emoji in title + - Use "Release Updates" for both single and combined versions + - For combined announcements, use "X.Y.Z-X.Y.Z" range formatting + + + + + @everyone [short hero summary derived from source intro sentence] + + - Discord only (omit from Reddit) + - Derive from the source file's intro/summary sentence + + + + + + - Copy all section headings EXACTLY as they appear in source docs + - Preserve the original section order from source docs + - Copy all bullet points and sub-bullets exactly as they appear + - No emojis in section headers + - Use hyphen bullets ("- ") instead of asterisk bullets ("* ") + + + + + +See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) + + +See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) | [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) + + + - Use markdown inline links with the version as the anchor text + - For multiple versions, join links with " | " + + + + + + Preserve original section headings exactly as in source docs + Preserve original bullet points and structure exactly + No version numbers in body text (only header/footer) + Never use marketing language + Remove PR links/numbers from all content + Convert any relative docs links to absolute https://docs.roocode.com paths + Use hyphen bullets ("- ") everywhere + Remove inline hero images from output + + + + + * + - + + + + ([#PR](link)) + (remove from all content) + + + + /path/to/page + https://docs.roocode.com/path/to/page + + + + <img src="..." /> + (remove entirely) + + + + + User explicitly requests "compress", "condense", or content exceeds 2000 chars + + Only when triggered, summarize smaller sections into a "More Changes" paragraph. + Still preserve major feature section headings even when compressing. + + + + + + + Reddit announcements preserve the original structure and headings from source release notes. + Only minimal transformations are applied for platform compatibility. + + + + Preserve original headings and section structure from the source release notes files exactly. + Do NOT rename, merge, or reorganize sections. The Reddit version should mirror the docs version. + + + + + ```markdown ... ``` + Wrap the entire announcement in a markdown code block + + + + Roo Code X.Y.Z Release Updates | [key feature 1] | [key feature 2] | [key feature 3] + Roo Code X.Y.Z-X.Y.Z Release Updates | [key feature 1] | [key feature 2] | [key feature 3] + + - Plain text line (no leading "#") + - Derive key features from source intro sentence (not hardcoded examples) + - Use pipe separators between key features + + + + + *In case you did not know, r/RooCode is a Free and Open Source VS Code AI Coding extension.* + + + + + - Copy all section headings EXACTLY as they appear in source docs + - Preserve the original section order from source docs + - Copy all bullet points and sub-bullets exactly as they appear + - No @everyone line + - No emojis in section headers + - Use hyphen bullets ("- ") + - Remove PR links everywhere + + + + + +See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) + + +See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) | [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) + + + + + + Preserve original section headings exactly as in source docs + Preserve original bullet points and structure exactly + No version numbers in body text + Remove all PR numbers and links + Use absolute docs links + Use hyphen bullets ("- ") + Remove inline hero images from output + + + + + * + - + + + + ([#PR](link)) + (remove from all content) + + + + /path/to/page + https://docs.roocode.com/path/to/page + + + + <img src="..." /> + (remove entirely) + + + + + User explicitly requests "compress" or "condense" + + Only when triggered, summarize smaller sections into a "More Changes" paragraph. + Still preserve major feature section headings even when compressing. + + + + + + When the user asks for Discord notes, also produce Reddit notes in the same response. + When the user asks for Reddit notes, also produce Discord notes in the same response. + + \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/2_formatting_standards.xml b/.roo/rules-release-notes-writer/2_formatting_standards.xml deleted file mode 100644 index bd3ee410..00000000 --- a/.roo/rules-release-notes-writer/2_formatting_standards.xml +++ /dev/null @@ -1,212 +0,0 @@ - - - Formatting and content standards for release notes in docs/update-notes. - Ensures consistent and clear release documentation. - - - - - vX.Y.Z.mdx - v3.20.3.mdx - Full version for patch releases. - - - - vX.Y.mdx - v3.20.mdx - Major.minor version to summarize a release cycle. - - - - - - All release notes must include frontmatter with a description, keywords, and a social share image. The title is generated automatically from the first H1 heading. - - - - - - # Roo Code X.Y.Z Release Notes (YYYY-MM-DD) - - Include version number. - Include release date in ISO 8601 format: YYYY-MM-DD. - Date must be the actual release date from GitHub tag OR current date if PR list provided. - CRITICAL: Month comes before day (MM-DD not DD-MM). Example: 2025-07-18 is July 18th. - - - 2025-07-18 (July 18, 2025) - 2025-01-13 (January 13, 2025) - 2025-18-07 (Invalid - would mean 18th month) - 2025-13-01 (Invalid - would mean 13th month) - - - - - Below title. - One sentence summarizing key changes. - This release adds context condensing, improves performance, and fixes UI bugs. - - - - - Major features with details. - - - - - Smaller fixes and improvements. - - - - - - - - Major feature names (e.g., "## Context Condensing is Now Default") - ## Bug Fixes - ## QOL Improvements - ## Misc Improvements - ## Provider Updates - ## Documentation Updates - - - - ## Changes - ## Updates - ## Highlights - Generic; do not use. - - - - - (thanks username!) - - (thanks username1, username2!) - For multiple contributors (PR author + issue reporter). - - - Omit @ from GitHub usernames. - Place inside parentheses before PR link. - Include both PR author and issue reporter. - List PR author first. - Separate usernames with commas. - - - - PR author only - (thanks john-doe!) - - - PR author + issue reporter - (thanks john-doe, jane-smith!) - - - - - - ([#PR_NUMBER](https://github.com/RooCodeInc/Roo-Code/pull/PR_NUMBER)) - - In intro paragraph or bullet points. - At end of each bullet point. - - - - - docs/update-notes/index.md - [X.Y.Z](/update-notes/vX.Y.Z) (YYYY-MM-DD) - - List chronologically, newest first. - Use absolute paths from /docs/. - Omit .md extension. - Include release date in ISO 8601 format (YYYY-MM-DD). - CRITICAL: Verify date format - month before day. - - - - - sidebars.ts - 'update-notes/vX.Y.Z' - - Add to "Update Notes" category. - Use Docusaurus ID format. - Maintain chronological order. - - - - - When creating patch releases, intelligently integrate changes into the parent minor/major file. - - Add changes to their corresponding existing sections (Bug Fixes to Bug Fixes, etc.) - Do not include patch version numbers or PR links in combined notes - Maintain consistent formatting and section order - Append new items to the end of their respective sections - Consolidate duplicate fixes across patches - Update summary sentence if significant features were added - - - Read and parse existing combined notes structure - Map new changes to appropriate sections - Strip PR references from new items - Use apply_diff to insert items at the end of each section - See 9_combined_notes_integration.xml for detailed workflow - - - - - - User-focused - Focus on benefits, not implementation. - - - - Clear and concise - Use plain language, no jargon. - - - - Present tense - Write "adds" not "added". - - - - Consistent formatting - Follow established patterns. - - - - Accurate - Verify statements against changes. - - - - - "Summary" or "Highlights" sections. - Version numbers in docs outside update-notes. - Temporal references like "as of version X.Y.Z". - Marketing language or buzzwords. - - \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/3_pr_analysis_patterns.xml b/.roo/rules-release-notes-writer/3_pr_analysis_patterns.xml deleted file mode 100644 index 4505a934..00000000 --- a/.roo/rules-release-notes-writer/3_pr_analysis_patterns.xml +++ /dev/null @@ -1,260 +0,0 @@ - - - Patterns for analyzing PRs and converting technical changes into user-focused release notes. - - - - - What changed? - Identify the core feature affected. - - - Modified context condensing algorithm. - Context management system. - - - Updated file diff parsing logic. - File editing. - - - - - - Why did it change? - Understand the problem solved or improvement made. **For bug fixes, the linked issue is the primary source of truth for the problem description.** - - - Fixed race condition in concurrent reads. - Prevented file reading errors. - - - Optimized token counting algorithm. - Improved performance. - - - - - - How does this impact users? - State the concrete benefits. - - - Reduced memory usage by 30%. - Roo Code runs better on systems with less memory. - - - Added retry logic for API calls. - More reliable connections, fewer interruptions. - - - - - - - - - - - - - - - - - Always include PR author. - author.login from gh pr view JSON output - - - Include issue reporter if PR references an issue. Always check for a linked issue, even if not explicitly mentioned in the description. - author.login from gh issue view JSON output for linked issues - - Fixes #123 - Closes #456 - Resolves #789 - - - - PR author first. - Issue reporter(s) second. - Separate with commas. - Remove duplicates. - - - - - - - - New functionality changing user experience. - Changes affecting core workflows. - - Own ## heading. - - - - - Resolves user-reported issues. - Fixes broken functionality. - Addresses errors or crashes. - - Under ## Bug Fixes. - - - - - UI/UX enhancements. - Workflow optimizations. - - Under ## QOL Improvements. - - - - - Speed or memory improvements. - - Under ## Misc Improvements. - - - - - Changes to API provider integrations. - New provider support. - - Under ## Provider Updates. - - - - - - Refactored - Improved - - - Implemented - Added - - - Deprecated - Replaced - - - Optimized algorithm - Made faster - - - Fixed race condition - Fixed timing issue - - - Updated dependencies - Improved compatibility and security - - - - - - faster, quicker, responsive, efficient - - - stable, consistent, dependable - - - easier, simpler, intuitive - - - supports, works with - - - secure, safe, protected - - - - - - Patterns for when operating as a subtask for single PR investigation. - - - Investigate PR #(\d+) for release notes v([\d.]+) - - Group 1 - Group 2 - - - - - Processes multiple PRs. - Focuses on a single PR. - - - Creates release notes files. - Appends findings to temp_pr_analysis.md. - - - Updates multiple doc files. - Only writes to the temp file. - - - - Standardized format for findings. - - - Append to temp_pr_analysis.md with insert_content (line 0). - Include separator (---) between entries. - - - - \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/3_user_interactions.xml b/.roo/rules-release-notes-writer/3_user_interactions.xml new file mode 100644 index 00000000..e0c83511 --- /dev/null +++ b/.roo/rules-release-notes-writer/3_user_interactions.xml @@ -0,0 +1,338 @@ + + + User confirmation workflows and interaction patterns for obtaining approval + at critical points to prevent repeated edits and ensure accuracy. + + + + + After PR analysis, before writing release notes + Verify which features to highlight + + + Do not proceed unless the response clearly matches one of the provided options. + If the user types a freeform response, re-ask using ask_followup_question with options reformulated from their input; require selection of one provided option. + Repeat this gating loop until a provided option is explicitly selected. + + + +To proceed I need an explicit selection. Based on your input, which option should I follow? + +Highlight all major features as listed +Highlight only: [feature A], [feature B] +Keep everything grouped (no expanded sections) +Let me specify which features to expand + + + + + + + After fetching PRs and before feature selection + Partition PRs by presence in the changelog and select inclusion policy + + Present counts partitioned as: + - Linked (explicit or confidently auto‑matched) + - Ambiguous (needs review) + - Unlinked + Then offer three paths: + - Only linked PRs + - Linked + review ambiguous + - All PRs + + + +Changelog alignment v[VERSION]: [IN_COUNT] linked, [AMBIG_COUNT] ambiguous, [EX_COUNT] unlinked. Choose how to proceed. + +Proceed with linked PRs only; skip ambiguous and unlinked +Include linked PRs and review the [AMBIG_COUNT] ambiguous items +Include all PRs from the date range + + + + + +Review ambiguous item: include PR #[NUMBER] - [TITLE]? Short analysis: [USER IMPACT / WHY IT MATTERS]. + +Yes, include this PR +No, skip this PR + + + + + Do not proceed until an explicit option is selected. + For freeform answers, re-ask with options that reflect the user's intent; require selection. + + + + + After creating patch notes, before updating combined notes + Ensure patch notes are final before propagating + NEVER update combined notes until explicit confirmation + + + + + After identifying documentation flags + Confirm documentation update requirements + + + + + After all updates complete + Final confirmation before PR creation + + + + + + + User says "latest" + + Detect missing versions from changelog + Present found versions + + + + + + Each adjustment triggers new confirmation cycle + + User requests change + Apply specific change only + Show result of change + Ask for confirmation before proceeding + + + Reorder sections + Change feature emphasis (expanded vs grouped) + Edit descriptions or benefits + Add missing items + + + + + Discord release notes for X.Y.Z + + Immediately generate Discord and Reddit posts (no prompt). + Preserve original section headings and structure from source docs exactly. + Only ask if the user requests "compress"/"condense". + + + Title: "# Roo Code X.Y.Z Release Updates" (no emoji) + Include "@everyone" tagline derived from source intro sentence + Preserve section headings EXACTLY as they appear in source docs + Preserve section order EXACTLY as in source docs + Copy all bullet points exactly as they appear (only change * to -) + Use hyphen bullets "- " only; no emojis in section headers + Remove all PR links from content + Remove inline hero images + Footer: See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) + Wrap entire output in ```markdown code block + + + User explicitly says "compress" or "condense" + + Preserve major feature section headings + Summarize smaller sections into a "More Changes" paragraph + + + + + + + Reddit release notes for X.Y.Z + + Immediately generate Reddit and Discord posts (no prompt). + Preserve original section headings and structure from source docs exactly. + + + Title (plain text): "Roo Code X.Y.Z Release Updates | [key feature 1] | [key feature 2]" (derived from source) + Intro italic note present + Preserve section headings EXACTLY as they appear in source docs + Preserve section order EXACTLY as in source docs + Copy all bullet points exactly as they appear (only change * to -) + Use hyphen bullets "- " only; no emojis, no @everyone + Remove all PR links everywhere + Remove inline hero images + Footer: See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) + Wrap entire output in ```markdown code block + + + + + Combined Discord announcement for multiple versions + + Identify all versions to combine + Read release notes for each version + Preserve all section headings exactly as they appear in source docs + Merge content from multiple versions under their original headings + Present formatted output in markdown code block + + + Title: "# Roo Code X.Y.Z-X.Y.Z Release Updates" (no emoji, version range) + Include "@everyone" tagline derived from source intro sentences + Preserve all section headings EXACTLY as they appear in source docs + Merge content from same-named sections across versions + Use hyphen bullets "- " only; no emojis in section headers + Remove all PR links from content + Remove inline hero images + Footer: See full release notes [vX.Y.Z](link) | [vX.Y.Z](link) + Wrap entire output in ```markdown code block + + + User explicitly says "compress" or "condense" + + + + + + + Never assume approval - require explicit confirmation + + + For patch releases, always confirm before updating combined notes + + + Show concrete examples in confirmation questions + + + Provide clear options covering common scenarios + + + Order suggestions by likelihood or importance + + + Keep confirmation cycles focused on specific decisions + + + Track confirmation state to avoid re-asking + + + + + + Release notes file doesn't exist for Discord format + + + The release notes for v[VERSION] don't exist yet. Would you like to: + + Create the release notes first + Process a different version + Cancel the Discord format request + + + + + + + No PRs found in date range + + + No PRs found for the specified date range. This might mean: + + Try a wider date range + Check if the version tag exists + Manually provide PR numbers + Cancel and investigate + + + + + + \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/4_tool_usage.xml b/.roo/rules-release-notes-writer/4_tool_usage.xml deleted file mode 100644 index 6f38277c..00000000 --- a/.roo/rules-release-notes-writer/4_tool_usage.xml +++ /dev/null @@ -1,322 +0,0 @@ - - - Guidance for using GitHub CLI (gh) and file tools for creating release notes. - - - - - Fetch release date for a version tag. - -gh api repos/RooCodeInc/Roo-Code/git/refs/tags/v3.20.3 --jq '.object.sha' | xargs -I {} gh api repos/RooCodeInc/Roo-Code/git/commits/{} --jq '.committer.date' - - ]]> - Returns commit date for the tag to set the PR search range. - - - - Get all merged PRs between two dates. - -gh pr list --repo RooCodeInc/Roo-Code --state merged --search "merged:2025-01-10..2025-01-13" --json number,title,author,mergedAt --limit 1000 - - ]]> - Returns JSON array with PR numbers, titles, authors, and merge dates. - - - - Get details for a specific PR. - -gh pr view 1234 --repo RooCodeInc/Roo-Code --json number,title,author,body,mergedAt,files - - ]]> - - title - author.login (author) - body - files (changed files) - - - - - Get details for linked issues to acknowledge all contributors. - -gh issue view 987 --repo RooCodeInc/Roo-Code --json number,title,author,body - - ]]> - - title - author.login (reporter) - body - - - Find linked issues in PR descriptions with these patterns: - Fixes #123 - Closes #456 - Resolves #789 - #123 - - - - - Alternative method to search for PRs with more complex queries. - -gh search prs --repo RooCodeInc/Roo-Code --merged --merged-at "2025-01-10..2025-01-13" --json number,title,author,mergedAt --limit 1000 - - ]]> - Use this if gh pr list doesn't support the date range properly. - - - - - - Create subtasks for processing individual PRs. - When processing multiple PRs, create one subtask per PR. - - "release-notes-writer" - Structured message with PR number and version. - - -release-notes-writer -Investigate PR #1234 for release notes v3.20.3. - -Task: -1. Get PR details (gh pr view) -2. Extract linked issues from description -3. Get issue details (gh issue view) -4. Analyze and categorize change -5. Write findings to temp_pr_analysis.md in the required format. Use insert_content with line 0. - -Use update_todo_list to track your progress through these steps. - - - ]]> - - - - Track progress through PR investigation steps in subtasks. - At the start of each PR investigation subtask and after completing each step. - - - -[ ] Fetch PR details with gh pr view -[ ] Extract linked issues from PR description -[ ] Get details for each linked issue -[ ] Analyze and categorize the change -[ ] Write findings to temp_pr_analysis.md -[ ] Complete subtask - - - - - - -[x] Fetch PR details with gh pr view -[-] Extract linked issues from PR description -[ ] Get details for each linked issue -[ ] Analyze and categorize the change -[ ] Write findings to temp_pr_analysis.md -[ ] Complete subtask - - - - - - -[x] Fetch PR details with gh pr view -[x] Extract linked issues from PR description -[x] Get details for each linked issue -[x] Analyze and categorize the change -[x] Write findings to temp_pr_analysis.md -[x] Complete subtask - - - ]]> - - Update immediately after each step completes - Use [-] for in-progress items, [x] for completed - Add specific issue numbers when multiple issues exist - Only mark complete when verified - - - - - Create a subtask for Discord formatting. - When user requests Discord formatting. - - "release-notes-writer" - Structured message with version and formatting rules. - - -release-notes-writer -Generate Discord-formatted release notes for version X.Y.Z. - -Requirements: -1. Strip PR links and numbers. -2. Keep structure and content. -3. Prepend https://docs.roocode.com/ to internal links. -4. If compressing, summarize and thank contributors from those sections. -5. Add footer with link to full release notes. - -Convert docs/update-notes/vX.Y.Z.mdx. - - - ]]> - - - - - - Track overall progress through the release notes creation workflow. - At the start of the main workflow and after completing each major phase. - - - -[ ] Determine version range and previous version -[ ] Fetch release dates from GitHub -[ ] Search for merged PRs in date range -[ ] Process each PR (create subtasks) -[ ] Compile and organize PR findings -[ ] Create release notes file -[ ] Update index.md -[ ] Update sidebars.ts -[ ] Update combined release notes (if patch release) -[ ] Generate Discord format (if requested) - - - - - - -[x] Determine version range and previous version -[x] Fetch release dates from GitHub -[x] Search for merged PRs in date range -[-] Process each PR (create subtasks) -[ ] Compile and organize PR findings -[ ] Create release notes file -[ ] Update index.md -[ ] Update sidebars.ts -[ ] Update combined release notes (if patch release) -[ ] Generate Discord format (if requested) - - - ]]> - - Create comprehensive todo list at workflow start - Update after each major phase completion - Use [-] to indicate work in progress - Include conditional items (e.g., "if patch release") - - - - - - - Find previous version files. - -docs/update-notes -false - - ]]> - Find most recent vX.Y.Z.mdx file to determine previous version. - - - - Create new release notes and temporary analysis files. - - Create docs/update-notes/vX.Y.Z.mdx - Create temp_pr_analysis.md - - - - - Append PR analysis to temporary file. - -temp_pr_analysis.md -0 - -## PR #1234: Fix context condensing -**Author**: john-doe -**Linked Issues**: #987 (reporter: bug-reporter) -**Category**: Bug Fix -**User Impact**: Fixed context condensing errors with large files. -**Contributors**: john-doe, bug-reporter - ---- - - - ]]> - After analyzing a PR, append findings to the temp file. - - - - Read existing files for updates. - - docs/update-notes/index.md - sidebars.ts - docs/update-notes/vX.Y.mdx (for combined notes) - temp_pr_analysis.md - - - - - Update existing files. - -docs/update-notes/index.md - -<<<<<<< SEARCH -:start_line:X -------- -## Release Notes - -### 2025 -======= -## Release Notes - -### 2025 - -- [3.20.3](/update-notes/v3.20.3) (2025-01-13) ->>>>>>> REPLACE - - - ]]> - - - - - - Use subtasks for PR processing for better organization and error isolation. - - - Use a temporary file (e.g., temp_pr_analysis.md) with a consistent format for easy parsing. - - - Track all contributors (PR author and issue reporters). - - - - - - PR not found/access denied - Skip PR and note in comments. - - - Tag not found - Ask user to verify version number. - - - File already exists - Ask user to overwrite. - - - \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/5_complete_example.xml b/.roo/rules-release-notes-writer/5_complete_example.xml deleted file mode 100644 index 6d09d0ee..00000000 --- a/.roo/rules-release-notes-writer/5_complete_example.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - Validating and formatting dates correctly when creating release notes - - - - - 2025-18-07 - This would mean the 18th month, which doesn't exist - 2025-07-18 - ISO 8601 format is YYYY-MM-DD where MM is month (01-12) - - - Using January (01) when it should be July (07) - Confusing month and day positions in ISO 8601 format - Always use YYYY-MM-DD format where MM is month (01-12) - - - - - When given PR list directly, use current date - Format: new Date().toISOString().split('T')[0] - Always verify month is 01-12 - Always verify day is appropriate for the month - Remember: ISO 8601 format is YYYY-MM-DD (year-month-day) - - - - - 2025-07-18 - July 18, 2025 - - - 2025-01-13 - January 13, 2025 - - - 2025-18-07 - Month cannot be 18 - - - 2025-13-01 - Month cannot be 13 - - - - - - Creating release notes for Roo Code v3.20.3. - - - - Create release notes for version 3.20.3 - - - - - Find previous version. - -docs/update-notes -false - - ]]> - Found v3.20.2.mdx as last patch version. - - - - Get release dates for version tags. - -gh api repos/RooCodeInc/Roo-Code/git/refs/tags/v3.20.3 --jq '.object.sha' | xargs -I {} gh api repos/RooCodeInc/Roo-Code/git/commits/{} --jq '.committer.date' - - ]]> - v3.20.3: 2025-01-13 - -gh api repos/RooCodeInc/Roo-Code/git/refs/tags/v3.20.2 --jq '.object.sha' | xargs -I {} gh api repos/RooCodeInc/Roo-Code/git/commits/{} --jq '.committer.date' - - ]]> - v3.20.2: 2025-01-10 - - - - Search for merged PRs and extract numbers. - -gh pr list --repo RooCodeInc/Roo-Code --state merged --search "merged:2025-01-10..2025-01-13" --json number,title,author,mergedAt --limit 1000 - - ]]> - - - PR #1234: "Fix context condensing" - - PR #1235: "Add API timeout retry" - - PR #1236: "Update OpenAI provider" - - - - - Create subtask for PR #1234. - -release-notes-writer -Investigate PR #1234 for release notes v3.20.3. - -Task: -1. Get PR details with gh pr view -2. Extract linked issues from PR description (e.g., "Fixes #123") -3. Get details for linked issues with gh issue view -4. Analyze and categorize the change (bug fix, feature, etc.) -5. Append findings to temp_pr_analysis.md in the specified format. Use insert_content with line 0 to append to the end of the file. - -Use update_todo_list to track your progress through these steps. - - - ]]> - - Subtask executes independently with todo tracking. - - Create initial todo list: - - -[ ] Fetch PR details with gh pr view -[ ] Extract linked issues from PR description -[ ] Get details for each linked issue -[ ] Analyze and categorize the change -[ ] Write findings to temp_pr_analysis.md -[ ] Complete subtask - - - ]]> - - Fetch PR #1234, get linked issue #987, update todos: - - -[x] Fetch PR details with gh pr view -[x] Extract linked issues from PR description -[-] Get details for each linked issue -[ ] Analyze and categorize the change -[ ] Write findings to temp_pr_analysis.md -[ ] Complete subtask - - - ]]> - - Complete analysis and write findings: - - -[x] Fetch PR details with gh pr view -[x] Extract linked issues from PR description -[x] Get details for each linked issue -[x] Analyze and categorize the change -[x] Write findings to temp_pr_analysis.md -[x] Complete subtask - - - ]]> - - - - Subtask completed, findings written to temp_pr_analysis.md. - - - - Create subtasks for remaining PRs. - Create similar subtasks for PRs #1235 and #1236. - - - - Read compiled analysis. - -temp_pr_analysis.md - - ]]> - All PR investigations are completed and stored. - - - - Create final release notes file. - -docs/update-notes/v3.20.3.mdx - ---- -description: This release improves reliability and fixes large file handling. -keywords: - - roo code 3.20.3 - - reliability - - large file handling -image: /img/social-share.jpg ---- -# Roo Code 3.20.3 Release Notes (2025-01-13) - -This release improves reliability and fixes large file handling. - -## Bug Fixes - -* **Large File Handling**: Fixed context condensing errors with files over 10MB (thanks john-doe, bug-reporter!) ([#1234](link)) -* **Connection Stability**: Added retry for API timeouts to reduce failed requests (thanks jane-smith!) ([#1235](link)) - -## Provider Updates - -* **OpenAI**: Added support for new GPT-4 models (thanks provider-dev!) ([#1236](link)) \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/6_mode_summary.xml b/.roo/rules-release-notes-writer/6_mode_summary.xml deleted file mode 100644 index dc61e11b..00000000 --- a/.roo/rules-release-notes-writer/6_mode_summary.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - A mode for creating and maintaining release notes for the Roo Code extension. - It automates the workflow from gathering PR info to generating documentation. - Also supports generating Discord-formatted announcements from existing release notes. - - - - Automated PR info gathering from GitHub. - Technical-to-user benefit transformation. - Multi-file documentation updates. - Consistent formatting enforcement. - Subtask-based PR processing. - Contributor acknowledgment (authors and issue reporters). - Direct Discord formatting for existing releases. - Multi-version Discord announcement support. - Intelligent combining of multiple release notes into unified Discord announcements. - - - - - Initialization - Get version number and determine version range. - - - Data Collection - Fetch PRs and technical details from GitHub. - - - PR Processing (Subtasks) - Create subtasks to investigate each PR, extract info, and write findings to a temp file. - - - Compilation - Read compiled findings and create final release notes. - - - File Updates - Update index.md, sidebars.ts, and combined release notes. - - - - - - User requests to create release notes for a version. - Full workflow from PR discovery to documentation. - - Create release notes for 3.23.14 - Generate release notes for version 3.23.14 - - - - User requests Discord format for existing version(s). - Reads existing release notes and converts to Discord format. - - Discord release notes for 3.23.14 - Generate Discord format for v3.23.14, v3.23.15 - Discord announcement for 3.23.14 - Combine Discord release notes for 3.23.14 and 3.23.15 - - - - Message starts with "Investigate PR #" or "Generate Discord-formatted". - Single PR investigation or Discord formatting subtask. - - - - - - read - Read access to analyze existing documentation. - - - edit - docs/update-notes/.*\\.(md|mdx)$|sidebars\\.ts$ - Edit access for release notes and sidebar config. - - - command - Command execution for workflow automation and GitHub CLI. - - - - - - User provides a version number to create new release notes. - Mode determines previous version, fetches and analyzes all PRs in range. - Creates subtasks to investigate each PR. - Subtasks document findings in temp_pr_analysis.md. - Mode compiles findings into release notes and updates doc files. - - - User requests Discord format for one or more existing versions. - Mode checks if release note files exist. - Reads existing files and applies Discord formatting. - Outputs Discord-ready text without creating files. - Supports multiple versions in a single request. - Can combine multiple versions into a unified announcement with version indicators. - Automatically detects when to combine consecutive patch versions. - - - Receives "Investigate PR #X" message. - Fetches PR/issue details, identifies contributors. - Analyzes change and determines user impact. - Appends findings to temp_pr_analysis.md. - Reports completion to main task. - - - - - Focus on user benefits, not technical details. - Maintain consistent formatting. - Acknowledge all contributors. - - \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/7_subtask_handling.xml b/.roo/rules-release-notes-writer/7_subtask_handling.xml deleted file mode 100644 index 049ab12a..00000000 --- a/.roo/rules-release-notes-writer/7_subtask_handling.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - The release-notes-writer mode operates in multiple contexts: - 1. Main workflow: Creating full release notes from scratch. - 2. Discord-only workflow: Generating Discord format for existing releases. - 3. Subtask mode: Investigating a single PR or formatting Discord notes. - - - - - The mode determines its context from the initial user message. - - - - ^Investigate PR #(\d+) for release notes v([\d.]+) - Run single PR investigation. - - - ^Generate Discord-formatted release notes for version ([\d.]+) - Run Discord formatting subtask. - - - ^(Discord|Generate Discord|Discord format for|Discord announcement for|Discord release notes for) .*?(v?[\d.]+(?:\s*,\s*v?[\d.]+)*) - Run Discord-only workflow for existing releases. - - Discord release notes for 3.23.14 - Generate Discord format for v3.23.14 - Discord announcement for 3.23.14, 3.23.15 - Discord release notes for v3.23.14, v3.23.15, v3.23.16 - - - - ^(Create|Generate|Make) release notes for (version |v)?[\d.] - Run full release notes workflow. - - - - - - - When message matches "Investigate PR #[number] for release notes v[version]". - - - - - Extract PR number from message and create todo list. - update_todo_list -
Initialize tracking for the PR investigation steps.
-
- - - Fetch PR details. - gh pr view - Title, author, description, merge date. - Mark "Fetch PR details" as complete. - - - - Extract linked issues from PR description. - Search for patterns like "Fixes #123". - Mark "Extract linked issues" as complete. - - - - Fetch issue details. - gh issue view -
For each linked issue, get title and reporter.
- Mark "Get details for each linked issue" as complete. -
- - - Analyze and categorize the change. - Bug Fix, Feature, QOL Improvement, Provider Update, Performance. - Mark "Analyze and categorize the change" as complete. - - - - Append findings to temp file. - insert_content (line 0) - - temp_pr_analysis.md - Mark "Append findings to temp_pr_analysis.md" as complete. - - - - Write completion summary to temp file. - write_to_file - temp_subtask_complete.md - Investigated PR #[number], findings documented in temp_pr_analysis.md. - Mark "Complete subtask" as complete. - -
-
- - - - When message matches "Generate Discord-formatted release notes for version [version]". - - - - - Extract version number from message. - - - - Read completed release notes file. - read_file - docs/update-notes/vX.Y.Z.mdx - - - - Transform content for Discord. - - Remove PR links/numbers. - Convert internal links to full URLs. - Handle compression requests. - - - - - Apply compression if requested. - - - - - Add footer link. -
[Full X.Y.Z Release Notes](link)
-
- - - Write Discord-formatted content to temp file. - write_to_file - temp_discord_release_notes.md -
Write the complete Discord-formatted release notes to the temp file.
-
- - - Write completion summary to temp file. - write_to_file - temp_subtask_complete.md - Discord-formatted release notes for version [version] written to temp_discord_release_notes.md. - -
-
- - - - PR not found. - Report error with PR details. - - - No linked issues found. - Proceed with only PR author as contributor. - - - Issue not accessible. - Note issue reference but skip reporter details. - - - - - Always append to temp_pr_analysis.md. - Include all contributors, remove duplicates. - Focus on user impact, not implementation. - Use consistent formatting for parsing. - -
\ No newline at end of file diff --git a/.roo/rules-release-notes-writer/8_discord_formatting.xml b/.roo/rules-release-notes-writer/8_discord_formatting.xml deleted file mode 100644 index 3054e657..00000000 --- a/.roo/rules-release-notes-writer/8_discord_formatting.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - Instructions for generating Discord-formatted release notes. - This workflow is triggered by user request. - - - - - Discord format - Discord release notes - Discord announcement - - - - - - Read the completed release notes file. - docs/update-notes/vX.Y.Z.mdx - read_file - - - - Process content for Discord. - - Remove PR links and numbers. - Convert internal doc links to full URLs. - Preserve structure. - - - - - Handle compression requests. - - - Summarize changes in compressed sections. - Thank only contributors from those sections. - - - - - Add footer with full release notes link. - [Full X.Y.Z Release Notes](link) - - - - Write Discord-formatted content to temp file. - Write formatted content to temp_discord_release_notes.md. - write_to_file - - - - - - /any/path - https://docs.roocode.com/any/path - - - - - - ([#5123](link)) - (#5123) - [#5123] - PR #5123 - - Remove completely. - - - - - Ensure emoji compatibility. - - - Use Discord markdown for links: [text](url). - - - - - - * **Repo Handling**: Fixed telemetry ([#5202](link)) (thanks user!) - * **Repo Handling**: Fixed telemetry (thanks user!) - - - [Learn more](/features/custom-modes) - [Learn more](https://docs.roocode.com/features/custom-modes) - - - - - PR references removed. - Internal links converted to full URLs. - Structure preserved. - Contributor acknowledgments maintained. - Footer link included. - - \ No newline at end of file diff --git a/.roo/rules-release-notes-writer/9_combined_notes_integration.xml b/.roo/rules-release-notes-writer/9_combined_notes_integration.xml deleted file mode 100644 index e4d30810..00000000 --- a/.roo/rules-release-notes-writer/9_combined_notes_integration.xml +++ /dev/null @@ -1,259 +0,0 @@ - - - Detailed workflow for intelligently integrating patch release notes into combined minor/major release files. - This ensures changes are merged thoughtfully into existing sections rather than appended at the end. - - - - - Preserve existing structure - Never reorganize or reorder existing sections in the combined notes - - - Merge by category - Add new items to their corresponding sections (Bug Fixes, Features, etc.) - - - Maintain chronological order within sections - Add new items at the end of their respective sections - - - Remove PR links from combined notes - Combined notes should not include PR numbers or links - - - Consolidate contributors - Merge contributor lists when the same person contributes multiple times - - - - - - Initialize integration todo list - Create a todo list for tracking integration steps - update_todo_list - - -[ ] Read existing combined release notes -[ ] Parse and map existing sections -[ ] Read new patch release notes -[ ] Categorize new changes by section -[ ] Strip PR links from new items -[ ] Update each section with new items -[ ] Update summary sentence if needed -[ ] Validate integration completeness - - - ]]> - - - - Read existing combined release notes - Read the parent minor/major release file -
- For version 3.20.3, read docs/update-notes/v3.20.mdx -
- read_file - Mark "Read existing combined release notes" as complete -
- - - Parse existing structure - Identify all existing sections and their content -
- Create a mental map of: - - Section headings (## Bug Fixes, ## Features, etc.) - - Items within each section - - Special sections (major features with expanded format) -
- Mark "Parse and map existing sections" as complete -
- - - Read new patch release notes - Read the newly created patch release file -
- Read the file just created (e.g., v3.20.3.mdx) -
- read_file - Mark "Read new patch release notes" as complete -
- - - Categorize new changes - Map each new change to its target section - - - ## Bug Fixes in patch notes - ## Bug Fixes in combined notes - - - ## QOL Improvements in patch notes - ## QOL Improvements in combined notes - - - ## Provider Updates in patch notes - ## Provider Updates in combined notes - - - Major feature sections - Add as new ## section if truly major, otherwise merge into appropriate section - - - Mark "Categorize new changes by section" as complete - - - - Process each section for integration - For each section with new items, prepare the merged content - - - Strip PR links and numbers from new items - - * **File Handling**: Fixed large file errors (thanks user!) ([#1234](link)) - * **File Handling**: Fixed large file errors (thanks user!) - - - - Check for duplicate fixes -
If the same issue was fixed multiple times, consolidate into one entry
-
- - Append new items to the end of the existing section - -
- Mark "Strip PR links from new items" as complete -
- - - Update combined release notes file - Use apply_diff to add new items to appropriate sections - - Use multiple SEARCH/REPLACE blocks in one apply_diff call - Search for the last item in each section to append after it - Preserve exact formatting and indentation - - Mark "Update each section with new items" as complete - -docs/update-notes/v3.20.mdx - -<<<<<<< SEARCH -:start_line:25 -------- -## Bug Fixes - -* **Context Management**: Fixed memory leak in large projects (thanks alice!) -* **File Editing**: Resolved race condition in concurrent edits (thanks bob!) -======= -## Bug Fixes - -* **Context Management**: Fixed memory leak in large projects (thanks alice!) -* **File Editing**: Resolved race condition in concurrent edits (thanks bob!) -* **Large File Handling**: Fixed context condensing errors with files over 10MB (thanks john-doe, bug-reporter!) -* **Connection Stability**: Added retry for API timeouts to reduce failed requests (thanks jane-smith!) ->>>>>>> REPLACE - -<<<<<<< SEARCH -:start_line:35 -------- -## Provider Updates - -* **OpenAI**: Added GPT-4 Turbo support (thanks charlie!) -======= -## Provider Updates - -* **OpenAI**: Added GPT-4 Turbo support (thanks charlie!) -* **OpenAI**: Added support for new GPT-4 models (thanks provider-dev!) ->>>>>>> REPLACE - - - ]]> - - - - Update summary sentence if needed - If patch added significant features, update the summary -
- The summary sentence below the title may need updating to reflect new major features -
- Mark "Update summary sentence if needed" as complete -
- - - Final validation - Verify all changes were integrated correctly -
- Check that all new items are in appropriate sections and formatting is consistent -
- Mark "Validate integration completeness" as complete -
-
- - - - Bullet list with bold titles - Append new fixes to the end - Remove all PR references - - - - Bullet list with bold titles - Append new improvements to the end - Remove all PR references - - - - Expanded format with description and bullet points - Add as new section only if truly major - - Does it fundamentally change how users work? - Is it a headline feature for the minor release? - Does it deserve expanded explanation? - - - - - Patch introduces a category not in combined notes - Add the new section in appropriate order - - Major features first - Bug Fixes - QOL Improvements - Misc Improvements - Provider Updates - Documentation Updates - - - - - - - Same bug fixed in multiple patches - Keep only the most recent fix description - Acknowledge all contributors who worked on it - - - - Later patch reverts or modifies earlier patch's change - Update the description to reflect the final state - If 3.20.1 adds a feature and 3.20.3 modifies it, describe the final implementation - - - - Patch has a section type not in combined notes - Add the section in the standard order - - - - - All new changes are integrated into appropriate sections - No PR links or numbers remain in combined notes - No duplicate entries exist - Section order follows standard pattern - Formatting is consistent throughout - All contributors are acknowledged - Summary sentence reflects all major changes - -
\ No newline at end of file diff --git a/.roomodes b/.roomodes index 28408a5a..335c8916 100644 --- a/.roomodes +++ b/.roomodes @@ -1,48 +1,43 @@ customModes: - slug: release-notes-writer - name: Release Notes Writer + name: 📝 Release Notes Writer roleDefinition: "You are a technical writer for Roo Code release notes. Your job is to: - Automate release note creation. - Fetch and analyze GitHub pull requests. - Convert technical changes into user benefits. - Ensure updates align with documentation standards. - Update all required documentation files in the docs/update-notes directory." - whenToUse: Use this mode to create release notes for a new Roo Code version. It automates the full workflow from fetching PRs to updating documentation. Provide a version number to start. You can also use this mode to quickly generate Discord-formatted announcements from existing release notes by saying "Discord release notes for X.Y.Z". - groups: - - read - - command - - - edit - - fileRegex: (docs/update-notes/.*\.(md|mdx)$|sidebars\.ts$) + whenToUse: |- + Use this mode to create or update release notes from GitHub PRs and existing docs. + Triggers: "Create release notes for X.Y.Z", "vX.Y.Z", bare version (e.g., "3.25.1"), "latest", + "Discord release notes for X.Y.Z", "Combined Discord announcement for X.Y.Z, X.Y.Z". + It automates PR fetching/analysis, changelog alignment, file generation (vX.Y or vX.Y.Z), + index/sidebar updates, and Discord formatting with approval gates. description: Release notes files and sidebar configuration - source: project - - slug: documentation-writer - name: 📝 Documentation Writer - roleDefinition: You are a technical documentation writer for the Roo Code project. Your writing is direct, concise, and technical. You write for a developer audience and follow the instructions in the .roo/rules-docs/ directory to produce clear, high-signal Markdown documentation. - whenToUse: Use this mode for creating or updating documentation in Markdown (.md, .mdx) files. groups: - read - command - - edit - - fileRegex: (\.(md|mdx)$|sidebars\.ts$) - description: Documentation files and sidebar configuration - - mcp - description: Creates and maintains Roo technical docs. + - fileRegex: (docs/update-notes/.*\.(md|mdx)$|sidebars\.ts$|\.roo/tmp/release-notes/.*\.(md|json)$) source: project - slug: mode-writer name: ✍️ Mode Writer roleDefinition: |- - You are Roo, a mode creation specialist focused on designing and implementing custom modes for the Roo-Code project. Your expertise includes: + You are Roo, a mode creation and editing specialist focused on designing, implementing, and enhancing custom modes for the Roo-Code project. Your expertise includes: - Understanding the mode system architecture and configuration - Creating well-structured mode definitions with clear roles and responsibilities + - Editing and enhancing existing modes while maintaining consistency - Writing comprehensive XML-based special instructions using best practices - Ensuring modes have appropriate tool group permissions - Crafting clear whenToUse descriptions for the Orchestrator - Following XML structuring best practices for clarity and parseability + - Validating changes for cohesion and preventing contradictions - You help users create new modes by: - - Gathering requirements about the mode's purpose and workflow - - Defining appropriate roleDefinition and whenToUse descriptions - - Selecting the right tool groups and file restrictions - - Creating detailed XML instruction files in the .roo folder + You help users by: + - Creating new modes: Gathering requirements, defining configurations, and implementing XML instructions + - Editing existing modes: Immersing in current implementation, analyzing requested changes, and ensuring cohesive updates + - Using ask_followup_question aggressively to clarify ambiguities and validate understanding + - Thoroughly validating all changes to prevent contradictions between different parts of a mode - Ensuring instructions are well-organized with proper XML tags - Following established patterns from existing modes - whenToUse: Use this mode when you need to create a new custom mode. - description: Create and implement custom modes. + - Maintaining consistency across all mode components + whenToUse: Use this mode when you need to create a new custom mode or edit an existing one. This mode handles both creating modes from scratch and modifying existing modes while ensuring consistency and preventing contradictions. + description: Create and edit custom modes with validation groups: - read - - edit @@ -51,3 +46,31 @@ customModes: - command - mcp source: project + - slug: documentation-writer + name: 📖 Documentation Writer + roleDefinition: |- + You are Roo Code, a documentation specialist who writes only what matters. + Core behaviors: + - Explanatory first: tell users why, why not, and how to recover (troubleshooting). + - Minimal ToC noise: H2 for primary sections; H3 only for jump-worthy anchors (max 4 per page, typically <= 2); prefer H4 for in-body sub-chunking; disallow H5/H6. + - Merge thin subsections and convert step chains into numbered lists under their H2. + - Bold, honest, human voice with contractions; informal and clear, not professoral. + - Selective screenshots: only for complex states/decisions; require outcome-focused alt text and a one-line "why this matters" caption. + - Prefer consolidation over duplication; link to the single source of truth. + - Enforce .roo/rules-documentation-writer/ policies (writing style, headings/structure, Docusaurus conventions, validation gates). + whenToUse: |- + Use this mode to create or refine technical docs (.md/.mdx) with an explanatory, value-first approach and a clean, minimal ToC. + Triggers: + - Pages with noisy right-sidebar ToCs or overuse of H3s + - Requests to restructure into H2 sections with H4 sub-chunks and numbered lists + - Need to add "Why it matters / What you can't do (and why) / Troubleshooting" + - Requests to add or prune screenshots for complex states/decisions + description: Creates and maintains Roo technical docs. + groups: + - read + - command + - - edit + - fileRegex: (\.(md|mdx)$|sidebars\.ts$) + description: Documentation files and sidebar configuration + - mcp + source: project diff --git a/.roorules b/.roorules index 7e1c7689..66a720fd 100644 --- a/.roorules +++ b/.roorules @@ -10,9 +10,12 @@ This ensures links work correctly in the built documentation while maintaining c ## Context7 MCP When making structural or formatting changes beyond simple .md or .mdx files, always check the Context7 MCP, the `context7CompatibleLibraryID` will be `/facebook/docusaurus` -## Release Notes -Never Thank cte, hannesrudolph, jr, roomote, dleffel or mrubens in release notes +## Release Notes "thank you" exclusions +Do not thank daniel-lxs, cte, hannesrudolph, jr, roomote, app/roomote, dleffel, brunobergher or mrubens in release notes ## Misc -When moving a section, make sure to add the forwarding link in docusaurus.config.ts \ No newline at end of file +When moving a section, make sure to add the forwarding link in docusaurus.config.ts + +## Image Tag Format +example: `<ALT>` \ No newline at end of file diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 00000000..269cea0b --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nodejs 20.19.2 diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..74817d11 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,19 @@ +# AGENTS.md + +This file provides guidance to agents when working with code in this repository. + +Non-obvious, project-specific rules: + +- Start/build preload dotenv; analytics plugin is enabled only when POSTHOG_API_KEY is set. Use .env based on [.env.example](.env.example). CI injects it in [.github/workflows/docusaurus-build.yml](.github/workflows/docusaurus-build.yml). See [package.json](package.json) and [docusaurus.config.ts](docusaurus.config.ts). +- Use Node 20 locally to match CI; engines allow >=18 but CI runs 20. +- Linting targets only /src; docs content is not linted. Use "npm run lint:unused" to enforce unused import removal. Type checking uses "tsc" only (no emit); [tsconfig.json](tsconfig.json) is editor-focused. +- When moving/renaming docs, you must add an explicit redirect in [docusaurus.config.ts](docusaurus.config.ts) under plugin-client-redirects. This is required by [.roorules](.roorules). +- Internal doc links must be absolute and extensionless per [.roorules](.roorules) (example: /basic-usage/how-tools-work). Do not include ".md". +- Images in docs must use HTML tags per [.roorules](.roorules): .... +- Sitemap: preset sitemap is disabled; a custom plugin is configured in [docusaurus.config.ts](docusaurus.config.ts) to filter URLs containing "/page/". Do not re-enable the preset sitemap. +- Local search plugin is configured with docsRouteBasePath "/". Keep routeBasePath "/" consistent when adding content or links. +- "Tutorial Videos" sidebar is generated from [docs/tutorial-videos.json](docs/tutorial-videos.json); titles are truncated to 40 chars in [sidebars.ts](sidebars.ts). Modify the JSON to add/remove videos. +- Navigation/footer links are centralized in [src/constants.ts](src/constants.ts) and consumed by [docusaurus.config.ts](docusaurus.config.ts). Update constants rather than hardcoding URLs. +- Legacy [Rakefile](Rakefile) is unrelated (Jekyll). Do not use it; all builds run through Docusaurus scripts. +- For structural/formatting research, use Context7 MCP (ID "/facebook/docusaurus") via [.roo/mcp.json](.roo/mcp.json); see [.roorules](.roorules). +- CI only builds (no lint/typecheck). Run lint and typecheck locally to catch issues CI won't. \ No newline at end of file diff --git a/docs/advanced-usage/available-tools/insert-content.md b/docs/advanced-usage/available-tools/insert-content.md index 488d5ef3..dd49cecc 100644 --- a/docs/advanced-usage/available-tools/insert-content.md +++ b/docs/advanced-usage/available-tools/insert-content.md @@ -56,7 +56,7 @@ This tool reads the target file, identifies the specified insertion point based ## Limitations -- **Insert Only**: Cannot replace or delete existing content. Use `apply_diff` or `search_and_replace` for modifications. +- **Insert Only**: Cannot replace or delete existing content. Use `apply_diff` for modifications. - **Requires Existing File**: The target file specified by `path` must exist. - **Review Overhead**: The mandatory diff view approval adds an interactive step. diff --git a/docs/advanced-usage/available-tools/new-task.md b/docs/advanced-usage/available-tools/new-task.md index dd4ff01c..c49a3bae 100644 --- a/docs/advanced-usage/available-tools/new-task.md +++ b/docs/advanced-usage/available-tools/new-task.md @@ -25,6 +25,7 @@ The tool accepts these parameters: - `mode` (required): The slug of the mode to start the new task in (e.g., "code", "ask", "architect") - `message` (required): The initial user message or instructions for this new task +- `todos` (optional): Initial todo list in markdown checklist format --- @@ -98,6 +99,20 @@ When the `new_task` tool is invoked, it follows this process: --- +## Configuration + +Streamline hierarchical task planning with the optional todo list parameter for subtasks: + +- **Pass Todo Lists**: Include predefined todo lists when creating subtasks +- **Maintain Context**: Pass along context to the subtask in the form of a todo list +- **Optional Enforcement**: The "New Task Require Todos" setting in VS Code can enforce todo lists for all new subtasks if desired + +Subtask todo lists configuration in VS Code settings + +This feature works out of the box, and you can optionally configure VS Code settings to require todos for all new tasks. + +--- + ## Examples When Used - When a front-end developer needs to architect a new feature, implement the code, and document it, they can create separate tasks for each phase with results flowing from one phase to the next. @@ -132,3 +147,18 @@ Breaking down a complex feature into architectural planning and implementation: Design the database schema and system architecture for our new e-commerce platform. ``` + +Creating a task with an initial todo list: +``` + +code +Build a REST API for user management + +[ ] Set up Express server +[ ] Create user model +[ ] Implement CRUD endpoints +[ ] Add authentication middleware +[ ] Write API tests + + +``` diff --git a/docs/advanced-usage/available-tools/read-file.md b/docs/advanced-usage/available-tools/read-file.md index b0ffa26d..818f05d6 100644 --- a/docs/advanced-usage/available-tools/read-file.md +++ b/docs/advanced-usage/available-tools/read-file.md @@ -1,6 +1,5 @@ - --- -description: Explore the read_file tool's capabilities for examining file contents, supporting line ranges, PDF/DOCX extraction, and experimental multi-file concurrent reading. +description: Explore the read_file tool's capabilities for examining file contents, supporting line ranges, PDF/DOCX extraction, image reading, and experimental multi-file concurrent reading. keywords: - read_file - Roo Code tools @@ -9,6 +8,8 @@ keywords: - line numbers - PDF extraction - DOCX support + - image support + - OCR workflows - code analysis - VS Code AI image: /img/social-share.jpg @@ -16,10 +17,12 @@ image: /img/social-share.jpg # read_file -The `read_file` tool examines the contents of files in a project. It allows Roo to understand code, configuration files, and documentation to provide better assistance. +The `read_file` tool examines the contents of files in a project. It allows Roo to understand code, configuration files, documentation, and now images to provide better assistance. :::info Multi-File Support -When the [Concurrent File Reads](/features/concurrent-file-reads) experimental feature is enabled, this tool can read multiple files simultaneously using an enhanced XML parameter format. This significantly improves efficiency for tasks requiring analysis of multiple related files. +The `read_file` tool accepts multiple files via the `args` format. Concurrency and per‑request limits are configured in the UI; the backend tool doesn’t hard‑enforce a file count cap. Some models may use a simplified single‑file variant. + +**Note:** When reading files (even single files), the LLM will see a message encouraging multi-file reads: "Reading multiple files at once is more efficient for the LLM. If other files are relevant to your current task, please read them simultaneously." ::: --- @@ -38,20 +41,20 @@ The tool accepts parameters in two formats depending on your configuration: While the single-file parameters (`path`, `start_line`, `end_line`) are still supported for backward compatibility, we recommend using the newer `args` format for consistency and future compatibility. ::: -### Enhanced Format (Multi-File - Experimental) +### Enhanced Format (Multi-File) -When [Concurrent File Reads](/features/concurrent-file-reads) is enabled, the tool accepts an `args` parameter containing multiple file entries: +The tool also accepts an `args` parameter containing multiple file entries. Concurrency is UI‑configured; the backend accepts multiple files regardless of that setting. Some models may use a simple single‑file tool. - `args` (required): Container for multiple file specifications - `file` (required): Individual file specification - `path` (required): The path of the file to read - - `line_range` (optional): Line range specification (e.g., "1-50" or "100-150") + - `line_range` (optional): Line range specification (e.g., "1-50" or "100-150"). Multiple `line_range` elements can be specified per file. --- ## What It Does -This tool reads the content of a specified file and returns it with line numbers for easy reference. It can read entire files or specific sections, and even extract text from PDFs and Word documents. +This tool reads the content of a specified file and returns it with line numbers for easy reference. It can read entire files or specific sections, extract text from PDFs and Word documents, and display images in various formats. --- @@ -69,21 +72,31 @@ This tool reads the content of a specified file and returns it with line numbers - Displays file content with line numbers for easy reference - Can read specific portions of files by specifying line ranges -- Extracts readable text from PDF and DOCX files +- Extracts readable text from PDF, DOCX, XLSX, and IPYNB files +- **Image support**: Displays images in multiple formats (PNG, JPG, JPEG, GIF, WebP, SVG, BMP, ICO, TIFF/TIF, AVIF) +- **Intelligent reading**: Token-budget aware reading that auto-truncates to fit remaining budget instead of failing +- **Large file preview**: Returns a 100KB preview for very large files to enable quick inspection +- **Graceful error recovery**: Recovers from stream errors and guides you to use line_range for targeted reads - Automatically truncates large text files when no line range is specified, showing the beginning of the file -- Provides method summaries with line ranges for truncated large code files +- Appends `list_code_definition_names` for a code structure overview when content is truncated by line limits - Efficiently streams only requested line ranges for better performance - Makes it easy to discuss specific parts of code with line numbering -- **Multi-file support** (experimental): Read multiple files simultaneously with batch approval +- **Multi-file support**: Read multiple files simultaneously with batch approval --- -## Multi-File Capabilities (Experimental) +## Multi-File Capabilities -When the [Concurrent File Reads](/features/concurrent-file-reads) experimental feature is enabled, the `read_file` tool gains enhanced capabilities: +Multi-file reads are supported. Concurrency and per‑request limits are configured in Settings; the backend tool doesn’t hard‑enforce a file count cap and behavior may be constrained by model/tool selection: + +### Configuration +- **Location**: Settings > Context > "Concurrent file reads limit" +- **Description**: "Maximum number of files the 'read_file' tool can process concurrently. Higher values may speed up reading multiple small files but increase memory usage." +- **Range**: 1-100 (slider control) +- **Default**: 5 ### Batch Processing -- Read up to 100 files in a single request (configurable, default 15) +- UI‑configurable limit up to 100 files per request (default 5). Backend doesn’t hard‑enforce a cap; actual behavior may be constrained by model/tool. - Parallel processing for improved performance - Batch approval interface for user consent @@ -103,9 +116,14 @@ When the [Concurrent File Reads](/features/concurrent-file-reads) experimental f ## Limitations -- May not handle extremely large files efficiently without using line range parameters -- For binary files (except PDF and DOCX), may return content that isn't human-readable -- **Multi-file mode**: Requires experimental feature to be enabled and may have stability issues +- **Large files**: For extremely large files, the tool may return a preview and will guide you to use `line_range` for targeted reading. +- **Binary files**: Except for PDF, DOCX, XLSX, IPYNB, and supported image formats, content may not be human‑readable. +- **UI/model constraints**: Concurrency limits and per‑request file counts are configured in the UI; the backend tool doesn’t hard‑enforce a cap. +- **Image files**: Images are provided as base64 data URLs. High‑resolution images can be large. + - Default max single image size: 5MB + - Default max total image size: 20MB +- **Unsupported binary formats**: Returns a `Binary file - content not displayed` placeholder. +- **Token budget**: Content may be truncated to fit remaining token budget; notices indicate how to proceed. --- @@ -121,7 +139,8 @@ When the `read_file` tool is invoked, it follows this process: 4. **Content Processing**: - Adds line numbers to the content (e.g., "1 | const x = 13") where `1 |` is the line number. - For truncated files, adds truncation notice and method definitions - - For special formats (PDF, DOCX), extracts readable text + - For special formats (PDF, DOCX, XLSX, IPYNB), extracts readable text + - For image formats, the XML includes a `` with size; the actual image is attached to the tool result as a base64 data URL (no dimensions returned; MIME type is implied by the data URL) --- @@ -130,24 +149,32 @@ When the `read_file` tool is invoked, it follows this process: The tool uses a clear decision hierarchy to determine how to read a file: 1. **First Priority: Explicit Line Range** - - If either `start_line` or `end_line` is provided, the tool always performs a range read - - The implementation efficiently streams only the requested lines, making it suitable for processing large files - - This takes precedence over all other options - -2. **Second Priority: Automatic Truncation for Large Text Files** - - This applies only when **all** of the following conditions are met: + - Legacy single‑file format: both `start_line` and `end_line` must be provided for a range read; otherwise it reads normally. + - Multi‑file `args` format: specify one or more `line_range` entries per file. + - Range reads stream only the requested lines and bypass `maxReadFileLine`, taking precedence over other options. + +2. **Second Priority: Token Budget Management** + - The tool respects the remaining token budget to prevent context overruns + - If a file would exceed the remaining budget, it automatically truncates to fit + - For very large files (exceeding practical limits), returns a 100KB preview for quick inspection + - Provides guidance to use `line_range` for targeted reading of specific sections + - Recovers gracefully from stream errors and suggests alternative approaches + +3. **Third Priority: Automatic Truncation for Large Text Files** + - Applies only when all of the following are true: - Neither `start_line` nor `end_line` is specified. - - The file is identified as a text-based file (not binary like PDF/DOCX). - - The file's total line count exceeds the `maxReadFileLine` setting (default: 500 lines). + - The file is identified as a text‑based file (not binary like PDF/DOCX/XLSX/IPYNB). + - The file’s total line count exceeds the `maxReadFileLine` setting (configurable; UI default may be 500; backend uses `-1`—no line limit—when unset). - When automatic truncation occurs: - - The tool reads only the *first* `maxReadFileLine` lines. - - It appends a notice indicating truncation (e.g., `[Showing only 500 of 1200 total lines...]`). - - For code files, it may also append a summary of source code definitions found within the truncated portion. - - **Special Case - Definitions Only Mode**: When `maxReadFileLine` is set to `0`, the tool returns only source code definitions without any file content. + - The tool reads only the first `maxReadFileLine` lines. + - It appends a notice like: `Showing only X of Y total lines. Use line_range if you need to read more lines.` + - For code files, it appends `list_code_definition_names` for a structure overview. + - **Special Case – Definitions‑Only Mode**: When `maxReadFileLine` is `0`, the tool returns only code definitions without file content (plus a notice). -3. **Default Behavior: Read Entire File** - - If neither an explicit range is given nor automatic truncation applies (e.g., the file is within the line limit, or it's a supported binary type), the tool reads the entire content. - - For supported formats like PDF and DOCX, it attempts to extract the full text content. +4. **Default Behavior: Read Entire File** + - If neither an explicit range is given nor automatic truncation applies (e.g., the file is within the line limit, or it's a supported binary type), the tool reads the entire content. + - For supported formats like PDF and DOCX, it attempts to extract the full text content. + - For image formats, it returns a base64-encoded data URL that can be displayed in the chat interface. --- @@ -220,7 +247,7 @@ When reading a large text file without specifying a line range, the tool automat ... 500 | Log entry 500... -[Showing only 500 of 1500 total lines. Use start_line and end_line to read specific ranges.] +Showing only 500 of 1500 total lines. Use line_range to read specific sections. // Optional: Source code definitions summary might appear here for code files ``` *(Output shows the beginning lines up to the `maxReadFileLine` limit, plus a truncation notice. Use line ranges for full access.)* @@ -246,7 +273,7 @@ When `maxReadFileLine` is set to `0` in user settings, the tool returns only sou method validateUser method generateToken - Showing only 0 of 150 total lines. Use start_line and end_line to read specific ranges. + Showing only 0 of 150 total lines. Use line_range if you need to read more lines ``` *(This mode provides a quick overview of file structure without reading content.)* @@ -279,15 +306,160 @@ If the file is excluded by rules in a `.rooignore` file: ``` **Simulated Output (Error):** +```xml + + .env + Access denied by .rooignore rules + +``` + +--- + +### Intelligent Reading with Token Budget Management + +When reading large files, the tool automatically manages token budgets to prevent context overruns. + +**Scenario:** Reading a very large file without specifying a line range. + +**Input:** +```xml + +logs/massive-debug.log + +``` + +**Simulated Output (for a file exceeding token budget):** +``` +Preview: Showing first …MB of …MB file. Use line_range to read specific sections. +``` + +Alternative truncation notice: +``` +File truncated to N of M characters due to context limitations. Use line_range to read specific sections. +``` + +This behavior ensures that: +- Small files read completely with zero overhead +- Large files auto‑truncate to fit remaining token budget +- Very large files provide a quick preview +- You receive guidance to use `line_range` for targeted reads +- Stream errors are handled gracefully + +**Example with line_range for targeted reading:** +```xml + +logs/massive-debug.log +1000 +1100 + +``` + +## Image Reading Examples + +The `read_file` tool now supports reading and displaying images directly in the chat interface. This enables powerful visual analysis workflows. + +### Reading a Single Image + +**Input:** +```xml + +assets/logo.png + +``` + +**Output:** +```xml + + assets/logo.png + Image file (123 KB) + +``` + +The image is displayed inline in the chat (base64 data URL attached to the tool result). No dimensions are returned; MIME type is implied by the data URL. + +### OCR Workflow Example + +Reading multiple images from a folder for text extraction: + +**Input:** +```xml + + + + screenshots/page1.png + + + screenshots/page2.png + + + screenshots/page3.png + + + +``` + +**Usage:** +``` +Please extract all text from these screenshot images and compile them into a single markdown document. +``` + +### Design Review Workflow + +Analyzing multiple design mockups: + +**Input:** +```xml + + + + designs/homepage-v1.jpg + + + designs/homepage-v2.jpg + + + designs/mobile-view.png + + + +``` + +**Usage:** ``` -Error: Access denied by .rooignore rules +Compare these design mockups and provide feedback on: +1. Visual consistency +2. Mobile responsiveness +3. Accessibility concerns +4. UI/UX improvements ``` +### Supported Image Formats + +The tool supports the following image formats: +- PNG +- JPG/JPEG +- GIF +- WebP +- SVG +- BMP +- ICO +- TIFF/TIF +- AVIF + +### Image Analysis Use Cases + +1. **Documentation Screenshots**: Extract text and create documentation from UI screenshots +2. **Error Debugging**: Analyze error screenshots to understand issues +3. **Design Reviews**: Compare mockups and provide visual feedback +4. **Diagram Analysis**: Understand architecture diagrams and flowcharts +5. **Code Screenshots**: Extract code from images when text isn't available +6. **UI Testing**: Verify visual elements and layouts + --- -## Multi-File Examples (Experimental) +## Multi-File Examples -When the [Concurrent File Reads](/features/concurrent-file-reads) experimental feature is enabled, you can read multiple files simultaneously using the enhanced XML format. +You can read multiple files simultaneously using the enhanced XML format. ### Reading Multiple Complete Files @@ -444,8 +616,48 @@ When requesting multiple files, you'll see a batch approval interface that allow The interface displays each file path clearly, making it easy to understand what Roo wants to access before granting permission. +### Mixed Content Types + +You can read different types of files in a single request: + +**Input:** +```xml + + + + README.md + + + architecture-diagram.png + + + config.json + + + requirements.pdf + + + +``` + +This allows Roo to analyze documentation, visual diagrams, configuration, and specifications all in one context. + --- -## Backward Compatibility +## Troubleshooting + +- Range read returns error + - Cause: `start_line`/`end_line` invalid or `start_line > end_line` + - Fix: Provide both `start_line` and `end_line` as positive integers with `start_line ≤ end_line`; or use `args` with one or more `line_range` entries. + - Prevention: Prefer `line_range` in the multi‑file format for targeted reads. + +- Large file returned a preview + - Cause: File exceeded token budget or the large‑file tokenization threshold; a preview was returned. + - Fix: Use `line_range` to request only the section you need; reduce requested ranges. + - Prevention: Adjust `maxReadFileLine` in Settings, or prefer targeted ranges on large files. + +- Image not displayed + - Cause: Model may not support images, or image limits exceeded (5MB per image; 20MB total per request). + - Fix: Switch to a vision‑capable model; reduce image size; request fewer/smaller images. + - Prevention: Keep images within limits and use supported formats (PNG, JPG/JPEG, GIF, WebP, SVG, BMP, ICO, TIFF/TIF, AVIF). -The enhanced multi-file format is fully backward compatible. Existing single-file requests using the `path` parameter continue to work exactly as before, regardless of whether the experimental feature is enabled or disabled. diff --git a/docs/advanced-usage/available-tools/run-slash-command.md b/docs/advanced-usage/available-tools/run-slash-command.md new file mode 100644 index 00000000..4fbd12cc --- /dev/null +++ b/docs/advanced-usage/available-tools/run-slash-command.md @@ -0,0 +1,341 @@ +--- +description: Execute predefined slash commands that provide templated instructions for common tasks, with support for built-in, global, and project-specific commands in Roo Code. +keywords: + - run_slash_command + - slash commands + - command templates + - Roo Code tools + - workflow automation + - instruction templates + - custom commands + - experimental feature +image: /img/social-share.jpg +--- + +# run_slash_command + +:::warning Experimental Feature +The `run_slash_command` tool is an experimental feature that must be explicitly enabled in settings. Navigate to Settings > Experimental Settings and enable "Run Slash Command" to use this tool. +::: + +The `run_slash_command` tool executes predefined slash commands to retrieve specific instructions or content templates. These commands act as reusable instruction sets for common tasks, providing detailed guidance that Roo can interpret and execute. Commands can be defined at three levels with a clear priority hierarchy: project > global > built-in. + +--- + +## Parameters + +The tool accepts these parameters: + +- `command` (required): Name of the slash command to execute (without the leading slash) +- `args` (optional): Additional arguments or context to pass to the command + +--- + +## What It Does + +This tool retrieves and executes instruction templates defined as markdown files in command directories. It enables standardized workflows, reusable task instructions, and team-wide consistency through shared command templates. The tool validates experimental flag status, resolves commands through the priority hierarchy, and returns formatted instructions for Roo to interpret. + +--- + +## When is it used? + +- When executing standardized workflows that require consistent steps +- When retrieving project-specific or team-wide instruction templates +- When initializing codebases with analysis and documentation +- When accessing complex multi-step processes as single commands +- When maintaining consistency across team development practices + +--- + +## Key Features + +- **Three-Level Command System**: Built-in, global (~/.roo/commands/), and project-specific (.roo/commands/) commands +- **Priority Hierarchy**: Project commands override global, which override built-in commands +- **Markdown-Based Templates**: Simple `.md` files with optional YAML frontmatter for metadata +- **Dynamic Arguments**: Pass context-specific arguments to customize command execution +- **Automatic Discovery**: Commands are automatically found from their respective directories +- **Safe Execution**: Commands are text-only instructions requiring user approval, not executable code +- **Metadata Support**: Optional frontmatter for descriptions and argument hints +- **Error Recovery**: Graceful handling with helpful error messages and command suggestions +- **No Registration Required**: Simply place `.md` files in command directories + +--- + +## Requirements + +This tool requires explicit enablement: + +1. Open VS Code Settings +2. Navigate to Experimental Settings +3. Enable "Run Slash Command" +4. Restart VS Code if necessary + +--- + +## Limitations + +- **Experimental Status**: Feature is disabled by default and requires opt-in +- **Text-Only Instructions**: Commands provide instructions, not direct code execution +- **Approval Required**: All command executions require user approval +- **Directory-Based**: Commands must be in specific directory locations +- **Case-Sensitive**: Command names are matched with case sensitivity +- **Single Command**: Can only execute one command per tool invocation + +--- + +## How It Works + +When the `run_slash_command` tool is invoked, it follows this process: + +1. **Experimental Flag Validation**: + - Checks if the `runSlashCommand` experiment is enabled + - Returns descriptive error if feature is disabled + - Provides instructions for enabling the feature + +2. **Parameter Processing**: + - Validates the required `command` parameter + - Captures optional `args` for command customization + - Increments mistake counter for missing parameters + +3. **Command Resolution**: + - Searches project directory first (`.roo/commands/`) + - Falls back to global directory (`~/.roo/commands/`) + - Finally checks built-in commands + - Returns undefined if command doesn't exist + +4. **Command Loading**: + - Reads the markdown file for the command + - Parses optional YAML frontmatter using `gray-matter` + - Extracts description and argument hints if present + - Returns command content without frontmatter + +5. **Response Formatting**: + - Includes command name and source location + - Adds description and argument hints if available + - Shows provided arguments for context + - Returns the full command content for interpretation + +6. **Error Handling**: + - Lists available commands if requested command not found + - Provides helpful error messages with alternatives + - Tracks consecutive mistakes for error patterns + +--- + +## Command Structure + +### File Format + +Commands are markdown files placed in designated directories: + +```markdown +--- +description: Brief description of what this command does +argument-hint: What arguments this command accepts +--- + +# Command Content + +Detailed instructions for the task go here. +This can include: +- Step-by-step procedures +- Code templates +- Configuration examples +- Best practices +``` + +### Naming Convention + +- File name becomes the command name +- Use `.md` extension +- Example: `deploy.md` creates `/deploy` command +- Case-sensitive matching + +### Directory Locations + +1. **Built-in Commands**: Hardcoded in source code +2. **Global Commands**: `~/.roo/commands/` +3. **Project Commands**: `/.roo/commands/` + +--- + +## Built-in Commands + +### /init Command + +The only current built-in command analyzes your codebase and creates documentation: + +- Analyzes project structure and architecture +- Creates AGENTS.md documentation files +- Identifies coding patterns and conventions +- Documents non-obvious implementation details +- Provides AI-friendly project context + +--- + +## Creating Custom Commands + +### Step-by-Step Guide + +1. **Create Command Directory**: + ```bash + # For project-specific commands + mkdir -p .roo/commands + + # For global commands + mkdir -p ~/.roo/commands + ``` + +2. **Create Command File**: + ```bash + # Create a deployment command + touch .roo/commands/deploy.md + ``` + +3. **Add Command Content**: + ```markdown + --- + description: Deploy application to production environment + argument-hint: environment name (staging, production) + --- + + ## Deployment Process + + 1. Run test suite to ensure all tests pass + 2. Build production bundle with optimizations + 3. Update environment variables for target + 4. Deploy to specified environment + 5. Run post-deployment health checks + 6. Update deployment documentation + ``` + +4. **Use the Command**: + The command is immediately available for use without registration. + +--- + +## Command Priority System + +When multiple commands with the same name exist: + +1. **Project Level** (highest priority) + - Located in `.roo/commands/` + - Allows project-specific overrides + - Committed to version control for team sharing + +2. **Global Level** (medium priority) + - Located in `~/.roo/commands/` + - Shared across all projects + - User-specific customizations + +3. **Built-in Level** (lowest priority) + - Hardcoded in the extension + - Provides default functionality + - Always available as fallback + +--- + +## Examples When Used + +- When initializing a new project, Roo executes `/init` to analyze the codebase structure and create comprehensive documentation. +- When deploying applications, Roo retrieves standardized deployment instructions specific to the project's infrastructure. +- When implementing features, Roo accesses team-agreed patterns and best practices through custom commands. +- When setting up development environments, Roo follows project-specific setup instructions consistently. +- When performing code reviews, Roo uses standardized review checklists defined as commands. + +--- + +## Usage Examples + +Executing the built-in initialization command: +```xml + +init + +``` + +Running a custom deployment command with arguments: +```xml + +deploy +production environment with zero-downtime strategy + +``` + +Executing a test command with specific focus: +```xml + +test +focus on integration tests for authentication module + +``` + +Running a project-specific build command: +```xml + +build +optimized for production with source maps + +``` + +Accessing team coding standards: +```xml + +standards +TypeScript and React best practices + +``` + +--- + +## Best Practices + +### Command Design + +1. **Clear Naming**: Use descriptive, action-oriented names +2. **Comprehensive Instructions**: Include all necessary steps +3. **Argument Flexibility**: Design commands to work with or without arguments +4. **Metadata Usage**: Always include description and argument hints +5. **Version Control**: Commit project commands for team consistency + +### Organization Strategies + +1. **Categorization**: Group related commands with prefixes (e.g., `test-unit`, `test-integration`) +2. **Documentation**: Maintain a README in command directories +3. **Templates**: Create template commands for common patterns +4. **Overrides**: Use project-level to customize global commands +5. **Maintenance**: Regularly review and update command content + +### Team Collaboration + +1. **Standardization**: Define team-wide commands in global directory +2. **Project Specifics**: Override with project-level customizations +3. **Documentation**: Document available commands and their usage +4. **Review Process**: Include command changes in code reviews +5. **Training**: Share command knowledge across team members + +--- + +## Troubleshooting + +### Common Issues + +**Feature Not Enabled**: +- Error: "Run slash command is an experimental feature that must be enabled in settings" +- Solution: Enable 'Run Slash Command' in Experimental Settings + +**Command Not Found**: +- Error: "Command 'X' not found. Available commands: Y, Z" +- Solution: Check command name spelling and available commands list + +**Missing Parameters**: +- Error tracked in consecutive mistake counter +- Solution: Provide required `command` parameter + +### Debugging Commands + +1. **Verify File Location**: Ensure `.md` file is in correct directory +2. **Check File Name**: Command name must match filename without extension +3. **Validate Frontmatter**: Ensure YAML frontmatter is properly formatted +4. **Test Resolution**: Try same command name at different levels to test priority +5. **Review Content**: Ensure command content is properly formatted markdown \ No newline at end of file diff --git a/docs/advanced-usage/available-tools/search-and-replace.md b/docs/advanced-usage/available-tools/search-and-replace.md deleted file mode 100644 index 90986a2e..00000000 --- a/docs/advanced-usage/available-tools/search-and-replace.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -description: Master the search_and_replace tool for finding and replacing text or regex patterns in files, with line range support and interactive diff approval. -keywords: - - search_and_replace - - Roo Code tools - - find replace - - regex patterns - - text replacement - - code refactoring - - diff view - - line ranges - - VS Code AI -image: /img/social-share.jpg ---- - -# search_and_replace - -The `search_and_replace` tool finds and replaces text within a file, supporting both literal strings and regular expression patterns. It allows for targeted replacements across multiple locations, optionally within specific line ranges. - ---- - -## Parameters - -### Required Parameters - -- `path`: The relative path (from the workspace root) of the file to modify. -- `search`: The text string or regex pattern to find. -- `replace`: The text to replace matches with. - -### Optional Parameters - -- `start_line`: The 1-based line number where the search scope begins. -- `end_line`: The 1-based line number where the search scope ends (inclusive). -- `use_regex`: Set to `"true"` to treat the `search` parameter as a regular expression pattern (default is `false`). -- `ignore_case`: Set to `"true"` to perform a case-insensitive search (default is `false`). - ---- - -## What It Does - -This tool reads the specified file and performs a search-and-replace operation based on the provided parameters. It can operate on the entire file or be restricted to a specific range of lines. Changes are presented in a diff view for user review and approval before being saved. - ---- - -## When is it used? - -- When renaming variables, functions, or classes across a file. -- When updating specific text strings or values consistently. -- When applying patterned changes using regular expressions. -- When refactoring code requires replacing specific patterns. -- When making targeted changes within a defined section of a file. - ---- - -## Key Features - -- **Flexible Searching**: Supports both literal text and regular expression patterns. -- **Case Sensitivity Control**: Option to ignore case during search. -- **Scoped Replacements**: Can limit replacements to a specific range of lines (`start_line`, `end_line`). -- **Global Replacement**: Performs replacements across the entire file (or specified range) by default. -- **Interactive Approval**: Shows proposed changes in a diff view for user review and approval. -- **User Edit Support**: Allows editing the proposed content directly within the diff view. -- **Context Tracking**: Records the file edit operation. -- **Error Handling**: Checks for missing parameters, file access issues, and invalid line numbers. - ---- - -## Limitations - -- **Single File Operation**: Operates on only one file at a time. Use `search_files` to find patterns across multiple files first. -- **Review Overhead**: The mandatory diff view approval adds an interactive step. -- **Regex Complexity**: Complex regex patterns might require careful construction and testing. - ---- - -## How It Works - -When the `search_and_replace` tool is invoked, it follows this process: - -1. **Parameter Validation**: Checks for required `path`, `search`, `replace`, and validates optional parameters like line numbers and boolean flags. -2. **File Reading**: Reads the content of the target file specified by `path`. -3. **Regex Construction**: - * If `use_regex` is `false`, the `search` string is escaped to treat it as literal text. - * A `RegExp` object is created with the `g` (global) flag and optionally the `i` (ignore case) flag. -4. **Replacement Execution**: - * If `start_line` or `end_line` are provided, the file content is split into lines, the relevant section is isolated, the replacement is performed on that section, and the file content is reconstructed. - * If no line range is specified, the replacement is performed on the entire file content string. -5. **Diff View Interaction**: - * Opens the file in the diff view showing original vs. proposed content. - * Updates the diff view with the result of the replacement. -6. **User Approval**: Presents the change via `askApproval`. Reverts if rejected. -7. **Saving Changes**: If approved, saves the changes (including any user edits made in the diff view). -8. **File Context Tracking**: Tracks the edit using `cline.getFileContextTracker().trackFileContext`. -9. **Result Reporting**: Reports success (including user edits) or failure back to the AI model. - ---- - -## Usage Examples - -Simple text replacement throughout a file: - -```xml - -src/config.js -API_KEY_OLD -API_KEY_NEW - -``` - -Case-insensitive regex replacement to update function calls: - -```xml - -src/app.ts -processData\((.*?)\) -handleData($1) -true -true - -``` - -Replacing text only within lines 10 to 20: - -```xml - -README.md -Draft -Final -10 -20 - -``` \ No newline at end of file diff --git a/docs/advanced-usage/available-tools/search-files.md b/docs/advanced-usage/available-tools/search-files.md index 83469afe..4927d611 100644 --- a/docs/advanced-usage/available-tools/search-files.md +++ b/docs/advanced-usage/available-tools/search-files.md @@ -1,4 +1,3 @@ - --- description: Learn how search_files performs powerful regex searches across your codebase, finding patterns with context using Ripgrep for high-performance results. keywords: @@ -27,6 +26,7 @@ The tool accepts these parameters: - `path` (required): The path of the directory to search in, relative to the current workspace directory. The search is confined to the workspace. - `regex` (required): The regular expression pattern to search for (uses Rust regex syntax) - `file_pattern` (optional): Glob pattern to filter files (e.g., '*.ts' for TypeScript files) +- `respect_gitignore` (optional): Whether to respect `.gitignore` patterns (default: `true`). Set to `false` to search all files including those in `.gitignore`. --- @@ -48,6 +48,7 @@ This tool searches across files in a specified directory using regular expressio ## Key Features - Searches across multiple files in a single operation using high-performance Ripgrep +- **Respects .gitignore**: Automatically excludes files and directories listed in `.gitignore` (including nested `.gitignore` files) - Shows context around each match (1 line before and after) - Filters files by type using glob patterns (e.g., only TypeScript files) - Provides line numbers for easy reference @@ -67,6 +68,7 @@ This tool searches across files in a specified directory using regular expressio - Default context size is fixed (1 line before and after) - May display varying context sizes when matches are close together due to result grouping - For security, searches are strictly limited to the current workspace and cannot access parent directories or other locations on the file system. +- **Respects .gitignore by default**: Files listed in `.gitignore` are excluded from searches unless explicitly overridden with `respect_gitignore: false` --- @@ -154,9 +156,47 @@ Finding all usages of a specific function: ``` Searching for a specific import pattern across the entire project: -``` +```xml . import\s+.*\s+from\s+['"]@components/ ``` +## Respecting .gitignore + +By default, `search_files` respects `.gitignore` patterns in your workspace, including nested `.gitignore` files. This prevents searches in excluded directories like `node_modules/`, `dist/`, or other ignored paths. + +### Default Behavior (Respecting .gitignore) + +**Input:** +```xml + +. +TODO + +``` + +This search will **exclude** files and directories listed in `.gitignore`, ensuring focused results on tracked code. + +### Overriding .gitignore (Search All Files) + +To search **all files** including those in `.gitignore`, explicitly set `respect_gitignore` to `false`: + +**Input:** +```xml + +. +TODO +false + +``` + +This searches **everything**, including `node_modules/`, build artifacts, and other ignored paths. + +**When to override:** +- Debugging issues in dependencies or build output +- Searching through generated code +- Comprehensive audits that need to check all files +- Investigating ignored configuration files + +--- diff --git a/docs/advanced-usage/available-tools/tool-use-overview.md b/docs/advanced-usage/available-tools/tool-use-overview.md index 6cce001b..9fb1e551 100644 --- a/docs/advanced-usage/available-tools/tool-use-overview.md +++ b/docs/advanced-usage/available-tools/tool-use-overview.md @@ -29,12 +29,14 @@ Tools are organized into logical groups based on their functionality: |----------|---------|-------|------------| | **Read Group** | File system reading and exploration | [read_file](/advanced-usage/available-tools/read-file), [list_files](/advanced-usage/available-tools/list-files), [list_code_definition_names](/advanced-usage/available-tools/list-code-definition-names) | Code exploration and analysis | | **Search Group** | Pattern and semantic searching | [search_files](/advanced-usage/available-tools/search-files), [codebase_search](/advanced-usage/available-tools/codebase-search) | Finding code patterns and functionality | -| **Edit Group** | File system modifications | [apply_diff](/advanced-usage/available-tools/apply-diff), [insert_content](/advanced-usage/available-tools/insert-content), [search_and_replace](/advanced-usage/available-tools/search-and-replace), [write_to_file](/advanced-usage/available-tools/write-to-file) | Code changes and file manipulation | +| **Edit Group** | File system modifications | [apply_diff](/advanced-usage/available-tools/apply-diff), [insert_content](/advanced-usage/available-tools/insert-content), [write_to_file](/advanced-usage/available-tools/write-to-file) | Code changes and file manipulation | | **Browser Group** | Web automation | [browser_action](/advanced-usage/available-tools/browser-action) | Web testing and interaction | -| **Command Group** | System command execution | [execute_command](/advanced-usage/available-tools/execute-command) | Running scripts, building projects | +| **Command Group** | System command execution | [execute_command](/advanced-usage/available-tools/execute-command), [run_slash_command](/advanced-usage/available-tools/run-slash-command)* | Running scripts, building projects, executing command templates | | **MCP Group** | External tool integration | [use_mcp_tool](/advanced-usage/available-tools/use-mcp-tool), [access_mcp_resource](/advanced-usage/available-tools/access-mcp-resource) | Specialized functionality through external servers | | **Workflow Group** | Mode and task management | [switch_mode](/advanced-usage/available-tools/switch-mode), [new_task](/advanced-usage/available-tools/new-task), [ask_followup_question](/advanced-usage/available-tools/ask-followup-question), [attempt_completion](/advanced-usage/available-tools/attempt-completion) | Context switching and task organization | +*_Experimental feature - requires explicit enablement in settings_ + ### Always Available Tools Certain tools are accessible regardless of the current mode: @@ -66,7 +68,6 @@ These tools help Roo make changes to your code: - [apply_diff](/advanced-usage/available-tools/apply-diff) - Makes precise, surgical changes to your code - [insert_content](/advanced-usage/available-tools/insert-content) - Adds new lines of content without modifying existing lines -- [search_and_replace](/advanced-usage/available-tools/search-and-replace) - Finds and replaces text or regex patterns within a file - [write_to_file](/advanced-usage/available-tools/write-to-file) - Creates new files or completely rewrites existing ones ### Browser Tools @@ -78,6 +79,7 @@ These tools help Roo interact with web applications: These tools help Roo execute commands: - [execute_command](/advanced-usage/available-tools/execute-command) - Runs system commands and programs +- [run_slash_command](/advanced-usage/available-tools/run-slash-command) - Executes predefined slash commands for templated instructions *(Experimental - requires enablement)* ### MCP Tools These tools help Roo connect with external services: diff --git a/docs/advanced-usage/rate-limits-costs.md b/docs/advanced-usage/rate-limits-costs.md index 94169cde..197fb495 100644 --- a/docs/advanced-usage/rate-limits-costs.md +++ b/docs/advanced-usage/rate-limits-costs.md @@ -33,6 +33,8 @@ Most AI providers charge based on the number of tokens used. Pricing varies depe Roo Code automatically calculates the estimated cost of each API request based on the configured model's pricing. This cost is displayed in the chat history, next to the token usage. +For reasoning-capable models (for example, Gemini 3 Pro Preview and other models that expose separate "thinking" or reasoning tokens), Roo Code now includes both normal tokens **and** reasoning / "thought" tokens in its estimates when the provider reports them. This can make the displayed token usage and cost slightly higher than in older versions, but it better matches how providers actually bill you. + **Note:** * The cost calculation is an *estimate*. The actual cost may vary slightly depending on the provider's billing practices. diff --git a/docs/basic-usage/the-chat-interface.md b/docs/basic-usage/the-chat-interface.md index 87a013b3..f938dcf5 100644 --- a/docs/basic-usage/the-chat-interface.md +++ b/docs/basic-usage/the-chat-interface.md @@ -29,11 +29,11 @@ The chat interface consists of the following main elements: 4. **Send Button:** This looks like a small plane and it's located to the far right of the input field. This sends messages to Roo after you've typed them. -5. **Plus Button:** The plus button is located at the top in the header, and it resets the current session. +5. **Plus Button:** The plus button is located at the top in the header. It switches to the Chat tab and focuses the input. To reset the session, start a new task or clear the current task. 6. **Settings Button:** The settings button is a gear, and it's used for opening the settings to customize features or behavior. -7. **Mode Selector:** The mode selector is a dropdown located to the left of the chat input field. It is used for selecting which mode Roo should use for your tasks. +7. **Mode Selector:** The mode selector is a dropdown located to the left of the chat input field. It is used for selecting which mode Roo should use for your tasks. Its settings gear opens the Modes tab, not general settings. Chat interface components labeled with numbered callouts @@ -41,6 +41,19 @@ The chat interface consists of the following main elements: --- +## Tip: Using the Secondary Sidebar + +For a better workflow, you can drag Roo Code to VS Code's [Secondary Sidebar](https://code.visualstudio.com/api/ux-guidelines/sidebars#secondary-sidebar). This allows you to keep Roo Code visible while still having access to the Explorer, Search, Source Control, and other panels in the primary sidebar. + +To set this up: +1. Click and drag the Roo Code icon from the Activity Bar +2. Drop it on the right side of your editor to create a secondary sidebar +3. Now you can use both sidebars simultaneously! + +For more productivity tips, check out our [Tips & Tricks](/tips-and-tricks) guide. + +--- + ## Interacting with Messages * **Clickable Links:** File paths, URLs, and other mentions in the chat history are clickable. Clicking a file path will open the file in the editor. Clicking a URL will open it in your default browser. diff --git a/docs/basic-usage/using-modes.md b/docs/basic-usage/using-modes.md index a9da65c2..9a4e783c 100644 --- a/docs/basic-usage/using-modes.md +++ b/docs/basic-usage/using-modes.md @@ -113,12 +113,6 @@ Four ways to switch modes: --- -## Additional Modes - -Additional specialized modes may be available depending on your Roo Code configuration, including Test, Design Engineer, Release Engineer, Translate, Issue Fixer, Issue Writer, Integration Tester, PR Reviewer, and Docs Extractor modes. Check your mode selector for the complete list available in your installation. - ---- - ## Customizing Modes Tailor Roo Code's behavior by customizing existing modes or creating new specialized assistants. Define tool access, file permissions, and behavior instructions to enforce team standards or create purpose-specific assistants. See [Custom Modes documentation](/features/custom-modes) for setup instructions. diff --git a/docs/community/custom-modes/advanced-orchestrator.md b/docs/community/custom-modes/advanced-orchestrator.md deleted file mode 100644 index 6cc8029c..00000000 --- a/docs/community/custom-modes/advanced-orchestrator.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -description: Strategic workflow orchestration mode that breaks down complex projects into subtasks and delegates to specialized modes efficiently -keywords: - - advanced orchestrator - - workflow management - - task delegation - - complex projects - - iiwish - - mrubens - - context management -image: /img/social-share.jpg ---- - -# Advanced Orchestrator by iiwish - -[View Author on GitHub](https://github.com/iiwish) - -An enhanced workflow orchestration mode based on [@mrubens](https://github.com/mrubens)' original design, with expanded capabilities for complex task management. This mode acts as a strategic coordinator that breaks down complex projects into well-defined subtasks, delegates them to specialized modes, and manages the overall workflow. It features advanced context management capabilities while maintaining permission restrictions that limit file editing to mode configuration files only. - ---- - -## Key Enhancements - -- **Granular Task Decomposition**: Strategies optimized for context length limitations. -- **Structured Dependency Management**: Includes checkpoint validation for task dependencies. -- **Improved Cross-Mode Communication**: Enhanced protocols for seamless interaction between modes. -- **Workflow Documentation and Visualization**: Tools for architecture documentation and visualization. -- **Context Preservation**: Techniques for managing complex multi-stage tasks effectively. - -This orchestrator excels at managing large, complex projects by maintaining clear task boundaries while ensuring cohesive integration of results from different specialized modes. - -```json -{ - "slug": "advanced-orchestrator", - "name": "Advanced Orchestrator", - "roleDefinition": "You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.", - "customInstructions": "Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:\n\n1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes:\n - Create specific, clearly defined, and scope-limited subtasks\n - Ensure each subtask fits within context length limitations\n - Make subtask divisions granular enough to prevent misunderstandings and information loss\n - Prioritize core functionality implementation over iterative development when task complexity is high\n\n2. For each subtask, create a new task with a clear, specific instruction using the new_task tool:\n - Choose the most appropriate mode for each task based on its nature and requirements\n - Provide detailed requirements and summaries of completed work for context\n - Store all subtask-related content in a dedicated prompt directory\n - Ensure subtasks focus on their specific stage while maintaining compatibility with other modules\n\n3. Track and manage the progress of all subtasks:\n - Arrange subtasks in a logical sequence based on dependencies\n - Establish checkpoints to validate incremental achievements\n - Reserve adequate context space for complex subtasks\n - Define clear completion criteria for each subtask\n - When a subtask is completed, analyze its results and determine the next steps\n\n4. Facilitate effective communication throughout the workflow:\n - Use clear, natural language for subtask descriptions (avoid code blocks in descriptions)\n - Provide sufficient context information when initiating each subtask\n - Keep instructions concise and unambiguous\n - Clearly label inputs and expected outputs for each subtask\n\n5. Help the user understand how the different subtasks fit together in the overall workflow:\n - Provide clear reasoning about why you're delegating specific tasks to specific modes\n - Document the workflow architecture and dependencies between subtasks\n - Visualize the workflow when helpful for understanding\n\n6. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.\n\n7. You can also manage custom modes by editing custom_modes.json and .roomodes files directly. This allows you to create, modify, or delete custom modes as part of your orchestration capabilities.\n\n8. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.\n\n9. Suggest improvements to the workflow based on the results of completed subtasks.", - "groups": [ - "read", - ["edit", { "fileRegex": "\\.roomodes$|cline_custom_modes\\.json$", "description": "Mode configuration files only" }] - ], - "source": "global" -} \ No newline at end of file diff --git a/docs/community/custom-modes/documentation-writer.md b/docs/community/custom-modes/documentation-writer.md deleted file mode 100644 index 1ca8f174..00000000 --- a/docs/community/custom-modes/documentation-writer.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -description: Specialized mode for creating clear, comprehensive technical documentation with best practices and consistent style guidelines -keywords: - - documentation writer - - technical documentation - - custom mode - - jsonify - - markdown documentation - - api docs -image: /img/social-share.jpg ---- - -# Documentation Writer by jsonify - -[View Author on GitHub](https://github.com/jsonify) - -A mode that is specialized technical documentation expert, with access to read, edit, and command capabilities, focusing on creating clear, maintainable documentation while following best practices and consistent style guidelines. - -```json -{ - "slug": "documentation-writer", - "name": "Documentation Writer", - "roleDefinition": "You are Roo, a technical documentation expert specializing in creating clear, comprehensive documentation for software projects. Your expertise includes:\nWriting clear, concise technical documentation\nCreating and maintaining README files, API documentation, and user guides\nFollowing documentation best practices and style guides\nUnderstanding code to accurately document its functionality\nOrganizing documentation in a logical, easily navigable structure", - "customInstructions": "Focus on creating documentation that is clear, concise, and follows a consistent style. Use Markdown formatting effectively, and ensure documentation is well-organized and easily maintainable.", - "groups": [ - "read", - "edit", - "command" - ] -} \ No newline at end of file diff --git a/docs/community/custom-modes/jest-test-engineer.md b/docs/community/custom-modes/jest-test-engineer.md deleted file mode 100644 index 1a9921b3..00000000 --- a/docs/community/custom-modes/jest-test-engineer.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -description: A specialized Roo Code mode for writing and maintaining Jest test suites with TypeScript support, focusing on TDD practices and test quality. -keywords: - - Jest testing - - TDD - - test-driven development - - TypeScript testing - - Jest mocks - - test coverage - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# Jest Test Engineer by mrubens - -[View Author on GitHub](https://github.com/mrubens) - -A specialized mode for writing and maintaining Jest test suites with TypeScript support. This mode is focused on TDD practices with built-in best practices for test organization, TypeScript-aware test writing, and restricted access to test-related files only. - -```json -{ - "slug": "jest-test-engineer", - "name": "Jest Test Engineer", - "roleDefinition": "You are Roo, a Jest testing specialist with deep expertise in:\n- Writing and maintaining Jest test suites\n- Test-driven development (TDD) practices\n- Mocking and stubbing with Jest\n- Integration testing strategies\n- TypeScript testing patterns\n- Code coverage analysis\n- Test performance optimization\n\nYour focus is on maintaining high test quality and coverage across the codebase, working primarily with:\n- Test files in __tests__ directories\n- Mock implementations in __mocks__\n- Test utilities and helpers\n- Jest configuration and setup\n\nYou ensure tests are:\n- Well-structured and maintainable\n- Following Jest best practices\n- Properly typed with TypeScript\n- Providing meaningful coverage\n- Using appropriate mocking strategies", - "groups": [ - "read", - "browser", - "command", - ["edit", { - "fileRegex": "(__tests__/.*|__mocks__/.*|\\.test\\.(ts|tsx|js|jsx)$|/test/.*|jest\\.config\\.(js|ts)$)", - "description": "Test files, mocks, and Jest configuration" - }] - ], - "customInstructions": "When writing tests:\n- Always use describe/it blocks for clear test organization\n- Include meaningful test descriptions\n- Use beforeEach/afterEach for proper test isolation\n- Implement proper error cases\n- Add JSDoc comments for complex test scenarios\n- Ensure mocks are properly typed\n- Verify both positive and negative test cases" -} \ No newline at end of file diff --git a/docs/community/custom-modes/junior-developer-code-reviewer.md b/docs/community/custom-modes/junior-developer-code-reviewer.md deleted file mode 100644 index 6168f9ac..00000000 --- a/docs/community/custom-modes/junior-developer-code-reviewer.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: A supportive mentor-reviewer mode that provides educational, encouraging code reviews focused on junior developers' growth and learning. -keywords: - - code review - - junior developer - - mentorship - - educational feedback - - code learning - - best practices - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# Junior Developer Code Reviewer by jsonify - -[View Author on GitHub](https://github.com/jsonify) - -This mode is a supportive mentor-reviewer who provides educational, encouraging code reviews focused on junior developers' growth, combining positive reinforcement with detailed explanations of best practices, while having read and command access plus restricted edit capabilities for Markdown files only. - -```json -{ - "slug": "junior-reviewer", - "name": "Junior Dev Code Reviewer", - "roleDefinition": "You are Roo, an experienced and supportive code reviewer focused on helping junior developers grow. Your reviews are educational, encouraging, and packed with learning opportunities.\n\nYour core principles are:\n\n1. EDUCATIONAL FOCUS\n- Explain concepts thoroughly with clear examples\n- Link to relevant documentation and learning resources\n- Break down complex issues into digestible pieces\n\n2. POSITIVE REINFORCEMENT\n- Acknowledge good practices and clever solutions\n- Frame feedback as learning opportunities\n- Encourage experimentation while ensuring code quality\n\n3. FUNDAMENTAL BEST PRACTICES\n- Focus on coding standards and common patterns\n- Explain the reasoning behind established practices\n- Introduce design patterns gradually\n\n4. CLEAR EXAMPLES\n- Provide before/after code samples\n- Explain changes step by step\n- Show alternative approaches when relevant\n\n5. STRUCTURED LEARNING\n- Organize feedback by learning objective\n- Build on previous review comments\n- Include exercises and challenges when appropriate", - "customInstructions": "When reviewing code:\n1. Start with positive observations\n2. Include detailed explanations with each suggestion\n3. Link to relevant documentation\n4. Provide clear, educational code examples\n5. Use a supportive and encouraging tone\n6. Focus on fundamental best practices\n7. Create structured learning opportunities\n8. Always explain the 'why' behind each suggestion", - "groups": [ - "read", - [ - "edit", - { - "fileRegex": "\\.(md)$", - "description": "Markdown files for review output" - } - ], - "command" - ] -} \ No newline at end of file diff --git a/docs/community/custom-modes/orchestrator.md b/docs/community/custom-modes/orchestrator.md deleted file mode 100644 index 4a129f48..00000000 --- a/docs/community/custom-modes/orchestrator.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -description: An orchestrator mode that manages complex workflows by delegating subtasks to specialized modes, coordinating multi-step projects efficiently. -keywords: - - orchestrator - - workflow automation - - task delegation - - subtasks - - boomerang mode - - complex workflows - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# Orchestrator by mrubens - -[View Author on GitHub](https://github.com/mrubens) - -This mode is an orchestrator who gets things done by delegating subtasks to the other modes and reasoning about the results and next steps. It can't write any files aside from being able to create and update custom mode definitions. - -```json -{ - "slug": "orchestrator", - "name": "Orchestrator", - "roleDefinition": "You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.", - "customInstructions": "Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:\n\n1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.\n\n2. For each subtask, create a new task with a clear, specific instruction using the new_task tool. Choose the most appropriate mode for each task based on its nature and requirements.\n\n3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.\n\n4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.\n\n5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.\n\n6. You can also manage custom modes by editing custom_modes.json and .roomodes files directly. This allows you to create, modify, or delete custom modes as part of your orchestration capabilities.\n\n7. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.\n\n8. Suggest improvements to the workflow based on the results of completed subtasks.", - "groups": [ - "read", - ["edit", { "fileRegex": "\\.roomodes$|cline_custom_modes\\.json$", "description": "Mode configuration files only" }] - ], - "source": "global" - } \ No newline at end of file diff --git a/docs/community/custom-modes/research-mode.md b/docs/community/custom-modes/research-mode.md deleted file mode 100644 index a0269a5c..00000000 --- a/docs/community/custom-modes/research-mode.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -description: Integrates Perplexity API and Lynx browser for autonomous research-augmented software engineering, enabling web search and page analysis within Roo Code. -keywords: - - research mode - - Perplexity API - - Lynx browser - - web search - - code research - - documentation analysis - - MCP integration - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# ResearchMode by JamesCherished - -[View Project on GitHub](https://github.com/James-Cherished-Inc/roo-research-mode) | [View Author on GitHub](https://github.com/James-Cherished-Inc/) - -This mode integrates Perplexity API for web search and Lynx for page analysis, enabling autonomous research-augmented software engineering within the Roo Code VS Code extension. It uses the Perplexity API (via a local MCP server) for high-quality, up-to-date web search results and leverages the Lynx text-based browser for deep page analysis, code extraction, and documentation summarization directly within Roo Code. - -```json -{ - "slug": "research-mode", - "name": "ResearchMode", - "roleDefinition": "You are Roo, a highly skilled software engineer and researcher. Your primary function is to design, write, refactor, and debug code, seamlessly integrating your research capabilities (Perplexity-powered web search and Lynx-based page analysis) into every stage of the development process to augment your programming abilities and make informed decisions.\\nYou automatically:\\n1. Manage the Perplexity MCP server for web search to gather relevant information and insights. \\n2. Utilize Lynx for in-depth text-based page analysis and precise code extraction. \\n3. Maintain research context across multiple queries to ensure a cohesive and comprehensive understanding of the subject matter. \\n4. Meticulously document all research influences in project files.\\n5. Preserve the original formatting of extracted code blocks to ensure accuracy and readability. \\n6. Rigorously validate the relevance and applicability of research findings before implementing them in code.\\n\\n**You confirm whether the workspace has already set up your research capabilities before proceeding. You implement your research capabilities yourself if this is your first time in this workspace.**\\n\\nYou maintain context, cite sources, and ensure all code and research actions are actionable, reproducible, and well-documented.", - "customInstructions": "## To achieve your goal, follow these steps as a workflow:\n\n1. **Initiate Research:**\n a. For coding tasks requiring external knowledge, begin by clearly defining the research goal. Use the format `## [TIMESTAMP] Research Goal: [CLEAR OBJECTIVE]` to start a new research session.\n b. Formulate a search query that incorporates the code context and the specific information you need. Be as precise as possible to narrow down the results.\n You should use Perplexity to find URLs, but you may also ask the user for URLs that you will extract text from directly using Lynx.\n When researching for a specific coding task, include relevant code context (such as the current function, file snippet, or error message) in your research queries to make them more targeted and actionable. \n\n\n2. **Execute Web Search with Perplexity to find sources:**\n a. You can use the `node ./index.js` command to query the Perplexity API directly from the command line. This is a CLI command and should be run in the terminal. Use the following format:\n `node ./index.js --query \"your search query\"`\n For more complex queries, or as a fallback when the MCP connection is broken, you should use POST requests to the MCP server. To do this, use the `curl` command with the following format:\n `curl -X POST -H \"Content-Type: application/json\" -d '{\"query\": \"your search query\"}' http://localhost:3000/`\n Use the sonar-pro model (or sonar as a fallback). Return 5 results (title, URL, snippet) per query maximum, in the following format:\n ```\n 1. [Title](URL): Brief snippet\n 2. [Title](URL): Brief snippet\n ```\n\tb. Evaluate the search results and select the 1-2 most relevant sources for further analysis. Consider factors such as the source's credibility, the relevance of the content, and the clarity of the information presented.\n\n\n3. **Analyze Sources with Lynx:**\n a. Utilize Lynx in the CLI to extract and analyze the content of the selected sources. Use the following command: `lynx -dump {URL} | grep -A 15 -E 'function|class|def|interface|example'`\n b. This command will extract the text content of the page, filter it to identify code-related elements (functions, classes, etc.), and display the surrounding context.\n Lynx supports:\n - Full page dumps (`-dump`)\n - Link extraction (`-listonly`)\n - Code block identification (`grep` patterns)\n c. If Lynx encounters errors, fallback to `curl | html2text` to extract the text content.\n d. Summarize the most important points in a few key sentences.\n\n4. **Extract Code Blocks:**\n a. Carefully extract code blocks from the Lynx output, preserving the original syntax and formatting. This ensures that the code can be easily integrated into the project. You should use: `lynx -dump {URL} | grep -A 10 \"import\\|def\\|fn\\|class\"`\n b. Pay close attention to the surrounding context to understand how the code works and how it can be adapted to the specific task at hand.\n\n5. **Document Research Influences:**\n Meticulously document all research influences in the project files. When research influences a code change or technical decision, automatically document the key findings and update the code comments & project documentation with their impact.\n This includes:\n * Adding detailed code comments with source URLs to provide clear traceability. Use the following format:\n ```js\n // [IMPLEMENTATION NOTE] - Based on {Source Title}\n // {URL} - Extracted {Code/Pattern} at {Timestamp}\n ```\n * Maintaining a comprehensive research-log.md file (chronological record) to track research progress and findings.\n * Creating and maintaining a well-organized technical\\_decisions.md file (key rationale) to explain the reasoning behind technical choices.\n\n6. **Integrate Code:**\n a. Before integrating any code, rigorously validate its relevance and applicability to the task at hand. Ensure that the code is compatible with the existing codebase and that it follows the project's coding standards.\n b. Annotate adapted code with origin markers to clearly indicate the source of the code.\n c. Verify security and compatibility before including any third-party code.\n\n7. **Handle Errors:**\n a. If the Perplexity API fails, retry the request once after 5 seconds. If the request continues to fail, log the error and proceed with alternative approaches.\n b. If Lynx encounters errors, fallback to `curl | html2text` to extract the text content.\n c. If a cache miss occurs, proceed with a fresh search.\n\n8. **Optimize Performance:**\n a. Cache frequent queries to reduce API usage and improve response times.\n b. Prefer text-based sites (docs, blogs) for Lynx analysis, as they tend to be more efficient and reliable.\n\n\nExample Lynx command chain for React patterns:\n```bash\nlynx -dump https://example.com/react-best-practices | \\\n grep -i -A 20 'component structure' | \\\n sed '/Advertisement/d; /Related links/d'\n```\n\n---" - "groups": [ - "read", - "edit", - "command", - "browser", - "mcp" - ], - "source": "global" -} \ No newline at end of file diff --git a/docs/community/custom-modes/senior-developer-code-reviewer.md b/docs/community/custom-modes/senior-developer-code-reviewer.md deleted file mode 100644 index 19098b9e..00000000 --- a/docs/community/custom-modes/senior-developer-code-reviewer.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: A technical architect mode for high-level code reviews focused on architectural impact, scalability, security, and long-term maintainability. -keywords: - - code review - - senior developer - - architecture review - - system design - - security analysis - - performance optimization - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# Senior Developer Code Reviewer by jsonify - -[View Author on GitHub](https://github.com/jsonify) - -This mode is a technical architect who conducts high-level code reviews focused on architectural impact, system scalability, security vulnerabilities, performance optimizations, and long-term maintainability, while having read and command access plus restricted edit capabilities for Markdown files only. - -```json -{ - "slug": "senior-reviewer", - "name": "Senior Dev Code Reviewer", - "roleDefinition": "You are Roo, a highly experienced technical architect providing strategic code review feedback focused on system-level implications and architectural decisions.\n\nYour core principles are:\n\n1. ARCHITECTURAL IMPACT\n- Evaluate system-wide implications\n- Identify potential scalability bottlenecks\n- Assess technical debt implications\n\n2. PERFORMANCE & SECURITY\n- Focus on critical performance optimizations\n- Identify security vulnerabilities\n- Consider resource utilization\n\n3. EDGE CASES & RELIABILITY\n- Analyze error handling comprehensively\n- Consider edge cases and failure modes\n- Evaluate system resilience\n\n4. STRATEGIC IMPROVEMENTS\n- Suggest architectural refactoring\n- Identify technical debt\n- Consider long-term maintainability\n\n5. TRADE-OFF ANALYSIS\n- Discuss architectural trade-offs\n- Consider alternative approaches\n- Evaluate technical decisions", - "customInstructions": "When reviewing code:\n1. Focus on architectural and systemic implications\n2. Evaluate performance and scalability concerns\n3. Consider security implications\n4. Analyze error handling and edge cases\n5. Suggest strategic improvements\n6. Discuss technical trade-offs\n7. Be direct and concise\n8. Think about long-term maintainability", - "groups": [ - "read", - [ - "edit", - { - "fileRegex": "\\.(md)$", - "description": "Markdown files for review output" - } - ], - "command" - ] -} \ No newline at end of file diff --git a/docs/community/custom-modes/user-story-creator.md b/docs/community/custom-modes/user-story-creator.md deleted file mode 100644 index a2217d35..00000000 --- a/docs/community/custom-modes/user-story-creator.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -description: An agile requirements specialist mode for creating clear, valuable user stories with structured templates and comprehensive acceptance criteria. -keywords: - - user stories - - agile development - - requirements gathering - - acceptance criteria - - story writing - - agile methodology - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# User Story Creator by jsonify - -[View Author on GitHub](https://github.com/jsonify) - -This mode is an agile requirements specialist with structured templates for creating user stories, following a specific format that includes titles, user roles, goals, benefits, and detailed acceptance criteria, while considering various story types, edge cases, and technical implications. - -```json -{ - "slug": "user-story-creator", - "name": "User Story Creator", - "roleDefinition": "You are Roo, an agile requirements specialist focused on creating clear, valuable user stories. Your expertise includes:\n- Crafting well-structured user stories following the standard format\n- Breaking down complex requirements into manageable stories\n- Identifying acceptance criteria and edge cases\n- Ensuring stories deliver business value\n- Maintaining consistent story quality and granularity", - "customInstructions": "Expected User Story Format:\n\nTitle: [Brief descriptive title]\n\nAs a [specific user role/persona],\nI want to [clear action/goal],\nSo that [tangible benefit/value].\n\nAcceptance Criteria:\n1. [Criterion 1]\n2. [Criterion 2]\n3. [Criterion 3]\n\nStory Types to Consider:\n- Functional Stories (user interactions and features)\n- Non-functional Stories (performance, security, usability)\n- Epic Breakdown Stories (smaller, manageable pieces)\n- Technical Stories (architecture, infrastructure)\n\nEdge Cases and Considerations:\n- Error scenarios\n- Permission levels\n- Data validation\n- Performance requirements\n- Security implications", - "groups": [ - "read", - "edit", - "command" - ] -} \ No newline at end of file diff --git a/docs/community/custom-modes/vibe-mode.md b/docs/community/custom-modes/vibe-mode.md deleted file mode 100644 index 841dd87e..00000000 --- a/docs/community/custom-modes/vibe-mode.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -description: Transform natural language descriptions into working code with VibeMode, embracing intuitive flow-based development and automated testing. -keywords: - - natural language programming - - vibe coding - - flow-based development - - voice-to-text coding - - automated testing - - intuitive coding - - Roo Code custom mode -image: /img/social-share.jpg ---- - -# VibeMode by richardwhiteii - -[View Author on GitHub](https://github.com/richardwhiteii) - -A mode for transforming natural language descriptions into working code, embracing intuitive and flow-based development. - -```json -{ - "slug": "vibemode", - "name": "VibeMode", - "roleDefinition": "You are Roo, a Vibe Coding assistant that transforms natural language descriptions into working code. You embrace the philosophy that coding should be intuitive and flow-based, where developers can 'give in to the vibes' and focus on what they want to build rather than how to build it.\n\nDescription: An AI coding partner focused on natural language programming and vibe-based development with continuous testing\n\nSystem Prompt: You are a Vibe Coding assistant that helps transform natural language descriptions into working code. Focus on understanding intent over technical specifics while ensuring functionality through continuous testing. Embrace experimentation and rapid iteration with built-in validation.\n\nGoals:\n- Transform natural language descriptions into functional code\n- Maintain flow state by handling technical details automatically\n- Suggest improvements while preserving user intent\n- Handle error resolution autonomously when possible\n- Ensure code quality through continuous testing\n- Validate each iteration before proceeding\n\nPrimary Responsibilities:\n\nNatural Language Programming\n- Transform conversational descriptions into functional code\n- Handle technical implementation details automatically\n- Maintain creative flow by managing error resolution autonomously\n- Suggest improvements while preserving user intent\n- Generate appropriate tests for new functionality\n\nWorkflow Optimization\n- Minimize keyboard interaction by supporting voice-to-text input\n- Handle error messages through simple copy-paste resolution\n- Maintain context across development sessions\n- Switch to appropriate specialized modes when needed\n- Run tests automatically after each significant change\n- Provide immediate feedback on test results\n\nTest-Driven Development\n- Create tests before implementing new features\n- Validate changes through automated testing\n- Maintain test coverage throughout development\n- Flag potential issues early in the development cycle\n- Ensure backwards compatibility with existing functionality\n\nPrompt Templates:\n- Initialization: 'I want to create {description}'\n- Refinement: 'Can you modify this to {change}'\n- Error Handling: 'Fix this error: {error}'\n- Iteration: 'Let's improve {aspect}'\n- Test Creation: 'Generate tests for {feature}'\n- Validation: 'Verify the changes to {component}'", - "groups": [ - "read", - "edit", - "browser", - "command", - "mcp" - ], - "customInstructions": "Prioritize working solutions over perfect code. Use error messages as learning opportunities. Maintain a conversational, encouraging tone. Suggest improvements without breaking flow. Document key decisions and assumptions. Focus on understanding intent over technical specifics. Embrace experimentation and rapid iteration. Switch to architect mode when structural changes are needed. Switch to ask mode when research is required. Switch to code mode when precise implementation is needed. Maintain context across mode transitions. Handle errors autonomously when possible. Preserve code context and conversation history. Support voice-to-text input through SuperWhisper integration. Generate and run tests for each new feature. Validate all changes through automated testing. Maintain test coverage throughout development. Provide immediate feedback on test results. Flag potential issues early in development cycle. Ensure backwards compatibility." -} \ No newline at end of file diff --git a/docs/community/dynamic-rules.md b/docs/community/dynamic-rules.md deleted file mode 100644 index 6f8878fd..00000000 --- a/docs/community/dynamic-rules.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -description: Define and manage project-specific rules dynamically in Roo Code by simply writing RULE/NORULE commands in your messages -keywords: - - roo code dynamic rules - - project rules - - clinerules - - rule management - - cannuri - - langmem inspired -image: /img/social-share.jpg ---- - -# Roo Code Dynamic Rules by cannuri - -[View Project on GitHub](https://github.com/cannuri/roo-code-dynamic-rules) - -Inspired by LangMem, this simple Rule allows you to define new rules and delete them on the fly simply by writing `RULE/NORULE: (your new rule)` in your message. Roo Code will then add it to or remove it from the `.clinerules` file. This way you can quickly define project specific rules on the fly and build them up step by step. \ No newline at end of file diff --git a/docs/community/index.md b/docs/community/index.md deleted file mode 100644 index 1d030604..00000000 --- a/docs/community/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -description: Explore community projects that extend Roo Code's capabilities and discover custom modes shared by developers to enhance your workflow -keywords: - - roo code community - - custom modes - - community projects - - sparc - - memory bank - - dynamic rules - - roo commander - - maestro - - roocabulary -image: /img/social-share.jpg ---- - -# Index - -Welcome to the Roo Code community section! Here you'll find community projects that extend Roo Code's capabilities and a gallery of custom modes shared by other users to enhance your development workflow. - ---- - -## Community Projects - -| Project | Description | -|---------|-------------| -| [🔥 SPARC](/community/sparc) | Orchestrates set and forget agentic development workflows through a structured framework using Roo Code Boomerang Tasks | -| [Memory Bank](/community/memory-bank) | Solves the challenge of maintaining context across sessions with a structured memory system | -| [Tips & Tricks](/community/tips-and-tricks) | Collection of files designed to supercharge your Roo Code experience and maximize productivity | -| [Dynamic Rules](/community/dynamic-rules) | Define new rules and delete them on the fly with simple syntax in your messages | -| [Roo Commander](/community/roo-commander) | Sophisticated collection of custom modes designed to manage software development projects | -| [Maestro Project](/community/maestro) | Orchestrates a team of specialized modes for comprehensive software development lifecycle management | -| [Roocabulary](/community/roocabulary) | a collection of words, phrases, and jargon created to define and enhance the Roo Code experience | - ---- - -## Custom Modes Gallery {#custom-modes-gallery} - -Share and discover custom modes created by the community! Learn how to create and configure custom modes in the [Custom Modes documentation](/features/custom-modes). - -| Mode | Author | Description | -|------|--------|-------------| -| [Jest Test Engineer](/community/custom-modes/jest-test-engineer) | [@mrubens](https://github.com/mrubens) | Specialized mode for writing and maintaining Jest test suites | -| [ResearchMode](/community/custom-modes/research-mode) | [@JamesCherished](https://github.com/James-Cherished-Inc/) | Integrates Perplexity API for web search and Lynx for page analysis | -| [VibeMode](/community/custom-modes/vibe-mode) | [@richardwhiteii](https://github.com/richardwhiteii) | Transforms natural language descriptions into working code | -| [Documentation Writer](/community/custom-modes/documentation-writer) | [@jsonify](https://github.com/jsonify) | Specialized technical documentation expert | -| [User Story Creator](/community/custom-modes/user-story-creator) | [@jsonify](https://github.com/jsonify) | Agile requirements specialist with structured templates | -| [Junior Developer Code Reviewer](/community/custom-modes/junior-developer-code-reviewer) | [@jsonify](https://github.com/jsonify) | Supportive mentor-reviewer for junior developers' growth | -| [Senior Developer Code Reviewer](/community/custom-modes/senior-developer-code-reviewer) | [@jsonify](https://github.com/jsonify) | Technical architect for high-level code reviews | -| [Orchestrator](/community/custom-modes/orchestrator) | [@mrubens](https://github.com/mrubens) | Delegates subtasks to specialized modes | -| [Advanced Orchestrator](/community/custom-modes/advanced-orchestrator) | [@iiwish](https://github.com/iiwish) | Enhanced workflow orchestration with expanded capabilities | - -For more details on any project or mode, click its name to visit its dedicated page. To add your own custom mode to the gallery, create a pull request from the "Edit this page" link below. \ No newline at end of file diff --git a/docs/community/maestro.md b/docs/community/maestro.md deleted file mode 100644 index 07dc13a7..00000000 --- a/docs/community/maestro.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -description: A comprehensive system of specialized Roo modes working as an integrated development team, managing the entire software lifecycle -keywords: - - maestro project - - roo code orchestration - - specialized modes - - development lifecycle - - shariqriazz - - integrated development -image: /img/social-share.jpg ---- - -# Maestro Project by shariqriazz - -[View Project on GitHub](https://github.com/shariqriazz/maestro) - -The Maestro Project provides a comprehensive system of highly specialized Roo modes designed to work together as an integrated development team. Orchestrated by the central **Maestro** mode, this system manages the entire software development lifecycle by delegating tasks to modes with deep expertise in specific domains such as planning, design, frontend/backend development, database management, DevOps, testing, and documentation. - ---- - -## Key Concepts - -- **Central Orchestration**: The Maestro mode analyzes user requests, decomposes tasks, and delegates them to the most appropriate specialized mode. -- **Specialized Modes**: A collection of over 30 modes, each an expert in a narrow field (e.g., Visionary for architecture, ReactMaster for React development, SqlMaster for SQL databases). -- **Structured Workflow**: Employs defined protocols for task delegation, context management, progress tracking, quality assurance, and inter-mode collaboration. -- **Interaction Modes**: Offers different interaction styles (e.g., `YOLO MVP`, `Follow Production`) to control the autonomy and thoroughness of the specialized modes. -- **Extensible System**: Designed to be extended with new specialized modes as needed. -- **Prerequisites**: Relies on the [Maestro Mode Repository](https://github.com/shariqriazz/maestro) and potentially the [Vertex AI MCP Server](https://github.com/shariqriazz/vertex-ai-mcp-server) for full functionality of certain modes like the Researcher. - -This system aims to enhance development consistency, quality, and coverage by leveraging a team of virtual specialists. \ No newline at end of file diff --git a/docs/community/memory-bank.md b/docs/community/memory-bank.md deleted file mode 100644 index 7ed3b722..00000000 --- a/docs/community/memory-bank.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -description: Maintain context across Roo Code sessions with a structured memory system that ensures deep project understanding and continuity -keywords: - - memory bank - - roo code context - - persistent memory - - session continuity - - GreatScottyMac - - AI context management -image: /img/social-share.jpg ---- - -# Memory Bank Project by GreatScottyMac - -[View Project on GitHub](https://github.com/GreatScottyMac/roo-code-memory-bank) - -The Roo Code Memory Bank project solves a critical challenge in AI-assisted development: **maintaining context across sessions**. By providing a structured memory system integrated with VS Code, it ensures your AI assistant maintains a deep understanding of your project across sessions. - ---- - -## Key Features - -- 🧠 **Persistent Context**: Remembers project details across sessions and maintains consistent understanding of your codebase -- 🔄 **Smart Workflows**: Mode-based operation with automatic context switching and project-specific customization -- 📊 **Knowledge Management**: Structured documentation with technical decision tracking and automated progress monitoring \ No newline at end of file diff --git a/docs/community/roo-commander.md b/docs/community/roo-commander.md deleted file mode 100644 index 47abd5a9..00000000 --- a/docs/community/roo-commander.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -description: Sophisticated custom modes for Roo Code that manage software projects with a virtual development team and structured workflows -keywords: - - roo commander - - multi-agent development - - custom modes - - project management - - jezweb - - virtual team orchestration -image: /img/social-share.jpg ---- - -# Roo Commander Project by jezweb - -[View Project on GitHub](https://github.com/jezweb/roo-commander) - -The Roo Commander project provides a sophisticated collection of custom modes for Roo Code designed to manage software development projects using a structured, multi-agent approach. It introduces a virtual, specialized software development team orchestrated by the **👑 Roo Commander** mode, leveraging specialized roles and a structured project journal for enhanced context management and workflow organization. \ No newline at end of file diff --git a/docs/community/roocabulary.md b/docs/community/roocabulary.md deleted file mode 100644 index 75cc8148..00000000 --- a/docs/community/roocabulary.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: A fun, AI-inspired dictionary defining the unique language of the Rooniverse, from Rooploying to Roocrastinating and beyond -keywords: - - roocabulary - - roo code dictionary - - rooniverse - - roo terminology - - cannuri - - rooploying - - roobugging -image: /img/social-share.jpg ---- - -# Roocabulary by cannuri - -[View Project on GitHub](https://github.com/cannuri/Roocabulary) - -The **Roocabulary** is a living dictionary of fun, AI-inspired terminology used in the **Rooniverse** of Roo Code. It helps define the unique language around Roo Code, covering concepts like Rooploying, Roobugging, Roocrastinating, and much more! - -This repository is open-source. Everyone is welcome to contribute, improve, and expand the Roocabulary! - -Viva la Roovolution! \ No newline at end of file diff --git a/docs/community/sparc.md b/docs/community/sparc.md deleted file mode 100644 index 607a91d2..00000000 --- a/docs/community/sparc.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -description: Orchestrate automated development workflows with SPARC's structured framework using Roo Code Boomerang Tasks for efficient coding -keywords: - - sparc - - roo code workflows - - boomerang tasks - - agentic development - - ruvnet - - automated coding - - workflow orchestration -image: /img/social-share.jpg ---- - -# SPARC by ruvnet - -[View Project on GitHub](https://github.com/ruvnet/rUv-dev) - -SPARC orchestrates set and forget agentic development workflows through a structured framework using Roo Code Boomerang Tasks. It automates complex code development while maintaining complete developer control. -The framework is open-source with comprehensive documentation and examples, supporting everything from simple applications to complex systems. - ---- - -## Key Features - -- **Scaffolding**: Generate complete project structures by running `npx create-sparc init` in your root folder, including sub directories, configurations, and boilerplate code -- **Prompting**: Optimized templates for consistent, high-quality code generation -- **Boomerang Mode**: Define requirements → generate code → review → refine in a continuous feedback loop -- **Boomerang Tasks**: Define specific development tasks that can be "thrown" to Roo and returned with implementations, enabling focused problem-solving -- **Workflow Orchestration**: Coordinate complex development sequences with predefined task chains and dependency management -- **MCP Services**: Extend Roo's capabilities with specialized tools and resources through Model Context Protocol integration -- **Mode Management**: Context-aware settings that optimize behavior for specific development phases - -### Quick Start -You don't need to install this [package directly](https://www.npmjs.com/package/create-sparc). Just run npx from your root directory to install it: - -```bash - npx create-sparc init - npx create-sparc --help \ No newline at end of file diff --git a/docs/community/tips-and-tricks.md b/docs/community/tips-and-tricks.md deleted file mode 100644 index 2758c3fb..00000000 --- a/docs/community/tips-and-tricks.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -description: A collection of productivity-boosting tips and tricks for Roo Code, including the powerful Handoff System for memory management -keywords: - - roo code tips - - productivity tricks - - handoff system - - memory management - - Michaelzag - - LLM performance optimization -image: /img/social-share.jpg ---- - -# Roo Code Tips & Tricks by Michaelzag - -[View Project on GitHub](https://github.com/Michaelzag/RooCode-Tips-Tricks) - -This project is a collection of files designed to supercharge your Roo Code experience and maximize productivity. For those looking for a memory management system: check out the [Handoff System](https://github.com/Michaelzag/RooCode-Tips-Tricks/blob/main/handoffs/handoff-system.md) which is a simple yet powerful way to maintain optimal LLM performance during extended projects while automatically creating valuable documentation. \ No newline at end of file diff --git a/docs/features/auto-approving-actions.mdx b/docs/features/auto-approving-actions.mdx index 1d44908d..c0880eee 100644 --- a/docs/features/auto-approving-actions.mdx +++ b/docs/features/auto-approving-actions.mdx @@ -38,37 +38,40 @@ Auto-approve settings speed up your workflow by eliminating repetitive confirmat ## Quick Start Guide -1. Click the Auto-Approve Toolbar above the chat input -2. Select which actions Roo can perform without asking permission -3. Use the master toggle (leftmost checkbox) to quickly enable/disable all permissions +1. Open the Auto-Approve dropdown next to the chat input +2. Toggle "Enabled" at the bottom-right of the dropdown to activate or pause auto-approval +3. Use the All/None chips to bulk-select or clear permissions, or select individual tiles; you can keep Enabled On with "None" selected +4. (Optional) Click the gear icon to open Settings for deeper per-permission controls ---- - -## Auto-Approve Toolbar +### Keyboard Shortcut -Auto-approve toolbar collapsed state +**Default shortcut:** `Cmd+Alt+A` (macOS) / `Ctrl+Alt+A` (Windows/Linux) -*Prompt box and Auto-Approve Toolbar showing enabled permissions* +Quickly toggle auto-approve on/off without using the mouse. This shortcut toggles the global "Enabled" state while preserving your permission selections. -Click the toolbar to expand it and configure individual permissions: +**To customize the shortcut:** +1. Open VS Code Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) +2. Search for "Preferences: Open Keyboard Shortcuts" +3. Search for the command name (varies by language): + - English: "Toggle Auto-Approve" + - Other languages: Look for the localized equivalent +4. Click the pencil icon next to the command +5. Press your desired key combination +6. Press Enter to save -Auto-approve toolbar expanded state +**Note:** The command name appears in your VS Code interface language. If you're using a non-English locale, the command will be translated accordingly. -*Prompt text box and Expanded toolbar with all options* +--- -### API Request Limit +## Auto-Approve Dropdown -The toolbar includes an input field to set the maximum number of API requests Roo can make automatically: +Auto-Approve dropdown with All/None chips and global Enabled toggle (bottom-right) -- **Purpose**: Prevents runaway API usage and unexpected costs -- **Default**: No limit (empty field) -- **Recommended**: Set a reasonable limit based on your task complexity (e.g., 50-100 for most tasks) -- **How it works**: Once the limit is reached, Roo will pause and ask for permission to continue +The dropdown shows a grid of permission tiles. Controls: +- Enabled (bottom-right): master pause/resume for auto-approval +- All / None (bottom-left): bulk select or clear permissions without changing Enabled +- Permission tiles: choose which actions can run without prompts; tiles disable only when Enabled is off. Some permissions take effect only if your model supports the capability. -This safety feature is particularly useful when: -- Working with expensive API models -- Testing new workflows -- Letting Roo work autonomously for extended periods ### Available Permissions @@ -87,29 +90,20 @@ This safety feature is particularly useful when: --- -## Master Toggle for Quick Control +## Global Enabled Switch -The leftmost checkbox works as a master toggle: +Auto-Approve dropdown; Enabled at bottom-right and All/None chips at bottom-left -Master toggle in Auto-approve toolbar +How it works: +- Enabled On — Auto-approval runs for the permissions you’ve selected +- Enabled Off — Pauses all auto-approvals; your per-permission selections persist +- All / None — Bulk adjust selections while Enabled remains unchanged +- Note: Auto-approve only runs if Enabled is On and at least one permission is selected. -*Master toggle (checkbox) controls all auto-approve permissions at once* - -**How it works:** -- **Checked**: Activates all configured auto-approve permissions -- **Unchecked**: Temporarily disables all auto-approvals without changing individual settings -- **Important**: Individual permission settings are preserved when toggling - -This means you can: -1. Configure your preferred permissions once -2. Use the master toggle to quickly enable/disable them all -3. Your configuration remains intact for next time - -Use the master toggle when: -- Working in sensitive code (turn off) -- Doing rapid development (turn on) +When to toggle: +- Sensitive or production work → Off +- Rapid iteration and refactors → On - Switching between exploration and editing tasks -- Temporarily pausing automation without losing settings --- @@ -121,11 +115,17 @@ The settings panel provides detailed control with important security context: To access these settings: -1. Click in the top-right corner +1. Click in the top-right of the dropdown 2. Navigate to Auto-Approve Settings -Settings panel auto-approve options -*Complete settings panel view* +The settings panel mirrors the same permissions with additional context and safeguards. + +#### Important behaviors + +- Outside‑workspace reads/writes require the corresponding outside‑workspace flags in addition to the base permission. +- Auto‑approve for MCP tools requires both the global "Always approve MCP tools" and each tool's "Always allow". Resource access honors only the global setting. +- Mode switching is only auto‑approved when the mode-switch permission is enabled (covers switching to another mode and creating new modes). +- After auto‑writes, Roo waits using the global write‑delay control under Settings → Context Management → Diagnostics. ### Read Operations @@ -162,18 +162,18 @@ By default, Roo can only read files within your current workspace directory. The **Description:** "Automatically create and edit files without requiring approval" -**Delay slider:** "Delay after writes to allow diagnostics to detect potential problems" (Default: 0ms) +**Write delay control:** Configured under Settings → Context Management → Diagnostics. See [Diagnostics Integration](/features/diagnostics-integration). **Additional options:** - **Include files outside workspace:** Allow Roo to modify files outside the current workspace directory -- **Include protected files:** Allow Roo to modify files normally protected by .rooignore and .roo/ directory +- **Include protected files:** Allow Roo to modify files protected by `.roo/` and `.rooignore` directory **Risk level:** High This setting allows Roo to modify your files without confirmation. The delay timer is crucial: - Higher values (2000ms+): Recommended for complex projects where diagnostics take longer -- Default (0ms): No delay - use when speed is critical -- 1000ms: Suitable for most projects with active diagnostics +- Default (1000ms): Suitable for most projects with active diagnostics +- 0ms: No delay - use when speed is critical - Lower values: Use only when in a controlled environment #### Security Boundaries @@ -182,15 +182,18 @@ The write operations setting includes two important security controls: 1. **Workspace Boundary Protection**: By default, Roo can only modify files within your current workspace. Enable "Include files outside workspace" with extreme caution. -2. **Protected Files**: Files in .rooignore and the .roo/ directory are protected by default. The "Include protected files" option bypasses this protection - use only when necessary. - +2. **Protected Files**: Roo blocks modification of: + - Files in the `.roo/` directory + - The `.rooignore` file + + The "Include protected files" option bypasses this protection - use only when you specifically need to modify these files. #### Write Delay & Problems Pane Integration VSCode Problems pane showing diagnostic information *VSCode Problems pane that Roo checks during the write delay* -When you enable auto-approval for writing files, the delay timer works with VSCode's Problems pane: +When you enable auto-approval for writing files, Roo uses the global write-delay configured under Settings → Context Management → Diagnostics. The delay timer works with VSCode's Problems pane: 1. Roo makes a change to your file 2. VSCode's diagnostic tools analyze the change @@ -233,13 +236,25 @@ Consider the security implications of allowing automated browser access. **Description:** "Automatically retry failed API requests when server returns an error response" -**Delay slider:** "Delay before retrying the request" (Default: 5s) +**Delay slider:** "Delay before retrying the request" (Default: 10 seconds) **Risk level:** Low -This setting automatically retries API calls when they fail. The delay controls how long Roo waits before trying again: -- Longer delays are gentler on API rate limits -- Shorter delays give faster recovery from transient errors +This setting automatically retries API calls when they fail. The retry mechanism uses exponential backoff: +- **Initial delay**: Set by the slider (default: 10 seconds) +- **Backoff formula**: `min(baseDelay * 2^retryAttempt, 600)` +- **Maximum delay**: 600 seconds (10 minutes) + +Example retry sequence with 10s base delay: +- 1st retry: 10 seconds +- 2nd retry: 20 seconds +- 3rd retry: 40 seconds +- 4th retry: 80 seconds +- 5th retry: 160 seconds +- 6th retry: 320 seconds +- 7th+ retry: 600 seconds (capped) + +This exponential backoff helps prevent overwhelming APIs while still recovering from transient errors. ::: ### MCP Tools @@ -257,7 +272,9 @@ This setting requires a two-step permission process for security: 1. **Enable this global setting** - Acts as a master switch for all MCP tool auto-approval 2. **Enable individual tool permissions** - In the MCP Servers view, check "Always allow" for specific tools -**Important:** Both permissions must be active for a tool to auto-approve. This dual-permission system ensures you maintain granular control over which MCP tools can execute without confirmation. +**Important:** Both permissions must be active for a tool to auto-approve. This dual-permission system ensures you maintain granular control over which MCP tools can execute without confirmation. Resource retrieval (`access_mcp_resource`) honors only the global setting. + +**Permission Storage:** Your MCP tool permissions are saved and will be remembered next time you use Roo Code. Example workflow: - Enable "Always approve MCP tools" in settings @@ -277,7 +294,7 @@ Example workflow: **Risk level:** Low -Allows Roo to change between different modes (Code, Architect, etc.) without asking for permission. This primarily affects the AI's behavior rather than system access. +Allows Roo to change between different modes (Code, Architect, etc.) without asking for permission. This primarily affects the AI's behavior rather than system access. Auto-approval also covers switching between modes and creating new modes when this permission is enabled. ::: ### Subtasks @@ -306,29 +323,39 @@ Enables Roo to create and complete subtasks automatically. This relates to workf **Risk level:** High -This setting allows terminal command execution with controls. While risky, the whitelist feature limits what commands can run. Important security features: - -- Whitelist specific command prefixes (recommended) -- Never use * wildcard in production or with sensitive data -- Consider security implications of each allowed command -- Always verify commands that interact with external systems - -**Interface elements:** -- Text field to enter command prefixes -- "Add" button to add new prefixes -- Clickable command buttons with X to remove them - -**Common whitelist examples:** -- `git` - Version control operations -- `npm run` - Run package.json scripts -- `python -m pytest` - Run Python tests -- `cargo test` - Run Rust tests -- `go test` - Run Go tests -- `docker ps` - List Docker containers -- `ls` - List directory contents -- `cat` - Display file contents - -**Security tip:** Be specific with prefixes. Instead of allowing all `python` commands, limit to `python -m pytest` for test execution only. +This setting allows terminal command execution with controls. Use an allowlist and a denylist together for defense-in-depth. + +- Precedence: Deny rules take precedence when their matching prefix is equally or more specific than the allow match (longest-prefix wins). +- High-risk commands to deny by default: + - Unix/macOS: rm, sudo, dd, mkfs, diskutil eraseDisk, shutdown, reboot, chmod -R, chown -R, kill -9, curl | sh, wget | sh + - Git/Package: git push, npm publish, yarn publish, pnpm publish + - Windows/PowerShell: Remove-Item, Format-Volume, Stop-Process, shutdown, Set-ExecutionPolicy +- Production template: + - Deny all with "*" then allow specific safe prefixes like "git", "npm run", "echo". +- Dangerous substitution guard: Even allowed prefixes won’t auto-approve if the command contains dangerous parameter or process substitutions (e.g., `${var@P}`, subshells inserted into here-strings, zsh process substitution `=(...)`, zsh glob qualifiers with `e:...:`). + +Configuration +- UI (recommended): Settings → Auto‑Approve → Execute → use "Allowed Commands" and "Denied Commands" editors to add/remove prefixes. +- Settings JSON (alternative): +```json +{ + "roo-cline.allowedCommands": ["git", "npm run", "echo"], + "roo-cline.deniedCommands": ["git push", "npm publish", "rm", "sudo", "*"] +} +``` +With both lists defined, the longest‑prefix rule applies; if deny is equally or more specific, it wins. + +Examples of safe allow prefixes: +- `git` +- `npm run` +- `python -m pytest` +- `cargo test` +- `go test` +- `docker ps` +- `ls` +- `cat` + +Security tip: Be specific with prefixes. Instead of allowing all `python` commands, limit to `python -m pytest` for test execution only. ::: ### Follow-Up Questions @@ -340,15 +367,16 @@ This setting allows terminal command execution with controls. While risky, the w **Description:** Automatically selects the first AI-suggested answer for a follow-up question after a configurable timeout. This speeds up your workflow by letting Roo proceed without manual intervention. -**Visual countdown:** When enabled, a countdown timer appears on the first suggestion button, showing the remaining time before auto-selection. The timer is displayed as a circular progress indicator that depletes as time passes. +**Timeout slider:** Use the slider to set the wait time from 1 to 300 seconds (Default: 60 seconds) -**Timeout slider:** Use the slider to set the wait time from 1 to 300 seconds (Default: 60s). +**How it works:** +- After the configured timeout, the first suggestion is automatically selected +- Any user action (choosing a different suggestion, editing, or typing your own response) cancels auto-selection -**Override options:** You can cancel the auto-selection at any time by: +**Override options:** You can cancel auto-selection at any time by: - Clicking a different suggestion - Editing any suggestion - Typing your own response -- Clicking the timer to pause it **Risk level:** Low diff --git a/docs/features/browser-use.mdx b/docs/features/browser-use.mdx index 59eb7feb..d72201a2 100644 --- a/docs/features/browser-use.mdx +++ b/docs/features/browser-use.mdx @@ -18,7 +18,7 @@ Roo Code provides sophisticated browser automation capabilities that let you int
+
+ +
+ --- ## What are Code Actions? @@ -62,6 +80,8 @@ The **Add to Context** action is listed first in the Code Actions menu so you ca This helps Roo understand the exact context of your code within the project, allowing it to provide more relevant and accurate assistance. +Tip: Use macOS Cmd+K Cmd+A or Windows/Linux Ctrl+K Ctrl+A to add the selection to context quickly. See [Keyboard Shortcuts](/features/keyboard-shortcuts). + **Example Chat Input:** ``` diff --git a/docs/features/codebase-indexing.mdx b/docs/features/codebase-indexing.mdx index d6fd0c2c..a49bb1dc 100644 --- a/docs/features/codebase-indexing.mdx +++ b/docs/features/codebase-indexing.mdx @@ -81,12 +81,16 @@ Before enabling codebase indexing, you'll need two components: Using Docker: ```bash -docker run -p 6333:6333 qdrant/qdrant +docker run -d \ + --name qdrant \ + --restart unless-stopped \ + -p 6333:6333 \ + -v qdrant_data:/qdrant/storage \ + qdrant/qdrant ``` Using Docker Compose: ```yaml -version: '3.8' services: qdrant: image: qdrant/qdrant @@ -139,6 +143,8 @@ The color of the icon indicates the state: - 🔴 **Red**: **Error**. An issue has occurred (e.g., failed to connect to Qdrant or the embedding provider). See the Troubleshooting section for help. - ⚪ **Gray**: **Standby**. The indexer is waiting for configuration or has been disabled. +**Multi-Folder Workspaces**: In multi-folder workspaces, each folder maintains its own indexing status and configuration. The status icon reflects the combined state of all workspace folders. + ### The Configuration Popover Clicking the status icon opens the main configuration popover. Here, you can view the detailed status and manage all settings. @@ -239,6 +245,7 @@ The indexer respects your project's ignore patterns: - **Smart Updates**: Only reprocesses modified files - **Branch Aware**: Automatically handles Git branch switches - **Hash-based Caching**: Avoids reprocessing unchanged content +- **Multi-Folder Workspaces**: Each folder in a multi-folder workspace maintains its own index with separate settings and status --- @@ -279,6 +286,15 @@ Use natural language descriptions: - Ensure the key has necessary permissions - For Ollama, verify the service is running +### API Key Format Errors (“ByteString conversion”) + +- Symptom: Error mentions "ByteString conversion" during indexing or when saving settings +- Likely cause: Your embedding provider API key contains invalid/special characters or hidden whitespace +- Fix: + - Regenerate a fresh API key from your provider dashboard + - Paste the key again, ensuring no leading/trailing spaces or hidden characters + - Roo will display a clear validation message if the key is invalid + ### Model Issues **"Model Not Found"** @@ -336,7 +352,6 @@ The tool provides: ## Current Limitations - **File Size**: 1MB maximum per file -- **Single Workspace**: One workspace indexed at a time - **External Dependencies**: Requires embedding provider + Qdrant - **Language Support**: Best results with Tree-sitter supported languages diff --git a/docs/features/concurrent-file-reads.md b/docs/features/concurrent-file-reads.md index bb8d23b6..9e7f68bb 100644 --- a/docs/features/concurrent-file-reads.md +++ b/docs/features/concurrent-file-reads.md @@ -72,3 +72,7 @@ You can configure the Multi-File Read feature by clicking the + + +
+ +:::tip Quick Start +Type `/` in chat to select a command. To create or manage commands, open Settings > Slash Commands. You can still store commands in `.roo/commands/` (project) or `~/.roo/commands/` (global). +::: + +--- + +## Overview + +Slash commands let you create reusable prompts and workflows that can be triggered instantly. Turn complex multi-step processes into single commands, standardize team practices, and automate repetitive tasks with simple markdown files. + +Slash commands menu showing available commands + +**Key Benefits:** +- **Workflow Automation**: Turn complex multi-step processes into single commands +- **Team Standardization**: Share commands across your team for consistent practices +- **Context Preservation**: Include project-specific context in every command +- **Quick Access**: Fuzzy search and autocomplete for instant command discovery + +--- + +## Creating Custom Commands + +Custom commands extend Roo Code's functionality by adding markdown files to specific directories: + +- **Project-specific**: `.roo/commands/` in your workspace root +- **Global**: `~/.roo/commands/` in your home directory + +The filename becomes the command name. For example: +- `review.md` → `/review` +- `test-api.md` → `/test-api` +- `deploy-check.md` → `/deploy-check` + +:::info Command Name Processing +When creating commands in Settings > Slash Commands, command names are automatically processed: +- Converted to lowercase +- Spaces replaced with dashes +- Special characters removed (except dashes) +- Multiple consecutive dashes replaced with single dash +- Leading/trailing dashes removed + +Example: "My Cool Command!" becomes `my-cool-command` +::: + +**Basic Command Format** + +Create a simple command by adding a markdown file: + +```markdown +# review.md +Please review this code for: +- Performance issues +- Security vulnerabilities +- Code style violations +- Potential bugs +``` + +**Advanced Command with Frontmatter** + +Add metadata using frontmatter for enhanced functionality: + +```yaml +--- +description: Comprehensive code review focusing on security and performance +argument-hint: +--- + +# Security-First Code Review + +Please perform a thorough security review of the selected code: + +1. **Authentication & Authorization** + - Check for proper access controls + - Verify token validation + - Review permission checks + +2. **Input Validation** + - Identify potential injection points + - Check for proper sanitization + - Review data type validation + +3. **Security Best Practices** + - Look for hardcoded secrets + - Check for secure communication + - Review error handling for information leakage +``` + +**Frontmatter Fields:** +- **`description`**: Appears in the command menu to help users understand the command's purpose +- **`argument-hint`**: (Optional) Provides a hint about expected arguments when using the command. See [Argument Hints](#argument-hints) for detailed information + +--- + +## Command Management + +Create and maintain commands from Settings. + +1. Click the gear icon in Roo Code and open Settings +2. Go to the Slash Commands tab +3. Click "New Command", name it, and choose location (Project or Global) +4. The command file opens with starter template content + +Settings > Slash Commands tab for creating and managing commands + +--- + +## Using Slash Commands + +Type `/` in the chat to open the selection-only command menu. Use the gear icon to open Settings > Slash Commands for creating and editing commands. +Slash command popover with gear icon that opens Settings > Slash Commands + +1. Selection-only: Pick from existing commands; creation and editing live in Settings +2. Autocomplete: Start typing to filter commands (e.g., `/sam` shows `sample-command-name`) +3. Description Preview: See command descriptions in the menu +4. Command Priority: Project commands override global commands with the same name + +--- + +## Argument Hints + +Argument hints provide instant help for slash commands, showing you what kind of information to provide when a command expects additional input. + +When you type `/` to bring up the command menu, commands that expect arguments will display a light gray hint next to them. This hint tells you what kind of argument the command is expecting. + +For example: +- `/mode ` - The hint `` indicates you should provide a mode name like `code` or `debug` +- `/api-endpoint ` - Shows you need both an endpoint name and HTTP method + +After selecting the command, it will be inserted into the chat input followed by a space. The hint is not inserted; it is only a visual guide to help you know what to type next. You must then manually type the argument after the command. + +**Adding Argument Hints to Custom Commands** + +You can add argument hints to your custom commands using the `argument-hint` field in the frontmatter: + +```yaml +--- +description: Generate a new REST API endpoint with best practices +argument-hint: +--- +``` + +This will display as `/api-endpoint ` in the command menu. + +**Best Practices for Argument Hints:** +- **Be Specific**: Use descriptive placeholders like `` instead of generic ones like `` +- **Show Multiple Arguments**: If your command needs multiple inputs, show them all: ` ` +- **Use Consistent Format**: Always wrap placeholders in angle brackets: `` +- **Keep It Concise**: Hints should be brief and clear + +**Common Questions:** + +- **"What if I don't provide the argument?"** The command might not work as expected, or it might prompt you for more information. The hint is there to help you get it right the first time. +- **"Do all commands have hints?"** No, only commands that are designed to take arguments will have hints. Commands that work without additional input won't show hints. +- **"Can I use a command without replacing the hint?"** The hint text (like ``) needs to be replaced with actual values. Leaving the hint text will likely cause the command to fail or behave unexpectedly. + +--- + +## Examples and Use Cases + +**Development Workflows** + +**API Endpoint Generator** +```yaml +--- +description: Generate a new REST API endpoint with best practices +argument-hint: +--- + +Create a new REST API endpoint with the following specifications: +- Proper error handling +- Input validation +- Authentication middleware +- OpenAPI documentation +- Unit tests +- Integration tests + +Follow our project's API conventions and patterns. +``` + +**Database Migration Helper** +```yaml +--- +description: Create a database migration with rollback support +--- + +Generate a database migration that: +1. Includes both up and down migrations +2. Has proper transaction handling +3. Includes data validation +4. Provides clear migration descriptions +5. Follows our naming conventions + +Remember to check for dependent migrations and data integrity. +``` + +**Code Quality** + +**Performance Analyzer** +```yaml +--- +description: Analyze code for performance bottlenecks +--- + +Analyze the selected code for performance issues: +- Identify O(n²) or worse algorithms +- Find unnecessary database queries +- Detect memory leaks +- Suggest caching opportunities +- Recommend async/await optimizations +- Check for proper resource cleanup +``` + +**Refactoring Assistant** +```yaml +--- +description: Suggest refactoring improvements for cleaner code +--- + +Review this code and suggest refactoring improvements: +- Extract repeated code into functions +- Improve variable and function names +- Simplify complex conditionals +- Apply SOLID principles +- Reduce coupling between components +- Improve testability +``` + +**Documentation** + +**README Generator** +```yaml +--- +description: Create a comprehensive README for the current project +--- + +Generate a README.md file that includes: +1. Project title and description +2. Installation instructions +3. Usage examples +4. API documentation +5. Configuration options +6. Contributing guidelines +7. License information + +Base it on the current project structure and existing code. +``` + +**API Documentation** +```yaml +--- +description: Generate OpenAPI/Swagger documentation +--- + +Create OpenAPI 3.0 documentation for the API endpoints in this file: +- Include all HTTP methods +- Document request/response schemas +- Add example requests and responses +- Include authentication requirements +- Document error responses +- Add descriptive summaries +``` + +**Testing** + +**Test Generator** +```yaml +--- +description: Generate comprehensive test suites +--- + +Create tests for the selected code: +1. Unit tests for all public methods +2. Edge case testing +3. Error handling tests +4. Mock external dependencies +5. Performance benchmarks +6. Integration tests where applicable + +Use our project's testing framework and conventions. +``` + +**Test Coverage Analyzer** +```yaml +--- +description: Identify missing test coverage +--- + +Analyze the current test coverage and: +- Identify untested code paths +- Suggest additional test cases +- Find edge cases not covered +- Recommend integration tests +- Check for proper error testing +``` + +--- + +## Best Practices + +**Command Naming:** +- Use descriptive, action-oriented names +- Keep names concise but clear +- Use hyphens for multi-word commands +- Avoid generic names like `help` or `test` +- Note: Names are automatically slugified (lowercase, special characters removed) +- The `.md` extension is automatically added/removed as needed + +**Command Content:** +- Start with a clear directive +- Use structured formats (lists, sections) +- Include specific requirements +- Reference project conventions +- Keep commands focused on a single task + +**Organization:** +- Group related commands in subdirectories +- Use consistent naming patterns +- Document complex commands +- Version control your commands +- Share team commands in the project repository + +--- + +## Built-in Commands + +Roo Code includes powerful built-in commands that provide specialized functionality: + +### The `init` Command + +The `/init` command is a comprehensive AI assistant setup tool that analyzes your codebase and creates tailored configuration files. This powerful command: + +**Performs Multi-Phase Analysis:** +- **Discovery Phase**: Scans your project structure and identifies key technologies +- **Project Identification**: Determines project type, frameworks, and dependencies +- **Architecture Mapping**: Analyzes code organization and patterns +- **Build/Test Detection**: Identifies build tools, test frameworks, and scripts +- **Code Style Extraction**: Captures coding conventions and patterns + +**Creates AI Assistant Configuration:** +- Generates mode-specific `AGENTS.md` files in `.roo/rules-*` directories +- Creates detailed rules for different AI assistant modes (Code, Architect, Debug, etc.) +- Produces concise, high-signal documentation following the "non-obvious-only" principle +- Supports multiple AI assistant formats (Claude, Cursor, Copilot) + +**Manages Project Setup:** +- Creates comprehensive todo lists for project initialization +- Identifies security and performance considerations +- Documents project-specific conventions and patterns +- Enforces quality criteria for generated documentation + +**Usage:** +Simply type `/init` in the chat to analyze your codebase and set up AI assistant configuration files tailored to your project. + +:::tip +The `init` command is especially useful when starting work on a new project or when you want to establish consistent AI assistant behavior across your team. +::: + +## Troubleshooting + +**Commands Not Appearing:** +- **Check file location**: Ensure custom command files are in `.roo/commands/` or `~/.roo/commands/` +- **Verify file extension**: Custom commands must be `.md` files +- **Reload window**: Sometimes VS Code needs to be reloaded to detect new command files + +**Command Not Found:** +When a slash command isn't found, the LLM will see an error message indicating where commands should be located. This helps guide you to create the command in the right place. + +**Command Template Content:** +New commands created through the UI receive template content to help you get started. This template includes basic structure and examples that you can customize. + +**Command Conflicts:** +- Project commands (`.roo/commands/`) override global commands (`~/.roo/commands/`) with the same name +- Built-in commands cannot be overridden +- When creating duplicate names through the UI, numbers are appended (e.g., `new-command-1`, `new-command-2`) + +**File System Errors:** +- **Permission Issues**: Ensure you have write permissions to the `.roo/commands/` directory +- **Directory Creation**: The system will attempt to create the commands directory if it doesn't exist +- **Symbolic Links**: Command directories support symbolic links for sharing commands across projects + +:::info About Mode Commands +The slash menu includes mode-switching commands (like `/code`, `/ask`) that fundamentally change the AI's operational mode - they don't just inject text but switch the entire AI context. Custom modes you create also appear as slash commands (e.g., a mode with slug `reviewer` becomes `/reviewer`). These mode commands cannot be overridden by custom workflow commands. Learn more in [Using Modes](/basic-usage/using-modes) and [Custom Modes](/features/custom-modes). +::: + +--- + +## See Also + +- [Using Modes](/basic-usage/using-modes) - Learn about Roo Code's different operational modes +- [Custom Instructions](/features/custom-instructions) - Set persistent instructions for Roo Code +- [Keyboard Shortcuts](/features/keyboard-shortcuts) - Quick access to commands +- [Task Management](/features/task-todo-list) - Manage complex workflows \ No newline at end of file diff --git a/docs/features/task-todo-list.mdx b/docs/features/task-todo-list.mdx index 4378993e..4c502308 100644 --- a/docs/features/task-todo-list.mdx +++ b/docs/features/task-todo-list.mdx @@ -73,26 +73,54 @@ Todo lists appear in multiple places: 2. **Interactive Tool Block**: An interface within the chat via the `UpdateTodoListToolBlock` component that allows you to: - View all todo items with their current status - - Edit item descriptions when Roo presents updates for approval - - Stage changes using the "Edit" button (applied only when Roo next updates the list) + - Click the "Edit" button to enter edit mode where you can: + - Modify task descriptions directly + - Change task status using dropdown selectors + - Delete tasks with the × button + - Add new tasks with the "+ Add Todo" button + - Stage changes that are applied when Roo next updates the list - View the progression as Roo manages the todo workflow Interactive todo list tool block in chat -3. **Environment Details**: Todo lists appear as a "REMINDERS" table in the environment_details section, giving the AI persistent access to current todo state +3. **Environment Details**: Todo lists appear as a "REMINDERS" table in the environment_details section, giving the AI persistent access to current todo state. Note: If the `todoListEnabled` setting is disabled, the reminders section will not appear in environment details. + +### Expanded Todo View + +When you click on the collapsed todo summary in the task header, a floating panel appears with enhanced functionality: +- **Backdrop overlay**: Click outside the panel to close it +- **Full todo list display**: Shows all todos with their current status indicators +- **Auto-scroll**: Automatically scrolls to the current in-progress task +- **Smooth animations**: Collapse and expand transitions for better user experience +- **Persistent state**: Maintains your scroll position when reopening ### Understanding Task Status Roo Code automatically manages status progression based on task progress. Each todo item has one of three states: -**Pending**: Shows an empty checkbox, indicating the task hasn't been started yet -![Pending todo item with empty checkbox](../../static/img/task-todo-list/task-todo-list-4.png) +**Pending**: Shows an empty circle with a border, indicating the task hasn't been started yet +![Pending todo item with empty circle](../../static/img/task-todo-list/task-todo-list-4.png) + +**In Progress**: Displays a filled yellow circle, showing the task is currently being worked on +![In progress todo item with yellow circle](../../static/img/task-todo-list/task-todo-list-5.png) + +**Completed**: Features a filled green circle, confirming the task is fully finished +![Completed todo item with green circle](../../static/img/task-todo-list/task-todo-list-6.png) + +### Editing Todo Lists During Approval -**In Progress**: Displays a yellow dot indicator, showing the task is currently being worked on -![In progress todo item with yellow dot indicator](../../static/img/task-todo-list/task-todo-list-5.png) +When Roo presents a todo list update for approval, you have full control through the Edit mode: -**Completed**: Features a green checkmark, confirming the task is fully finished -![Completed todo item with green checkmark](../../static/img/task-todo-list/task-todo-list-6.png) +1. **Click "Edit"** to enter edit mode +2. **Make your changes**: + - Edit task descriptions inline + - Change status using the dropdown menu (Pending/In Progress/Completed) + - Remove tasks with the × button + - Add new tasks with the "+ Add Todo" button at the bottom +3. **Save or Cancel** your changes +4. **Approve or Reject** the overall update + +Note: Your edits are staged and only applied when Roo processes the next todo list update. This maintains Roo's control over the workflow while giving you input on task details. --- @@ -109,7 +137,16 @@ This is an architectural design decision where Roo Code maintains authority over --- -## Auto-Approving Todo List Updates +## Configuration + +### Disabling Todo Lists + +You can disable todo lists entirely through the `todoListEnabled` setting. When disabled: +- Roo will not create todo lists for any tasks +- The REMINDERS section will not appear in environment details +- Existing todo lists will remain visible but won't be updated + +### Auto-Approving Todo List Updates You can enable automatic approval of todo list updates to reduce interruptions during long workflows. When enabled, Roo will automatically update task progress without requiring confirmation for each change. diff --git a/docs/getting-started/connecting-api-provider.md b/docs/getting-started/connecting-api-provider.md index 29905950..153521eb 100644 --- a/docs/getting-started/connecting-api-provider.md +++ b/docs/getting-started/connecting-api-provider.md @@ -15,7 +15,7 @@ import KangarooIcon from '@site/src/components/KangarooIcon'; # Connecting Your First AI Provider -Roo Code requires an API key from an AI model provider to function. We recommend these options for accessing the powerful **Claude 3.7 Sonnet** model: +Roo Code requires an API key from an AI model provider to function. We recommend these options for accessing the powerful **Claude Sonnet 4.5** model: - **OpenRouter (Recommended):** Provides access to multiple AI models through a single API key. Ideal for getting started quickly with minimal setup. [View pricing](https://openrouter.ai/models?order=pricing-low-to-high). - **Anthropic:** Direct access to Claude models. Requires API access approval and may have [rate limits depending on your tier](https://docs.anthropic.com/en/api/rate-limits#requirements-to-advance-tier). See [Anthropic's pricing page](https://www.anthropic.com/pricing#anthropic-api) for details. @@ -86,11 +86,11 @@ Once you have your API key: 2. In the welcome screen, select your API provider from the dropdown 3. Paste your API key into the appropriate field 4. Select your model: - - For **OpenRouter**: select `anthropic/claude-3.7-sonnet` ([model details](https://openrouter.ai/anthropic/claude-3.7-sonnet)) - - For **Anthropic**: select `claude-3-7-sonnet-20250219` ([model details](https://www.anthropic.com/pricing#anthropic-api)) + - For **OpenRouter**: select `anthropic/claude-sonnet-4-5` ([model details](https://openrouter.ai/anthropic/claude-sonnet-4-5)) + - For **Anthropic**: select `claude-sonnet-4-5` ([model details](https://www.anthropic.com/pricing#anthropic-api)) :::info Model Selection Advice -We strongly recommend **Claude 3.7 Sonnet** for the best experience—it generally "just works" out of the box. Roo Code has been extensively optimized for this model's capabilities and instruction-following behavior. +We strongly recommend **Claude Sonnet 4.5** for the best experience—it generally "just works" out of the box. Roo Code has been extensively optimized for this model's capabilities and instruction-following behavior. Selecting alternative models is an advanced feature that introduces complexity. Different models vary significantly in how they follow tool instructions, parse formats, and maintain context through multi-step operations. If you do experiment with other models, choose ones specifically designed for structured reasoning and tool use. ::: diff --git a/docs/index.md b/docs/index.md index 89d75e54..b351a89e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,71 +14,61 @@ image: /img/social-share.jpg # Roo Code Docs -Roo Code (formerly Roo Cline) is an AI-powered autonomous coding agent that lives in your editor. It helps you code faster and smarter, whether you're starting a new project, maintaining existing code, or learning new technologies. +Roo Code unleashes the full power of large language models inside VS Code. No dumbed-down assistants, no hand-holding, no limits. Just raw AI capability applied to your codebase. It costs more to run than the alternatives because it uses frontier models with actual file system access, terminal control, and multi-step workflows. If you want the best AI coding experience available, this is it. ---- - -## What Can Roo Code Do? +## What Can Roo Code Do For YOU? -- **Generate Code** from natural language descriptions -- **Refactor & Debug** existing code -- **Write & Update** documentation -- **Answer Questions** about your codebase -- **Automate** repetitive tasks -- **Create** new files and projects - ---- +- Generate Code from natural language descriptions and specs +- Adapt with Modes: Code, Architect, Ask, Debug, and Custom Modes +- Refactor & Debug existing code +- Write & Update documentation +- Answer Questions about your codebase +- Automate repetitive tasks +- Utilize MCP Servers -## Quick Start +## Getting Started 1. [Install Roo Code](/getting-started/installing) 2. [Connect Your AI Provider](/getting-started/connecting-api-provider) 3. [Try Your First Task](/getting-started/your-first-task) ---- - -## Key Features - -### Multiple Modes -Roo Code adapts to your needs with specialized [modes](/basic-usage/using-modes): -- **Code Mode:** For general-purpose coding tasks -- **Architect Mode:** For planning and technical leadership -- **Ask Mode:** For answering questions and providing information -- **Debug Mode:** For systematic problem diagnosis -- **Orchestrator Mode:** For managing complex tasks and delegating work -- **[Custom Modes](/features/custom-modes):** Create unlimited specialized personas for security auditing, performance optimization, documentation, or any other task - -### Smart Tools -Roo Code comes with powerful [tools](/basic-usage/how-tools-work) that can: -- Read and write files in your project -- Execute commands in your VS Code terminal -- Control a web browser -- Use external tools via [MCP (Model Context Protocol)](/features/mcp/overview) - -MCP extends Roo Code's capabilities by allowing you to add unlimited custom tools. Integrate with external APIs, connect to databases, or create specialized development tools - MCP provides the framework to expand Roo Code's functionality to meet your specific needs. - -### Customization -Make Roo Code work your way with: -- [Custom Instructions](/features/custom-instructions) for personalized behavior -- [Custom Modes](/features/custom-modes) for specialized tasks -- [Local Models](/advanced-usage/local-models) for offline use -- [Auto-Approval Settings](/features/auto-approving-actions) for faster workflows - ---- - -## Resources - -### Documentation -- [Basic Usage Guide](/basic-usage/the-chat-interface) -- [Advanced Features](/features/auto-approving-actions) -- [Frequently Asked Questions](/faq) - -### Community & Socials -- **Discord:** [Join our Discord server](https://discord.gg/roocode) for real-time help and discussions. -- **Reddit:** [Visit our subreddit](https://www.reddit.com/r/RooCode) to share experiences and tips. -- **GitHub:** Report [issues](https://github.com/RooCodeInc/Roo-Code/issues) or request [features](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests?discussions_q=is%3Aopen+category%3A%22Feature+Requests%22+sort%3Atop). -- **X (Twitter):** [Follow @roo_code](https://x.com/roo_code). -- **Bluesky:** [Follow roocode.bsky.social](https://bsky.app/profile/roocode.bsky.social). -- **LinkedIn:** [Follow Roo Code](https://www.linkedin.com/company/roo-code). - -Ready to get started? Click the **Next** button below to begin your journey with Roo Code! +## Tutorial & Feature Videos + + + +

+ More quick tutorial and feature videos... +

+ +## Additional Resources + +- [YouTube Channel](https://youtube.com/@roocodeyt?feature=shared): Watch tutorials and see features in action. +- [Discord Server](https://discord.gg/roocode): Join the community for real-time help and discussion. +- [Reddit Community](https://www.reddit.com/r/RooCode): Share your experiences and see what others are building. +- [GitHub Issues](https://github.com/RooCodeInc/Roo-Code/issues): Report bugs and track development. +- [Feature Requests](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests?discussions_q=is%3Aopen+category%3A%22Feature+Requests%22+sort%3Atop): Have an idea? Share it with the developers. diff --git a/docs/providers/anthropic.md b/docs/providers/anthropic.md index 9b0c3ee7..0f3b7cfd 100644 --- a/docs/providers/anthropic.md +++ b/docs/providers/anthropic.md @@ -32,22 +32,11 @@ Anthropic is an AI safety and research company that builds reliable, interpretab --- -## Supported Models +## Available Models -Roo Code supports the following Anthropic Claude models: +Roo Code supports all Claude models available through Anthropic's API. -* `claude-opus-4-20250514` -* `claude-opus-4-20250514:thinking` (Extended Thinking variant) -* `claude-sonnet-4-20250514` (Recommended) -* `claude-sonnet-4-20250514:thinking` (Extended Thinking variant) -* `claude-3-7-sonnet-20250219` -* `claude-3-7-sonnet-20250219:thinking` (Extended Thinking variant) -* `claude-3-5-sonnet-20241022` -* `claude-3-5-haiku-20241022` -* `claude-3-opus-20240229` -* `claude-3-haiku-20240307` - -See [Anthropic's Model Documentation](https://docs.anthropic.com/en/docs/about-claude/models) for more details on each model's capabilities. +For the complete, up-to-date model list and capabilities, see [Anthropic's model documentation](https://docs.anthropic.com/en/docs/about-claude/models). --- @@ -63,7 +52,7 @@ See [Anthropic's Model Documentation](https://docs.anthropic.com/en/docs/about-c ## Tips and Notes -* **Prompt Caching:** Claude 3 models support [prompt caching](https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching), which can significantly reduce costs and latency for repeated prompts. +* **Prompt Caching:** Claude models support [prompt caching](https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching), which can significantly reduce costs and latency for repeated prompts. * **Context Window:** Claude models have large context windows (200,000 tokens), allowing you to include a significant amount of code and context in your prompts. * **Pricing:** Refer to the [Anthropic Pricing](https://www.anthropic.com/pricing) page for the latest pricing information. * **Rate Limits:** Anthropic has strict rate limits based on [usage tiers](https://docs.anthropic.com/en/api/rate-limits#requirements-to-advance-tier). If you're repeatedly hitting rate limits, consider contacting Anthropic sales or accessing Claude through a different provider like [OpenRouter](/providers/openrouter) or [Requesty](/providers/requesty). diff --git a/docs/providers/baseten.md b/docs/providers/baseten.md new file mode 100644 index 00000000..dec4d7e5 --- /dev/null +++ b/docs/providers/baseten.md @@ -0,0 +1,65 @@ +--- +title: Baseten +sidebar_label: Baseten +description: Learn how to configure and use Baseten's Model APIs with Roo Code. Access frontier open-source models with enterprise-grade performance, reliability, and competitive pricing. +keywords: + - Baseten + - Model APIs + - open-source models + - DeepSeek + - Kimi K2 + - Qwen + - Roo Code + - AI integration + - API key + - enterprise inference +image: /img/social-share.jpg +--- + +# Using Baseten With Roo Code + +Baseten provides on-demand frontier model APIs designed for production applications, not just experimentation. Built on the Baseten Inference Stack, these APIs deliver optimized inference for leading open-source models from OpenAI, DeepSeek, Moonshot AI, and Alibaba Cloud. + +**Website:** [https://www.baseten.co/products/model-apis/](https://www.baseten.co/products/model-apis/) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Go to [Baseten](https://www.baseten.co/) and create an account or sign in. + +2. **Navigate to API Keys:** Access your dashboard and go to the API Keys section at [https://app.baseten.co/settings/api_keys](https://app.baseten.co/settings/api_keys). + +3. **Create a Key:** Generate a new API key. Give it a descriptive name (e.g., "Roo Code"). + +4. **Copy the Key:** Copy the API key immediately and store it securely. + +--- + +## Available Models + +Roo Code supports all models available through Baseten's Model APIs. + +For the complete, up-to-date model list and pricing, see [Baseten's Model APIs page](https://www.baseten.co/products/model-apis/). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. + +2. **Select Provider:** Choose "Baseten" from the "API Provider" dropdown. + +3. **Enter API Key:** Paste your Baseten API key into the "Baseten API Key" field. + +4. **Select Model:** Choose your desired model from the "Model" dropdown. + +:::warning Kimi K2 Thinking Model +To use the `moonshotai/Kimi-K2-Thinking` model, you must enable native tool calling in the Roo Code settings. This setting allows Roo Code to call the model's tools through their native tool processor and is required for this reasoning model to function properly. +::: + +--- + +## Tips and Notes + +- **Pricing:** See the [Baseten Model APIs page](https://www.baseten.co/products/model-apis/) for current pricing information. diff --git a/docs/providers/bedrock.md b/docs/providers/bedrock.md index 691f7bab..bd95ffa8 100644 --- a/docs/providers/bedrock.md +++ b/docs/providers/bedrock.md @@ -47,48 +47,13 @@ You have two main options for configuring AWS credentials: --- -## Supported Models - -Roo Code supports the following models through Bedrock (based on source code): - -* **Amazon:** - * `amazon.nova-pro-v1:0` - * `amazon.nova-pro-latency-optimized-v1:0` - * `amazon.nova-lite-v1:0` - * `amazon.nova-micro-v1:0` - * `amazon.titan-text-lite-v1:0` - * `amazon.titan-text-express-v1:0` - * `amazon.titan-text-embeddings-v1:0` - * `amazon.titan-text-embeddings-v2:0` -* **Anthropic:** - * `anthropic.claude-opus-4-20250514-v1:0` - * `anthropic.claude-sonnet-4-20250514-v1:0` - * `anthropic.claude-3-7-sonnet-20250219-v1:0` - * `anthropic.claude-3-5-sonnet-20241022-v2:0` - * `anthropic.claude-3-5-haiku-20241022-v1:0` - * `anthropic.claude-3-5-sonnet-20240620-v1:0` - * `anthropic.claude-3-opus-20240229-v1:0` - * `anthropic.claude-3-sonnet-20240229-v1:0` - * `anthropic.claude-3-haiku-20240307-v1:0` - * `anthropic.claude-2-1-v1:0` - * `anthropic.claude-2-0-v1:0` - * `anthropic.claude-instant-v1:0` -* **DeepSeek:** - * `deepseek.r1-v1:0` -* **Meta:** - * `meta.llama3-3-70b-instruct-v1:0` - * `meta.llama3-2-90b-instruct-v1:0` - * `meta.llama3-2-11b-instruct-v1:0` - * `meta.llama3-2-3b-instruct-v1:0` - * `meta.llama3-2-1b-instruct-v1:0` - * `meta.llama3-1-405b-instruct-v1:0` - * `meta.llama3-1-70b-instruct-v1:0` - * `meta.llama3-1-70b-instruct-latency-optimized-v1:0` - * `meta.llama3-1-8b-instruct-v1:0` - * `meta.llama3-70b-instruct-v1:0` - * `meta.llama3-8b-instruct-v1:0` - -Refer to the [Amazon Bedrock documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) for the most up-to-date list of available models and their IDs. Make sure to use the *model ID* when configuring Roo Code, not the model name. +## Available Models + +Roo Code supports all foundation models available through Amazon Bedrock. + +For the complete, up-to-date model list with IDs and capabilities, see [AWS Bedrock's supported models documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html). + +**Important:** Use the *model ID* (e.g., `anthropic.claude-sonnet-4-5-20250929-v1:0`) when configuring Roo Code, not the model name. --- @@ -119,7 +84,7 @@ Roo Code supports using the reasoning budget (extended thinking) for Anthropic's To enable the reasoning budget: -1. **Select a supported Claude model** (e.g., `anthropic.claude-3-sonnet-20240229-v1:0`). +1. **Select a supported Claude model** (e.g., `anthropic.claude-opus-4.1-20250514-v1:0`, `anthropic.claude-3-sonnet-20240229-v1:0`). 2. **Enable Reasoning Mode** in the model settings. 3. **Adjust the thinking budget** to control how much the model should "think". diff --git a/docs/providers/cerebras.md b/docs/providers/cerebras.md new file mode 100644 index 00000000..f1587891 --- /dev/null +++ b/docs/providers/cerebras.md @@ -0,0 +1,55 @@ +--- +sidebar_label: Cerebras +description: Configure Cerebras AI's ultra-fast inference models in Roo Code. Access free and paid tiers with speeds up to 2600 tokens/second for coding and reasoning tasks. +keywords: + - cerebras + - cerebras ai + - roo code + - api provider + - fast inference + - qwen coder + - llama models + - free tier + - high speed ai +image: /img/social-share.jpg +--- + +# Using Cerebras With Roo Code + +Cerebras AI specializes in extremely fast inference speeds (up to 2600 tokens/second) with competitive pricing, including a free tier. Their models are optimized for coding, general intelligence, and reasoning tasks. + +**Website:** [https://cloud.cerebras.ai/](https://cloud.cerebras.ai/) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Go to [Cerebras Cloud](https://cloud.cerebras.ai?utm_source=roocode). Create an account or sign in. +2. **Navigate to API Keys:** Access the API keys section in your dashboard. +3. **Create a Key:** Generate a new API key. Give it a descriptive name (e.g., "Roo Code"). +4. **Copy the Key:** **Important:** Copy the API key immediately. Store it securely. + +--- + + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Cerebras" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your Cerebras API key into the "Cerebras API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. + +--- + +## Available Models + +Roo Code automatically fetches all available models from Cerebras AI's API. + +For the complete, up-to-date model list and pricing, see [Cerebras Cloud](https://cloud.cerebras.ai?utm_source=roocode). + +--- + +## Tips and Notes + +* **Performance:** Cerebras specializes in extremely fast inference speeds, making it ideal for real-time coding assistance. +* **Pricing:** Check the [Cerebras Cloud](https://cloud.cerebras.ai?utm_source=roocode) dashboard for current pricing and free tier details. \ No newline at end of file diff --git a/docs/providers/chutes.md b/docs/providers/chutes.md index 20c8e7bb..826826b7 100644 --- a/docs/providers/chutes.md +++ b/docs/providers/chutes.md @@ -27,11 +27,11 @@ To use Chutes AI with Roo Code, obtain an API key from the [Chutes AI platform]( --- -## Supported Models +## Available Models -Roo Code will attempt to fetch the list of available models from the Chutes AI API. The specific models available will depend on Chutes AI's current offerings. +Roo Code automatically fetches all available models from Chutes AI's API. -Always refer to the official Chutes AI documentation or your dashboard for the most up-to-date list of supported models. +For the complete, up-to-date model list, see [Chutes AI's platform](https://chutes.ai/) or your account dashboard. --- diff --git a/docs/providers/claude-code.md b/docs/providers/claude-code.md index e92392db..072eeb89 100644 --- a/docs/providers/claude-code.md +++ b/docs/providers/claude-code.md @@ -42,21 +42,6 @@ If this environment variable is set on your system, the `claude` tool may use it --- -## Key Features -- **Direct CLI Access**: Uses Anthropic's official Claude CLI tool for model interactions. -- **Advanced Reasoning**: Full support for Claude's thinking mode and reasoning capabilities. -- **Cost Transparency**: Shows exact usage costs as reported by the CLI. -- **Flexible Configuration**: Works with your existing Claude CLI setup. - ---- - -## Why Use This Provider - -- **No API Keys**: Uses your existing Claude CLI authentication. -- **Cost Benefits**: Leverage CLI subscription rates and transparent cost reporting. -- **Latest Features**: Access new Claude capabilities as they're released in the CLI. -- **Advanced Reasoning**: Full support for Claude's thinking modes. - ## How it Works The Claude Code provider works by: @@ -72,8 +57,6 @@ The provider integrates with Roo Code's interface, giving you the same experienc ## Configuration -You only need to configure one optional setting: - ### **Claude Code Path** - **Setting**: `claudeCodePath` - **Description**: Path to your Claude CLI executable. @@ -83,23 +66,38 @@ You only need to configure one optional setting: **Example custom paths:** - macOS/Linux: `/usr/local/bin/claude` or `~/bin/claude` ---- +### **Max Output Tokens** +- **Default**: 16,384 tokens (16k) - increased from previous 8k default +- **Environment Variable**: `CLAUDE_CODE_MAX_OUTPUT_TOKENS` +- **Description**: Controls the maximum number of tokens Claude can generate in a single response. +- **When to change**: If you need longer responses or want to limit output length for cost/performance reasons. -## Supported Models +**Example configuration:** +```bash +export CLAUDE_CODE_MAX_OUTPUT_TOKENS=32768 # Set to 32k tokens +``` -The Claude Code provider supports these Claude models: +--- -- **Claude Sonnet 4** (latest, recommended) -- **Claude Opus 4** (most capable) -- **Claude 3.7 Sonnet** -- **Claude 3.5 Sonnet** -- **Claude 3.5 Haiku** (fast responses) +## Available Models -The specific models available depend on your Claude CLI subscription and plan. +The Claude Code provider supports all Claude models available through the official CLI. +Model availability depends on your Claude CLI subscription and plan. See [Anthropic's CLI documentation](https://docs.anthropic.com/en/docs/claude-code/setup) for details. --- +## Output Token Limits + +The Claude Code provider now defaults to 16,384 (16k) max output tokens, allowing for longer and more complete responses. This is particularly useful for: +- Generating large code files +- Detailed explanations and documentation +- Complex refactoring operations +- Multi-file changes + +You can customize this limit using the `CLAUDE_CODE_MAX_OUTPUT_TOKENS` environment variable if you need different limits for your use case. + +--- ## Common Questions diff --git a/docs/providers/deepinfra.md b/docs/providers/deepinfra.md new file mode 100644 index 00000000..e5111a6c --- /dev/null +++ b/docs/providers/deepinfra.md @@ -0,0 +1,47 @@ +--- +sidebar_label: DeepInfra +description: Configure DeepInfra's high-performance AI models in Roo Code. Access Qwen Coder, Llama, and other open-source models with prompt caching and vision capabilities. +keywords: + - deepinfra + - deep infra + - roo code + - api provider + - qwen coder + - llama models + - prompt caching + - vision models + - open source ai +image: /img/social-share.jpg +--- + +# Using DeepInfra With Roo Code + +DeepInfra provides cost-effective access to high-performance open-source models with features like prompt caching, vision support, and specialized coding models. Their infrastructure offers low latency and automatic load balancing across global edge locations. + +**Website:** [https://deepinfra.com/](https://deepinfra.com/) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Go to [DeepInfra](https://deepinfra.com/). Create an account or sign in. +2. **Navigate to API Keys:** Access the API keys section in your dashboard. +3. **Create a Key:** Generate a new API key. Give it a descriptive name (e.g., "Roo Code"). +4. **Copy the Key:** **Important:** Copy the API key immediately. Store it securely. + +--- + +## Available Models + +Roo Code automatically fetches all available models from DeepInfra's API. + +For the complete, up-to-date model catalog, see [DeepInfra's models page](https://deepinfra.com/models). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "DeepInfra" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your DeepInfra API key into the "DeepInfra API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. \ No newline at end of file diff --git a/docs/providers/deepseek.md b/docs/providers/deepseek.md index 02635abc..cdf5ea68 100644 --- a/docs/providers/deepseek.md +++ b/docs/providers/deepseek.md @@ -30,13 +30,11 @@ Roo Code supports accessing models through the DeepSeek API, including `deepseek --- -## Supported Models +## Available Models -Roo Code supports the following DeepSeek models: +Roo Code supports all models available through the DeepSeek API. -* `deepseek-chat` (Recommended for coding tasks) -* `deepseek-reasoner` (Recommended for reasoning tasks) -* `deepseek-r1` +For the complete, up-to-date model list, see [DeepSeek's API documentation](https://api-docs.deepseek.com/quick_start/pricing). --- diff --git a/docs/providers/doubao.md b/docs/providers/doubao.md new file mode 100644 index 00000000..c91b9ae6 --- /dev/null +++ b/docs/providers/doubao.md @@ -0,0 +1,48 @@ +--- +sidebar_label: Doubao +description: Configure ByteDance's Doubao AI models in Roo Code. Access competitive language models with full integration and internationalized support. +keywords: + - doubao + - bytedance + - bytedance ai + - roo code + - api provider + - doubao models + - chinese ai + - language models +image: /img/social-share.jpg +--- + +# Using Doubao With Roo Code + +Doubao is ByteDance's Chinese AI service, offering competitive language models for various development tasks. The provider includes full API integration with embedding support and internationalized prompts. + +**Website:** [https://www.volcengine.com/](https://www.volcengine.com/) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Visit the [Volcano Engine Console](https://console.volcengine.com/). Create an account or sign in. +2. **Navigate to Model Service:** Access the AI model service section in the console. +3. **Create API Key:** Generate a new API key for the Doubao service. +4. **Copy the Key:** **Important:** Copy the API key immediately and store it securely. You may not be able to view it again. + +--- + +## Available Models + +Roo Code supports all Doubao models available through ByteDance's Volcano Engine API. + +For the complete, up-to-date model list, see [Volcano Engine's AI model service](https://www.volcengine.com/). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Doubao" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your Doubao API key into the "Doubao API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. + +**Note:** Doubao uses the base URL `https://ark.cn-beijing.volces.com/api/v3` and servers are located in Beijing, China. \ No newline at end of file diff --git a/docs/providers/featherless.md b/docs/providers/featherless.md new file mode 100644 index 00000000..53830571 --- /dev/null +++ b/docs/providers/featherless.md @@ -0,0 +1,48 @@ +--- +sidebar_label: Featherless AI +description: Configure Featherless AI's open-source models in Roo Code. Access free DeepSeek, Qwen, and other high-performance models through an OpenAI-compatible API. +keywords: + - featherless + - featherless ai + - roo code + - api provider + - deepseek + - qwen + - free models + - open source ai + - reasoning models + - kimi k2 +image: /img/social-share.jpg +--- + +# Using Featherless AI With Roo Code + +Featherless AI provides access to high-performance open-source models including DeepSeek, Qwen, and other large language models. All models are currently free to use, making it an excellent choice for budget-conscious developers. + +**Website:** [https://featherless.ai](https://featherless.ai) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Go to [Featherless AI](https://featherless.ai). Create an account or sign in. +2. **Navigate to API Keys:** Access the [API keys page](https://featherless.ai/account/api-keys) in your account. +3. **Create a Key:** Generate a new API key. Give it a descriptive name (e.g., "Roo Code"). +4. **Copy the Key:** **Important:** Copy the API key immediately. It will only be shown once. Store it securely. + +--- + +## Available Models + +Roo Code automatically fetches all available models from Featherless AI's API. + +For the complete, up-to-date model list, see [Featherless AI](https://featherless.ai). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Featherless AI" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your Featherless API key into the "Featherless API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. \ No newline at end of file diff --git a/docs/providers/fireworks.md b/docs/providers/fireworks.md new file mode 100644 index 00000000..fa35dc60 --- /dev/null +++ b/docs/providers/fireworks.md @@ -0,0 +1,60 @@ +--- +sidebar_label: Fireworks AI +description: Use Fireworks AI with Roo Code to access state-of-the-art open-source and proprietary AI models like Kimi, Qwen, and DeepSeek on a high-performance platform with large context windows up to 256K tokens. +keywords: + - fireworks ai + - fireworks + - kimi models + - kimi k2 + - qwen models + - qwen3 + - deepseek models + - deepseek + - roo code + - api provider + - ai models + - language models + - llm api + - open source models + - serverless models + - openai compatible +image: /img/social-share.jpg +--- + +# Using Fireworks AI With Roo Code + +Fireworks AI is a high-performance platform for running AI models, offering fast, cost-effective access to a wide range of state-of-the-art open-source language models. Built for speed and reliability, Fireworks AI provides serverless deployment options with OpenAI-compatible APIs and context windows up to 256,000 tokens. + +**Website:** [https://fireworks.ai/](https://fireworks.ai/) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Go to [Fireworks AI](https://fireworks.ai/) and create an account or sign in. +2. **Navigate to API Keys:** After logging in, go to the [API Keys page](https://app.fireworks.ai/settings/users/api-keys) in the account settings. +3. **Create a Key:** Click "Create API key" and give your key a descriptive name (e.g., "Roo Code"). +4. **Copy the Key:** Copy the API key *immediately* and store it securely. You will not be able to see it again. + +--- + +## Available Models + +Roo Code supports all models available through Fireworks AI's platform. + +For the complete, up-to-date model list and specifications, see [Fireworks AI's models page](https://fireworks.ai/models). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Fireworks AI" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your Fireworks AI API key into the "Fireworks AI API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. + +--- + +## Tips and Notes + +* **Pricing:** See the [Fireworks AI pricing page](https://fireworks.ai/pricing) for current rates. \ No newline at end of file diff --git a/docs/providers/gemini.md b/docs/providers/gemini.md index 8040fd8c..cdc541c1 100644 --- a/docs/providers/gemini.md +++ b/docs/providers/gemini.md @@ -31,26 +31,11 @@ Roo Code supports Google's Gemini family of models through the Google AI Gemini --- -## Supported Models - -Roo Code supports the following Gemini models: - -* `gemini-2.5-flash-preview-05-20` -* `gemini-2.5-pro-exp-03-25` -* `gemini-2.0-flash-001` -* `gemini-2.0-flash-lite-preview-02-05` -* `gemini-2.0-pro-exp-02-05` -* `gemini-2.0-flash-thinking-exp-01-21` -* `gemini-2.0-flash-thinking-exp-1219` -* `gemini-2.0-flash-exp` -* `gemini-1.5-flash-002` -* `gemini-1.5-flash-exp-0827` -* `gemini-1.5-flash-8b-exp-0827` -* `gemini-1.5-pro-002` -* `gemini-1.5-pro-exp-0827` -* `gemini-exp-1206` - -Refer to the [Gemini documentation](https://ai.google.dev/models/gemini) for more details on each model. +## Available Models + +Roo Code supports all Gemini models available through Google's API and automatically tracks Google's latest stable releases. + +For the complete, up-to-date model list and capabilities, see [Google's Gemini models documentation](https://ai.google.dev/models/gemini). --- @@ -61,8 +46,75 @@ Refer to the [Gemini documentation](https://ai.google.dev/models/gemini) for mor 3. **Enter API Key:** Paste your Gemini API key into the "Gemini API Key" field. 4. **Select Model:** Choose your desired Gemini model from the "Model" dropdown. +By default, Roo Code selects a stable Pro model (currently a Gemini 2.5 Pro variant) with a temperature of **1.0** where your provider supports it. This keeps suggestions more expressive and natural while still staying on task. If you need highly deterministic output (for example, for code generation in CI), you can lower the temperature toward `0.0`. + +--- + +## Advanced Features + +### URL Context + +Gemini models can now access and analyze web content directly through URL context. This feature allows Roo to: + +- Read and understand web pages in real-time +- Analyze documentation from URLs +- Review online code repositories +- Access current information from websites + +#### Enabling URL Context + +1. Open Roo Code Settings +2. Navigate to the Gemini provider settings +3. Enable "URL Context" option +4. Save your settings + +#### Usage Example + +``` +Please analyze the documentation at https://example.com/api-docs and create a TypeScript client library based on the API specification. +``` + +### Google Search Grounding + +Enable Google Search grounding to enhance Gemini's responses with real-time search results. This provides: + +- Up-to-date information from web searches +- Fact-checking capabilities +- Current event awareness +- Enhanced accuracy for technical queries + +#### Enabling Search Grounding + +1. Open Roo Code Settings +2. Navigate to the Gemini provider settings +3. Enable "Google Search Grounding" option +4. Save your settings + +#### Usage Example + +``` +What are the latest best practices for React Server Components in 2025? Please search for the most recent information. +``` + +### Combined Usage + +Both features can be used together for powerful workflows: + +``` +Search for the latest Node.js security vulnerabilities and then analyze my package.json file to see if I'm affected. Also check the official Node.js security page for recommendations. +``` + --- ## Tips and Notes -* **Pricing:** Gemini API usage is priced based on input and output tokens. Refer to the [Gemini pricing page](https://ai.google.dev/pricing) for detailed information. +* **Pricing:** Gemini API usage is priced based on input and output tokens. URL context and search grounding may incur additional costs. Some experimental models are available for free. Refer to the [Gemini pricing page](https://ai.google.dev/pricing) for detailed information. +* **Model Selection:** Choose models based on your needs: + - **Flash models:** Faster and more cost-effective for most tasks + - **Pro models:** Better for complex reasoning and analysis + - **Thinking models:** Best for tasks requiring step-by-step reasoning (requires reasoning budget) + - **Experimental models:** Latest features, may be free but less stable +* **Context Windows:** Most Gemini models support large context windows up to 1,048,576 tokens, allowing for extensive code analysis and documentation processing. +* **Rate Limits:** URL context and search grounding features may have separate rate limits. Monitor your usage to avoid hitting limits. +* **Privacy:** When using URL context, be mindful of accessing private or sensitive URLs. Ensure you have permission to analyze the content. +* **Search Quality:** Google Search grounding works best with specific, well-formed queries. Be clear about what information you need. diff --git a/docs/providers/glama.md b/docs/providers/glama.md index e01c7c20..e18515b6 100644 --- a/docs/providers/glama.md +++ b/docs/providers/glama.md @@ -30,15 +30,11 @@ Glama provides access to a variety of language models through a unified API, inc --- -## Supported Models +## Available Models -Roo Code will automatically try to fetch a list of available models from the Glama API. Some models that are commonly available through Glama include: +Roo Code automatically fetches all available models from Glama's unified API. -* **Anthropic Claude models:** (e.g., `anthropic/claude-3-5-sonnet`) These are generally recommended for best performance with Roo Code. -* **OpenAI models:** (e.g., `openai/o3-mini-high`) -* **Other providers and open-source models** - -Refer to the [Glama documentation](https://glama.ai/models) for the most up-to-date list of supported models. +For the complete, up-to-date model list, see [Glama's models page](https://glama.ai/models). --- @@ -54,4 +50,3 @@ Refer to the [Glama documentation](https://glama.ai/models) for the most up-to-d ## Tips and Notes * **Pricing:** Glama operates on a pay-per-use basis. Pricing varies depending on the model you choose. -* **Prompt Caching:** Glama supports prompt caching, which can significantly reduce costs and improve performance for repeated prompts. diff --git a/docs/providers/groq.md b/docs/providers/groq.md index ef1564d7..21552ced 100644 --- a/docs/providers/groq.md +++ b/docs/providers/groq.md @@ -28,16 +28,11 @@ To use Groq with Roo Code, you'll need an API key from the [GroqCloud Console](h --- -## Supported Models +## Available Models -Roo Code will attempt to fetch the list of available models from the Groq API. Common models available via Groq include: +Roo Code automatically fetches all available models from the Groq API. -* `llama3-8b-8192` -* `llama3-70b-8192` -* `mixtral-8x7b-32768` -* `gemma-7b-it` - -Refer to the [Groq Documentation](https://console.groq.com/docs/models) for the most up-to-date list of supported models and their capabilities. +For the complete, up-to-date model list and capabilities, see [Groq's models documentation](https://console.groq.com/docs/models). --- diff --git a/docs/providers/huggingface.md b/docs/providers/huggingface.md new file mode 100644 index 00000000..845a50b5 --- /dev/null +++ b/docs/providers/huggingface.md @@ -0,0 +1,102 @@ +--- +sidebar_label: Hugging Face +description: Connect Roo Code to Hugging Face's inference router for access to open-source LLMs. Choose from multiple inference providers and models like Llama, Mistral, and more. +keywords: + - hugging face + - huggingface + - roo code + - api provider + - open source models + - llama + - mistral + - inference router + - ai models + - inference providers +image: /img/social-share.jpg +--- + +# Using Hugging Face With Roo Code + +Roo Code integrates with the Hugging Face router to provide access to a curated collection of open-source models optimized for code assistance. The integration allows you to choose from multiple inference providers and automatically selects the best available option. + +**Website:** [https://huggingface.co/](https://huggingface.co/) + +--- + +## Getting an API Key + +1. **Sign Up/Sign In:** Go to [Hugging Face](https://huggingface.co/) and create an account or sign in. +2. **Navigate to Settings:** Click on your profile picture and select "Settings". +3. **Access Tokens:** Go to the "Access Tokens" section in your settings. +4. **Create Token:** Click "New token" and give it a descriptive name (e.g., "Roo Code"). +5. **Set Permissions:** Select "Read" permissions (this is sufficient for Roo Code). +6. **Copy Token:** **Important:** Copy the token immediately. Store it securely. + +--- + +## Available Models + +Roo Code automatically fetches all available models from the curated 'roocode' collection on Hugging Face. + +For the complete, up-to-date model collection, see [Hugging Face's roocode collection](https://huggingface.co/collections/roocode). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Hugging Face" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your Hugging Face API token into the "Hugging Face API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. The dropdown shows the model count and is searchable. +5. **Choose Inference Provider (Optional):** Select a specific inference provider from the dropdown, or leave it on "Auto" (default) to automatically select the best available provider. + +--- + +## Inference Provider Selection + +Hugging Face's router connects to multiple inference providers. You can either: + +- **Auto Mode (Default):** Automatically selects the best available provider based on model availability and performance +- **Manual Selection:** Choose a specific provider from the dropdown + +The dropdown displays the status of each provider: +- `live` - Provider is operational and available +- `staging` - Provider is in testing phase +- `error` - Provider is currently experiencing issues + +Provider names are formatted for better readability in the UI (e.g., "sambanova" appears as "SambaNova"). + +When you select a specific provider, the model capabilities (max tokens, pricing) will update to reflect that provider's specific configuration. Pricing information is only displayed when a specific provider is selected, not in Auto mode. + +--- + +## Model Information Display + +For each selected model, Roo Code displays: + +- **Max Output:** The maximum number of tokens the model can generate (varies by provider) +- **Pricing:** Cost per million input and output tokens (displayed only when a specific provider is selected) +- **Image Support:** Currently, all models are shown as text-only. This is a Roo Code implementation limitation, not a restriction of the Hugging Face API. + +--- + +## Available Providers + +The list of available providers is dynamic and retrieved from the Hugging Face API. Common providers include: + +- **Together AI** - High-performance inference platform +- **Fireworks AI** - Fast and scalable model serving +- **DeepInfra** - Cost-effective GPU infrastructure +- **Hyperbolic** - Optimized inference service +- **Cerebras** - Hardware-accelerated inference + +*Note: The providers shown above are examples of commonly available options. The actual list may vary.* + +--- + +## Tips and Notes + +- **Provider Failover:** When using Auto mode, if the selected provider fails, Hugging Face's infrastructure will automatically try alternative providers +- **Rate Limits:** Different providers may have different rate limits and availability +- **Pricing Variability:** Costs can vary significantly between providers for the same model +- **Model Updates:** The roocode collection is regularly updated with new and improved models \ No newline at end of file diff --git a/docs/providers/io-intelligence.md b/docs/providers/io-intelligence.md new file mode 100644 index 00000000..d523de16 --- /dev/null +++ b/docs/providers/io-intelligence.md @@ -0,0 +1,42 @@ +--- +description: This page explains how to configure and use the IO Intelligence provider with Roo Code. +keywords: + - io intelligence + - provider + - ai models + - llama + - deepseek + - qwen + - mistral +image: /img/social-share.jpg +--- + +# IO Intelligence Provider + +The IO Intelligence provider gives you access to a wide range of AI models, including those from Llama, DeepSeek, Qwen, and Mistral, through a unified API. + +## Configuration + +To use the IO Intelligence provider, you will need to add it to your `~/.roo/config.json` file. + +1. **Get your API key**: You can get an API key from the [IO Intelligence website](https://io.net/). +2. **Add the provider to your config**: Add the following to your `config.json` file: + +```json +{ + "providers": [ + { + "id": "io-intelligence", + "apiKey": "YOUR_IO_INTELLIGENCE_API_KEY" + } + ] +} +``` + +## Available Models + +The IO Intelligence provider supports multiple AI models including Llama, DeepSeek, Qwen, and Mistral. + +For the current model list and specifications, see [IO Intelligence's documentation](https://io.net/). + +Models can be specified in your API configuration profiles in [`~/.roo/config.json`](#configuration). \ No newline at end of file diff --git a/docs/providers/lmstudio.md b/docs/providers/lmstudio.md index d4227a12..504316f5 100644 --- a/docs/providers/lmstudio.md +++ b/docs/providers/lmstudio.md @@ -25,13 +25,7 @@ Roo Code supports running models locally using LM Studio. LM Studio provides a ## Setting Up LM Studio 1. **Download and Install LM Studio:** Download LM Studio from the [LM Studio website](https://lmstudio.ai/). -2. **Download a Model:** Use the LM Studio interface to search for and download a model. Some recommended models include: - * CodeLlama models (e.g., `codellama:7b-code`, `codellama:13b-code`, `codellama:34b-code`) - * Mistral models (e.g., `mistralai/Mistral-7B-Instruct-v0.1`) - * DeepSeek Coder models (e.g., `deepseek-coder:6.7b-base`) - * Any other model that is supported by Roo, or for which you can set the context window. - - Look for models in the GGUF format. LM Studio provides a search interface to find and download models. +2. **Download a Model:** Use the LM Studio interface to search for and download a model in GGUF format. Browse all available models in the LM Studio search interface or at [Hugging Face](https://huggingface.co/models?library=gguf). 3. **Start the Local Server:** * Open LM Studio. * Click the **"Local Server"** tab (the icon looks like `<->`). diff --git a/docs/providers/minimax.md b/docs/providers/minimax.md new file mode 100644 index 00000000..ab82c0e5 --- /dev/null +++ b/docs/providers/minimax.md @@ -0,0 +1,28 @@ +--- +sidebar_label: MiniMax +description: Configure MiniMax’s OpenAI‑compatible API in Roo Code. Choose the right region base URL and start chatting. +keywords: + - minimax + - mini max + - openai compatible + - china region + - api provider +image: /img/social-share.jpg +--- + +# Using MiniMax With Roo Code + +MiniMax is an OpenAI‑compatible provider. Pick the correct region endpoint, add your API key, and you’re ready to chat. + +--- + +## Configuration in Roo Code + +1. Open Roo Code Settings (gear icon). +2. Select Provider: “MiniMax”. +3. Choose Base URL (region): + - International: https://api.minimax.io/v1 + - China (Mainland): https://api.minimaxi.com/v1 +4. Enter your API key in “MiniMax API Key”. +5. Select a model from the dropdown. +6. Optional: adjust Temperature and Max Output Tokens in model settings. diff --git a/docs/providers/mistral.md b/docs/providers/mistral.md index 73c2654d..1a74543e 100644 --- a/docs/providers/mistral.md +++ b/docs/providers/mistral.md @@ -31,22 +31,11 @@ Roo Code supports accessing models through the Mistral AI API, including both st --- -## Supported Models - -Roo Code supports the following Mistral models: - -| Model ID | Model Default Temperature | Function Calling | Vision / Image support | -|------------------------|-------------------------|------------------|--------| -| codestral-latest | 0.3 | ✅ | ❌ | -| mistral-large-latest | 0.7 | ✅ | ❌ | -| ministral-8b-latest | 0.3 | ✅ | ❌ | -| ministral-3b-latest | 0.3 | ✅ | ❌ | -| mistral-small-latest | 0.3 | ✅ | ❌ | -| pixtral-large-latest | 0.7 | ✅ | ✅ | -The default model temperature in Roo Code is 0.0, so you should consider experimenting with [temperature adjustments](/features/model-temperature)! - -**Note:** Model availability and specifications may change. -Refer to the [Mistral AI documentation](https://docs.mistral.ai/api/) and [Mistral Model Overview](https://docs.mistral.ai/getting-started/models/models_overview/) for the latest information. +## Available Models + +Roo Code supports all models available through Mistral AI's API. + +For the complete, up-to-date model list and capabilities, see [Mistral's model documentation](https://docs.mistral.ai/getting-started/models/models_overview/). --- diff --git a/docs/providers/ollama.md b/docs/providers/ollama.md index b0a80222..6294736c 100644 --- a/docs/providers/ollama.md +++ b/docs/providers/ollama.md @@ -31,17 +31,7 @@ Roo Code supports running models locally using Ollama. This provides privacy, of ollama serve ``` -2. **Download a Model:** Ollama supports many different models. You can find a list of available models on the [Ollama website](https://ollama.com/library). Some recommended models for coding tasks include: - - * `codellama:7b-code` (good starting point, smaller) - * `codellama:13b-code` (better quality, larger) - * `codellama:34b-code` (even better quality, very large) - * `qwen2.5-coder:32b` - * `mistralai/Mistral-7B-Instruct-v0.1` (good general-purpose model) - * `deepseek-coder:6.7b-base` (good for coding tasks) - * `llama3:8b-instruct-q5_1` (good for general tasks) - - To download a model, open your terminal and run: +2. **Download a Model:** Browse [Ollama's model library](https://ollama.com/library) for all available models. To download a model, run: ```bash ollama pull @@ -53,8 +43,14 @@ Roo Code supports running models locally using Ollama. This provides privacy, of ollama pull qwen2.5-coder:32b ``` -3. **Configure the Model:** by default, Ollama uses a context window size of 2048 tokens, which is too small for Roo Code requests. You need to have at least 12k to get decent results, ideally - 32k. To configure a model, you actually need to set its parameters and save a copy of it. +3. **Configure the Model:** Configure your model's context window in Ollama and save a copy. + :::info Default Context Behavior + **Roo Code automatically defers to the Modelfile's `num_ctx` setting by default.** When you use a model with Ollama, Roo Code reads the model's configured context window and uses it automatically. You don't need to configure context size in Roo Code settings - it respects what's defined in your Ollama model. + ::: + + **Option A: Interactive Configuration** + Load the model (we will use `qwen2.5-coder:32b` as an example): ```bash @@ -73,13 +69,45 @@ Roo Code supports running models locally using Ollama. This provides privacy, of /save your_model_name ``` + **Option B: Using a Modelfile (Recommended)** + + Create a `Modelfile` with your desired configuration: + + ```dockerfile + # Example Modelfile for reduced context + FROM qwen2.5-coder:32b + + # Set context window to 32K tokens (reduced from default) + PARAMETER num_ctx 32768 + + # Optional: Adjust temperature for more consistent output + PARAMETER temperature 0.7 + + # Optional: Set repeat penalty + PARAMETER repeat_penalty 1.1 + ``` + + Then create your custom model: + + ```bash + ollama create qwen-32k -f Modelfile + ``` + + :::tip Override Context Window + If you need to override the model's default context window: + - **Permanently:** Save a new model version with your desired `num_ctx` using either method above + - **Roo Code behavior:** Roo automatically uses whatever `num_ctx` is configured in your Ollama model + - **Memory considerations:** Reducing `num_ctx` helps prevent out-of-memory errors on limited hardware + ::: + 4. **Configure Roo Code:** * Open the Roo Code sidebar ( icon). * Click the settings gear icon (). * Select "ollama" as the API Provider. - * Enter the Model name from the previous step (e.g., `your_model_name`). - * (Optional) You can configure the base URL if you're running Ollama on a different machine. The default is `http://localhost:11434`. - * (Optional) Configure Model context size in Advanced settings, so Roo Code knows how to manage its sliding window. + * Enter the model tag or saved name from the previous step (e.g., `your_model_name`). + * (Optional) Configure the base URL if you're running Ollama on a different machine. The default is `http://localhost:11434`. + * (Optional) Enter an API Key if your Ollama server requires authentication. + * (Advanced) Roo uses Ollama's native API by default for the "ollama" provider. An OpenAI-compatible `/v1` handler also exists but isn't required for typical setups. --- @@ -90,3 +118,64 @@ Roo Code supports running models locally using Ollama. This provides privacy, of * **Offline Use:** Once you've downloaded a model, you can use Roo Code offline with that model. * **Token Tracking:** Roo Code tracks token usage for models run via Ollama, helping you monitor consumption. * **Ollama Documentation:** Refer to the [Ollama documentation](https://ollama.com/docs) for more information on installing, configuring, and using Ollama. + +--- + +## Troubleshooting + +### Out of Memory (OOM) on First Request + +**Symptoms** +- First request from Roo fails with an out-of-memory error +- GPU/CPU memory usage spikes when the model first loads +- Works after you manually start the model in Ollama + +**Cause** +If no model instance is running, Ollama spins one up on demand. During that cold start it may allocate a larger context window than expected. The larger context window increases memory usage and can exceed available VRAM or RAM. This is an Ollama startup behavior, not a Roo Code bug. + +**Fixes** +1. **Preload the model** + ```bash + ollama run <model-name> + ``` + Keep it running, then issue the request from Roo. + +2. **Pin the context window (`num_ctx`)** + - Option A — interactive session, then save: + ```bash + # inside `ollama run <base-model>` + /set parameter num_ctx 32768 + /save <your_model_name> + ``` + - Option B — Modelfile (recommended for reproducibility): + ```dockerfile + FROM <base-model> + PARAMETER num_ctx 32768 + # Adjust based on your available memory: + # 16384 for ~8GB VRAM + # 32768 for ~16GB VRAM + # 65536 for ~24GB+ VRAM + ``` + Then create the model: + ```bash + ollama create <your_model_name> -f Modelfile + ``` + +3. **Ensure the model's context window is pinned** + Save your Ollama model with an appropriate `num_ctx` (via `/set` + `/save`, or preferably a Modelfile). **Roo Code automatically detects and uses the model's configured `num_ctx`** - there is no manual context size setting in Roo Code for the Ollama provider. + +4. **Use smaller variants** + If GPU memory is limited, use a smaller quant (e.g., q4 instead of q5) or a smaller parameter size (e.g., 7B/13B instead of 32B). + +5. **Restart after an OOM** + ```bash + ollama ps + ollama stop <model-name> + ``` + +**Quick checklist** +- Model is running before Roo request +- `num_ctx` pinned (Modelfile or `/set` + `/save`) +- Model saved with appropriate `num_ctx` (Roo uses this automatically) +- Model fits available VRAM/RAM +- No leftover Ollama processes diff --git a/docs/providers/openai-compatible.md b/docs/providers/openai-compatible.md index 48359620..3854e8bb 100644 --- a/docs/providers/openai-compatible.md +++ b/docs/providers/openai-compatible.md @@ -49,21 +49,67 @@ You'll find these settings in the Roo Code settings panel (click the ) in the Roo Code panel. 2. **Select Provider:** Choose "OpenAI" from the "API Provider" dropdown. 3. **Enter API Key:** Paste your OpenAI API key into the "OpenAI API Key" field. -4. **Select Model:** Choose your desired model from the "Model" dropdown. +4. **Select Model:** Choose your desired model from the "Model" dropdown (defaults to `gpt-5.1`). 5. **(Optional) Base URL:** If you need to use a custom base URL, enter the URL. Most people won't need to adjust this. --- +## Advanced Features + +### Reasoning Effort Control + +For models that support reasoning (GPT-5, o1, o3, o4 families), you can control how deeply the model thinks: + +**GPT-5 Models:** +- `minimal` - Fastest responses with basic reasoning +- `low` - Quick responses with light reasoning +- `medium` (default) - Balanced reasoning and response time +- `high` - Deep reasoning for complex problems + +**o1/o3/o4 Models:** +- `low` - Minimal thinking time +- `medium` - Balanced approach +- `high` - Maximum thinking for complex problems + +Some models have preset reasoning levels (e.g., `o3-high` always uses high reasoning). + +### Verbosity Control + +Available for GPT-5 models and select others, verbosity controls the detail level of responses: + +- `low` - Concise, direct responses +- `medium` (default) - Balanced detail +- `high` - Comprehensive, detailed responses + +### Temperature Settings + +Temperature controls output randomness (0.0 to 2.0): + +- **GPT-5 models:** Default 1.0 for balanced creativity +- **Other models:** Default 0.0 for deterministic output +- **Note:** Not available for o1/o3 reasoning models + +### Conversation Continuity (GPT-5) + +GPT-5 models maintain conversation context efficiently through response IDs, reducing token usage while preserving context. This happens automatically - no configuration needed. + +--- + ## Tips and Notes -* **Pricing:** Refer to the [OpenAI Pricing](https://openai.com/pricing) page for details on model costs. +* **Pricing:** Refer to the [OpenAI Pricing](https://openai.com/pricing) page for current model costs and discounts, including prompt caching. * **Azure OpenAI Service:** If you'd like to use the Azure OpenAI service, please see our section on [OpenAI-compatible](/providers/openai-compatible) providers. +* **Context Optimization:** For GPT-5-Codex, leverage prompt caching by maintaining consistent context across requests to reduce costs significantly. diff --git a/docs/providers/openrouter.md b/docs/providers/openrouter.md index 7adfefe4..afce71ec 100644 --- a/docs/providers/openrouter.md +++ b/docs/providers/openrouter.md @@ -29,9 +29,11 @@ OpenRouter is an AI platform that provides access to a wide variety of language --- -## Supported Models +## Available Models -OpenRouter supports a large and growing number of models. Roo Code automatically fetches the list of available models. Refer to the [OpenRouter Models page](https://openrouter.ai/models) for the complete and up-to-date list. +Roo Code automatically fetches all available models from OpenRouter's API (100+ models from various providers). + +For the complete, up-to-date model list with pricing and capabilities, see [OpenRouter's models page](https://openrouter.ai/models). --- @@ -58,6 +60,11 @@ OpenRouter provides an [optional "middle-out" message transform](https://openrou * **Prompt Caching:** * OpenRouter passes caching requests to underlying models that support it. Check the [OpenRouter Models page](https://openrouter.ai/models) to see which models offer caching. * For most models, caching should activate automatically if supported by the model itself (similar to how Requesty works). + * **Models with prompt caching support include:** + * Anthropic Claude Sonnet 3.5, 3.7 + * Anthropic Claude Haiku 3.5 + * **Anthropic Claude Haiku 4.5** (newly added) + * Google Gemini models (with manual activation - see below) * **Exception for Gemini Models via OpenRouter:** Due to potential response delays sometimes observed with Google's caching mechanism when accessed via OpenRouter, a manual activation step is required *specifically for Gemini models*. * If using a **Gemini model** via OpenRouter, you **must manually check** the "Enable Prompt Caching" box in the provider settings to activate caching for that model. This checkbox serves as a temporary workaround. For non-Gemini models on OpenRouter, this checkbox is not necessary for caching. * **Bring Your Own Key (BYOK):** If you use your own key for the underlying service, OpenRouter charges 5% of what it normally would. Roo Code automatically adjusts the cost calculation to reflect this. diff --git a/docs/providers/qwen-code.md b/docs/providers/qwen-code.md new file mode 100644 index 00000000..9a1f3f08 --- /dev/null +++ b/docs/providers/qwen-code.md @@ -0,0 +1,73 @@ +--- +sidebar_label: Qwen Code CLI +description: Access Qwen3 Coder models through OAuth authentication. 1M context windows with automatic token refresh. +keywords: + - qwen code + - qwen cli + - qwen3 coder + - roo code + - api provider + - oauth + - alibaba + - dashscope +image: /img/social-share.jpg +--- + +# Qwen Code CLI Provider + +Access Alibaba's Qwen3 Coder models through OAuth authentication with automatic token refresh. Features massive 1M token context windows optimized for large codebases. + +:::info Setup Required +1. **Install Qwen Client**: Download from the official website +2. **Authenticate**: Run the client and sign in to create OAuth credentials +3. **Configure in Roo Code**: Select "Qwen Code CLI API" as your provider + - Default path `~/.qwen/oauth_creds.json` works automatically + - Or specify a custom credentials path if needed +::: + +**Website:** [https://chat.qwen.ai](https://chat.qwen.ai) + +--- + +## Available Models + +Both Qwen3 Coder models feature massive 1M context windows and 65K max output tokens. + +**Available models:** +- **qwen3-coder-plus** - High-performance coding model (default) +- **qwen3-coder-flash** - Speed-optimized variant + +--- + +## Configuration + +### OAuth Credentials Path +- **Default**: `~/.qwen/oauth_creds.json` +- **Custom paths supported**: Both absolute and `~/` prefixed paths +- Created automatically when you authenticate with the Qwen client + +--- + +## Key Features + +- **OAuth 2.0**: Secure authentication with automatic token refresh +- **1M Context**: Handle entire codebases in a single conversation +- **Auto-refresh**: Tokens refresh transparently with 30-second buffer +- **Free Tier**: 2,000 requests/day and 60 requests/minute with no token limits, available during a promotional period. +- **Reasoning Support**: Full support for thinking blocks + +--- + +## Common Issues + +**"Cannot find credentials file"** +- Ensure you've authenticated with the Qwen client +- Check file exists at `~/.qwen/oauth_creds.json` + +**"Token refresh failed"** +- Check network connectivity +- Re-authenticate with the Qwen client + +**"401 Unauthorized"** +- Provider should auto-refresh (check logs) +- If persistent, delete credentials and re-authenticate \ No newline at end of file diff --git a/docs/providers/requesty.md b/docs/providers/requesty.md index 47f4ffb2..fc0f5cfe 100644 --- a/docs/providers/requesty.md +++ b/docs/providers/requesty.md @@ -28,9 +28,11 @@ Roo Code supports accessing models through the [Requesty](https://www.requesty.a --- -## Supported Models +## Available Models -Requesty provides access to a wide range of models. Roo Code will automatically fetch the latest list of available models. You can see the full list of available models on the [Model List](https://app.requesty.ai/router/list) page. +Roo Code automatically fetches all available models from Requesty's API (150+ models from multiple providers). + +For the complete, up-to-date model list with pricing, see [Requesty's model list](https://app.requesty.ai/router/list). --- diff --git a/docs/providers/roo-code-cloud.md b/docs/providers/roo-code-cloud.md new file mode 100644 index 00000000..e2f0a791 --- /dev/null +++ b/docs/providers/roo-code-cloud.md @@ -0,0 +1,71 @@ +--- +sidebar_label: Roo Code Cloud +description: Access free AI models including grok-code-fast-1 and code-supernova through Roo Code Cloud. No API keys or payment required during the promotional period. +keywords: + - roo code cloud + - roo provider + - grok-code-fast-1 + - code-supernova + - sonic model + - free ai models + - cloud authentication + - no api key +image: /img/social-share.jpg +--- + +# Roo Code Cloud Provider - FREE AI Models + +Access **FREE** AI models through Roo Code Cloud authentication, including "grok-code-fast-1" (formerly "roo/sonic") and the new "code-supernova" model. **No API keys, no credit cards, no usage costs** during the promotional period. + +:::info Model Name Update +The "roo/sonic" model is being renamed to **"grok-code-fast-1"** (officially "Grok Code Fast"). The model will be updated by **August 29th**. This is the same powerful coding model, just with its official xAI name. The model remains **free** when accessed through Roo Code Cloud during the promotional period. + +**Important for Roo Code users:** Within Roo Code, this model is only free through Roo Code Cloud. Using it directly through the [xAI provider](/providers/xai) in Roo Code will incur standard charges once pricing is established. +::: + +:::note +- Requires Roo Code Cloud account +- Internet connection required +- Prompts and completions are logged for model improvement +- Available during promotional period only +- Within Roo Code, free access is through Roo Code Cloud provider +::: + +--- + +## Setup + +1. **Connect to Roo Code Cloud:** + - Click the account icon () in Roo Code panel + - Sign in with GitHub, Google, or email + - See [Connect Guide](/roo-code-cloud/connect) if needed + +2. **Select Provider:** + - Open Roo Code Settings () + - Choose "Roo Code Cloud" from the API Provider dropdown + - Select your preferred model: + - "grok-code-fast-1" (may still show as "Sonic" until August 29th) + - "roo/code-supernova" (new stealth model) + +--- + +## Available Models + +**Both models are 100% FREE** through Roo Code Cloud during the promotional period. + +- **grok-code-fast-1** (formerly roo/sonic) +- **roo/code-supernova** (includes image support) + +:::info +Within Roo Code, free access is only through Roo Code Cloud provider. Using the [xAI provider](/providers/xai) for `grok-code-fast-1` will incur standard charges once pricing is established. +::: + +--- + +## Troubleshooting + +**"Authentication required"**: Connect to Roo Code Cloud via the account icon. + +**"No session token"**: Sign out and back in to refresh your session. + +**Connection issues**: Check internet connection and restart VS Code if needed. \ No newline at end of file diff --git a/docs/providers/sambanova.md b/docs/providers/sambanova.md new file mode 100644 index 00000000..bd5a5b78 --- /dev/null +++ b/docs/providers/sambanova.md @@ -0,0 +1,44 @@ +--- +sidebar_label: SambaNova +description: Configure SambaNova's high-speed AI models in Roo Code. Experience enterprise-grade inference with competitive performance and diverse model selection. +keywords: + - sambanova + - sambanova ai + - roo code + - api provider + - high-speed inference + - enterprise ai + - llm provider + - fast inference +image: /img/social-share.jpg +--- + +# Using SambaNova With Roo Code + +SambaNova specializes in providing high-speed inference for large language models, utilizing their Reconfigurable Dataflow Units (RDUs) through their SambaCloud portal. This delivers fast response times for supported models. + +**Website:** [https://cloud.sambanova.ai/](https://cloud.sambanova.ai/) + +--- + +## Getting an API Key + +To use SambaNova with Roo Code, you'll need an API key from the [SambaCloud](https://cloud.sambanova.ai?utm_source=roocode&utm_medium=external&utm_campaign=cloud_signup). After signing up, navigate to the API Keys section in the left panel to create and copy your SambaCloud API key. + +--- + +## Available Models + +Roo Code automatically fetches all available models from the SambaNova API. + +For the complete, up-to-date model list and capabilities, see [SambaCloud's supported models documentation](https://docs.sambanova.ai/cloud/docs/get-started/supported-models). + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "SambaNova" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your SambaNova API key into the "SambaNova API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. +5. **(Optional) Custom Base URL:** If using a private deployment, check "Use custom base URL" and enter your endpoint URL. \ No newline at end of file diff --git a/docs/providers/unbound.md b/docs/providers/unbound.md index 94efab69..466b4bf6 100644 --- a/docs/providers/unbound.md +++ b/docs/providers/unbound.md @@ -30,9 +30,11 @@ Roo Code supports accessing models through [Unbound](https://getunbound.ai/), a --- -## Supported Models +## Available Models -Unbound allows you configure a list of supported models in your application, and Roo Code will automatically fetch the list of available models from the Unbound API. +Roo Code automatically fetches all models configured in your Unbound application. + +Configure your allowed models in the [Unbound Applications dashboard](https://gateway.getunbound.ai/ai-gateway-applications), then Roo Code will display them in the model dropdown. --- diff --git a/docs/providers/vercel-ai-gateway.md b/docs/providers/vercel-ai-gateway.md new file mode 100644 index 00000000..3fafa596 --- /dev/null +++ b/docs/providers/vercel-ai-gateway.md @@ -0,0 +1,68 @@ +--- +description: Configure the Vercel AI Gateway in Roo Code to robustly access 100+ language models from various providers through a centralized interface. +keywords: + - roo code + - vercel ai gateway + - ai provider + - language models + - api configuration + - model selection + - prompt caching + - usage tracking + - byok +sidebar_label: Vercel AI Gateway +image: /img/social-share.jpg +--- + +# Using Vercel AI Gateway With Roo Code + +The AI Gateway provides a unified API to access hundreds of models through a single endpoint. It gives you the ability to set budgets, monitor usage, load-balance requests, and manage fallbacks. + +Useful links: +- Team dashboard: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai +- Models catalog: https://vercel.com/ai-gateway/models +- Docs: https://vercel.com/docs/ai-gateway + +--- + +## Getting an API Key + +An API key is required for authentication. + +1. **Sign Up/Sign In:** Go to the [Vercel Website](https://vercel.com/) and sign in. +2. **Get an API Key:** Go to the [API Key page](https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys&title=AI+Gateway+API+Key) in the AI Gateway tab. Create a new key. +3. **Copy the Key:** Copy the API key. + +--- + +## Available Models + +Roo Code automatically fetches all available models from Vercel AI Gateway's API (hundreds of models from various providers). + +For the complete, up-to-date model catalog with capabilities, see [Vercel's AI Gateway models page](https://vercel.com/ai-gateway/models). + +**Default:** `anthropic/claude-sonnet-4` if no model is selected. + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Vercel AI Gateway" from the "API Provider" dropdown. +3. **Enter API Key:** Paste your Vercel AI Gateway API key into the "Vercel AI Gateway API Key" field. +4. **Select Model:** Choose your desired model from the "Model" dropdown. + +--- + +## Prompt Caching +Vercel AI Gateway supports automatic prompt caching for select models including Anthropic Claude and OpenAI GPT models. This reduces costs by caching frequently used prompts. + +--- + +## Tips and Notes + +* **Model Selection:** The Vercel AI Gateway offers a wide range of models. Experiment to find the best one for your needs. +* **Pricing:** The Vercel AI Gateway charges based on the underlying model's pricing, including costs for cached prompts. See the [Vercel AI Gateway Models page](https://vercel.com/ai-gateway/models) for details. +* **Temperature:** The default temperature is `0.7` and is configurable per model. +* **Bring Your Own Key (BYOK):** The Vercel AI Gateway has **no markup** if you decide to use your own key for the underlying service. +* **More info:** Vercel does not add rate limits. Upstream providers may. New accounts receive $5 credits every 30 days until the first payment. diff --git a/docs/providers/vertex.md b/docs/providers/vertex.md index 10784fb8..0ea8a3d5 100644 --- a/docs/providers/vertex.md +++ b/docs/providers/vertex.md @@ -34,33 +34,11 @@ Roo Code supports accessing models through Google Cloud Platform's Vertex AI, a --- -## Supported Models - -Roo Code supports the following models through Vertex AI (based on source code): - -* **Google Gemini Models:** - * `gemini-2.5-flash-preview-05-20` - * `gemini-2.0-flash-001` - * `gemini-2.5-pro-exp-03-25` - * `gemini-2.0-pro-exp-02-05` - * `gemini-2.0-flash-lite-001` - * `gemini-2.0-flash-thinking-exp-01-21` - * `gemini-1.5-flash-002` - * `gemini-1.5-pro-002` -* **Anthropic Claude Models:** - * `claude-opus-4@20250514:thinking` - * `claude-opus-4@20250514` - * `claude-sonnet-4@20250514:thinking` - * `claude-sonnet-4@20250514` - * `claude-3-7-sonnet@20250219:thinking` - * `claude-3-7-sonnet@20250219` - * `claude-3-5-sonnet-v2@20241022` - * `claude-3-5-sonnet@20240620` - * `claude-3-5-haiku@20241022` - * `claude-3-opus@20240229` - * `claude-3-haiku@20240307` - -Refer to the [Google Cloud documentation on Vertex AI Models](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models) for the most up-to-date list of available models and their IDs. +## Available Models + +Roo Code supports all models available through Google Cloud Vertex AI, including Anthropic Claude, Google Gemini, and MAAS (Model as a Service) offerings. + +For the complete, up-to-date model list and IDs, see [Vertex AI's models documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models). --- @@ -69,16 +47,67 @@ Refer to the [Google Cloud documentation on Vertex AI Models](https://cloud.goog 1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. 2. **Select Provider:** Choose "GCP Vertex AI" from the "API Provider" dropdown. 3. **Configure Authentication:** - * **If using Application Default Credentials (ADC):** No further action is needed here. ADC will be used automatically if configured correctly (see Prerequisites). - * **If *not* using ADC (Service Account Key):** - * **Option A: Paste JSON Content:** Paste the entire content of your Service Account JSON key file into the **Google Cloud Credentials** field. - * **Option B: Provide File Path:** Enter the absolute path to your downloaded Service Account JSON key file in the **Google Cloud Key File Path** field. + + Roo Code uses the following authentication priority: + 1. **Google Cloud Credentials (JSON):** If provided, this takes precedence + 2. **Google Cloud Key File Path:** If provided and no JSON credentials, this is used + 3. **Application Default Credentials (ADC):** Used as fallback when neither above is provided + + **Option 1 - Using ADC (Simplest):** + * Install the Google Cloud CLI and run `gcloud auth application-default login` + * No further configuration needed in Roo Code + + **Option 2 - Using Service Account Key:** + * Either paste the JSON content directly into **Google Cloud Credentials** field + * Or provide the file path in **Google Cloud Key File Path** field + 4. **Enter Project ID:** Enter your Google Cloud Project ID. 5. **Select Region:** Choose the region where your Vertex AI resources are located (e.g., `us-east5`). 6. **Select Model:** Choose your desired model from the "Model" dropdown. + +--- + +## Advanced Features + +### Gemini-Specific Features + +When using Gemini models through Vertex AI, additional grounding features become available: + +#### URL Context + +Enable URL context to allow Gemini models to access and analyze web content directly. This feature allows Roo to: + +- Read and understand web pages in real-time +- Analyze documentation from URLs +- Review online code repositories +- Access current information from websites + +**Enabling URL Context:** +1. Select a Gemini model in your Vertex AI configuration +2. Enable the "URL Context" option that appears +3. Save your settings + +#### Google Search Grounding + +Enable Google Search grounding to enhance Gemini's responses with real-time search results. This provides: + +- Up-to-date information from web searches +- Fact-checking capabilities +- Current event awareness +- Enhanced accuracy for technical queries + +**Enabling Search Grounding:** +1. Select a Gemini model in your Vertex AI configuration +2. Enable the "Google Search Grounding" option that appears +3. Save your settings + +:::note +URL Context and Google Search Grounding options only appear when a Gemini model is selected. These features may incur additional costs. +::: + --- ## Tips and Notes -* **Permissions:** Ensure your Google Cloud account has the necessary permissions to access Vertex AI and the specific models you want to use. -* **Pricing:** Refer to the [Vertex AI pricing](https://cloud.google.com/vertex-ai/pricing) page for details. +* **Permissions:** Ensure your Google Cloud account has the necessary permissions to access Vertex AI and the specific models you want to use. +* **Pricing:** Refer to the [Vertex AI pricing](https://cloud.google.com/vertex-ai/pricing) page for details. \ No newline at end of file diff --git a/docs/providers/xai.md b/docs/providers/xai.md index bb528ce3..03e394ca 100644 --- a/docs/providers/xai.md +++ b/docs/providers/xai.md @@ -1,5 +1,5 @@ --- -description: Configure xAI's Grok models in Roo Code. Access Grok-3, Grok-2, and vision models with large context windows and reasoning capabilities. +description: Configure xAI's Grok models in Roo Code. Access Grok-4, Grok-3, Grok-2, and vision models with large context windows, reasoning capabilities, and prompt caching. keywords: - xAI - Grok @@ -8,8 +8,11 @@ keywords: - reasoning AI - vision models - large context + - Grok Code Fast + - Grok-4 - Grok-3 - Grok-2 + - prompt caching image: /img/social-share.jpg sidebar_label: xAI (Grok) --- @@ -31,29 +34,15 @@ xAI is the company behind Grok, a large language model known for its conversatio --- -## Supported Models +## Available Models -Roo Code supports the following xAI Grok models: +Roo Code supports all Grok models available through xAI's API. -### Grok-3 Models -* `grok-3-beta` (Default) - xAI's Grok-3 beta model with 131K context window -* `grok-3-fast-beta` - xAI's Grok-3 fast beta model with 131K context window -* `grok-3-mini-beta` - xAI's Grok-3 mini beta model with 131K context window -* `grok-3-mini-fast-beta` - xAI's Grok-3 mini fast beta model with 131K context window +For the complete, up-to-date model list and capabilities, see [xAI's documentation](https://docs.x.ai/docs). -### Grok-2 Models -* `grok-2-latest` - xAI's Grok-2 model - latest version with 131K context window -* `grok-2` - xAI's Grok-2 model with 131K context window -* `grok-2-1212` - xAI's Grok-2 model (version 1212) with 131K context window - -### Grok Vision Models -* `grok-2-vision-latest` - xAI's Grok-2 Vision model - latest version with image support and 32K context window -* `grok-2-vision` - xAI's Grok-2 Vision model with image support and 32K context window -* `grok-2-vision-1212` - xAI's Grok-2 Vision model (version 1212) with image support and 32K context window -* `grok-vision-beta` - xAI's Grok Vision Beta model with image support and 8K context window - -### Legacy Models -* `grok-beta` - xAI's Grok Beta model (legacy) with 131K context window +:::info Grok Code Fast - Free Access in Roo Code +`grok-code-fast-1` is available for **free** through the [Roo Code Cloud provider](/providers/roo-code-cloud) during the promotional period. When using the xAI provider directly in Roo Code, standard pricing will apply once established. This model was previously known as "roo/sonic" and has been renamed. For free access within Roo Code, use the Roo Code Cloud provider instead of the xAI provider. +::: --- @@ -72,11 +61,12 @@ Grok 3 Mini models feature specialized reasoning capabilities, allowing them to ### Reasoning-Enabled Models -Reasoning is only supported by: -* `grok-3-mini-beta` -* `grok-3-mini-fast-beta` +Several Grok models have reasoning capabilities. However, only the Grok 3 Mini models support configurable reasoning effort control: -The Grok 3 models `grok-3-beta` and `grok-3-fast-beta` do not support reasoning. +* `grok-3-mini` - Supports reasoning effort control +* `grok-3-mini-fast` - Supports reasoning effort control + +Other models (`grok-code-fast-1`, `grok-4.1-fast`, `grok-4`, `grok-3`, `grok-3-fast`) are reasoning-capable but don't expose the `reasoning_effort` parameter. ### Controlling Reasoning Effort @@ -95,9 +85,14 @@ Choose `low` for simple queries that should complete quickly, and `high` for har --- -## Tips and Notes +## Prompt Caching + +Prompt caching is available for select Grok models including `grok-code-fast-1`, `grok-4`, `grok-3`, `grok-3-fast`, `grok-3-mini`, and `grok-3-mini-fast`. This feature can reduce costs and improve response times. + +--- + +## Pricing + +Pricing varies by model. Refer to the [xAI documentation](https://console.x.ai/) for current pricing information. -* **Context Window:** Most Grok models feature large context windows (up to 131K tokens), allowing you to include substantial amounts of code and context in your prompts. -* **Vision Capabilities:** Select vision-enabled models (`grok-2-vision-latest`, `grok-2-vision`, etc.) when you need to process or analyze images. -* **Pricing:** Pricing varies by model, with input costs ranging from $0.3 to $5.0 per million tokens and output costs from $0.5 to $25.0 per million tokens. Refer to the xAI documentation for the most current pricing information. -* **Performance Tradeoffs:** "Fast" variants typically offer quicker response times but may have higher costs, while "mini" variants are more economical but may have reduced capabilities. \ No newline at end of file +**Note:** `grok-code-fast-1` is available for free through the [Roo Code Cloud provider](/providers/roo-code-cloud) during the promotional period. Standard pricing will apply when using the xAI provider directly in Roo Code. diff --git a/docs/providers/zai.md b/docs/providers/zai.md new file mode 100644 index 00000000..4443b11b --- /dev/null +++ b/docs/providers/zai.md @@ -0,0 +1,81 @@ +--- +sidebar_label: Z AI +description: Configure Z AI models in Roo Code. Access GLM-4.5 series models with region-aware routing for international and China mainland users. +keywords: + - z ai + - zai + - zhipu ai + - glm-4.5 + - roo code + - api provider + - china ai + - international ai + - openai compatible +image: /img/social-share.jpg +--- + +# Using Z AI With Roo Code + +Z AI (Zhipu AI) provides advanced language models with the GLM-4.5 series. The provider offers region-aware routing with separate endpoints for international users and China mainland users. + +**Website:** [https://z.ai/model-api](https://z.ai/model-api) (International) | [https://open.bigmodel.cn/](https://open.bigmodel.cn/) (China) + +--- + +## Getting an API Key + +### International Users + +1. **Sign Up/Sign In:** Go to [https://z.ai/model-api](https://z.ai/model-api). Create an account or sign in. +2. **Navigate to API Keys:** Access your account dashboard and find the API keys section. +3. **Create a Key:** Generate a new API key for your application. +4. **Copy the Key:** **Important:** Copy the API key immediately and store it securely. + +### China Mainland Users + +1. **Sign Up/Sign In:** Go to [https://open.bigmodel.cn/](https://open.bigmodel.cn/). Create an account or sign in. +2. **Navigate to API Keys:** Access your account dashboard and find the API keys section. +3. **Create a Key:** Generate a new API key for your application. +4. **Copy the Key:** **Important:** Copy the API key immediately and store it securely. + +--- + +## Available Models + +Roo Code automatically fetches all available models from Z AI's API based on your selected region. + +For the complete, up-to-date model list and specifications, see the official provider documentation: +- **International:** [Z AI model documentation](https://z.ai/model-api) +- **China Mainland:** [BigModel documentation](https://open.bigmodel.cn/) + +--- + +## Configuration in Roo Code + +1. **Open Roo Code Settings:** Click the gear icon () in the Roo Code panel. +2. **Select Provider:** Choose "Z AI" from the "API Provider" dropdown. +3. **Select Region:** Choose your region: + - "International" (default) for global access + - "China" for mainland China access +4. **Enter API Key:** Paste your Z AI API key into the "Z AI API Key" field. +5. **Select Model:** Choose your desired model from the "Model" dropdown. Available models depend on your selected region. + +### Defaults & Behavior +- **Automatic Base URL:** Selected region determines the API endpoint automatically: + - International → `https://api.z.ai/api/paas/v4` + - China → `https://open.bigmodel.cn/api/paas/v4` +- **Dynamic Models:** Changing the region automatically updates the model catalog and target endpoint. +- **No Manual Base URL Needed:** You typically do not need to configure a custom base URL. + +--- + +## Tips and Notes + +* **Region Selection:** The region setting determines both the API endpoint and available models: + - International: Uses `https://api.z.ai/api/paas/v4` + - China: Uses `https://open.bigmodel.cn/api/paas/v4` +* **Automatic Base URL:** Base URL is selected from your region; manual override is not required in typical setups. +* **OpenAI Compatibility:** Z AI uses an OpenAI-compatible API, providing streaming responses and usage reporting. +* **Model Selection:** Models are automatically filtered based on your selected region to ensure compatibility. +* **API Key Required:** A valid API key is required for all requests. Ensure you've obtained one from the appropriate regional platform. +* **Pricing:** Check the respective regional websites for current pricing information. diff --git a/docs/roo-code-cloud/analytics.mdx b/docs/roo-code-cloud/analytics.mdx new file mode 100644 index 00000000..9bdcd7ae --- /dev/null +++ b/docs/roo-code-cloud/analytics.mdx @@ -0,0 +1,28 @@ +--- +description: Track usage and credits in Roo Code Cloud. View tokens, tasks, estimated cost, and credit consumption over time; learn where to check spend for Cloud Agents. +keywords: + - Roo Code Cloud + - analytics + - usage + - tokens + - credits + - cost +image: /img/social-share.jpg +redirect_from: + - /roo-code-cloud/dashboard + - /roo-code-cloud/dashboard/ + - /roo-code-cloud/dashboard#usage-analytics-page +--- + +# Analytics + +Analytics lets you track tokens, tasks, inference cost, and Cloud Agent credits usage in aggregate or according to a range of filters, defined by you. It's all free. + +## Access + +- Just go to the [Analytics](https://app.roocode.com/usage) tab + +## What's tracked + +- For Cloud Agents, all tasks are tracked and considered for analytics +- For the extension, only tasks you run while logged in get reported for analytics. You can turn off [task sync](/roo-code-cloud/task-sync) so the contents of tasks aren't sent to Cloud, but usage numbers are always reported while you're logged into the extension. That allows you to keep certain tasks away from Cloud while still benefiting from usage analytics. \ No newline at end of file diff --git a/docs/roo-code-cloud/billing-subscriptions.mdx b/docs/roo-code-cloud/billing-subscriptions.mdx new file mode 100644 index 00000000..a5c0a831 --- /dev/null +++ b/docs/roo-code-cloud/billing-subscriptions.mdx @@ -0,0 +1,59 @@ +--- +description: "Manage Roo Code Cloud plans (Pro and Team): trials, billing, cancellations, and credits." +keywords: + - billing + - subscriptions + - pro plan + - team plan + - payment + - stripe + - pricing +image: /img/social-share.jpg +--- + +import Codicon from '@site/src/components/Codicon'; + +# Subscriptions & Billing + +Roo Code Cloud offers three subscriptions: Free, Pro and Team. + +You can find details for them [in the pricing page](https://roocode.com/pricing). + +## How to Upgrade + +1. Once logged in, go to Billing: [app.roocode.com/billing](https://app.roocode.com/billing) +2. Choose your plan and start a trial. +3. Team only: if prompted, create your organization. +4. Complete checkout process; you'll be redirected back to the app. +5. You'll be invited to create your first Cloud Agent. You can follow the process or go to the home page. +6. On the home page, [Roomote Control](/roo-code-cloud/roomote-control) unlocks immediately (look under "Connected Workspaces"). +7. Team only: from here on you'll be able to invite your team members. + +## Managing Your Subscription + +- Select Manage Subscription to open Stripe’s portal for payment methods, invoices, and billing details. +- To cancel (sorry to see you go!): + 1) Open your Billing page + 2) Click Manage Subscription + 3) Choose Cancel plan in the Stripe portal and confirm +- During a trial, cancel before it ends to avoid the first charge. After billing, features remain active until the end of your current period. You can resubscribe anytime. + +## Cloud Agents & Credits + +- [Cloud Agents](/roo-code-cloud/cloud-agents) are only available in paid plans. +- Cloud Agents run in Roo Code Cloud and consume credits proportional to their run time. +- Model inference uses your own provider keys (no model markups!). +- To top up credits, go to [Billing](https://app.roocode.com/billing) and add them +- Track usage and costs alongside other stats in [Analytics](/roo-code-cloud/analytics). + +## Payment & Security + +#### Payment Processing +- Payments are securely processed through Stripe +- We never access or store your credit card information + +#### Billing Cycle +- Monthly billing on the same date each month +- Automatic renewal unless canceled +- Immediate access upon payment +- Prorated refunds not available \ No newline at end of file diff --git a/docs/roo-code-cloud/cloud-agents.mdx b/docs/roo-code-cloud/cloud-agents.mdx new file mode 100644 index 00000000..47d0baa3 --- /dev/null +++ b/docs/roo-code-cloud/cloud-agents.mdx @@ -0,0 +1,66 @@ +--- +description: Run Roo in the cloud without your IDE. Cloud Agents keep tasks going headlessly, let teammates monitor via links/QR, and honor org policies. Runtime is billed in credits; inference uses your own model keys. +keywords: + - cloud agents + - hosted execution + - credits + - runtime billing + - BYO keys + - task sharing + - remote control +image: /img/social-share.jpg +--- + +# Cloud Agents + +Roo Code Cloud Agents can run entire tasks on their own in the cloud, often automatically, so you're not limited to typing instructions in your IDE. + +## What Roo Code Cloud Agents are + +Hosted, headless Roo-backed agents who: +- Run tasks in cloud containers independent of your local IDE (you don't even need to use the Roo Code VS Code extension in order to use Cloud agents) +- Have focused, optimized prompts for specific needs +- Stream task history in the [web app](https://app.roocode.com) +- Fit into your broader workflow, outside of the editor + +## Agents Types + +Cloud Agents come in different types optimized for specific workflows. Each uses your chosen model and API key, running in the cloud so work continues without your IDE. + +### **PR Rooviewer** + +Automatically reviews GitHub pull requests using your model, posts feedback, and tracks costs—triggered by webhooks or run on demand. + +### Coming soon + +We have more agents in the works, such as: +- PR Fixer +- String Translator +- Security Auditor +- Generalist + +## How billing works + +- Cloud Agents require an active paid plan. +- Cloud runtime is billed in credits per agent‑hour (we charge you while the agents are working, that's it) +- Model inference is billed by your provider (bring your own API keys). We don't mark inference costs up and are provider-agnostic +- You can track usage and credits in [Analytics](/roo-code-cloud/analytics); switch the metric to credits. + +## Getting started + +1. [Sign up](https://app.roocode.com/sign-up) for a Roo Code Cloud account +2. Upgrade to a paid plan. +3. You'll get free credits to get started +4. [Create your first agent](https://app.roocode.com/cloud-agents/create). + + +## FAQ + +- Can I run multiple agents? + - Yes. Each agent incurs its own runtime credit usage while running. + +- Do I need to use a specific model? + - No. We recommend a few models we've tested and found to work well, but you're free to use absolutely any model your provider offers. + +- Where do I see costs? + - Track runtime credits and usage in [Analytics](/roo-code-cloud/analytics); see [Billing & Subscriptions](/roo-code-cloud/billing-subscriptions) for plans and credits. \ No newline at end of file diff --git a/docs/roo-code-cloud/connect.mdx b/docs/roo-code-cloud/connect.mdx new file mode 100644 index 00000000..5ec9e9da --- /dev/null +++ b/docs/roo-code-cloud/connect.mdx @@ -0,0 +1,20 @@ +--- +title: Connect the Extension to Cloud +description: Connect your Roo Code extension to Roo Code Cloud for syncing, history, and collaboration. +keywords: + - Roo Code Cloud login + - authentication + - connect account + - sign in +image: /img/social-share.jpg +--- + +import Codicon from '@site/src/components/Codicon'; + +Connect Roo Code to Roo Code Cloud to link your editor with the web app for task syncing, online history, and collaboration features. + +## Quickstart + +1. In Roo Code, click the cloud icon and select Connect. +2. Choose a sign-in method (GitHub/Google OAuth or Email) on app.roocode.com. +3. You’ll be returned to VS Code with your account connected. diff --git a/docs/roo-code-cloud/dashboard.mdx b/docs/roo-code-cloud/dashboard.mdx deleted file mode 100644 index 6b5eb30e..00000000 --- a/docs/roo-code-cloud/dashboard.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -description: Learn how to use the Roo Code Cloud dashboard to manage your account, view task history, and access sharing and collaboration features. -keywords: - - Roo Code Cloud - - dashboard - - task history - - collaboration - - account management -image: /img/social-share.jpg ---- - -import Codicon from '@site/src/components/Codicon'; - -# Dashboard - -The Roo Code Cloud dashboard provides a central location to manage your account, view task history, and access sharing and collaboration features. - -## Accessing the Dashboard - -There are two ways to access your Roo Code Cloud dashboard: - -### Method 1: From the Roo Code Plugin - -Once logged in, click the **account icon** in the top right corner of the Roo Code plugin, then click **Visit Roo Code Cloud**. - -Access dashboard from Roo Code plugin - -### Method 2: Direct Web Access - -Navigate directly to the Roo Code Cloud web application: - -**https://app.roocode.com/** - -This allows you to access your dashboard from any web browser, even when not using the Roo Code extension. - -## Dashboard Features - -The dashboard provides access to: - -- **Task History** - View and manage your online task history -- **Account Settings** - Manage your profile and preferences -- **Sharing & Collaboration** - Access shared tasks and collaboration features -- **Usage Metrics** - Monitor your task, token, and cost-based usage - -Your dashboard syncs with your Roo Code extension to provide a comprehensive view of your coding assistant activity and collaboration workflows. \ No newline at end of file diff --git a/docs/roo-code-cloud/login.mdx b/docs/roo-code-cloud/login.mdx deleted file mode 100644 index 060a74bc..00000000 --- a/docs/roo-code-cloud/login.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -description: Learn how to connect your Roo Code extension to Roo Code Cloud for task syncing, online history, and collaboration features. -keywords: - - Roo Code Cloud login - - authentication - - connect account - - sign up - - GitHub login -image: /img/social-share.jpg ---- - -import Codicon from '@site/src/components/Codicon'; - -# Login - -Connect your Roo Code extension to Roo Code Cloud to sync your prompts, access online task history, and enable sharing and collaboration features. - -## Getting Started - -To connect to Roo Code Cloud, click the **account icon** in the top right corner of the Roo Code plugin. - -Roo Code Cloud initial connection screen - -Click the **Connect** button to begin the authentication process. You'll be redirected to the Roo Code Cloud website. - -## Sign In Options - -You'll see the sign-in page with multiple authentication options: - -Roo Code Cloud sign in page - -Choose your preferred login method: -- **GitHub** - Sign in with your existing GitHub account -- **Google** - Sign in with your existing Google account -- **Email** - Enter your email address to continue with email authentication - -## Creating a New Account - -If you don't have an account yet, click the **Sign up** link at the bottom of the sign-in page. - -Roo Code Cloud signup form - -Complete the signup form with: -- **First name** (optional) -- **Last name** (optional) -- **Email address** (required) -- **Password** (required) -- Accept the Terms of Service and Privacy Policy - -After completing the form, you'll see a confirmation popup: - -Account creation confirmation popup - -## IDE Selection - -The authentication page includes a selector for other VS Code-compatible IDEs: - -IDE selector for VS Code forks - -This allows you to connect Roo Code Cloud to various VS Code forks and compatible editors. - -## Authentication Complete - -Once authenticated, you'll be redirected back to your IDE where you'll see your connected account: - -Successfully connected Roo Code Cloud account - -From this screen you can: -- **Visit Roo Code Cloud** - Click to open the web dashboard -- **Log out** - Disconnect your account from this IDE -- **Done** - Close the account panel and return to normal Roo Code usage - -Your Roo Code extension is now connected to Roo Code Cloud and ready to sync your data and enable collaboration features. \ No newline at end of file diff --git a/docs/roo-code-cloud/roomote-control.mdx b/docs/roo-code-cloud/roomote-control.mdx new file mode 100644 index 00000000..8bb350e9 --- /dev/null +++ b/docs/roo-code-cloud/roomote-control.mdx @@ -0,0 +1,79 @@ +--- +description: Remotely control Roo Code tasks running in VS Code from your browser. Monitoring is provided by Task Sync. +keywords: + - roomote control + - remote control + - remote tasks + - real-time monitoring + - workspace connection + - task control +image: /img/social-share.jpg +--- + +import Codicon from '@site/src/components/Codicon'; + +# Roomote Control + +Roomote Control lets you remotely control tasks running in your local VS Code instance from the Roo Code Cloud web interface. + +## What is Roomote Control? + +Roomote Control creates a bidirectional connection between your local VS Code extension and Roo Code Cloud so you can: + +- Keep working on long-running tasks after you step away from your computer +- Start tasks remotely, including from your phone +- Answer questions and ensure Roo doesn't get stuck +- Receive push notifications about task progress and questions from Roo +- Get the most from Roo without having any code leave your computer + +Roomote Control is available in our [paid plans](https://roocode.com/pricing). + + +## Key Features + +- Chat interface — Similar to IDE chat for core interactions; some settings and customizations aren't available in the browser +- Start New Tasks — Launch tasks in any connected workspace +- Stop Running Tasks — Safely terminate active tasks +- Task Switching — Navigate between tasks including resuming tasks that have been stopped or closed +- Single active task per workspace is enforced + +:::note Requirements +- A paid plan +- Task Sync must be enabled +- Remote Control must be enabled +- Your IDE must be running and connected to the internet. +- Only one task can be active per workspace at a time – but you can have as many workspaces open as you want (or your computer can handle) +::: + +## Getting Started + +#### Step 1: Connect Your Account + +Connect your Roo Code extension to Roo Code Cloud. Follow [Connect the Extension to Cloud](/roo-code-cloud/connect#quickstart). + +#### Step 2: Upgrade to a paid plan + +Go to [Upgrade](https://app.roocode.com/billing), choose your plan and follow the instructions. + +#### Step 3: Ensure Task Sync and Roomote Control are enabled + +You should have them on by default, but if not: +- In the IDE: Click the cloud icon and toggle Task Sync first, then Roomote Control in the Cloud panel. +- In the web app: Go to Settings › User and toggle Task Sync and Roomote Control. You may also see inline “Enable …” banners on Home/Task pages. + +#### Step 4: Start a Remote Task + +When connected and enabled: +1. Your VS Code workspace(s) appear in the web app. +2. Click New Task on a connected workspace card. +3. Enter a task description and click Start. +4. Watch progress and interact in real time. +If “New Task” is disabled, upgrade/enable in Settings › User › Roomote Control. + +## Notifications + +You can enable Push Notifications in the web app under Settings to be notified of progress on your tasks. + +## Permissions & Security + +- Only the user who created a task can interact with it from the browser (send messages, approve/deny). diff --git a/docs/roo-code-cloud/slack-integration.mdx b/docs/roo-code-cloud/slack-integration.mdx new file mode 100644 index 00000000..72e37199 --- /dev/null +++ b/docs/roo-code-cloud/slack-integration.mdx @@ -0,0 +1,74 @@ +--- +description: Start and manage Roo Code Cloud tasks directly from Slack using app mentions or DMs. Team-only, org-scoped, with live progress tracking in-thread. +keywords: + - slack integration + - slack bot + - cloud tasks + - app mentions + - direct messages + - team collaboration + - remote tasks +image: /img/social-share.jpg +--- + +# Slack Integration + +:::warning Not Yet Available +This feature is not yet available. Check back soon for updates. +::: + +Start and manage Roo Code Cloud tasks from Slack using app mentions (@roomote) or direct messages, then track progress with live updates—all without leaving your conversation. + +## What is Slack Integration + +Slack Integration connects your organization's Slack workspace to Roo Code Cloud, letting you start Cloud tasks by mentioning the app or sending it a direct message. + +#### Key capabilities + +- **Start Cloud jobs** — Mention @roomote in channels/threads or DM the app +- **Configure inline** — Pick mode, model, and workspace without leaving Slack +- **Live progress** — TODO lists update in-place; get start links, completion summaries, and status +- **Image support** — Attach images (under 10MB each) for visual context +- **Cancel anytime** — Stop tasks with a button in the thread + +#### Team-only + +Requires an active organization plan. Personal accounts can't start Cloud tasks from Slack. + +## Getting started + +#### Step 1: Install the Slack app (org admin) + +Your organization admin installs the Roo Code Slack app through your organization settings. + +#### Step 2: Connect your Slack account + +First-time users see a "Connect Account" button after mentioning the app. Click it to link your Slack user to your Roo account. Once linked, the configuration UI appears automatically. + +#### Step 3: Mention the app or DM it + +- **In channels/threads:** Type `@roomote` followed by your request +- **In DMs:** Send a regular message (no mention needed) + +Generic channel messages without an explicit mention are ignored to prevent accidental triggers. + +## Configuration options + +#### Mode + +Switches the agent's behavior (defaults from org config). Available modes depend on your organization's setup. + +#### Model + +Shown when using OpenRouter. Select from available models. + +#### Workspace + +Choose a specific repository or "All Repositories" for workspace-wide context. Your last choice is remembered. + +## Limitations + +- **Team plans only** — Personal accounts can't start Cloud tasks from Slack +- **Mention required in channels** — Generic channel messages without @roomote are ignored +- **Images only** — Non-image files aren't processed; images must be under 10MB +- **Active subscription** — Requires funded Cloud credits \ No newline at end of file diff --git a/docs/roo-code-cloud/task-sharing.mdx b/docs/roo-code-cloud/task-sharing.mdx index 993f72bd..30b7eb93 100644 --- a/docs/roo-code-cloud/task-sharing.mdx +++ b/docs/roo-code-cloud/task-sharing.mdx @@ -1,5 +1,5 @@ --- -description: Learn how to share your Roo Code tasks and collaborate with others using shareable links. Share from the extension or dashboard. +description: Learn how to share your Roo Code tasks and collaborate with others using shareable links. Share from the extension or web UI. keywords: - task sharing - collaboration @@ -13,66 +13,63 @@ import Codicon from '@site/src/components/Codicon'; # Task Sharing -Share your Roo Code tasks and collaborate with others by making tasks publicly accessible through shareable links. +This allows you to share Roo Code tasks (in the extension or from Cloud Agents) with secure links with whoever you choose. This allows you to help others understand how you're using Roo, debug a problem or help your teammates learn. -:::note Login Required -You must be logged in to Roo Code Cloud to share tasks. If you haven't connected your account yet, follow the [login instructions](/roo-code-cloud/login) first. -::: - -Roo Code Task Sharing Demo - -
- -## Sharing from within Roo Code - -### Step 1: Access the Share Option - -In any active task view, locate the **link icon** on the right side of the task header. - -Link icon in active task view - -### Step 2: Choose Share Publicly +You can choose whether to share with your organization (Team plan only) or publicly (anyone with the link). -Click the link icon to open the sharing options, then select **Share Publicly**. - -Share Publicly option - -This option allows anyone with the link to access your task. - -### Step 3: Link Created - -The system will generate a public link and automatically copy it to your clipboard. - -Public link copied confirmation - -You can now share this link with team members, collaborators, or anyone who needs access to view your task and its conversation history. +:::note Organization Policy +If your organization disables task sharing, the Share button is disabled and shows a tooltip indicating sharing is disabled. On the web dashboard, the Share action may also be unavailable if you don’t have permission to share that task. +::: -## Sharing from Dashboard +## Sharing from the Roo Code Extension -### Step 1: Access Task in Dashboard +1. Open the Share menu + - In an active task, click the Share icon in the task header (right side). + Share icon in the active task header -Navigate to your [Roo Code Cloud dashboard](/roo-code-cloud/dashboard) and click on the task you want to share to open the detailed task modal. +2. Choose who can access + - Pick one: + - Share with Organization — Only members of your organization can access + - Share Publicly — Anyone with the link can access + - Default: If not specified, the extension uses Organization visibility by default. + Share options showing Organization and Public visibility choices -Dashboard task modal with Share button +3. Create the link + - Roo generates the link and copies it to your clipboard. A brief success message appears in the UI. + Share link created and copied confirmation -### Step 2: Open Share Modal +## Sharing from Roo Code Cloud -Within the detailed task modal, click the **Share** button to open the sharing options. +1. Go to [Roo Code Cloud](https://app.roocode.com) and open the task you want to share. -Share Task modal +2. Click the Share button to open sharing options. -The modal will show options to create a public link that anyone can access, with a note that links expire in 30 days. +3. Create and manage links + - Choose Organization or Public, then click Create Share Link. + - Expiration: + - Personal accounts: links expire after 30 days. + - Organizations: expiry is set by your org (1–365 days; default 30). + - From this screen you can: + - Copy link + - Create another link + - See recent links (last 3 shown, with a “+N more” summary) + - Delete links (org admins can delete any org link; members can delete links they created) -### Step 3: Create and Manage Share Links +## Privacy & Security -Click **Create Share Link** to generate a new public link. Once created, you'll see the confirmation screen: +#### Controlled sharing +- Tasks are private by default—nothing is shared until you create a link. +- You choose Organization vs Public visibility per link. +- You can revoke access anytime by deleting the link. -Share link created confirmation +#### Expiring links +- Personal accounts: links expire after 30 days. +- Organizations: expiry is set by your org admin (1–365 days; default 30). -From this screen you can: -- **Copy Link** - Copy the generated share link to your clipboard -- **Create Another Link** - Generate additional share links for the same task -- **View Previous Links** - See and manage previously created links for this task -- **Delete Links** - Remove share links using the delete icon +#### Data control +- Delete share links anytime from the dashboard. +- View recent links in the dialog -The dashboard sharing method provides more advanced link management capabilities, including the ability to create multiple links per task and track previously generated links. \ No newline at end of file +## Caveats +- There's no link tracking at the moment +- Personal account links always expire after 30 days. \ No newline at end of file diff --git a/docs/roo-code-cloud/task-sync.mdx b/docs/roo-code-cloud/task-sync.mdx new file mode 100644 index 00000000..487d68d7 --- /dev/null +++ b/docs/roo-code-cloud/task-sync.mdx @@ -0,0 +1,49 @@ +--- +description: Task Sync streams task activity from your local VS Code to Roo Code Cloud so you can monitor progress from any device — free for all users. +keywords: + - task sync + - monitoring + - realtime updates + - task history + - mobile monitoring + - roo code cloud +image: /img/social-share.jpg +--- + +# Task Sync/Monitoring + +Task Sync streams task activity from your local VS Code to Roo Code Cloud so you can monitor progress from any device — desktop, tablet, or phone. This feature is free for all users. + +## What is Task Sync? + +Task Sync ingests task events one-way from your local VS Code to Roo Code Cloud so you can: +- Monitor long-running tasks from your phone while away from your desk +- See near real-time updates (polled every few seconds): messages, mode changes, and status +- Check when a task completes without sitting in front of your IDE +- Review your cloud task history anytime + +## Getting Started + +1. Connect your IDE (see [Connect to Cloud](/roo-code-cloud/connect)) +2. Open or start a task in your local Roo Code extension +3. Visit the homescreen at https://app.roocode.com to monitor in near real time + +- Personal accounts: Task Sync is enabled by default and can be toggled in Settings. +- Organization accounts: Task Sync is managed by your org admins and is off by default for members unless enabled at the org level. + +## Mobile Monitoring + +Task Sync is optimized for mobile. Check in on progress between meetings, during a build, or while a model is running — without being stuck at your desk. + +## Upgrading to Remote Control + +If you also want to continue tasks remotely (approve actions, respond to prompts, start/stop tasks), enable [Roomote Control](/roo-code-cloud/roomote-control). +Pro includes a free 14‑day trial, then $20/month — see [Billing & Subscriptions](/roo-code-cloud/billing-subscriptions). + +## Limitations + +- One-way monitoring only; no cloud commands are sent to your IDE +- For live updates, your IDE must be open and connected +- Internet connection required for live updates + +You can review cloud task history anytime, even when your IDE is closed. \ No newline at end of file diff --git a/docs/roo-code-cloud/what-is-roo-code-cloud.md b/docs/roo-code-cloud/what-is-roo-code-cloud.md index c1abb900..139275a7 100644 --- a/docs/roo-code-cloud/what-is-roo-code-cloud.md +++ b/docs/roo-code-cloud/what-is-roo-code-cloud.md @@ -1,67 +1,44 @@ --- -description: Discover Roo Code Cloud, the web platform that extends your Roo Code extension with cloud features for collaboration, persistence, and analytics. +description: Roo Code Cloud extends your VS Code extension with cloud task syncing and sharing, remote IDE control (Roomote), usage analytics, and optional Cloud Agents—using your own model API keys. keywords: - Roo Code Cloud - - AI development platform + - Roomote Control + - Remote Control + - Cloud Agents - cloud features - collaboration - task history - usage analytics + - BYO keys image: /img/social-share.jpg --- # What is Roo Code Cloud? -Roo Code Cloud is a web-based platform that extends your Roo Code extension with cloud-powered features for enhanced collaboration, data persistence, and usage tracking. By connecting your local Roo Code extension to the cloud, you unlock powerful capabilities that transform how you work with AI-assisted development. +Roo Code Cloud is the web platform companion to the Roo Code VS Code extension. It extends the extension's functionality (task syncing and sharing, usage analytics, remote control (Roomote Control)) and allows you to run tasks in the cloud, completely independent from the extension, via Cloud Agents. -## Key Benefits +Some of the functionality is free, some of it is paid. All of it follows our philosophy of being model-agnostic and letting you bring your provider key to stay in control of inference models and costs. -When you connect to Roo Code Cloud, you gain access to: +You can see the [pricing for different plans here](https://roocode.com/pricing). -- **Online task history** - Access your complete conversation history across devices and sessions -- **Sharing and collaboration features** - Share tasks publicly and collaborate with team members -- **Task, token, and cost-based usage metrics** - Monitor your AI assistant usage and optimize costs +## Main Features -## Core Features +| Feature | Description | Availability | +| :------ | :---------- | :----------- | +| [Connect the Extension to Cloud](/roo-code-cloud/connect) | Connect via GitHub, Google, or email for cloud sync | Free | +| [Analytics](/roo-code-cloud/analytics) | Track model tokens, tasks, estimated cost, and Cloud Agent credits | Free | +| [Task Sync](/roo-code-cloud/task-sync) | Real-time task updates and cloud task history across devices | Free | +| [Task Sharing](/roo-code-cloud/task-sharing) | Share tasks via secure, expiring links | Free | +| [Roomote Control](/roo-code-cloud/roomote-control) | Browser-based task control while your IDE runs them | Paid | +| [Cloud Agents](/roo-code-cloud/cloud-agents) | Run Roo in the cloud with credit-based runtime and BYO provider keys | Paid | +| [Billing & Plans](/roo-code-cloud/billing-subscriptions) | Manage subscriptions, trials, and credit purchasing | Paid | -### 🔗 Seamless Integration -Connect your Roo Code extension directly to the cloud with simple authentication through GitHub, Google, or email. No complex setup required. -### 📚 Persistent Task History -Your conversations and tasks are automatically synced to the cloud, ensuring you never lose important work. Access your complete development history from any device. - -### 🚀 Task Sharing -Share individual tasks with colleagues, collaborators, or the community through secure, expiring links. Perfect for: -- Getting help with complex problems -- Demonstrating solutions to team members -- Creating tutorials and documentation -- Code reviews and collaboration - -### 📊 Usage Analytics -Track your AI assistant usage with detailed metrics including: -- Task counts and completion rates -- Token consumption across different models -- Cost tracking for budget management -- Historical usage patterns - -### 🌐 Web Dashboard -Access a comprehensive web interface at [app.roocode.com](https://app.roocode.com/) to: -- View and manage your task history -- Create and manage share links -- Monitor usage statistics -- Configure account settings ## Getting Started -1. **[Connect Your Account](/roo-code-cloud/login)** - Link your Roo Code extension to the cloud with simple authentication -2. **[Explore the Dashboard](/roo-code-cloud/dashboard)** - Access your web-based control center -3. **[Share Your First Task](/roo-code-cloud/task-sharing)** - Collaborate by sharing tasks with others - -## Privacy & Security - -- **Secure Authentication** - Industry-standard OAuth with GitHub and Google, plus traditional email authentication -- **Controlled Sharing** - You decide what to share and when. Tasks remain private by default -- **Expiring Links** - Share links automatically expire in 30 days for enhanced security -- **Data Control** - Full control over your shared content with the ability to revoke access anytime - -Roo Code Cloud transforms your local AI development assistant into a collaborative, persistent, and analytically-rich platform while maintaining the security and privacy of your development work. \ No newline at end of file +1. [Connect your account](/roo-code-cloud/connect) to link Roo Code with the cloud. +2. Open [app.roocode.com](https://app.roocode.com/) and confirm your tasks appear. +3. Turn on [Task Sync](/roo-code-cloud/task-sync) so activity syncs to the cloud. +4. [Share a task](/roo-code-cloud/task-sharing) when you're ready for feedback or handoff. +5. Optional: enable [Roomote Control](/roo-code-cloud/roomote-control) (Pro/Team) for remote control, or start a [Cloud Agent](/roo-code-cloud/cloud-agents). Manage plans in [Billing & Plans](/roo-code-cloud/billing-subscriptions). diff --git a/docs/tips-and-tricks.md b/docs/tips-and-tricks.md index 0054566e..4c3fb779 100644 --- a/docs/tips-and-tricks.md +++ b/docs/tips-and-tricks.md @@ -27,3 +27,4 @@ A collection of quick tips to help you get the most out of Roo Code. - To manage large files and reduce context/resource usage, adjust the `File read auto-truncate threshold` setting. This setting controls the number of lines read from a file in one batch. Lower values can improve performance when working with very large files, but may require more read operations. You can find this setting in the Roo Code settings under 'Advanced Settings'. - Set up a keyboard shortcut for the [`roo.acceptInput` command](/features/keyboard-shortcuts) to accept suggestions or submit text input without using the mouse. Perfect for keyboard-focused workflows and reducing hand strain. - Use **Sticky Models** to assign specialized AI models to different modes (reasoning model for planning, non-reasoning model for coding). Roo automatically switches to each mode's last-used model without manual selection. +- Customize the [context reduction prompt](/features/intelligent-context-condensing#customizing-the-context-condensing-prompt) if you find that for your domain/use case it forgets particular things. You can instruct it to preserve specific types of information that are critical to your workflow. diff --git a/docs/tutorial-videos.json b/docs/tutorial-videos.json index 00602831..9758d0a0 100644 --- a/docs/tutorial-videos.json +++ b/docs/tutorial-videos.json @@ -5,7 +5,7 @@ "title": "Installing Roo Code" }, { - "id": "eEJErgZBqLE", + "id": "ZBML8h5cCgo", "title": "Configuring Profiles" }, { @@ -13,11 +13,11 @@ "title": "Setting up MCP Servers" }, { - "id": "jW4_PPyRXCs", + "id": "bWtIxGsl2cQ", "title": "Auto Approve Feature" }, { - "id": "qgqceCuhlRA", + "id": "iiAv1eKOaxk", "title": "Custom Modes" }, { @@ -39,6 +39,18 @@ { "id": "6h5vB9PpoPk", "title": "Todo Lists" + }, + { + "id": "IOpmeUGLpg0", + "title": "Slash Commands" + }, + { + "id": "cAjzTs0194c", + "title": "Browser Use" + }, + { + "id": "_Op3VfLPEu8", + "title": "Code Actions" } ] -} \ No newline at end of file +} diff --git a/docs/update-notes/index.md b/docs/update-notes/index.md index e7a6cce4..95acfc29 100644 --- a/docs/update-notes/index.md +++ b/docs/update-notes/index.md @@ -14,33 +14,198 @@ image: /img/social-share.jpg # Update Notes -This section contains notes about recent updates to Roo Code, listed by version number. + --- -## Version 3.23 +### Version 3.36 +* [3.36.2](/update-notes/v3.36.2) (2025-12-05) +* [3.36.1](/update-notes/v3.36.1) (2025-12-04) +* [3.36.0](/update-notes/v3.36.0) (2025-12-04) + +--- + +### Version 3.35 + +* [3.35](/update-notes/v3.35) (Combined) +* [3.35.5](/update-notes/v3.35.5) (2025-12-03) +* [3.35.4](/update-notes/v3.35.4) (2025-12-02) +* [3.35.3](/update-notes/v3.35.3) (2025-12-02) +* [3.35.2](/update-notes/v3.35.2) (2025-12-01) +* [3.35.1](/update-notes/v3.35.1) (2025-12-01) +* [3.35.0](/update-notes/v3.35.0) (2025-12-01) + +--- + +### Version 3.34 + +* [3.34](/update-notes/v3.34) (Combined) +* [3.34.8](/update-notes/v3.34.8) (2025-11-27) +* [3.34.7](/update-notes/v3.34.7) (2025-11-27) +* [3.34.6](/update-notes/v3.34.6) (2025-11-26) +* [3.34.5](/update-notes/v3.34.5) (2025-11-25) +* [3.34.4](/update-notes/v3.34.4) (2025-11-25) +* [3.34.3](/update-notes/v3.34.3) (2025-11-25) +* [3.34.2](/update-notes/v3.34.2) (2025-11-24) +* [3.34.1](/update-notes/v3.34.1) (2025-11-23) +* [3.34.0](/update-notes/v3.34.0) (2025-11-21) + +### Version 3.33 + +* [3.33](/update-notes/v3.33) (Combined) +* [3.33.3](/update-notes/v3.33.3) (2025-11-20) +* [3.33.2](/update-notes/v3.33.2) (2025-11-20) +* [3.33.1](/update-notes/v3.33.1) (2025-11-18) +* [3.33.0](/update-notes/v3.33.0) (2025-11-18) + +--- + +### Version 3.32 + +* [3.32](/update-notes/v3.32) (Combined) +* [3.32.1](/update-notes/v3.32.1) (2025-11-15) +* [3.32.0](/update-notes/v3.32.0) (2025-11-14) + +--- + +### Version 3.31 + +* [3.31](/update-notes/v3.31) (Combined) +* [3.31.3](/update-notes/v3.31.3) (2025-11-13) +* [3.31.2](/update-notes/v3.31.2) (2025-11-13) +* [3.31.1](/update-notes/v3.31.1) (2025-11-12) +* [3.31.0](/update-notes/v3.31.0) (2025-11-08) + +--- + +### Version 3.30 + +* [3.30.3](/update-notes/v3.30.3) (2025-11-07) +* [3.30.2](/update-notes/v3.30.2) (2025-11-06) +* [3.30.1](/update-notes/v3.30.1) (2025-11-04) +* [3.30](/update-notes/v3.30) (2025-11-03) +* [3.30.0](/update-notes/v3.30.0) (2025-11-03) + +--- + +### Version 3.29 + +* [3.29](/update-notes/v3.29) (Combined) +* [3.29.5](/update-notes/v3.29.5) (2025-11-01) +* [3.29.4](/update-notes/v3.29.4) (2025-10-31) +* [3.29.3](/update-notes/v3.29.3) (2025-10-28) +* [3.29.2](/update-notes/v3.29.2) (2025-10-27) +* [3.29.1](/update-notes/v3.29.1) (2025-10-27) +* [3.29.0](/update-notes/v3.29.0) (2025-10-24) + +--- + +### Version 3.28 + +* [3.28](/update-notes/v3.28) (Combined) +* [3.28.18](/update-notes/v3.28.18) (2025-10-17) +* [3.28.17](/update-notes/v3.28.17) (2025-10-15) +* [3.28.16](/update-notes/v3.28.16) (2025-10-10) +* [3.28.15](/update-notes/v3.28.15) (2025-10-03) +* [3.28.14](/update-notes/v3.28.14) (2025-09-30) +* [3.28.13](/update-notes/v3.28.13) (2025-09-29) +* [3.28.12](/update-notes/v3.28.12) (2025-09-29) +* [3.28.11](/update-notes/v3.28.11) (2025-09-29) +* [3.28.10](/update-notes/v3.28.10) (2025-09-29) +* [3.28.9](/update-notes/v3.28.9) (2025-09-26) +* [3.28.8](/update-notes/v3.28.8) (2025-09-25) +* [3.28.7](/update-notes/v3.28.7) (2025-09-23) +* [3.28.6](/update-notes/v3.28.6) (2025-09-23) +* [3.28.5](/update-notes/v3.28.5) (2025-09-20) +* [3.28.4](/update-notes/v3.28.4) (2025-09-19) +* [3.28.3](/update-notes/v3.28.3) (2025-09-16) +* [3.28.2](/update-notes/v3.28.2) (2025-09-14) +* [3.28.1](/update-notes/v3.28.1) (2025-09-11) +* [3.28.0](/update-notes/v3.28.0) (2025-09-10) + +--- + +### Version 3.27 + +* [3.27.0](/update-notes/v3.27.0) (2025-09-05) + +--- + +### Version 3.26 + +* [3.26.7](/update-notes/v3.26.7) (2025-09-05) +* [3.26.6](/update-notes/v3.26.6) (2025-09-03) +* [3.26.5](/update-notes/v3.26.5) (2025-09-03) +* [3.26.4](/update-notes/v3.26.4) (2025-09-01) +* [3.26.3](/update-notes/v3.26.3) (2025-08-29) +* [3.26.2](/update-notes/v3.26.2) (2025-08-28) +* [3.26.1](/update-notes/v3.26.1) (2025-08-27) +* [3.26.0](/update-notes/v3.26.0) (2025-08-26) + +--- + +### Version 3.25 + +* [3.25](/update-notes/v3.25) (Combined) +* [3.25.23](/update-notes/v3.25.23) (2025-08-22) +* [3.25.22](/update-notes/v3.25.22) (2025-08-22) +* [3.25.21](/update-notes/v3.25.21) (2025-08-22) +* [3.25.20](/update-notes/v3.25.20) (2025-08-20) +* [3.25.19](/update-notes/v3.25.19) (2025-08-19) +* [3.25.18](/update-notes/v3.25.18) (2025-08-19) +* [3.25.17](/update-notes/v3.25.17) (2025-08-18) +* [3.25.16](/update-notes/v3.25.16) (2025-08-17) +* [3.25.15](/update-notes/v3.25.15) (2025-08-14) +* [3.25.14](/update-notes/v3.25.14) (2025-08-13) +* [3.25.13](/update-notes/v3.25.13) (2025-08-13) +* [3.25.12](/update-notes/v3.25.12) (2025-08-12) +* [3.25.11](/update-notes/v3.25.11) (2025-08-11) +* [3.25.10](/update-notes/v3.25.10) (2025-08-07) +* [3.25.9](/update-notes/v3.25.9) (2025-08-07) +* [3.25.8](/update-notes/v3.25.8) (2025-08-06) +* [3.25.7](/update-notes/v3.25.7) (2025-08-05) +* [3.25.6](/update-notes/v3.25.6) (2025-08-02) +* [3.25.5](/update-notes/v3.25.5) (2025-08-01) +* [3.25.4](/update-notes/v3.25.4) (2025-07-31) +* [3.25.3](/update-notes/v3.25.3) (2025-07-30) +* [3.25.2](/update-notes/v3.25.2) (2025-07-29) +* [3.25.1](/update-notes/v3.25.1) (2025-07-29) +* [3.25.0](/update-notes/v3.25.0) (2025-07-29) + +--- + +### Version 3.24 + +* [3.24.0](/update-notes/v3.24.0) (2025-07-26) + +--- + +### Version 3.23 + +* [3.23.19](/update-notes/v3.23.19) (2025-07-23) +* [3.23.18](/update-notes/v3.23.18) (2025-07-23) * [3.23.17](/update-notes/v3.23.17) (2025-07-22) * [3.23.16](/update-notes/v3.23.16) (2025-07-19) * [3.23.15](/update-notes/v3.23.15) (2025-07-18) * [3.23.14](/update-notes/v3.23.14) (2025-07-17) * [3.23.13](/update-notes/v3.23.13) (2025-07-17) -* [3.23.12](/update-notes/v3.23.12) (2025-01-13) -* [3.23.11](/update-notes/v3.23.11) (2025-01-13) -* [3.23.10](/update-notes/v3.23.10) (2025-01-13) -* [3.23.9](/update-notes/v3.23.9) (2025-01-13) -* [3.23.8](/update-notes/v3.23.8) (2025-01-13) -* [3.23.7](/update-notes/v3.23.7) (2025-01-13) +* [3.23.12](/update-notes/v3.23.12) (2025-07-15) +* [3.23.11](/update-notes/v3.23.11) (2025-07-15) +* [3.23.10](/update-notes/v3.23.10) (2025-07-14) +* [3.23.9](/update-notes/v3.23.9) (2025-07-14) +* [3.23.8](/update-notes/v3.23.8) (2025-07-13) +* [3.23.7](/update-notes/v3.23.7) (2025-07-12) * [3.23.6](/update-notes/v3.23.6) (2025-07-10) -* [3.23.5](/update-notes/v3.23.5) (2025-07-10) -* [3.23.4](/update-notes/v3.23.4) (2025-07-10) -* [3.23.3](/update-notes/v3.23.3) (2025-07-10) -* [3.23.2](/update-notes/v3.23.2) (2025-07-10) -* [3.23.1](/update-notes/v3.23.1) (2025-07-10) +* [3.23.5](/update-notes/v3.23.5) (2025-07-09) +* [3.23.4](/update-notes/v3.23.4) (2025-07-09) +* [3.23.3](/update-notes/v3.23.3) (2025-07-09) +* [3.23.2](/update-notes/v3.23.2) (2025-07-09) +* [3.23.1](/update-notes/v3.23.1) (2025-07-09) * [3.23.0](/update-notes/v3.23.0) (2025-07-09) --- -## Version 3.22 +### Version 3.22 * [3.22.6](/update-notes/v3.22.6) (2025-07-02) * [3.22.5](/update-notes/v3.22.5) (2025-06-29) @@ -53,7 +218,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.21 +### Version 3.21 * [3.21.5](/update-notes/v3.21.5) (2025-06-23) * [3.21.4](/update-notes/v3.21.4) (2025-06-23) @@ -64,7 +229,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.20 +### Version 3.20 * [3.20.3](/update-notes/v3.20.3) (2025-06-14) * [3.20.2](/update-notes/v3.20.2) (2025-06-13) @@ -74,7 +239,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.19 +### Version 3.19 * [3.19.7](/update-notes/v3.19.7) (2025-06-11) * [3.19.6](/update-notes/v3.19.6) (2025-06-09) @@ -88,7 +253,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.18 +### Version 3.18 * [3.18.5](/update-notes/v3.18.5) (2025-05-27) * [3.18.4](/update-notes/v3.18.4) (2025-05-25) @@ -99,7 +264,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.17 +### Version 3.17 * [3.17.2](/update-notes/v3.17.2) (2025-05-15) * [3.17.1](/update-notes/v3.17.1) (2025-05-15) @@ -108,7 +273,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.16 +### Version 3.16 * [3.16.6](/update-notes/v3.16.6) (2025-05-12) * [3.16.5](/update-notes/v3.16.5) (2025-05-10) @@ -120,7 +285,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.15 +### Version 3.15 * [3.15](/update-notes/v3.15) (2025-05-05) * [3.15.5](/update-notes/v3.15.5) (2025-05-05) @@ -132,7 +297,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.14 +### Version 3.14 * [3.14](/update-notes/v3.14) (2025-04-24) * [3.14.3](/update-notes/v3.14.3) (2025-04-25) @@ -142,7 +307,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.13 +### Version 3.13 * [3.13](/update-notes/v3.13) (2025-04-18) * [3.13.2](/update-notes/v3.13.2) (2025-04-18) @@ -151,7 +316,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.12 +### Version 3.12 * [3.12](/update-notes/v3.12) (2025-04-17) * [3.12.3](/update-notes/v3.12.3) (2025-04-17) @@ -161,7 +326,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.11 +### Version 3.11 * [3.11.17](/update-notes/v3.11.17) (2025-04-14) * [3.11.16](/update-notes/v3.11.16) (2025-04-14) @@ -185,7 +350,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.10 +### Version 3.10 * [3.10](/update-notes/v3.10) (2025-03-25) * [3.10.5](/update-notes/v3.10.5) (2025-03-25) @@ -197,7 +362,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.9 +### Version 3.9 * [3.9](/update-notes/v3.9) (2025-03-19) * [3.9.2](/update-notes/v3.9.2) (2025-03-19) @@ -206,7 +371,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.8 +### Version 3.8 * [3.8](/update-notes/v3.8) (2025-03-13) * [3.8.6](/update-notes/v3.8.6) (2025-03-13) @@ -219,7 +384,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.7 +### Version 3.7 * [3.7](/update-notes/v3.7) (2025-03-03) * [3.7.12](/update-notes/v3.7.12) (2025-03-03) @@ -238,7 +403,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.3 +### Version 3.3 * [3.3](/update-notes/v3.3) (2025-02-27) * [3.3.26](/update-notes/v3.3.26) (2025-02-27) @@ -271,7 +436,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.2 +### Version 3.2 * [3.2](/update-notes/v3.2) (2025-02-27) * [3.2.8](/update-notes/v3.2.8) @@ -284,7 +449,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.1 +### Version 3.1 * [3.1](/update-notes/v3.1) (2025-02-27) * [3.1.7](/update-notes/v3.1.7) @@ -297,7 +462,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 3.0 +### Version 3.0 * [3.0](/update-notes/v3.0) (2025-02-27) * [3.0.3](/update-notes/v3.0.3) @@ -307,7 +472,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 2.2 +### Version 2.2 * [2.2](/update-notes/v2.2) (2025-02-27) * [2.2.46](/update-notes/v2.2.46) @@ -354,7 +519,7 @@ This section contains notes about recent updates to Roo Code, listed by version --- -## Version 2.1 +### Version 2.1 * [2.1](/update-notes/v2.1) (2025-02-27) * [2.1.21](/update-notes/v2.1.21) diff --git a/docs/update-notes/v3.14.0.md b/docs/update-notes/v3.14.0.md index 664db195..8fe8fbff 100644 --- a/docs/update-notes/v3.14.0.md +++ b/docs/update-notes/v3.14.0.md @@ -13,7 +13,7 @@ This release introduces Gemini prompt caching, improves several tools, and inclu * Improve [`apply_diff`](/advanced-usage/available-tools/apply-diff) to work better with **Google Gemini 2.5** and other models * Automatically close files opened by edit tools (`apply_diff`, `insert_content`, `search_and_replace`, `write_to_file`) after changes are approved. This prevents cluttering the editor with files opened by Roo and helps clarify context by only showing files intentionally opened by the user. -* Added the [`search_and_replace`](/advanced-usage/available-tools/search-and-replace) tool. This tool finds and replaces text within a file using literal strings or regex patterns, optionally within specific line ranges (thanks samhvw8!). +* Added the `search_and_replace` tool. This tool finds and replaces text within a file using literal strings or regex patterns, optionally within specific line ranges (thanks samhvw8!). * Added the [`insert_content`](/advanced-usage/available-tools/insert-content) tool. This tool adds new lines into a file at a specific location or the end, without modifying existing content (thanks samhvw8!). * Deprecated the `append_to_file` tool in favor of `insert_content` (use `line: 0`). * Correctly revert changes and suggest alternative tools when [`write_to_file`](/advanced-usage/available-tools/write-to-file) fails on a missing line count diff --git a/docs/update-notes/v3.14.md b/docs/update-notes/v3.14.md index fd4c23de..de4ff3f4 100644 --- a/docs/update-notes/v3.14.md +++ b/docs/update-notes/v3.14.md @@ -45,7 +45,7 @@ image: /img/social-share.jpg * Improve [`apply_diff`](/advanced-usage/available-tools/apply-diff) to work better with **Google Gemini 2.5** and other models * Automatically close files opened by edit tools (`apply_diff`, `insert_content`, `search_and_replace`, `write_to_file`) after changes are approved. This prevents cluttering the editor with files opened by Roo and helps clarify context by only showing files intentionally opened by the user. -* Added the [`search_and_replace`](/advanced-usage/available-tools/search-and-replace) tool. This tool finds and replaces text within a file using literal strings or regex patterns, optionally within specific line ranges (thanks samhvw8!). +* Added the `search_and_replace` tool. This tool finds and replaces text within a file using literal strings or regex patterns, optionally within specific line ranges (thanks samhvw8!). * Added the [`insert_content`](/advanced-usage/available-tools/insert-content) tool. This tool adds new lines into a file at a specific location or the end, without modifying existing content (thanks samhvw8!). * Deprecated the `append_to_file` tool in favor of `insert_content` (use `line: 0`). * Correctly revert changes and suggest alternative tools when [`write_to_file`](/advanced-usage/available-tools/write-to-file) fails on a missing line count diff --git a/docs/update-notes/v3.15.0.md b/docs/update-notes/v3.15.0.md index cdc3f92b..ebac1e2a 100644 --- a/docs/update-notes/v3.15.0.md +++ b/docs/update-notes/v3.15.0.md @@ -17,7 +17,7 @@ This release introduces prompt caching for Google Vertex, improved terminal comm ## Improved Terminal Command Handling -* Implemented a [fallback mechanism](/features/shell-integration#command-execution-fallback) for executing terminal commands if VSCode terminal shell integration fails. +* Implemented a for executing terminal commands if VSCode terminal shell integration fails. * Added the ability to stop commands directly from the chat UI. diff --git a/docs/update-notes/v3.15.md b/docs/update-notes/v3.15.md index 36c70950..1e2be048 100644 --- a/docs/update-notes/v3.15.md +++ b/docs/update-notes/v3.15.md @@ -26,7 +26,7 @@ This release introduces prompt caching for Google Vertex, improved terminal comm ## Improved Terminal Command Handling -* Implemented a [fallback mechanism](/features/shell-integration#command-execution-fallback) for executing terminal commands if VSCode terminal shell integration fails. +* Implemented a for executing terminal commands if VSCode terminal shell integration fails. * Added the ability to stop commands directly from the chat UI. diff --git a/docs/update-notes/v3.16.6.mdx b/docs/update-notes/v3.16.6.mdx deleted file mode 100644 index 07f2d762..00000000 --- a/docs/update-notes/v3.16.6.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -description: This release restores a previous improvement and includes fixes for subtask sequencing and terminal output processing. -image: /img/social-share.jpg ---- diff --git a/docs/update-notes/v3.19.0.mdx b/docs/update-notes/v3.19.0.mdx index 1d40cfb7..5f3b01d3 100644 --- a/docs/update-notes/v3.19.0.mdx +++ b/docs/update-notes/v3.19.0.mdx @@ -43,7 +43,7 @@ Navigate between different modes and prompts more intuitively. ## Bug Fixes * **Directory Mention Protection**: Fixed [`@directory`](/basic-usage/context-mentions) not respecting [`.rooignore`](/features/rooignore) files (thanks xyOz-dev!) -* **Tool File Protection**: Added [`rooignore`](/features/rooignore) checking for [`insert_content`](/advanced-usage/available-tools/insert-content) and [`search_and_replace`](/advanced-usage/available-tools/search-and-replace) tools +* **Tool File Protection**: Added [`rooignore`](/features/rooignore) checking for [`insert_content`](/advanced-usage/available-tools/insert-content) and `search_and_replace` tools * **Memory Leak Fix**: Resolved memory leak in ChatView by stabilizing callback props (thanks samhvw8!) * **Empty File Creation**: Fixed [`write_to_file`](/advanced-usage/available-tools/write-to-file) to properly create empty files when content is empty (thanks Ruakij!) * **Chat Input Stability**: Fixed chat input clearing during running tasks (thanks xyOz-dev!) diff --git a/docs/update-notes/v3.23.1.mdx b/docs/update-notes/v3.23.1.mdx index 104ec16d..2dcf30be 100644 --- a/docs/update-notes/v3.23.1.mdx +++ b/docs/update-notes/v3.23.1.mdx @@ -3,7 +3,7 @@ description: This release improves the visibility of codebase indexing status. image: /img/social-share.jpg --- -# Roo Code 3.23.1 Release Notes (2025-01-13) +# Roo Code 3.23.1 Release Notes (2025-07-09) This release improves the visibility of codebase indexing status. diff --git a/docs/update-notes/v3.23.10.mdx b/docs/update-notes/v3.23.10.mdx index 0f4fcf3e..c6b5bc97 100644 --- a/docs/update-notes/v3.23.10.mdx +++ b/docs/update-notes/v3.23.10.mdx @@ -3,7 +3,7 @@ description: This release introduces free Gemini access via OAuth, fixes several image: /img/social-share.jpg --- -# Roo Code 3.23.10 Release Notes (2025-01-13) +# Roo Code 3.23.10 Release Notes (2025-07-14) This release improves codebase indexing reliability and enhances the user interface. diff --git a/docs/update-notes/v3.23.11.mdx b/docs/update-notes/v3.23.11.mdx index 211acd5f..e8b4b141 100644 --- a/docs/update-notes/v3.23.11.mdx +++ b/docs/update-notes/v3.23.11.mdx @@ -3,7 +3,7 @@ description: This release introduces free Gemini access via OAuth, fixes several image: /img/social-share.jpg --- -# Roo Code 3.23.11 Release Notes (2025-01-13) +# Roo Code 3.23.11 Release Notes (2025-07-15) This release adds new provider options and improves mode navigation. diff --git a/docs/update-notes/v3.23.12.mdx b/docs/update-notes/v3.23.12.mdx index b5ff930a..b874253b 100644 --- a/docs/update-notes/v3.23.12.mdx +++ b/docs/update-notes/v3.23.12.mdx @@ -3,7 +3,7 @@ description: This release introduces free Gemini access via OAuth, fixes several image: /img/social-share.jpg --- -# Roo Code 3.23.12 Release Notes (2025-01-13) +# Roo Code 3.23.12 Release Notes (2025-07-15) This release improves token handling consistency across API providers. diff --git a/docs/update-notes/v3.23.18.mdx b/docs/update-notes/v3.23.18.mdx new file mode 100644 index 00000000..7998ff41 --- /dev/null +++ b/docs/update-notes/v3.23.18.mdx @@ -0,0 +1,25 @@ +--- +description: Bug fixes for todo list toggle, command parsing crashes, and improved error handling. +keywords: + - roo code 3.23.18 + - bug fixes + - error handling + - command parsing +image: /img/social-share.jpg +--- + +# Roo Code 3.23.18 Release Notes (2025-07-23) + +This release fixes critical bugs including todo list toggle functionality, command parsing crashes, and adds better error handling to prevent interface crashes. + +## Bug Fixes + +* **Todo List Toggle**: Fixed the todo list toggle in provider advanced settings that wasn't working properly (thanks chrarnoldus!) ([#6103](https://github.com/RooCodeInc/Roo-Code/pull/6103)) + +* **Command Parsing**: Fixed crashes when running complex bash commands with special syntax like arithmetic expressions and array variables, allowing users to create advanced GitHub CLI aliases and other sophisticated shell scripts (thanks daniel-lxs, KJ7LNW!) ([#5743](https://github.com/RooCodeInc/Roo-Code/pull/5743)) + +* **Error Handling**: Added error boundaries to prevent the entire Roo Code interface from crashing when errors occur. Instead of seeing a blank screen, users now see helpful error messages with debugging information, allowing them to continue using other parts of the extension (thanks KJ7LNW, elianiva!) ([#5085](https://github.com/RooCodeInc/Roo-Code/pull/5085)) + +## Misc Improvements + +* **Process Termination**: Roo Code now more reliably terminates unresponsive processes, preventing hanging commands from blocking your workflow ([#6071](https://github.com/RooCodeInc/Roo-Code/pull/6071)) \ No newline at end of file diff --git a/docs/update-notes/v3.23.19.mdx b/docs/update-notes/v3.23.19.mdx new file mode 100644 index 00000000..6f6f8c48 --- /dev/null +++ b/docs/update-notes/v3.23.19.mdx @@ -0,0 +1,29 @@ +--- +description: Introduces Roo Code Cloud waitlist signup and improves command handling with smarter validation and multi-line support. +keywords: + - roo code 3.23.19 + - roo code cloud + - waitlist + - command handling +image: /img/social-share.jpg +--- + +# Roo Code 3.23.19 Release Notes (2025-07-23) + +This release introduces Roo Code Cloud waitlist signup and improves command handling with smarter validation and better multi-line command support. + +## Roo Code Cloud Waitlist + +We're excited to announce early access signup for Roo Code Cloud! (thanks brunobergher!) ([#6104](https://github.com/RooCodeInc/Roo-Code/pull/6104)): + +- **Website Signup**: New call-to-action button in the website header for easy waitlist registration +- **In-Extension Access**: Users with 3+ tasks will see waitlist signup options directly in the extension +- **Early Access**: Be among the first to experience the power of Roo Code Cloud + +Join the waitlist today to get early access to cloud-powered features! + +## QOL Improvements + +* **Smarter Command Validation**: Improved command validation logic that only auto-denies subshell commands if they contain denied prefixes, making the system more intelligent about which commands to allow ([#6123](https://github.com/RooCodeInc/Roo-Code/pull/6123)) + +* **Multi-line Command Support**: Commands with newlines are now properly parsed, making it easier to work with multi-line commands across different operating systems (Unix, Windows, and old Mac formats) ([#6121](https://github.com/RooCodeInc/Roo-Code/pull/6121)) \ No newline at end of file diff --git a/docs/update-notes/v3.23.2.mdx b/docs/update-notes/v3.23.2.mdx index 27bffe08..b26e6457 100644 --- a/docs/update-notes/v3.23.2.mdx +++ b/docs/update-notes/v3.23.2.mdx @@ -3,7 +3,7 @@ description: Roo Code v3.23.2 refines the UX by restoring the "Apply" button for image: /img/social-share.jpg --- -# Roo Code 3.23.2 Release Notes (2025-01-13) +# Roo Code 3.23.2 Release Notes (2025-07-09) This release fixes auto-approval workflow issues. diff --git a/docs/update-notes/v3.23.3.mdx b/docs/update-notes/v3.23.3.mdx index 695e62a3..a8870526 100644 --- a/docs/update-notes/v3.23.3.mdx +++ b/docs/update-notes/v3.23.3.mdx @@ -3,7 +3,7 @@ description: This release fixes compatibility issues with custom mode files to e image: /img/social-share.jpg --- -# Roo Code 3.23.3 Release Notes (2025-01-13) +# Roo Code 3.23.3 Release Notes (2025-07-09) This release cleans up the chat interface. diff --git a/docs/update-notes/v3.23.4.mdx b/docs/update-notes/v3.23.4.mdx index f69c85e0..7ef70abb 100644 --- a/docs/update-notes/v3.23.4.mdx +++ b/docs/update-notes/v3.23.4.mdx @@ -3,7 +3,7 @@ description: This release includes bug fixes, UI improvements, and better organi image: /img/social-share.jpg --- -# Roo Code 3.23.4 Release Notes (2025-01-13) +# Roo Code 3.23.4 Release Notes (2025-07-09) This release includes bug fixes, UI improvements, and better organization. diff --git a/docs/update-notes/v3.23.5.mdx b/docs/update-notes/v3.23.5.mdx index e79e305d..88c7fa3c 100644 --- a/docs/update-notes/v3.23.5.mdx +++ b/docs/update-notes/v3.23.5.mdx @@ -3,7 +3,7 @@ description: This release fixes file handling issues and improves account access image: /img/social-share.jpg --- -# Roo Code 3.23.5 Release Notes (2025-01-13) +# Roo Code 3.23.5 Release Notes (2025-07-09) This release fixes file handling issues and improves account accessibility. diff --git a/docs/update-notes/v3.23.6.mdx b/docs/update-notes/v3.23.6.mdx index 7495feb2..b2d6ba25 100644 --- a/docs/update-notes/v3.23.6.mdx +++ b/docs/update-notes/v3.23.6.mdx @@ -3,7 +3,7 @@ description: This release adds Grok-4 model support and fixes a security issue. image: /img/social-share.jpg --- -# Roo Code 3.23.6 Release Notes (2025-01-13) +# Roo Code 3.23.6 Release Notes (2025-07-10) This release adds Grok-4 model support and fixes a security issue. diff --git a/docs/update-notes/v3.23.7.mdx b/docs/update-notes/v3.23.7.mdx index d776cf64..77bc68c8 100644 --- a/docs/update-notes/v3.23.7.mdx +++ b/docs/update-notes/v3.23.7.mdx @@ -3,7 +3,7 @@ description: This release improves codebase indexing reliability, adds new provi image: /img/social-share.jpg --- -# Roo Code 3.23.7 Release Notes (2025-01-13) +# Roo Code 3.23.7 Release Notes (2025-07-12) This release improves codebase indexing reliability, adds new provider options, and enhances the user interface. diff --git a/docs/update-notes/v3.23.8.mdx b/docs/update-notes/v3.23.8.mdx index 6376fa3f..6a607a7f 100644 --- a/docs/update-notes/v3.23.8.mdx +++ b/docs/update-notes/v3.23.8.mdx @@ -3,7 +3,7 @@ description: This release introduces free Gemini access via OAuth, fixes several image: /img/social-share.jpg --- -# Roo Code 3.23.8 Release Notes (2025-01-13) +# Roo Code 3.23.8 Release Notes (2025-07-13) This release adds command workflow controls and improves the user interface. diff --git a/docs/update-notes/v3.23.9.mdx b/docs/update-notes/v3.23.9.mdx index 5964edd8..8f11bad4 100644 --- a/docs/update-notes/v3.23.9.mdx +++ b/docs/update-notes/v3.23.9.mdx @@ -3,7 +3,7 @@ description: This release introduces free Gemini access via OAuth, fixes several image: /img/social-share.jpg --- -# Roo Code 3.23.9 Release Notes (2025-01-13) +# Roo Code 3.23.9 Release Notes (2025-07-14) This release adds Windows support for Claude Code, introduces configurable command timeouts, and fixes critical workflow issues. diff --git a/docs/update-notes/v3.23.mdx b/docs/update-notes/v3.23.mdx index 4f85bb72..9fde6bbc 100644 --- a/docs/update-notes/v3.23.mdx +++ b/docs/update-notes/v3.23.mdx @@ -42,6 +42,16 @@ We've added the ability to automatically reject unwanted commands in your workfl This gives you better control over command execution in automated workflows. +## Roo Code Cloud Waitlist + +We're excited to announce early access signup for Roo Code Cloud! (thanks brunobergher!): + +- **Website Signup**: New call-to-action button in the website header for easy waitlist registration +- **In-Extension Access**: Users with 3+ tasks will see waitlist signup options directly in the extension +- **Early Access**: Be among the first to experience the power of Roo Code Cloud + +Join the waitlist today to get early access to cloud-powered features! + ## Windows Support for Claude Code We've added native Windows support for the Claude Code provider (thanks SannidhyaSah, kwk9892!) ([#5615](https://github.com/RooCodeInc/Roo-Code/pull/5615)): @@ -52,6 +62,8 @@ We've added native Windows support for the Claude Code provider (thanks Sannidhy ## QOL Improvements +- **Smarter Command Validation**: Improved command validation logic that only auto-denies subshell commands if they contain denied prefixes, making the system more intelligent about which commands to allow +- **Multi-line Command Support**: Commands with newlines are now properly parsed, making it easier to work with multi-line commands across different operating systems (Unix, Windows, and old Mac formats) - **Simplified Prompt History**: Navigate your prompt history using only the up and down arrow keys when the cursor is at the start of the input field ([#5467](https://github.com/RooCodeInc/Roo-Code/pull/5467)) - **API Provider Search**: You can now search and filter the list of API providers in the settings (thanks GOODBOY008!) ([#5278](https://github.com/RooCodeInc/Roo-Code/pull/5278)) API Provider Search interface showing search and filter functionality @@ -107,6 +119,9 @@ We've added native Windows support for the Claude Code provider (thanks Sannidhy ## Bug Fixes +- **Todo List Toggle**: Fixed the todo list toggle in provider advanced settings that wasn't working properly (thanks chrarnoldus!) +- **Command Parsing**: Fixed crashes when running complex bash commands with special syntax like arithmetic expressions and array variables, allowing users to create advanced GitHub CLI aliases and other sophisticated shell scripts (thanks daniel-lxs, KJ7LNW!) +- **Error Handling**: Added error boundaries to prevent the entire Roo Code interface from crashing when errors occur. Instead of seeing a blank screen, users now see helpful error messages with debugging information, allowing them to continue using other parts of the extension (thanks KJ7LNW, elianiva!) - **`apply_diff` Tool**: Fixed an issue where the `apply_diff` tool would hang indefinitely on an error (thanks lhish!) ([#5391](https://github.com/RooCodeInc/Roo-Code/pull/5391)) - **Chat Focus**: Prevents the chat from losing focus during automated workflows, stopping user input from being accidentally redirected to files being edited by Roo (thanks ColbySerpa!) ([#5349](https://github.com/RooCodeInc/Roo-Code/pull/5349)) - **Architect Mode File Restrictions**: Fixed an issue where Architect mode was not properly enforcing file restrictions (thanks shanemmattner!) ([#5447](https://github.com/RooCodeInc/Roo-Code/pull/5447)) @@ -167,6 +182,7 @@ We've added native Windows support for the Claude Code provider (thanks Sannidhy ## Misc Improvements +- **Process Termination**: Roo Code now more reliably terminates unresponsive processes, preventing hanging commands from blocking your workflow - **Code Indexing**: Added memory-safe batch limiting to prevent overflow when scanning large codebases (thanks daniel-lxs!) - **API Rate Limiting**: Implemented global rate limiting with exponential backoff for OpenAI-compatible embeddings, preventing API overload and improving reliability (thanks daniel-lxs!) - **Release Engineering**: Enhanced release notes generation to include issue numbers and reporters for better attribution (thanks roomote!) diff --git a/docs/update-notes/v3.24.0.mdx b/docs/update-notes/v3.24.0.mdx new file mode 100644 index 00000000..601d1334 --- /dev/null +++ b/docs/update-notes/v3.24.0.mdx @@ -0,0 +1,71 @@ +--- +description: Roo Code 3.24.0 introduces Hugging Face provider support, Agent Rules standard, terminal command permissions UI, and diagnostic message controls. +keywords: + - roo code 3.24.0 + - hugging face provider + - agent rules standard + - terminal permissions + - diagnostic controls +image: /img/social-share.jpg +--- + +# Roo Code 3.24.0 Release Notes (2025-07-26) + +This release introduces Hugging Face provider with open source model support, cross-tool AI coding standards, enhanced terminal security controls, and improved diagnostic management. + +## Terminal Command Permissions UI + +Managing terminal command permissions is now easier with our new interactive UI (thanks hannesrudolph!) ([#5798](https://github.com/RooCodeInc/Roo-Code/pull/5798)): + +- **Visual Management**: See and manage command patterns directly in the chat interface +- **Pattern Suggestions**: Get intelligent pattern recommendations based on commands +- **Toggle Controls**: Easily switch between allowed and denied states for command patterns + +## Hugging Face Provider + +We've added support for Hugging Face as a new provider, bringing access to thousands of open source models (thanks TGlide, daniel-lxs!) ([#6134](https://github.com/RooCodeInc/Roo-Code/pull/6134), [#6190](https://github.com/RooCodeInc/Roo-Code/pull/6190), [#6228](https://github.com/RooCodeInc/Roo-Code/pull/6228), [#6236](https://github.com/RooCodeInc/Roo-Code/pull/6236)): + +- **Open Source Models**: Access a vast library of community models directly from Hugging Face +- **Flexible Integration**: Use models hosted on Hugging Face's infrastructure +- **Easy Configuration**: Simple setup process to get started with your preferred models and providers + +This opens up Roo Code to the entire Hugging Face ecosystem of open source AI models. See our [Hugging Face provider documentation](/providers/huggingface) for setup instructions. + +## Diagnostic Controls + +Take control of how many diagnostic messages appear in your context with new settings (thanks hannesrudolph!) ([#5582](https://github.com/RooCodeInc/Roo-Code/pull/5582)): + +- **Limit Errors and Warnings**: Prevent overwhelming amounts of diagnostics from filling up the model's context window +- **Improved Performance**: Reduce slowdowns caused by processing too many diagnostic messages +- **Legacy Code Support**: Especially helpful when working with codebases that temporarily have many errors during development + +This feature is essential for preserving the context window when working with large or legacy codebases that have many diagnostic messages. + +## Agent Rules Standard Support + +Roo Code now supports the Agent Rules standard through AGENTS.md files (thanks sgryphon!) ([#5969](https://github.com/RooCodeInc/Roo-Code/pull/5969)): + +- **Cross-Tool Compatibility**: Share natural language guidelines across Roo Code, Aider, Cline, and other compatible AI tools +- **Single Source of Truth**: Maintain one set of coding standards, security practices, and workflow rules +- **Automatic Detection**: Roo Code automatically finds and applies AGENTS.md files in your project + +This solves the fragmentation problem where developers using multiple AI tools had to maintain separate configuration files. + +## QOL Improvements + +* **Apply Diff Guidance**: Added efficiency warnings to guide better use of the apply_diff tool (thanks KJ7LNW!) ([#6055](https://github.com/RooCodeInc/Roo-Code/pull/6055)) +* **Error Boundaries**: Better error handling prevents complete UI crashes, showing helpful messages instead (thanks KJ7LNW, elianiva!) ([#5085](https://github.com/RooCodeInc/Roo-Code/pull/5085)) + +## Bug Fixes + +* **Todo List Toggle**: Fixed the todo list toggle that wasn't responding to clicks (thanks chrarnoldus!) ([#6103](https://github.com/RooCodeInc/Roo-Code/pull/6103)) +* **Markdown List Styles**: Restored proper formatting for ordered and unordered lists in chat (thanks village-way!) ([#6095](https://github.com/RooCodeInc/Roo-Code/pull/6095)) +* **Ollama URL Handling**: Fixed API URL normalization issues with trailing slashes (thanks Naam!) ([#6079](https://github.com/RooCodeInc/Roo-Code/pull/6079)) +* **Large File Protection**: Respects maxReadFileLine setting to prevent context exhaustion (thanks sebinseban!) ([#6073](https://github.com/RooCodeInc/Roo-Code/pull/6073)) +* **Auto-Approve Safety**: Fixed critical issue where auto-approve checkbox became unresponsive (thanks KJ7LNW!) ([#6061](https://github.com/RooCodeInc/Roo-Code/pull/6061)) +* **Git Checkpoint Warning**: Added clear warning when Git is not installed for checkpoints (thanks MuriloFP!) ([#5920](https://github.com/RooCodeInc/Roo-Code/pull/5920)) +* **Bash Command Parsing**: Fixed crashes with complex bash syntax and substitutions (thanks daniel-lxs, KJ7LNW!) ([#5743](https://github.com/RooCodeInc/Roo-Code/pull/5743)) + +## Misc Improvements + +* **Merge Resolver Mode**: Added internal mode for intelligent Git conflict resolution to improve PR Fixer capabilities (thanks daniel-lxs!) ([#6090](https://github.com/RooCodeInc/Roo-Code/pull/6090)) diff --git a/docs/update-notes/v3.25.0.mdx b/docs/update-notes/v3.25.0.mdx new file mode 100644 index 00000000..556f7d9e --- /dev/null +++ b/docs/update-notes/v3.25.0.mdx @@ -0,0 +1,108 @@ +--- +description: This release introduces custom slash commands, Gemini web tools, image support for read_file, message queueing, and many quality-of-life improvements. +keywords: + - roo code 3.25.0 + - custom slash commands + - gemini tools + - image support + - message queueing +image: /img/social-share.jpg +--- + +# Roo Code 3.25.0 Release Notes (2025-07-29) + +This release brings powerful new capabilities to Roo Code, including custom slash commands for workflow automation, enhanced Gemini models with web access, comprehensive image support, and seamless message queueing for uninterrupted conversations. + +## Custom Slash Commands + +Create your own slash commands to automate repetitive workflows ([#6263](https://github.com/RooCodeInc/Roo-Code/pull/6263), [#6286](https://github.com/RooCodeInc/Roo-Code/pull/6286), [#6333](https://github.com/RooCodeInc/Roo-Code/pull/6333), [#6336](https://github.com/RooCodeInc/Roo-Code/pull/6336), [#6327](https://github.com/RooCodeInc/Roo-Code/pull/6327)): + +- **File-Based Commands**: Place markdown files in `.roo/commands/` to create custom commands instantly +- **Management UI**: New interface for creating, editing, and deleting commands with built-in fuzzy search +- **Argument Hints**: Commands display helpful hints about required arguments as you type +- **Rich Descriptions**: Add metadata and descriptions to make commands self-documenting + +Slash commands menu showing available commands + +Turn complex workflows into simple commands like `/deploy` or `/review` for faster development. + +> **📚 Documentation**: See [Slash Commands Guide](/features/slash-commands) for detailed usage instructions. + +## Message Queueing + +Continue typing while Roo processes your requests with the new message queueing system ([#6167](https://github.com/RooCodeInc/Roo-Code/pull/6167)): + +- **Non-Blocking Input**: Type and send messages even while Roo is processing previous requests +- **Sequential Processing**: Messages are queued and processed in the order they were sent +- **Visual Feedback**: See queued messages clearly displayed in the interface +- **Maintained Context**: Each message maintains proper context from the conversation + +Keeps your workflow smooth when you have multiple quick questions or corrections. + +> **📚 Documentation**: See [Message Queueing Guide](/features/message-queueing) for detailed information. + +## Image Support for read_file Tool + +The [`read_file`](/advanced-usage/available-tools/read-file) tool now supports reading and analyzing images (thanks samhvw8!) ([#5172](https://github.com/RooCodeInc/Roo-Code/pull/5172)): + +- **Multiple Formats**: Supports PNG, JPG, JPEG, GIF, WebP, SVG, BMP, ICO, and TIFF +- **OCR Capabilities**: Extract text from screenshots and scanned documents +- **Batch Processing**: Read multiple images from a folder with descriptions +- **Simple Integration**: Works just like reading text files - no special configuration needed + +Useful for analyzing UI mockups, debugging screenshot errors, or extracting code from images. + +## Gemini Tools: URL Context and Google Search + +Gemini models can now access web content and perform Google searches for more accurate, up-to-date responses (thanks HahaBill!) ([#5959](https://github.com/RooCodeInc/Roo-Code/pull/5959)): + +- **URL Context**: Directly analyze web pages, documentation, and online resources +- **Google Search Grounding**: Get fact-checked responses based on current search results +- **User Control**: Enable or disable web features based on your privacy preferences +- **Real-Time Information**: Access the latest documentation and best practices + +Perfect for researching new libraries, verifying solutions, or getting current API information. + +> **📚 Documentation**: See [Gemini Provider Guide](/providers/gemini) for setup and usage instructions. + +## Quality of Life Improvements + +Small changes that make a big difference in your daily workflow: + +* **Markdown Table Rendering**: Tables now display with proper formatting instead of raw markdown for better readability ([#6252](https://github.com/RooCodeInc/Roo-Code/pull/6252)) + Markdown table rendering in Roo Code +* **Mode Selector Popover Redesign**: Improved layout with search functionality when you have many modes installed ([#6140](https://github.com/RooCodeInc/Roo-Code/pull/6140)) + Mode Selector Popover with Search +* **API Selector Popover Redesign**: Updated to match the new mode selector design with improved layout ([#6148](https://github.com/RooCodeInc/Roo-Code/pull/6148)) + API Configuration Selector Redesign +* **Sticky Task Modes**: Tasks remember their last-used mode and restore it automatically ([#6177](https://github.com/RooCodeInc/Roo-Code/pull/6177)) +* **ESC Key Support**: Close popovers with ESC for better keyboard navigation ([#6175](https://github.com/RooCodeInc/Roo-Code/pull/6175)) +* **Improved Command Highlighting**: Only valid commands are highlighted in the input field ([#6336](https://github.com/RooCodeInc/Roo-Code/pull/6336)) + +## Bug Fixes + +Critical fixes that improve stability and compatibility: + +* **Multi-file Edit Fix**: Fixed issue where Git diff views interfered with file operations (thanks hassoncs, szermatt!) ([#6350](https://github.com/RooCodeInc/Roo-Code/pull/6350)) +* **Non-QWERTY Keyboard Support**: Fixed keyboard shortcuts for Dvorak, AZERTY, and other layouts (thanks shlgug!) ([#6162](https://github.com/RooCodeInc/Roo-Code/pull/6162)) +* **Mode Export/Import**: Fixed custom mode export to handle slug changes correctly ([#6186](https://github.com/RooCodeInc/Roo-Code/pull/6186)) +* **Hidden Directory Support**: [`list_files`](/advanced-usage/available-tools/list-files) now properly shows contents of dot directories (thanks MuriloFP, avtc, zhang157686!) ([#5176](https://github.com/RooCodeInc/Roo-Code/pull/5176)) +* **Scrollbar Stability**: Fixed flickering scrollbar when streaming tables and code blocks ([#6266](https://github.com/RooCodeInc/Roo-Code/pull/6266)) +* **Settings Link Fix**: Restored working "View Settings" link in command permissions tooltip ([#6253](https://github.com/RooCodeInc/Roo-Code/pull/6253)) +* **@mention Parsing**: Fixed mentions to work in all input contexts including follow-up questions ([#6331](https://github.com/RooCodeInc/Roo-Code/pull/6331)) +* **Debug Button Removal**: Hidden test error boundary button in production builds (thanks bangjohn!) ([#6216](https://github.com/RooCodeInc/Roo-Code/pull/6216)) +* **Command Highlighting Fix**: Fixed inconsistent slash command highlighting behavior ([#6325](https://github.com/RooCodeInc/Roo-Code/pull/6325)) +* **Text Wrapping**: Fixed text overflow for long command patterns in permissions UI ([#6255](https://github.com/RooCodeInc/Roo-Code/pull/6255)) +* **Cross-Platform Mode Export**: Windows path separators now convert correctly for Unix systems ([#6308](https://github.com/RooCodeInc/Roo-Code/pull/6308)) + +## Provider Updates + +* **Prompt Caching for LiteLLM**: Reduce API costs and improve response times with caching support for Claude 3.5 Sonnet and compatible models (thanks MuriloFP, steve-gore-snapdocs!) ([#6074](https://github.com/RooCodeInc/Roo-Code/pull/6074)) + +## Misc. Improvements + +* **Background Editing (Experimental)**: Work uninterrupted while Roo edits files in the background—no more losing focus from automatic diff views ([#6214](https://github.com/RooCodeInc/Roo-Code/pull/6214)). Files change silently while you keep coding, with diagnostics and error checking still active. See [Background Editing](/features/experimental/background-editing) for details. +* **Security Update**: Updated form-data dependency to address security vulnerability ([#6332](https://github.com/RooCodeInc/Roo-Code/pull/6332)) +* **Contributor Updates**: Refreshed contributor acknowledgments across all localizations ([#6302](https://github.com/RooCodeInc/Roo-Code/pull/6302)) +* **Release Engineering**: Converted release engineer role to slash command for easier releases ([#6333](https://github.com/RooCodeInc/Roo-Code/pull/6333)) +* **PR Reviewer Improvements**: Made PR reviewer mode generic for any GitHub repository ([#6357](https://github.com/RooCodeInc/Roo-Code/pull/6357), [#6328](https://github.com/RooCodeInc/Roo-Code/pull/6328), [#6324](https://github.com/RooCodeInc/Roo-Code/pull/6324)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.1.mdx b/docs/update-notes/v3.25.1.mdx new file mode 100644 index 00000000..137ca883 --- /dev/null +++ b/docs/update-notes/v3.25.1.mdx @@ -0,0 +1,21 @@ +--- +description: Adds GLM-4.5-Air model to Chutes AI provider and improves subshell validation. +keywords: + - roo code 3.25.1 + - Chutes AI GLM-4.5-Air model + - subshell validation + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.1 Release Notes (2025-07-29) + +This release adds a powerful new AI model to the Chutes AI provider and improves command execution reliability. + +## Provider Updates + +* **Chutes AI - GLM-4.5-Air Model**: Added support for the GLM-4.5-Air model to the Chutes AI provider with 151K token context window for complex reasoning tasks and large codebase analysis - completely free to use (thanks matbgn!) ([#6377](https://github.com/RooCodeInc/Roo-Code/pull/6377)) + +## QOL Improvements + +* **Subshell Validation**: Improved handling and validation of complex shell commands with subshells, preventing potential errors when using command substitution patterns ([#6379](https://github.com/RooCodeInc/Roo-Code/pull/6379)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.10.mdx b/docs/update-notes/v3.25.10.mdx new file mode 100644 index 00000000..db5b1168 --- /dev/null +++ b/docs/update-notes/v3.25.10.mdx @@ -0,0 +1,34 @@ +--- +description: Introduces GPT-5 model support with verbosity controls and fixes XML parsing and MCP error display issues. +keywords: + - roo code 3.25.10 + - gpt-5 + - openai models + - verbosity controls + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.10 Release Notes (2025-08-07) + +This release introduces support for OpenAI's GPT-5 models with verbosity controls and fixes important bugs in XML parsing and error message display. + +## GPT-5 Model Support + +We've added support for OpenAI's latest GPT-5 model family ([#6819](https://github.com/RooCodeInc/Roo-Code/pull/6819)): + +- **GPT-5 Models**: Three new model variants are now available: + - `gpt-5-2025-08-07`: The full GPT-5 model, now set as the default for OpenAI Native provider + - `gpt-5-mini-2025-08-07`: A smaller, faster variant for quick responses + - `gpt-5-nano-2025-08-07`: The most compact version for resource-constrained scenarios + +- **Verbosity Controls**: New settings to control model output detail levels (low, medium, high), allowing you to fine-tune response length and detail based on your needs + +All GPT-5 models support streaming responses for real-time interaction. + +> **📚 Documentation**: See [OpenAI Provider Guide](/providers/openai) for detailed information about GPT-5 models and verbosity settings. + +## Bug Fixes + +* **XML Parsing**: Fixed errors when using the apply_diff tool with complex XML files containing special characters by implementing proper CDATA sections ([#6811](https://github.com/RooCodeInc/Roo-Code/pull/6811)) +* **MCP Error Messages**: Fixed an issue where MCP server errors displayed raw translation keys instead of proper error messages ([#6821](https://github.com/RooCodeInc/Roo-Code/pull/6821)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.11.mdx b/docs/update-notes/v3.25.11.mdx new file mode 100644 index 00000000..380cd547 --- /dev/null +++ b/docs/update-notes/v3.25.11.mdx @@ -0,0 +1,52 @@ +--- +description: This release enhances GPT-5 support, adds the new IO Intelligence provider, and includes several new features, QOL improvements, and bug fixes. +keywords: + - roo code 3.25.11 + - new features + - bug fixes + - gpt-5 + - io intelligence +image: /img/social-share.jpg +--- + +# Roo Code 3.25.11 Release Notes (2025-08-11) + +This release enhances GPT-5 support, adds the new IO Intelligence provider, and includes several new features, quality-of-life improvements, and bug fixes. + +## Enhanced GPT-5 Support + +We've enhanced our GPT-5 integration, enabling you to leverage more advanced capabilities for streaming, multi-turn conversations, and efficient token management. This release also adds support for the new GPT-5 models from OpenAI, including `gpt-5-2025-08-07`, `gpt-5-mini-2025-08-07`, and `gpt-5-nano-2025-08-07`. + +> **📚 Documentation**: See the [OpenAI Provider documentation](/providers/openai) for more details. + +## New IO Intelligence Provider + +We've added IO Intelligence as a new provider, giving you access to a wide range of AI models like Llama, DeepSeek, Qwen, and Mistral through a unified API ([#6875](https://github.com/RooCodeInc/Roo-Code/pull/6875)). + +> **📚 Documentation**: See the [IO Intelligence Provider documentation](/providers/io-intelligence) for more information. + +## Codex Mini Model Support + +We've added support for the `codex-mini-latest` model in the OpenAI Native provider, allowing you to leverage its specialized code-related capabilities directly (thanks KJ7LNW!) ([#6931](https://github.com/RooCodeInc/Roo-Code/pull/6931)). + +## QOL Improvements + +* **`codebase_search` Tool**: Clarified that the `path` parameter is optional and the tool searches the entire workspace by default ([#6877](https://github.com/RooCodeInc/Roo-Code/pull/6877)). +* **`@roo-code/cloud` Linking**: Improved the developer workflow by allowing `@roo-code/cloud` to be directly linked from a local repository, with HMR support ([#6799](https://github.com/RooCodeInc/Roo-Code/pull/6799)). +* **Chat Input Focus**: The chat input is now automatically focused when creating a new chat from the extension's top menu ([#6689](https://github.com/RooCodeInc/Roo-Code/pull/6689)). +* **Token Usage Reporting**: Fixed an issue where token usage and cost were underreported, providing more accurate cost tracking (thanks chrarnoldus!) ([#6122](https://github.com/RooCodeInc/Roo-Code/pull/6122)). + +## Bug Fixes + +* **MCP Server Startup**: Fixed an issue where MCP servers would fail to start and removed unnecessary refresh notifications ([#6878](https://github.com/RooCodeInc/Roo-Code/pull/6878)). +* **Tool Repetition Detector**: Fixed a bug where setting the "Errors and Repetition Limit" to 1 would incorrectly block the first tool call (thanks NaccOll!) ([#6836](https://github.com/RooCodeInc/Roo-Code/pull/6836)). +* **MCP Error Messages**: Fixed an issue where MCP server error messages were displaying raw translation keys ([#6821](https://github.com/RooCodeInc/Roo-Code/pull/6821)). +* **`apply_diff` Tool**: Fixed a bug that caused XML parsing errors when working with complex XML content ([#6811](https://github.com/RooCodeInc/Roo-Code/pull/6811)). +* **`max_tokens` Calculation**: Fixed an error for models with very large context windows where requests would fail due to incorrect calculation of maximum output tokens (thanks markp018!) ([#6808](https://github.com/RooCodeInc/Roo-Code/pull/6808)). +* **Scroll Jitter**: Fixed a scroll jitter issue that occurred during message streaming, especially with code blocks ([#6780](https://github.com/RooCodeInc/Roo-Code/pull/6780)). +* **MCP Server Refresh**: Fixed an issue where MCP servers would unnecessarily refresh when unrelated settings were saved ([#6779](https://github.com/RooCodeInc/Roo-Code/pull/6779)). +* **AWS Bedrock Connection**: Fixed a connection issue when using AWS Bedrock with LiteLLM ([#6778](https://github.com/RooCodeInc/Roo-Code/pull/6778)). + +## Provider Updates + +* **Fireworks**: Added support for four new models: GLM-4.5, GLM-4.5-Air, gpt-oss-20b, and gpt-oss-120b (thanks alexfarlander!) ([#6784](https://github.com/RooCodeInc/Roo-Code/pull/6784)). diff --git a/docs/update-notes/v3.25.12.mdx b/docs/update-notes/v3.25.12.mdx new file mode 100644 index 00000000..3e5aedd5 --- /dev/null +++ b/docs/update-notes/v3.25.12.mdx @@ -0,0 +1,74 @@ +--- +description: Claude Sonnet 4 gets a massive 1 million token context window, configurable API timeouts for local providers, and minimal reasoning support for OpenRouter. +keywords: + - roo code 3.25.12 + - claude sonnet 4 1 million tokens + - api timeout configuration + - openrouter reasoning + - local providers +image: /img/social-share.jpg +--- + +# Roo Code 3.25.12 Release Notes (2025-08-12) + +This release brings a massive context window upgrade for Claude Sonnet 4, configurable timeouts for local providers, and minimal reasoning support for OpenRouter. + +## Claude Sonnet 4: 1 Million Token Context Window + +We've upgraded our Claude Sonnet 4 integration to support [Anthropic's latest API update](https://www.anthropic.com/news/1m-context), increasing the context window from 200,000 tokens to 1 million tokens - a 5x increase ([#7005](https://github.com/RooCodeInc/Roo-Code/pull/7005)): + +- **Massive Context**: Work with entire codebases, extensive documentation, or multiple large files in a single conversation +- **Tiered Pricing Support**: Automatically handles Anthropic's tiered pricing for extended context usage +- **UI Integration**: Context window size now displays in the model info view with a toggle to enable the 1M context feature + +This significant upgrade enables you to tackle much larger projects and maintain context across extensive codebases without splitting conversations. + +> **📚 Documentation**: See [Anthropic Provider Guide](/providers/anthropic) for setup and usage instructions. + +## Configurable API Timeout for Local Providers + +Local AI providers running large models can now configure custom timeout settings to prevent premature disconnections ([#6531](https://github.com/RooCodeInc/Roo-Code/pull/6531)): + +- **Flexible Timeouts**: Set timeouts from 0 to 3600 seconds (default: 600 seconds) +- **Provider Support**: Works with LM Studio, Ollama, and OpenAI-compatible providers + +Configure in your VSCode settings: +```json +{ + "roo-cline.apiRequestTimeout": 1200 // 20 minutes for very large models +} +``` + +## OpenRouter Minimal Reasoning Support + +OpenRouter now supports minimal reasoning effort for compatible models ([#6998](https://github.com/RooCodeInc/Roo-Code/pull/6998)): + +- **New Reasoning Level**: 'Minimal' option available for specific models +- **UI Updates**: Thinking budget interface shows minimal option when applicable +- **Optimized Performance**: Better control over reasoning intensity for different tasks + +This addition provides more granular control over model reasoning, allowing you to optimize for speed or depth based on your needs. + +## QOL Improvements + +* **GPT-5 Model Optimization**: GPT-5 models excluded from 20% context window output token cap for better performance ([#6963](https://github.com/RooCodeInc/Roo-Code/pull/6963)) +* **Task Management**: Added expand/collapse translations for better task organization ([#6962](https://github.com/RooCodeInc/Roo-Code/pull/6962)) +* **Localization**: Improved Traditional Chinese locale with better translations (thanks PeterDaveHello!) ([#6946](https://github.com/RooCodeInc/Roo-Code/pull/6946)) + +## Bug Fixes + +* **File Indexing**: JSON files now properly respect .rooignore settings during indexing ([#6691](https://github.com/RooCodeInc/Roo-Code/pull/6691)) +* **Tool Usage**: Fixed tool repetition detector to allow first tool call when limit is 1 ([#6836](https://github.com/RooCodeInc/Roo-Code/pull/6836)) +* **Service Initialization**: Improved checkpoint service initialization handling (thanks NaccOll!) ([#6860](https://github.com/RooCodeInc/Roo-Code/pull/6860)) +* **Browser Compatibility**: Added --no-sandbox flag to browser launch options for better compatibility (thanks QuinsZouls!) ([#6686](https://github.com/RooCodeInc/Roo-Code/pull/6686)) +* **UI Display**: Fixed long model names truncation in model selector to prevent overflow ([#6985](https://github.com/RooCodeInc/Roo-Code/pull/6985)) +* **Error Handling**: Improved bridge config fetch error handling ([#6961](https://github.com/RooCodeInc/Roo-Code/pull/6961)) + +## Provider Updates + +* **Amazon Bedrock**: Added OpenAI GPT-OSS models to the dropdown selection ([#6783](https://github.com/RooCodeInc/Roo-Code/pull/6783)) +* **Chutes Provider**: Added support for new Chutes provider models ([#6699](https://github.com/RooCodeInc/Roo-Code/pull/6699)) +* **Requesty Integration**: Added Requesty base URL support ([#6992](https://github.com/RooCodeInc/Roo-Code/pull/6992)) +* **Cloud Service**: Updated to versions 0.9.0 and 0.10.0 with improved stability ([#6964](https://github.com/RooCodeInc/Roo-Code/pull/6964), [#6968](https://github.com/RooCodeInc/Roo-Code/pull/6968)) +* **Bridge Service**: Switched to UnifiedBridgeService for better integration ([#6976](https://github.com/RooCodeInc/Roo-Code/pull/6976)) +* **Roomote Control**: Restored roomote control functionality ([#6796](https://github.com/RooCodeInc/Roo-Code/pull/6796)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.13.mdx b/docs/update-notes/v3.25.13.mdx new file mode 100644 index 00000000..988b73ae --- /dev/null +++ b/docs/update-notes/v3.25.13.mdx @@ -0,0 +1,31 @@ +--- +description: Adds Sonnet 1M context support for AWS Bedrock, improves internationalization, and fixes search functionality. +keywords: + - roo code 3.25.13 + - sonnet 1m context + - aws bedrock + - internationalization + - agent.md support +image: /img/social-share.jpg +--- + +# Roo Code 3.25.13 Release Notes (2025-08-13) + +This release adds Sonnet 1M context support for AWS Bedrock, improves internationalization, and fixes search functionality. + +## Features + +* **Sonnet 1M Context Support**: Enable 1M token context window for Claude Sonnet 4 when using AWS Bedrock, allowing you to process much larger documents and have longer conversations ([#7032](https://github.com/RooCodeInc/Roo-Code/pull/7032)) + +## QOL Improvements + +* **Internationalization**: The Account button now displays in your selected language instead of always showing in English (thanks zhangtony239!) ([#6978](https://github.com/RooCodeInc/Roo-Code/pull/6978)) +* **Agent File Flexibility**: Roo Code now recognizes both AGENT.md and AGENTS.md files for agent rules, with AGENTS.md checked first for compatibility (thanks Brendan-Z!) ([#6913](https://github.com/RooCodeInc/Roo-Code/pull/6913)) + +## Bug Fixes + +* **Search Tool Reliability**: Fixed the search_files tool failing when encountering permission-denied files - it now continues working and returns results from accessible files (thanks R-omk!) ([#6757](https://github.com/RooCodeInc/Roo-Code/pull/6757)) + +## Provider Updates + +* **OpenAI**: Removed the deprecated GPT-4.5 Preview model from available options as it was removed from the OpenAI API (thanks PeterDaveHello!) ([#6948](https://github.com/RooCodeInc/Roo-Code/pull/6948)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.14.mdx b/docs/update-notes/v3.25.14.mdx new file mode 100644 index 00000000..ceed4833 --- /dev/null +++ b/docs/update-notes/v3.25.14.mdx @@ -0,0 +1,24 @@ +--- +description: Bug fixes for AWS Bedrock 1M context, OpenAI model switching, and development environment improvements. +keywords: + - roo code 3.25.14 + - aws bedrock fix + - openai verbosity fix + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.14 Release Notes (2025-08-13) + +This release fixes critical issues with AWS Bedrock 1M context support, OpenAI model switching, and improves the development environment. + +## Bug Fixes + +* **AWS Bedrock 1M Context**: Fixed parameter placement for Claude Sonnet 4 models to properly enable 1M context window support ([#7056](https://github.com/RooCodeInc/Roo-Code/pull/7056)) +* **OpenAI Model Switching**: Fixed API errors when switching from GPT-5 models to GPT-4.1 or other models that don't support the verbosity parameter (thanks eastonmeth!) ([#7055](https://github.com/RooCodeInc/Roo-Code/pull/7055)) +* **Development Environment**: Fixed webview functionality in development mode ([#7044](https://github.com/RooCodeInc/Roo-Code/pull/7044)) +* **Token Usage Reporting**: Reverted previous changes to prioritize user experience by allowing request interruption over precise cost reporting ([#7039](https://github.com/RooCodeInc/Roo-Code/pull/7039)) + +## Internal Improvements + +* **Code Organization**: Moved cloud-related types from @roo-code/types to dedicated @roo-code/cloud package ([#7038](https://github.com/RooCodeInc/Roo-Code/pull/7038)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.15.mdx b/docs/update-notes/v3.25.15.mdx new file mode 100644 index 00000000..16cf9732 --- /dev/null +++ b/docs/update-notes/v3.25.15.mdx @@ -0,0 +1,38 @@ +--- +description: Bug fixes for scrollbar jumping, multi-folder workspaces, provider settings, and various stability improvements. +keywords: + - roo code 3.25.15 + - scrollbar fix + - multi-folder workspace + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.15 Release Notes (2025-08-14) + +This release fixes scrollbar jumping in long conversations, improves multi-folder workspace support, and includes various stability and quality-of-life improvements. + +## QOL Improvements + +* **SEO Improvements**: Enhanced website discoverability with proper metadata and social media preview cards (thanks elianiva, abumalick!) ([#7096](https://github.com/RooCodeInc/Roo-Code/pull/7096)) +* **Sitemap Generation**: Implemented TypeScript-based sitemap generation for better search engine indexing (thanks abumalick!) ([#6206](https://github.com/RooCodeInc/Roo-Code/pull/6206)) +* **Account Button Localization**: The Account button now displays in your selected language across 18 supported languages (thanks zhangtony239!) ([#6978](https://github.com/RooCodeInc/Roo-Code/pull/6978)) +* **AGENT.md Support**: Now recognizes both AGENT.md and AGENTS.md files for agent rules configuration (thanks Brendan-Z!) ([#6913](https://github.com/RooCodeInc/Roo-Code/pull/6913)) + +## Bug Fixes + +* **Scrollbar Jumping**: Fixed the frustrating scrollbar jumping issue in long conversations over 500 messages (thanks shlgug, adambrand!) ([#7064](https://github.com/RooCodeInc/Roo-Code/pull/7064)) +* **Multi-Folder Workspaces**: Fixed workspace path handling and "file not found" errors in multi-folder VS Code workspaces (thanks NaccOll!) ([#6903](https://github.com/RooCodeInc/Roo-Code/pull/6903), [#6902](https://github.com/RooCodeInc/Roo-Code/pull/6902)) +* **Task Execution Stability**: Improved stability during long-running tasks, helping with the "grey screen" issue (thanks catrielmuller, MuriloFP!) ([#7035](https://github.com/RooCodeInc/Roo-Code/pull/7035)) +* **Provider Settings Save Button**: The save button now properly enables when changing provider dropdowns and checkboxes ([#7113](https://github.com/RooCodeInc/Roo-Code/pull/7113)) +* **XML Entity Decoding**: Fixed apply_diff tool failures when processing files with special characters like "&" (thanks indiesewell!) ([#7108](https://github.com/RooCodeInc/Roo-Code/pull/7108)) +* **Settings Display**: Fixed Max Requests and Max Cost values not displaying in the settings UI (thanks chrarnoldus, possible055!) ([#6925](https://github.com/RooCodeInc/Roo-Code/pull/6925)) +* **Context Condensing Indicator**: Fixed the condensing indicator incorrectly persisting when switching tasks (thanks f14XuanLv!) ([#6922](https://github.com/RooCodeInc/Roo-Code/pull/6922)) +* **Sitemap /evals Page**: Added missing /evals page to sitemap generation ([#7102](https://github.com/RooCodeInc/Roo-Code/pull/7102)) +* **NPM Publishing**: Fixed the npm publishing script for the types package ([#7093](https://github.com/RooCodeInc/Roo-Code/pull/7093)) + +## Provider Updates + +* **AWS Bedrock 1M Context**: Added checkbox to enable 1M token context window for Claude Sonnet 4 ([#7032](https://github.com/RooCodeInc/Roo-Code/pull/7032)) +* **GPT-4.5 Preview Removal**: Removed deprecated GPT-4.5 Preview model from OpenAI provider options (thanks PeterDaveHello!) ([#6948](https://github.com/RooCodeInc/Roo-Code/pull/6948)) +* **Task Metadata**: Improved compatibility with Roo Code Cloud services ([#7092](https://github.com/RooCodeInc/Roo-Code/pull/7092)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.16.mdx b/docs/update-notes/v3.25.16.mdx new file mode 100644 index 00000000..f4f58c24 --- /dev/null +++ b/docs/update-notes/v3.25.16.mdx @@ -0,0 +1,39 @@ +--- +description: Improves Ollama integration, adds GPT-5 chat support, and fixes multiple UI and stability issues. +keywords: + - roo code 3.25.16 + - ollama native api + - gpt-5 chat + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.16 Release Notes (2025-08-17) + +This release improves provider integrations with native Ollama API support and GPT-5 chat model, enhances task history handling, and fixes several UI and stability issues. + +## Provider Updates + +* **Native Ollama API**: Fixed Ollama models to use native API instead of OpenAI compatibility layer for improved performance and reliability ([#7137](https://github.com/RooCodeInc/Roo-Code/pull/7137)) +* **OpenAI GPT-5 Chat**: Added support for gpt-5-chat-latest model optimized for conversational AI and non-reasoning tasks ([#7058](https://github.com/RooCodeInc/Roo-Code/pull/7058)) + +## QOL Improvements + +* **Enhanced Task History**: Made "enhance with task history" default to true for better context retention in conversations (thanks liwilliam2021!) ([#7140](https://github.com/RooCodeInc/Roo-Code/pull/7140)) +* **Improved Scrollbar**: Fixed scrollbar jumping in long conversations by removing the 500-message limit ([#7064](https://github.com/RooCodeInc/Roo-Code/pull/7064)) + +## Bug Fixes + +* **Settings UI**: Fixed allowedMaxRequests and allowedMaxCost values not displaying properly (thanks chrarnoldus!) ([#6925](https://github.com/RooCodeInc/Roo-Code/pull/6925)) +* **Provider Settings**: Fixed save button not enabling for provider dropdown and checkbox changes ([#7113](https://github.com/RooCodeInc/Roo-Code/pull/7113)) +* **XML Entity Handling**: Fixed XML entity decoding issues in diff tools that caused content mismatches ([#7108](https://github.com/RooCodeInc/Roo-Code/pull/7108)) +* **Condensing State**: Fixed condensing state not resetting when switching between tasks (thanks f14XuanLv!) ([#6922](https://github.com/RooCodeInc/Roo-Code/pull/6922)) +* **Workspace Paths**: Fixed workspace path resolution in codebase search tool (thanks NaccOll!) ([#6902](https://github.com/RooCodeInc/Roo-Code/pull/6902)) +* **Multi-folder Workspaces**: Fixed checkpoint handling for multi-folder workspace configurations (thanks NaccOll!) ([#6903](https://github.com/RooCodeInc/Roo-Code/pull/6903)) +* **Diff Processing**: Added type checking to prevent errors when processing diff content ([#6906](https://github.com/RooCodeInc/Roo-Code/pull/6906)) + +## Misc Improvements + +* **Task System**: Added API for resuming tasks, improved event handling, and enhanced metadata support ([#7122](https://github.com/RooCodeInc/Roo-Code/pull/7122), [#7128](https://github.com/RooCodeInc/Roo-Code/pull/7128), [#7117](https://github.com/RooCodeInc/Roo-Code/pull/7117), [#7092](https://github.com/RooCodeInc/Roo-Code/pull/7092)) +* **Web Infrastructure**: Improved sitemap generation and SEO metadata (thanks elianiva, abumalick!) ([#7102](https://github.com/RooCodeInc/Roo-Code/pull/7102), [#7096](https://github.com/RooCodeInc/Roo-Code/pull/7096), [#6206](https://github.com/RooCodeInc/Roo-Code/pull/6206)) +* **Task Execution**: Refactored task execution system for better call stack management (thanks catrielmuller!) ([#7035](https://github.com/RooCodeInc/Roo-Code/pull/7035)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.17.mdx b/docs/update-notes/v3.25.17.mdx new file mode 100644 index 00000000..4510e169 --- /dev/null +++ b/docs/update-notes/v3.25.17.mdx @@ -0,0 +1,17 @@ +--- +description: Fixes LM Studio model duplication and terminal reuse issues. +keywords: + - roo code 3.25.17 + - lm studio + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.17 Release Notes (2025-08-18) + +This release fixes issues with LM Studio model management and terminal reuse logic. + +## Bug Fixes + +* **LM Studio Models**: Fixed duplicate model entries by implementing case-insensitive deduplication, ensuring models appear only once in the provider configuration ([#7185](https://github.com/RooCodeInc/Roo-Code/pull/7185)) +* **Terminal Reuse**: Fixed terminal reuse logic to properly handle terminal lifecycle management ([#7157](https://github.com/RooCodeInc/Roo-Code/pull/7157)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.18.mdx b/docs/update-notes/v3.25.18.mdx new file mode 100644 index 00000000..4906344c --- /dev/null +++ b/docs/update-notes/v3.25.18.mdx @@ -0,0 +1,41 @@ +--- +description: Update to Roo Code 3.25.18 to access Sonic — a stealth model from a major AI provider — featuring a 262,144‑token context and a 72‑hour free access window, plus provider improvements and bug fixes. +keywords: + - roo code 3.25.18 + - sonic model + - provider updates + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.18 Release Notes (2025-08-19) + +Update to Roo Code 3.25.18 to access Sonic — a stealth model from a major AI provider — with a massive 262,144‑token context and FREE 72‑hour access. This release also includes provider enhancements and reliability fixes. + +## Sonic (Stealth Model) + +Sonic is now available in Roo Code ([#7207](https://github.com/RooCodeInc/Roo-Code/pull/7207)) ([#7212](https://github.com/RooCodeInc/Roo-Code/pull/7212)) ([#7218](https://github.com/RooCodeInc/Roo-Code/pull/7218)) — a stealth model from a major AI provider designed for long‑range, context‑rich work: + +- 262,144‑token context lets you work across very large codebases, logs, and transcripts in one session. +- FREE for 72 hours so you can try Sonic with real tasks. + +> Important: Sonic is delivered via Roo Code Cloud. To get this model to work, you must connect your IDE to Roo Code Cloud. See [Connect to Roo Code Cloud](/roo-code-cloud/connect). + +**Prerequisites** +- Roo Code v3.25.18 or later +- Connected to Roo Code Cloud account — see [Connect to Roo Code Cloud](/roo-code-cloud/connect) + +**How to enable Sonic** +1. Open Settings → Providers and set Provider to **Roo Code Cloud**. +2. In the model selector, choose **Sonic**. + +> 📚 Documentation: See [Connect to Roo Code Cloud](/roo-code-cloud/connect) and [Roo Code Cloud Provider](/providers/roo-code-cloud). + +## Bug Fixes + +- LM Studio models: prevents duplicate entries (case‑insensitive) (thanks fbuechler!) ([#7185](https://github.com/RooCodeInc/Roo-Code/pull/7185)) +- Reasoning usage: respects enableReasoningEffort setting, avoiding unintended reasoning costs (thanks ikbencasdoei!) ([#7049](https://github.com/RooCodeInc/Roo-Code/pull/7049)) + +## Documentation Updates + +- ask_followup_question: simplifies the prompt guidance for clearer authoring ([#7191](https://github.com/RooCodeInc/Roo-Code/pull/7191)) — see [ask_followup_question tool](/advanced-usage/available-tools/ask-followup-question). \ No newline at end of file diff --git a/docs/update-notes/v3.25.19.mdx b/docs/update-notes/v3.25.19.mdx new file mode 100644 index 00000000..5210bf93 --- /dev/null +++ b/docs/update-notes/v3.25.19.mdx @@ -0,0 +1,16 @@ +--- +description: Bug fix for Roo Code Cloud provider welcome screen +keywords: + - roo code 3.25.19 + - bug fixes + - roo code cloud +image: /img/social-share.jpg +--- + +# Roo Code 3.25.19 Release Notes (2025-08-19) + +This release fixes an issue with the Roo Code Cloud provider on the welcome screen. + +## Bug Fixes + +* **Welcome Screen**: Fixed the "Let's go" button not working for Roo Code Cloud provider ([#7239](https://github.com/RooCodeInc/Roo-Code/pull/7239)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.2.mdx b/docs/update-notes/v3.25.2.mdx new file mode 100644 index 00000000..21d4518c --- /dev/null +++ b/docs/update-notes/v3.25.2.mdx @@ -0,0 +1,25 @@ +--- +description: Fixes diff view display and slash command icon hover state, adds organization-level MCP controls. +keywords: + - roo code 3.25.2 + - diff view fix + - organization MCP controls + - UI improvements +image: /img/social-share.jpg +--- + +# Roo Code 3.25.2 Release Notes (2025-07-29) + +This release fixes the diff view display when background edits are disabled, adds organization-level MCP controls, and improves UI interactions. + +## QOL Improvements + +* **Slash Command Icon Hover State**: Fixed the hover state for the slash command icon to provide better visual feedback during interactions ([#6388](https://github.com/RooCodeInc/Roo-Code/pull/6388)) + +## Bug Fixes + +* **Diff View Display**: Fixed an issue where the diff view wasn't showing before approval when background edits were disabled ([#6386](https://github.com/RooCodeInc/Roo-Code/pull/6386)) + +## Misc Improvements + +* **Organization MCP Controls**: Added support for managing MCP servers at the organization level, allowing centralized configuration across teams ([#6378](https://github.com/RooCodeInc/Roo-Code/pull/6378)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.20.mdx b/docs/update-notes/v3.25.20.mdx new file mode 100644 index 00000000..2fec19f7 --- /dev/null +++ b/docs/update-notes/v3.25.20.mdx @@ -0,0 +1,22 @@ +--- +description: This release introduces the Sonic model to Roo Code users with announcements to help discover the new model. +keywords: + - roo code v3.25.20 + - sonic model + - model announcements + - provider updates +image: /img/social-share.jpg +--- + +# Roo Code v3.25.20 Release Notes (2025-08-20) + +This release introduces the Sonic model to Roo Code users with announcements to help discover the new model. + +## QOL Improvements + +* **Sonic Model Announcement**: Added announcements to inform users about the Sonic model availability, making it easier to discover new model options (thanks mrubens!) ([#7244](https://github.com/RooCodeInc/Roo-Code/pull/7244)) +* **Release Management**: Added changeset for v3.25.20 to ensure proper version management (thanks mrubens!) ([#7245](https://github.com/RooCodeInc/Roo-Code/pull/7245)) + +## Provider Updates + +* **Sonic Model Support**: Added support for the Sonic model in the provider system (thanks mrubens!) ([#7246](https://github.com/RooCodeInc/Roo-Code/pull/7246)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.21.mdx b/docs/update-notes/v3.25.21.mdx new file mode 100644 index 00000000..f637fede --- /dev/null +++ b/docs/update-notes/v3.25.21.mdx @@ -0,0 +1,66 @@ +--- +description: Vertex AI grounding features, subtask todo lists, and the new Featherless provider. +keywords: + - roo code 3.25.21 + - vertex ai grounding + - subtask todos + - featherless provider +image: /img/social-share.jpg +--- + +# Roo Code 3.25.21 Release Notes (2025-08-22) + +This release enables grounding features for Vertex AI, adds subtask todo list support, and includes the new Featherless provider. + +## Subtask Todo Lists + +Streamline hierarchical task planning with the new optional todo list parameter for subtasks ([#6775](https://github.com/RooCodeInc/Roo-Code/pull/6775)): + +- **Pass Todo Lists**: Include predefined todo lists when creating subtasks +- **Maintain Context**: Pass along context to the subtask in the form of a todo list +- **Optional Enforcement**: The "New Task Require Todos" setting in VS Code can enforce todo lists for all new subtasks if desired + +Subtask todo lists configuration in VS Code settings + +This feature works out of the box, and you can optionally configure VS Code settings to require todos for all new tasks. + +> **📚 Documentation**: See [Task Todo List](/features/task-todo-list) for detailed information about todo list management. + +## Vertex AI Grounding Features + +Vertex AI users can now access powerful grounding capabilities previously exclusive to the Gemini provider (thanks anguslees!) ([#6777](https://github.com/RooCodeInc/Roo-Code/pull/6777)): + +- **Google Search Grounding**: Get real-time information from web searches directly in your AI responses +- **URL Context**: Provide specific web pages as context for more accurate, up-to-date responses +- **Enhanced Accuracy**: Combine AI capabilities with current web information for better results + +These features bring Vertex AI to feature parity with Gemini for grounding capabilities. + +> **📚 Documentation**: See [Vertex AI Provider](/providers/vertex) for configuration details. + +## Provider Updates + +* **Featherless Provider**: Access a wide range of open-source models through the new Featherless AI platform (thanks DarinVerheijke!) ([#7235](https://github.com/RooCodeInc/Roo-Code/pull/7235)) + +## QOL Improvements + +* **Context Window Error Handling**: Improved error detection and automatic recovery when hitting context limits - the system now detects errors from multiple providers (OpenAI, Anthropic, Cerebras) and automatically truncates context by 25% before retrying (up to 3 attempts) ([#6967](https://github.com/RooCodeInc/Roo-Code/pull/6967)) +* **Marketplace Filter**: New "Show installed only" checkbox to easily view and manage your installed MCPs and modes (thanks semidark!) ([#7007](https://github.com/RooCodeInc/Roo-Code/pull/7007)) +* **DeepSeek Context**: Updated DeepSeek models to support 128k context window ([#7269](https://github.com/RooCodeInc/Roo-Code/pull/7269)) + +## Bug Fixes + +* **OpenAI Responses**: Fixed GPT-5 subtask results not being provided correctly in OpenAI Responses API ([#7305](https://github.com/RooCodeInc/Roo-Code/pull/7305)) +* **Temperature Handling**: Fixed temperature parameter issues for OpenAI Compatible providers ([#7188](https://github.com/RooCodeInc/Roo-Code/pull/7188)) +* **Provider Validation**: Added 'roo' provider to key validation function ([#7239](https://github.com/RooCodeInc/Roo-Code/pull/7239)) +* **UI Stability**: Fixed context condense UI crash when handling null/undefined token values ([#6916](https://github.com/RooCodeInc/Roo-Code/pull/6916)) +* **Storage Checks**: Improved filesystem checks for better storage handling (thanks elianiva!) ([#7164](https://github.com/RooCodeInc/Roo-Code/pull/7164)) + +## Misc Improvements + +* **MDM Authentication**: Clear feedback when authentication is required by your organization's MDM policy ([#7291](https://github.com/RooCodeInc/Roo-Code/pull/7291)) +* **Security Updates**: Updated mermaid dependency to v11.10.0 ([#7231](https://github.com/RooCodeInc/Roo-Code/pull/7231)) and tmp dependency to v0.2.4 ([#6762](https://github.com/RooCodeInc/Roo-Code/pull/6762)) +* **Task Tracking**: Pass task ID in Roo provider request headers ([#7303](https://github.com/RooCodeInc/Roo-Code/pull/7303)) +* **Error Handling**: Removed exceptions from RooHandler constructor ([#7302](https://github.com/RooCodeInc/Roo-Code/pull/7302)) +* **Cloud Services**: Various internal improvements for cloud services ([#7299](https://github.com/RooCodeInc/Roo-Code/pull/7299), [#7258](https://github.com/RooCodeInc/Roo-Code/pull/7258)) +* **Build Optimization**: Marked non-English package files as linguist-generated ([#7271](https://github.com/RooCodeInc/Roo-Code/pull/7271)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.22.mdx b/docs/update-notes/v3.25.22.mdx new file mode 100644 index 00000000..4c3a9194 --- /dev/null +++ b/docs/update-notes/v3.25.22.mdx @@ -0,0 +1,20 @@ +--- +description: Adds prompt caching for Kimi K2 on Groq and improves discoverability of global custom instructions. +keywords: + - roo code 3.25.22 + - kimi k2 groq caching + - global custom instructions +image: /img/social-share.jpg +--- + +# Roo Code 3.25.22 Release Notes (2025-08-22) + +This release adds prompt caching support for Kimi K2 on Groq and improves the discoverability of global custom instructions. + +## Features + +* **Prompt Caching for Kimi K2 on Groq**: Added support for prompt caching with the Kimi K2 model on Groq, providing a 50% discount on cached input tokens for improved cost efficiency ([#7324](https://github.com/RooCodeInc/Roo-Code/pull/7324)) + +## QOL Improvements + +* **Global Custom Instructions Documentation**: Added helpful documentation links in the UI to make global custom instructions more discoverable and easier to understand ([#7114](https://github.com/RooCodeInc/Roo-Code/pull/7114)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.23.mdx b/docs/update-notes/v3.25.23.mdx new file mode 100644 index 00000000..36879f2d --- /dev/null +++ b/docs/update-notes/v3.25.23.mdx @@ -0,0 +1,18 @@ +--- +description: This release adds custom base URL support for Requesty and DeepSeek V3.1 model to Chutes AI. +keywords: + - roo code 3.25.23 + - requesty provider + - deepseek v3.1 + - chutes ai +image: /img/social-share.jpg +--- + +# Roo Code 3.25.23 Release Notes (2025-08-22) + +This release adds custom base URL support for Requesty and DeepSeek V3.1 model to Chutes AI. + +## Provider Updates + +* **Requesty Provider**: Added support for custom base URLs, allowing you to connect to self-hosted or alternative Requesty endpoints ([#7337](https://github.com/RooCodeInc/Roo-Code/pull/7337)) +* **Chutes AI**: Added DeepSeek V3.1 model support, expanding the available model options for Chutes AI users ([#7295](https://github.com/RooCodeInc/Roo-Code/pull/7295)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.3.mdx b/docs/update-notes/v3.25.3.mdx new file mode 100644 index 00000000..8d39e248 --- /dev/null +++ b/docs/update-notes/v3.25.3.mdx @@ -0,0 +1,31 @@ +--- +description: Roo Code 3.25.3 improves Claude Code output limits, enhances UI elements, and fixes chat interaction issues. +keywords: + - roo code 3.25.3 + - claude code tokens + - image queueing + - ui improvements +image: /img/social-share.jpg +--- + +# Roo Code 3.25.3 Release Notes (2025-07-30) + +This release increases Claude Code's output capacity, improves UI elements, and fixes chat interaction issues. + +## QOL Improvements + +* **Cleaner Welcome View**: Gemini checkboxes are now hidden on the welcome screen for a cleaner interface ([#6415](https://github.com/RooCodeInc/Roo-Code/pull/6415)) +* **Slash Commands Documentation**: Added a direct link to slash commands documentation for easier access ([#6409](https://github.com/RooCodeInc/Roo-Code/pull/6409)) +* **Documentation Updates**: Clarified apply_diff tool descriptions to emphasize surgical edits ([#6278](https://github.com/RooCodeInc/Roo-Code/pull/6278)) + +## Bug Fixes + +* **Chat Input Preservation**: Fixed an issue where clicking chat buttons would clear your typed message (thanks hassoncs!) ([#6222](https://github.com/RooCodeInc/Roo-Code/pull/6222)) +* **Image Queueing**: Fixed image queueing functionality that was not working properly ([#6414](https://github.com/RooCodeInc/Roo-Code/pull/6414)) +* **Claude Code Output Tokens**: Fixed truncated responses by increasing default max output tokens from 8k to 16k (thanks bpeterson1991!) ([#6312](https://github.com/RooCodeInc/Roo-Code/pull/6312)) + +## Misc Improvements + +* **Extension Title Update**: Removed "(prev Roo Cline)" from the extension title across all languages ([#6426](https://github.com/RooCodeInc/Roo-Code/pull/6426)) +* **Translation Improvements**: Updated auto-translate prompt and added translation check action ([#6430](https://github.com/RooCodeInc/Roo-Code/pull/6430), [#6393](https://github.com/RooCodeInc/Roo-Code/pull/6393)) +* **Mode Configuration**: Updated PR reviewer rules and mode configuration ([#6391](https://github.com/RooCodeInc/Roo-Code/pull/6391), [#6428](https://github.com/RooCodeInc/Roo-Code/pull/6428)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.4.mdx b/docs/update-notes/v3.25.4.mdx new file mode 100644 index 00000000..3888a471 --- /dev/null +++ b/docs/update-notes/v3.25.4.mdx @@ -0,0 +1,73 @@ +--- +description: Roo Code 3.25.4 adds Doubao and SambaNova providers, introduces context-aware prompt enhancement, and improves tool functionality. +keywords: + - roo code 3.25.4 + - doubao provider + - sambanova provider + - task history context + - prompt enhancement +image: /img/social-share.jpg +--- + +# Roo Code 3.25.4 Release Notes (2025-07-31) + +This release introduces two new AI providers, enhances prompt suggestions with conversation context, and improves various tool functionalities. + +## Doubao Provider Support + +We've added support for Doubao, ByteDance's AI model provider (thanks AntiMoron!) ([#6345](https://github.com/RooCodeInc/Roo-Code/pull/6345)): + +- **Access to ByteDance AI Models**: Connect to Doubao's language models for your AI-powered development tasks +- **Full Integration**: Complete provider implementation with API handling +- **Easy Configuration**: Simple setup through Roo Code's provider settings with internationalized prompts + +Doubao expands your AI model options, giving you access to ByteDance's competitive language models alongside existing providers. + +> **📚 Documentation**: See [Doubao Provider Guide](/providers/doubao) for setup instructions and available models. + +## SambaNova Provider Integration + +We've integrated SambaNova as a new LLM provider (thanks snova-jorgep!) ([#6188](https://github.com/RooCodeInc/Roo-Code/pull/6188)): + +- **High-Speed Inference**: Experience competitive inference speeds for faster AI responses +- **Broader Model Selection**: Access SambaNova's diverse range of language models +- **Seamless Integration**: Configure and use SambaNova models just like any other provider + +SambaNova brings enterprise-grade AI infrastructure to Roo Code, offering powerful alternatives for your development workflows. + +> **📚 Documentation**: See [SambaNova Provider Guide](/providers/sambanova) for configuration details. + +## Context-Aware Prompt Enhancement + +Prompt enhancement now uses your conversation history for better suggestions (thanks liwilliam2021!) ([#6343](https://github.com/RooCodeInc/Roo-Code/pull/6343)): + +- **Smarter Suggestions**: Enhancement considers your last 10 messages to generate more relevant prompts +- **Reduced Hallucinations**: Context awareness prevents the AI from making unfounded suggestions +- **Flexible Configuration**: Use a separate API configuration for enhancement operations +- **Toggle Control**: Enable or disable task history inclusion based on your needs + +To enable this feature: Settings → Prompts tab → Select "ENHANCE" → Check "Include task history in enhancement" for better context. + +> **📚 Documentation**: See [Prompt Enhancement Guide](/features/enhance-prompt) for configuration options. + +## QOL Improvements + +* **Task Resumption Message**: Improved LLM instructions by removing misleading message about resuming tasks (thanks KJ7LNW!) ([#5851](https://github.com/RooCodeInc/Roo-Code/pull/5851)) +* **AGENTS.md Support**: Added symlink support for AGENTS.md file loading ([#6326](https://github.com/RooCodeInc/Roo-Code/pull/6326)) +* **Marketplace Updates**: Auto-refresh marketplace data when organization settings change ([#6446](https://github.com/RooCodeInc/Roo-Code/pull/6446)) + +## Bug Fixes + +* **Execute Command Kill Button**: Fixed the kill button functionality for the execute_command tool ([#6457](https://github.com/RooCodeInc/Roo-Code/pull/6457)) +* **Token Counting**: Fixed accuracy issues by extracting text from messages using VSCode LM API (thanks NaccOll!) ([#6424](https://github.com/RooCodeInc/Roo-Code/pull/6424)) + +## Provider Updates + +* **Chutes AI**: Added zai-org/GLM-4.5-FP8 model support ([#6441](https://github.com/RooCodeInc/Roo-Code/pull/6441)) +* **OpenRouter**: Set horizon-alpha model max tokens to 32k ([#6470](https://github.com/RooCodeInc/Roo-Code/pull/6470)) +* **Databricks**: Added support for /invocations endpoints pattern (thanks adambrand!) ([#6317](https://github.com/RooCodeInc/Roo-Code/pull/6317)) + +## Misc Improvements + +* **Navigator Global Error**: Resolved errors by updating mammoth and bluebird dependencies ([#6363](https://github.com/RooCodeInc/Roo-Code/pull/6363)) +* **Nightly Build Fixes**: Resolved marketplace freezing issues with separate changelog ([#6449](https://github.com/RooCodeInc/Roo-Code/pull/6449)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.5.mdx b/docs/update-notes/v3.25.5.mdx new file mode 100644 index 00000000..20b56424 --- /dev/null +++ b/docs/update-notes/v3.25.5.mdx @@ -0,0 +1,61 @@ +--- +description: Roo Code 3.25.5 adds Cerebras AI provider support with Qwen 3 Coder models, introduces auto-approved cost limits for budget control, and fixes VB.NET indexing along with several other improvements. +keywords: + - roo code 3.25.5 + - cerebras provider + - qwen 3 coder + - cost limits + - vb.net indexing + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.5 Release Notes (2025-08-01) + +This release adds Cerebras AI provider support with powerful Qwen 3 Coder models, introduces auto-approved cost limits for better budget control, and includes important bug fixes for VB.NET indexing and message handling. + +## Cerebras Provider Support + +We've added support for Cerebras as a new AI provider (thanks kevint-cerebras!) ([#6392](https://github.com/RooCodeInc/Roo-Code/pull/6392), [#6562](https://github.com/RooCodeInc/Roo-Code/pull/6562)): + +- **Qwen 3 Coder Models**: Access to Qwen 3 Coder with both free and paid tier options +- **Multiple Model Variants**: Includes Llama 3.3 70B and various Qwen 3 configurations (32B, 235B) +- **Automatic Thinking Token Filtering**: Cerebras reasoning models automatically filter thinking tokens for cleaner output + +The Cerebras provider offers competitive performance with flexible pricing tiers, making it an excellent choice for both experimentation and production use. + +> **📚 Documentation**: See [Cerebras Provider Guide](/providers/cerebras) for setup instructions and available models. + +## Auto-approved Cost Limits + +We've introduced a new cost control feature in the auto-approve settings to help manage API spending (thanks hassoncs!) ([#6484](https://github.com/RooCodeInc/Roo-Code/pull/6484)): + +- **Budget Protection**: Set a maximum cost limit in your auto-approve settings to control total API spending +- **Automatic Prompting**: Roo Code will prompt for approval when approaching your cost limit +- **Complements Request Limits**: Works alongside existing request count limits for comprehensive control + +Auto-approve settings showing the new Max Cost field + +This feature provides peace of mind when using expensive models or running long sessions, ensuring you stay within budget. You can find this new "Max Cost" setting alongside the existing "Max Count" in the auto-approve configuration panel. + +## QOL Improvements + +* **Auto-approve UI**: Cleaner and more streamlined interface with improved localization ([#6538](https://github.com/RooCodeInc/Roo-Code/pull/6538)) +![alt text](../../static/img/v3.25.5/v3.25.5-1.png) +* **Command Validation**: Better handling of background execution (`&`) and subshell patterns like `(cmd1; cmd2)` ([#6486](https://github.com/RooCodeInc/Roo-Code/pull/6486)) + +## Bug Fixes + +* **VB.NET Indexing**: Files are now properly indexed in large monorepos using fallback chunking (thanks JensvanZutphen!) ([#6552](https://github.com/RooCodeInc/Roo-Code/pull/6552)) +* **Message Sending**: Restored functionality when clicking the save button ([#6487](https://github.com/RooCodeInc/Roo-Code/pull/6487)) +* **Search/Replace Tolerance**: More forgiving of AI-generated diffs with extra `>` characters ([#6537](https://github.com/RooCodeInc/Roo-Code/pull/6537)) +* **Qdrant Deletion**: Gracefully handles deletion errors to prevent indexing interruption ([#6296](https://github.com/RooCodeInc/Roo-Code/pull/6296)) +* **LM Studio Context Length**: Models now correctly display their actual context length instead of "1" (thanks pwilkin, Angular-Angel!) ([#6183](https://github.com/RooCodeInc/Roo-Code/pull/6183)) +* **Claude Code Errors**: ENOENT errors now show helpful installation guidance (thanks JamieJ1!) ([#5867](https://github.com/RooCodeInc/Roo-Code/pull/5867)) + +## Misc Improvements + +* **Slash Command Interpolation**: Skip interpolation for non-existent commands ([#6475](https://github.com/RooCodeInc/Roo-Code/pull/6475)) +* **Linter Coverage**: Applied to locale README files (thanks liwilliam2021!) ([#6477](https://github.com/RooCodeInc/Roo-Code/pull/6477)) +* **Cloud Service Events**: Migrated from callbacks to event-based architecture ([#6519](https://github.com/RooCodeInc/Roo-Code/pull/6519)) +* **Website Updates**: Phase 1 improvements (thanks thill2323!) ([#6085](https://github.com/RooCodeInc/Roo-Code/pull/6085)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.6.mdx b/docs/update-notes/v3.25.6.mdx new file mode 100644 index 00000000..440d2c3a --- /dev/null +++ b/docs/update-notes/v3.25.6.mdx @@ -0,0 +1,33 @@ +--- +description: Support for the new Horizon Beta stealth model on OpenRouter, plus cloud provider profile sync and bug fixes. +keywords: + - roo code 3.25.6 + - horizon beta + - stealth model + - cloud provider sync + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.6 Release Notes (2025-08-02) + +This release features support for the new Horizon Beta stealth model, cloud provider profile synchronization, and bug fixes. + +## Horizon Beta Stealth Model via OpenRouter + +We've optimized support for OpenRouter's new stealth model Horizon Beta ([#6577](https://github.com/RooCodeInc/Roo-Code/pull/6577)): + +- **Improved Performance**: Set max tokens to 32k (reduced from 128k default) +- **Free to Use**: Thanks to OpenRouter, Horizon Beta is an improved version of Horizon Alpha and remains free + +A big thanks to OpenRouter for providing this innovative stealth model to the community! + +## Bug Fixes + +* **Claude Code Error Handling**: Fixed "spawn claude ENOENT" error when using Claude Code provider, now provides better error handling and installation guidance (thanks JamieJ1!) ([#6565](https://github.com/RooCodeInc/Roo-Code/pull/6565)) + +## Misc Improvements + +* **Cloud Provider Profile Sync**: Added support for syncing provider profiles from the cloud, enabling automatic synchronization across devices and team collaboration ([#6540](https://github.com/RooCodeInc/Roo-Code/pull/6540)) +* **Type Definitions**: Updated @roo-code/types to v1.41.0 for latest type compatibility ([#6568](https://github.com/RooCodeInc/Roo-Code/pull/6568)) + diff --git a/docs/update-notes/v3.25.7.mdx b/docs/update-notes/v3.25.7.mdx new file mode 100644 index 00000000..c6dd73ad --- /dev/null +++ b/docs/update-notes/v3.25.7.mdx @@ -0,0 +1,68 @@ +--- +description: Three new AI providers join Roo Code - Claude Opus 4.1, Z AI, and Fireworks AI - plus quality of life improvements and bug fixes. +keywords: + - roo code 3.25.7 + - claude opus 4.1 + - z ai provider + - fireworks ai + - multi-folder workspace + - checkpoint improvements +image: /img/social-share.jpg +--- + +# Roo Code 3.25.7 Release Notes (2025-08-05) + +This release introduces Groq's GPT-OSS models, adds support for Claude Opus 4.1, brings two new AI providers (Z AI and Fireworks AI), and includes numerous quality of life improvements. + +## Groq GPT-OSS Models + +Groq now offers OpenAI's GPT-OSS models with impressive capabilities ([#6732](https://github.com/RooCodeInc/Roo-Code/pull/6732)): + +- **GPT-OSS-120b and GPT-OSS-20b**: Mixture of Experts models with 131K context windows +- **High Performance**: Optimized for fast inference on Groq's infrastructure + +These models bring powerful open-source alternatives to Groq's already impressive lineup. + +## Z AI Provider + +Z AI (formerly Zhipu AI) is now available as a provider (thanks jues!) ([#6657](https://github.com/RooCodeInc/Roo-Code/pull/6657)): + +- **GLM-4.5 Series Models**: Access to GLM-4.5 and GLM-4.5-Air models +- **Dual Regional Support**: Choose between international and mainland China endpoints +- **Flexible Configuration**: Easy API key setup with regional selection + +> **📚 Documentation**: See [Z AI Provider Guide](/providers/zai) for setup instructions. + +## Claude Opus 4.1 Support + +We've added support for the new Claude Opus 4.1 model across multiple providers ([#6728](https://github.com/RooCodeInc/Roo-Code/pull/6728)): + +- **Available Providers**: Anthropic, Claude Code, Bedrock, Vertex AI, and LiteLLM +- **Enhanced Capabilities**: 8192 max tokens, reasoning budget support, and prompt caching +- **Pricing**: $15/M input, $75/M output, $18.75/M cache writes, $1.5/M cache reads + +Note: OpenRouter support for Claude Opus 4.1 is not yet available. + +## QOL Improvements + +* **Multi-Folder Workspace Support**: Code indexing now works correctly across all folders in multi-folder workspaces (thanks NaccOll!) ([#6204](https://github.com/RooCodeInc/Roo-Code/pull/6204)) - [Learn more](/features/codebase-indexing) +* **Checkpoint Timing**: Checkpoints now save before file changes are made, allowing easy undo of unwanted modifications (thanks NaccOll!) ([#6359](https://github.com/RooCodeInc/Roo-Code/pull/6359)) - [Learn more](/features/checkpoints) +* **Redesigned Task Header**: Cleaner, more intuitive interface with improved visual hierarchy (thanks brunobergher!) ([#6561](https://github.com/RooCodeInc/Roo-Code/pull/6561)) +* **Consistent Checkpoint Terminology**: Removed "Initial Checkpoint" terminology for better consistency ([#6643](https://github.com/RooCodeInc/Roo-Code/pull/6643)) +* **Responsive Mode Dropdowns**: Mode selection dropdowns now resize properly with the window (thanks AyazKaan!) ([#6422](https://github.com/RooCodeInc/Roo-Code/pull/6422)) +* **Performance Boost**: Significantly improved performance when processing long AI responses (thanks qdaxb!) ([#5341](https://github.com/RooCodeInc/Roo-Code/pull/5341)) +* **Cleaner Command Approval UI**: Simplified interface shows only unique command patterns ([#6623](https://github.com/RooCodeInc/Roo-Code/pull/6623)) +* **Smart Todo List Reminder**: Todo list reminder now respects configuration settings (thanks NaccOll!) ([#6411](https://github.com/RooCodeInc/Roo-Code/pull/6411)) - [Learn more](/features/task-todo-list) +* **Cleaner Task History**: Improved task history display showing more content (3 lines), up to 5 tasks in preview, and simplified footer ([#6687](https://github.com/RooCodeInc/Roo-Code/pull/6687)) +* **Internal Architecture**: Improved event handling for better extensibility ([#6606](https://github.com/RooCodeInc/Roo-Code/pull/6606)) + +## Provider Updates + +* **Fireworks AI Provider**: New provider offering hosted versions of popular open-source models like Kimi and Qwen (thanks ershang-fireworks!) ([#6652](https://github.com/RooCodeInc/Roo-Code/pull/6652)) +* **Cerebras GPT-OSS-120b**: Added OpenAI's GPT-OSS-120b model to Cerebras provider - free to use with 64K context and ~2800 tokens/sec ([#6734](https://github.com/RooCodeInc/Roo-Code/pull/6734)) + +## Bug Fixes + +* **Mode Name Validation**: Prevents empty mode names from causing YAML parsing errors (thanks kfxmvp!) ([#5767](https://github.com/RooCodeInc/Roo-Code/pull/5767)) +* **Text Highlight Alignment**: Fixed misalignment in chat input area highlights (thanks NaccOll!) ([#6648](https://github.com/RooCodeInc/Roo-Code/pull/6648)) +* **MCP Server Setting**: Properly respects the "Enable MCP Server Creation" setting (thanks characharm!) ([#6613](https://github.com/RooCodeInc/Roo-Code/pull/6613)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.8.mdx b/docs/update-notes/v3.25.8.mdx new file mode 100644 index 00000000..46170572 --- /dev/null +++ b/docs/update-notes/v3.25.8.mdx @@ -0,0 +1,54 @@ +--- +description: Memory leak fix for long conversations and Gemini 2.5 Pro thinking budget flexibility, plus multiple stability improvements. +keywords: + - roo code 3.25.8 + - memory leak fix + - gemini thinking budget + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.8 Release Notes (2025-08-06) + +This release fixes a critical memory leak in long conversations, prevents disabled MCP servers from starting, and provides more flexibility for Gemini 2.5 Pro thinking budgets, along with numerous stability improvements. + +## Disabled MCP Servers No Longer Start + +We've fixed a significant issue where disabled MCP servers were still starting processes and consuming resources ([#6084](https://github.com/RooCodeInc/Roo-Code/pull/6084)): + +- **No Wasted Resources**: Disabled servers now truly stay disabled and don't start background processes +- **Clear Status Indicators**: Server status now accurately reflects whether a server is enabled or disabled +- **Immediate Cleanup**: When MCP is globally disabled, all servers immediately disconnect + +This ensures your system resources are only used for the MCP servers you actually want to run. + +## Memory Leak Fix for Long Conversations + +We've resolved a critical memory leak that was causing excessive memory usage and grey screens in long conversations (thanks xyOz-dev!) ([#6697](https://github.com/RooCodeInc/Roo-Code/pull/6697)): + +- **Bounded Memory Usage**: Virtual scrolling now limits viewport rendering to 1000px below the current view instead of rendering infinitely +- **Optimized Caching**: Reduced cache size and TTL to prevent memory accumulation +- **Stable Performance**: Memory usage remains constant regardless of conversation length + +Your long conversations will now remain responsive and stable without the dreaded grey screen appearing. + +## Gemini 2.5 Pro Thinking Budget Flexibility + +Gemini 2.5 Pro users now have much more control over the thinking budget ([#6588](https://github.com/RooCodeInc/Roo-Code/pull/6588)): + +- **Lower Minimum**: The minimum thinking budget is reduced from 1024 to 128 tokens +- **More Concise Coding**: Perfect for tasks that need quick, focused responses without extensive reasoning +- **Manual Adjustment Required**: You'll need to manually adjust the thinking budget to 128 in your settings to take advantage of this feature + +This change gives you the flexibility to optimize for either deep reasoning or more concise, rapid responses depending on your needs. + +## Bug Fixes + +* **MCP Server Refresh**: Settings changes no longer trigger unnecessary MCP server refreshes ([#6779](https://github.com/RooCodeInc/Roo-Code/pull/6779)) +* **Codebase Search**: The tool now correctly searches the entire workspace when using "." as the path ([#6517](https://github.com/RooCodeInc/Roo-Code/pull/6517)) +* **Swift File Support**: Fixed VS Code crashes when indexing projects containing Swift files (thanks niteshbalusu11, sealad886!) ([#6724](https://github.com/RooCodeInc/Roo-Code/pull/6724)) +* **Context Management**: Model max tokens now intelligently capped at 20% of context window to prevent excessive condensing ([#6761](https://github.com/RooCodeInc/Roo-Code/pull/6761)) +* **OpenAI Configuration**: Extra whitespace in base URLs no longer breaks model detection (thanks vauhochzett!) ([#6560](https://github.com/RooCodeInc/Roo-Code/pull/6560)) +* **URL Fetching**: Better error recovery when fetching content from URLs (thanks QuinsZouls!) ([#6635](https://github.com/RooCodeInc/Roo-Code/pull/6635)) +* **Qdrant Recovery**: Code indexing automatically recovers when Qdrant becomes available after startup errors ([#6661](https://github.com/RooCodeInc/Roo-Code/pull/6661)) +* **Chat Scrolling**: Eliminated scroll jitter during message streaming ([#6780](https://github.com/RooCodeInc/Roo-Code/pull/6780)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.9.mdx b/docs/update-notes/v3.25.9.mdx new file mode 100644 index 00000000..214e8dff --- /dev/null +++ b/docs/update-notes/v3.25.9.mdx @@ -0,0 +1,29 @@ +--- +description: Adds new Fireworks AI models, fixes token calculation, and improves chat input focus. +keywords: + - roo code 3.25.9 + - fireworks ai models + - glm-4.5 + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.25.9 Release Notes (2025-08-07) + +This release adds new AI models to the Fireworks provider, fixes token calculation issues, and improves the chat creation experience. + +## Provider Updates + +* **Fireworks AI Models**: Added GLM-4.5 series models (355B and 106B parameters with 128K context) and OpenAI gpt-oss models (20b for edge deployments, 120b for production use) to expand model selection options (thanks alexfarlander!) ([#6784](https://github.com/RooCodeInc/Roo-Code/pull/6784)) + +## QOL Improvements + +* **Chat Input Focus**: The chat input now automatically focuses when creating a new chat via the + button, allowing you to start typing immediately ([#6689](https://github.com/RooCodeInc/Roo-Code/pull/6689)) + +## Bug Fixes + +* **Token Calculation**: Fixed rounding errors that prevented certain models like GLM-4.5 from working properly by ensuring max output tokens are correctly rounded up (thanks markp018!) ([#6808](https://github.com/RooCodeInc/Roo-Code/pull/6808)) + +## Misc Improvements + +* **Cloud Integration**: Reverted to using the npm package version of @roo-code/cloud for improved build stability and maintenance ([#6795](https://github.com/RooCodeInc/Roo-Code/pull/6795)) \ No newline at end of file diff --git a/docs/update-notes/v3.25.mdx b/docs/update-notes/v3.25.mdx new file mode 100644 index 00000000..03db0247 --- /dev/null +++ b/docs/update-notes/v3.25.mdx @@ -0,0 +1,307 @@ +--- +description: Roo Code 3.25 introduces Sonic stealth model with 262K context, custom slash commands, Gemini web tools, image support, message queueing, Cerebras AI provider, cost limits, Vertex AI grounding, subtask todo lists, and many quality-of-life improvements. +keywords: + - roo code 3.25 + - sonic model + - custom slash commands + - gemini tools + - image support + - message queueing + - cerebras provider + - cost limits + - vertex ai grounding + - subtask todos +image: /img/social-share.jpg +--- + +# Roo Code 3.25 Release Notes + +This release brings powerful new capabilities to Roo Code, including the Sonic stealth model with 262,144-token context and 72-hour free access, custom slash commands for workflow automation, enhanced Gemini models with web access, comprehensive image support, seamless message queueing for uninterrupted conversations, the new Cerebras AI provider, auto-approved cost limits for budget control, Vertex AI grounding features, and subtask todo list support. + +### Vertex AI Grounding Features + +Vertex AI users can now access powerful grounding capabilities previously exclusive to the Gemini provider (thanks anguslees!) ([#6777](https://github.com/RooCodeInc/Roo-Code/pull/6777)): + +- **Google Search Grounding**: Get real-time information from web searches directly in your AI responses +- **URL Context**: Provide specific web pages as context for more accurate, up-to-date responses +- **Enhanced Accuracy**: Combine AI capabilities with current web information for better results + +These features bring Vertex AI to feature parity with Gemini for grounding capabilities. + +> **📚 Documentation**: See [Vertex AI Provider](/providers/vertex) for configuration details. + +### Subtask Todo Lists + +Streamline hierarchical task planning with the new optional todo list parameter for subtasks ([#6775](https://github.com/RooCodeInc/Roo-Code/pull/6775)): + +- **Pass Todo Lists**: Include predefined todo lists when creating subtasks +- **Maintain Context**: Pass along context to the subtask in the form of a todo list +- **Optional Enforcement**: The "New Task Require Todos" setting in VS Code can enforce todo lists for all new subtasks if desired + +Subtask todo lists configuration in VS Code settings + +This feature works out of the box, and you can optionally configure VS Code settings to require todos for all new tasks. + +> **📚 Documentation**: See [Task Todo List](/features/task-todo-list) for detailed information about todo list management. + +### Custom Slash Commands + +Create your own slash commands to automate repetitive workflows ([#6263](https://github.com/RooCodeInc/Roo-Code/pull/6263), [#6286](https://github.com/RooCodeInc/Roo-Code/pull/6286), [#6333](https://github.com/RooCodeInc/Roo-Code/pull/6333), [#6336](https://github.com/RooCodeInc/Roo-Code/pull/6336), [#6327](https://github.com/RooCodeInc/Roo-Code/pull/6327)): + +- **File-Based Commands**: Place markdown files in `.roo/commands/` to create custom commands instantly +- **Management UI**: New interface for creating, editing, and deleting commands with built-in fuzzy search +- **Argument Hints**: Commands display helpful hints about required arguments as you type +- **Rich Descriptions**: Add metadata and descriptions to make commands self-documenting + +Slash commands menu showing available commands + +Turn complex workflows into simple commands like `/deploy` or `/review` for faster development. + +> **📚 Documentation**: See [Slash Commands Guide](/features/slash-commands) for detailed usage instructions. + +### Message Queueing + +Continue typing while Roo processes your requests with the new message queueing system ([#6167](https://github.com/RooCodeInc/Roo-Code/pull/6167)): + +- **Non-Blocking Input**: Type and send messages even while Roo is processing previous requests +- **Sequential Processing**: Messages are queued and processed in the order they were sent +- **Visual Feedback**: See queued messages clearly displayed in the interface +- **Maintained Context**: Each message maintains proper context from the conversation + +Keeps your workflow smooth when you have multiple quick questions or corrections. + +> **📚 Documentation**: See [Message Queueing Guide](/features/message-queueing) for detailed information. + +### Image Support for read_file Tool + +The [`read_file`](/advanced-usage/available-tools/read-file) tool now supports reading and analyzing images (thanks samhvw8!) ([#5172](https://github.com/RooCodeInc/Roo-Code/pull/5172)): + +- **Multiple Formats**: Supports PNG, JPG, JPEG, GIF, WebP, SVG, BMP, ICO, and TIFF +- **OCR Capabilities**: Extract text from screenshots and scanned documents +- **Batch Processing**: Read multiple images from a folder with descriptions +- **Simple Integration**: Works just like reading text files - no special configuration needed + +Useful for analyzing UI mockups, debugging screenshot errors, or extracting code from images. + +### Gemini Tools: URL Context and Google Search + +Gemini models can now access web content and perform Google searches for more accurate, up-to-date responses (thanks HahaBill!) ([#5959](https://github.com/RooCodeInc/Roo-Code/pull/5959)): + +- **URL Context**: Directly analyze web pages, documentation, and online resources +- **Google Search Grounding**: Get fact-checked responses based on current search results +- **User Control**: Enable or disable web features based on your privacy preferences +- **Real-Time Information**: Access the latest documentation and best practices + +Perfect for researching new libraries, verifying solutions, or getting current API information. + +> **📚 Documentation**: See [Gemini Provider Guide](/providers/gemini) for setup and usage instructions. + +### Context-Aware Prompt Enhancement + +Prompt enhancement now uses your conversation history for better suggestions (thanks liwilliam2021!) ([#6343](https://github.com/RooCodeInc/Roo-Code/pull/6343)): + +- **Smarter Suggestions**: Enhancement considers your last 10 messages to generate more relevant prompts +- **Reduced Hallucinations**: Context awareness prevents the AI from making unfounded suggestions +- **Flexible Configuration**: Use a separate API configuration for enhancement operations +- **Toggle Control**: Enable or disable task history inclusion based on your needs + +To enable this feature: Settings → Prompts tab → Select "ENHANCE" → Check "Include task history in enhancement" for better context. + +> **📚 Documentation**: See [Prompt Enhancement Guide](/features/enhance-prompt) for configuration options. + +### Auto-approved Cost Limits + +We've introduced a new cost control feature in the auto-approve settings to help manage API spending: + +- **Budget Protection**: Set a maximum cost limit in your auto-approve settings to control total API spending +- **Automatic Prompting**: Roo Code will prompt for approval when approaching your cost limit +- **Complements Request Limits**: Works alongside existing request count limits for comprehensive control + +Auto-approve settings showing the new Max Cost field + +This feature provides peace of mind when using expensive models or running long sessions, ensuring you stay within budget. You can find this new "Max Cost" setting alongside the existing "Max Count" in the auto-approve configuration panel. + +### Quality of Life Improvements + +Small changes that make a big difference in your daily workflow: + +* **Prompt Caching for Kimi K2 on Groq**: Added support for prompt caching with the Kimi K2 model on Groq, providing a 50% discount on cached input tokens for improved cost efficiency ([#7324](https://github.com/RooCodeInc/Roo-Code/pull/7324)) +* **Global Custom Instructions Documentation**: Added helpful documentation links in the UI to make global custom instructions more discoverable and easier to understand ([#7114](https://github.com/RooCodeInc/Roo-Code/pull/7114)) +* **Context Window Error Handling**: Improved error detection and automatic recovery when hitting context limits - the system now detects errors from multiple providers (OpenAI, Anthropic, Cerebras) and automatically truncates context by 25% before retrying (up to 3 attempts) ([#6967](https://github.com/RooCodeInc/Roo-Code/pull/6967)) +* **Marketplace Filter**: New "Show installed only" checkbox to easily view and manage your installed MCPs and modes (thanks semidark!) ([#7007](https://github.com/RooCodeInc/Roo-Code/pull/7007)) +* **DeepSeek Context**: Updated DeepSeek models to support 128k context window ([#7269](https://github.com/RooCodeInc/Roo-Code/pull/7269)) +* **Sonnet 1M Context Support**: Enable 1M token context window for Claude 3.5 Sonnet and Claude Sonnet 4 when using AWS Bedrock, allowing you to process much larger documents and have longer conversations ([#7032](https://github.com/RooCodeInc/Roo-Code/pull/7032)) +* **Internationalization**: The Account button now displays in your selected language instead of always showing in English (thanks zhangtony239!) ([#6978](https://github.com/RooCodeInc/Roo-Code/pull/6978)) +* **Agent File Flexibility**: Roo Code now recognizes both AGENT.md and AGENTS.md files for agent rules, with AGENTS.md checked first for compatibility (thanks Brendan-Z!) ([#6913](https://github.com/RooCodeInc/Roo-Code/pull/6913)) +* **SEO Improvements**: Enhanced website discoverability with proper metadata and social media preview cards (thanks elianiva, abumalick!) ([#7096](https://github.com/RooCodeInc/Roo-Code/pull/7096)) +* **Sitemap Generation**: Implemented TypeScript-based sitemap generation for better search engine indexing (thanks abumalick!) ([#6206](https://github.com/RooCodeInc/Roo-Code/pull/6206)) +* **Chat Input Focus**: The chat input now automatically focuses when creating a new chat via the + button, allowing you to start typing immediately ([#6689](https://github.com/RooCodeInc/Roo-Code/pull/6689)) +* **Gemini 2.5 Pro Thinking Budget Flexibility**: The minimum thinking budget is reduced from 1024 to 128 tokens, perfect for tasks that need quick, focused responses without extensive reasoning. You'll need to manually adjust the thinking budget to 128 in your settings to take advantage of this feature. ([#6588](https://github.com/RooCodeInc/Roo-Code/pull/6588)) +* **Multi-Folder Workspace Support**: Code indexing now works correctly across all folders in multi-folder workspaces (thanks NaccOll!) ([#6204](https://github.com/RooCodeInc/Roo-Code/pull/6204)) +* **Checkpoint Timing**: Checkpoints now save before file changes are made, allowing easy undo of unwanted modifications (thanks NaccOll!) ([#6359](https://github.com/RooCodeInc/Roo-Code/pull/6359)) +* **Redesigned Task Header**: Cleaner, more intuitive interface with improved visual hierarchy (thanks brunobergher!) ([#6561](https://github.com/RooCodeInc/Roo-Code/pull/6561)) +* **Consistent Checkpoint Terminology**: Removed "Initial Checkpoint" terminology for better consistency ([#6643](https://github.com/RooCodeInc/Roo-Code/pull/6643)) +* **Responsive Mode Dropdowns**: Mode selection dropdowns now resize properly with the window (thanks AyazKaan!) ([#6422](https://github.com/RooCodeInc/Roo-Code/pull/6422)) +* **Performance Boost**: Significantly improved performance when processing long AI responses (thanks qdaxb!) ([#5341](https://github.com/RooCodeInc/Roo-Code/pull/5341)) +* **Cleaner Command Approval UI**: Simplified interface shows only unique command patterns ([#6623](https://github.com/RooCodeInc/Roo-Code/pull/6623)) +* **Smart Todo List Reminder**: Todo list reminder now respects configuration settings (thanks NaccOll!) ([#6411](https://github.com/RooCodeInc/Roo-Code/pull/6411)) +* **Cleaner Task History**: Improved task history display showing more content (3 lines), up to 5 tasks in preview, and simplified footer ([#6687](https://github.com/RooCodeInc/Roo-Code/pull/6687)) +* **Markdown Table Rendering**: Tables now display with proper formatting instead of raw markdown for better readability ([#6252](https://github.com/RooCodeInc/Roo-Code/pull/6252)) + Markdown table rendering in Roo Code +* **Mode Selector Popover Redesign**: Improved layout with search functionality when you have many modes installed ([#6140](https://github.com/RooCodeInc/Roo-Code/pull/6140)) + Mode Selector Popover with Search +* **API Selector Popover Redesign**: Updated to match the new mode selector design with improved layout ([#6148](https://github.com/RooCodeInc/Roo-Code/pull/6148)) + API Configuration Selector Redesign +* **Auto-approve UI**: Cleaner and more streamlined interface with improved localization ([#6538](https://github.com/RooCodeInc/Roo-Code/pull/6538)) +* **Sticky Task Modes**: Tasks remember their last-used mode and restore it automatically ([#6177](https://github.com/RooCodeInc/Roo-Code/pull/6177)) +* **ESC Key Support**: Close popovers with ESC for better keyboard navigation ([#6175](https://github.com/RooCodeInc/Roo-Code/pull/6175)) +* **Improved Command Highlighting**: Only valid commands are highlighted in the input field ([#6336](https://github.com/RooCodeInc/Roo-Code/pull/6336)) +* **Command Validation**: Better handling of background execution (`&`) and subshell patterns like `(cmd1; cmd2)` ([#6486](https://github.com/RooCodeInc/Roo-Code/pull/6486)) +* **Subshell Validation**: Improved handling and validation of complex shell commands with subshells, preventing potential errors when using command substitution patterns ([#6379](https://github.com/RooCodeInc/Roo-Code/pull/6379)) +* **Slash Command Icon Hover State**: Fixed the hover state for the slash command icon to provide better visual feedback during interactions ([#6388](https://github.com/RooCodeInc/Roo-Code/pull/6388)) +* **Cleaner Welcome View**: Gemini checkboxes are now hidden on the welcome screen for a cleaner interface ([#6415](https://github.com/RooCodeInc/Roo-Code/pull/6415)) +* **Slash Commands Documentation**: Added a direct link to slash commands documentation for easier access ([#6409](https://github.com/RooCodeInc/Roo-Code/pull/6409)) +* **Documentation Updates**: Clarified apply_diff tool descriptions to emphasize surgical edits ([#6278](https://github.com/RooCodeInc/Roo-Code/pull/6278)) +* **Task Resumption Message**: Improved LLM instructions by removing misleading message about resuming tasks (thanks KJ7LNW!) ([#5851](https://github.com/RooCodeInc/Roo-Code/pull/5851)) +* **AGENTS.md Support**: Added symlink support for AGENTS.md file loading ([#6326](https://github.com/RooCodeInc/Roo-Code/pull/6326)) +* **Marketplace Updates**: Auto-refresh marketplace data when organization settings change ([#6446](https://github.com/RooCodeInc/Roo-Code/pull/6446)) +* **`codebase_search` Tool**: Clarified that the `path` parameter is optional and the tool searches the entire workspace by default ([#6877](https://github.com/RooCodeInc/Roo-Code/pull/6877)) +* **Token Usage Reporting**: Fixed an issue where token usage and cost were underreported, providing more accurate cost tracking (thanks chrarnoldus!) ([#6122](https://github.com/RooCodeInc/Roo-Code/pull/6122)) +* **Enhanced Task History**: Made "enhance with task history" default to true for better context retention in conversations (thanks liwilliam2021!) ([#7140](https://github.com/RooCodeInc/Roo-Code/pull/7140)) +* **Improved Scrollbar**: Fixed scrollbar jumping in long conversations by removing the 500-message limit ([#7064](https://github.com/RooCodeInc/Roo-Code/pull/7064)) +* **Sonic Model Announcement**: Added announcements to inform users about the Sonic model availability, making it easier to discover new model options (thanks mrubens!) ([#7244](https://github.com/RooCodeInc/Roo-Code/pull/7244)) +* **Release Management**: Added changeset for v3.25.20 to ensure proper version management (thanks mrubens!) ([#7245](https://github.com/RooCodeInc/Roo-Code/pull/7245)) + +### Bug Fixes + +Critical fixes that improve stability and compatibility: + +* **OpenAI Responses**: Fixed GPT-5 subtask results not being provided correctly in OpenAI Responses API ([#7305](https://github.com/RooCodeInc/Roo-Code/pull/7305)) +* **Temperature Handling**: Fixed temperature parameter issues for OpenAI Compatible providers ([#7188](https://github.com/RooCodeInc/Roo-Code/pull/7188)) +* **Provider Validation**: Added 'roo' provider to key validation function ([#7239](https://github.com/RooCodeInc/Roo-Code/pull/7239)) +* **UI Stability**: Fixed context condense UI crash when handling null/undefined token values ([#6916](https://github.com/RooCodeInc/Roo-Code/pull/6916)) +* **Storage Checks**: Improved filesystem checks for better storage handling (thanks elianiva!) ([#7164](https://github.com/RooCodeInc/Roo-Code/pull/7164)) +* **Scrollbar Jumping**: Fixed the frustrating scrollbar jumping issue in long conversations over 500 messages (thanks shlgug, adambrand!) ([#7064](https://github.com/RooCodeInc/Roo-Code/pull/7064)) +* **Multi-Folder Workspaces**: Fixed workspace path handling and "file not found" errors in multi-folder VS Code workspaces (thanks NaccOll!) ([#6903](https://github.com/RooCodeInc/Roo-Code/pull/6903), [#6902](https://github.com/RooCodeInc/Roo-Code/pull/6902)) +* **Task Execution Stability**: Improved stability during long-running tasks, helping with the "grey screen" issue (thanks catrielmuller, MuriloFP!) ([#7035](https://github.com/RooCodeInc/Roo-Code/pull/7035)) +* **Provider Settings Save Button**: The save button now properly enables when changing provider dropdowns and checkboxes ([#7113](https://github.com/RooCodeInc/Roo-Code/pull/7113)) +* **XML Entity Decoding**: Fixed apply_diff tool failures when processing files with special characters like "&" (thanks indiesewell!) ([#7108](https://github.com/RooCodeInc/Roo-Code/pull/7108)) +* **Settings Display**: Fixed Max Requests and Max Cost values not displaying in the settings UI (thanks chrarnoldus, possible055!) ([#6925](https://github.com/RooCodeInc/Roo-Code/pull/6925)) +* **Context Condensing Indicator**: Fixed the condensing indicator incorrectly persisting when switching tasks (thanks f14XuanLv!) ([#6922](https://github.com/RooCodeInc/Roo-Code/pull/6922)) +* **Token Calculation**: Fixed rounding errors that prevented certain models like GLM-4.5 from working properly by ensuring max output tokens are correctly rounded up (thanks markp018!) ([#6808](https://github.com/RooCodeInc/Roo-Code/pull/6808)) +* **XML Parsing**: Fixed errors when using the apply_diff tool with complex XML files containing special characters by implementing proper CDATA sections ([#6811](https://github.com/RooCodeInc/Roo-Code/pull/6811)) +* **MCP Error Messages**: Fixed an issue where MCP server errors displayed raw translation keys instead of proper error messages ([#6821](https://github.com/RooCodeInc/Roo-Code/pull/6821)) +* **Memory Leak Fix**: Resolved a critical memory leak in long conversations that was causing excessive memory usage and grey screens. Virtual scrolling now limits viewport rendering and optimizes caching for stable performance regardless of conversation length. (thanks xyOz-dev!) ([#6697](https://github.com/RooCodeInc/Roo-Code/pull/6697)) +* **Disabled MCP Servers**: Fixed issue where disabled MCP servers were still starting processes and consuming resources. Disabled servers now truly stay disabled with clear status indicators and immediate cleanup when MCP is globally disabled. ([#6084](https://github.com/RooCodeInc/Roo-Code/pull/6084)) +* **MCP Server Refresh**: Settings changes no longer trigger unnecessary MCP server refreshes ([#6779](https://github.com/RooCodeInc/Roo-Code/pull/6779)) +* **Codebase Search**: The tool now correctly searches the entire workspace when using "." as the path ([#6517](https://github.com/RooCodeInc/Roo-Code/pull/6517)) +* **Swift File Support**: Fixed VS Code crashes when indexing projects containing Swift files (thanks niteshbalusu11, sealad886!) ([#6724](https://github.com/RooCodeInc/Roo-Code/pull/6724)) +* **Context Management**: Model max tokens now intelligently capped at 20% of context window to prevent excessive condensing ([#6761](https://github.com/RooCodeInc/Roo-Code/pull/6761)) +* **OpenAI Configuration**: Extra whitespace in base URLs no longer breaks model detection (thanks vauhochzett!) ([#6560](https://github.com/RooCodeInc/Roo-Code/pull/6560)) +* **URL Fetching**: Better error recovery when fetching content from URLs (thanks QuinsZouls!) ([#6635](https://github.com/RooCodeInc/Roo-Code/pull/6635)) +* **Qdrant Recovery**: Code indexing automatically recovers when Qdrant becomes available after startup errors ([#6661](https://github.com/RooCodeInc/Roo-Code/pull/6661)) +* **Chat Scrolling**: Eliminated scroll jitter during message streaming ([#6780](https://github.com/RooCodeInc/Roo-Code/pull/6780)) +* **Mode Name Validation**: Prevents empty mode names from causing YAML parsing errors (thanks kfxmvp!) ([#5767](https://github.com/RooCodeInc/Roo-Code/pull/5767)) +* **Text Highlight Alignment**: Fixed misalignment in chat input area highlights (thanks NaccOll!) ([#6648](https://github.com/RooCodeInc/Roo-Code/pull/6648)) +* **MCP Server Setting**: Properly respects the "Enable MCP Server Creation" setting (thanks characharm!) ([#6613](https://github.com/RooCodeInc/Roo-Code/pull/6613)) +* **VB.NET Indexing**: Files are now properly indexed in large monorepos using fallback chunking (thanks JensvanZutphen!) ([#6552](https://github.com/RooCodeInc/Roo-Code/pull/6552)) +* **Message Sending**: Restored functionality when clicking the save button ([#6487](https://github.com/RooCodeInc/Roo-Code/pull/6487)) +* **Search/Replace Tolerance**: More forgiving of AI-generated diffs with extra `>` characters ([#6537](https://github.com/RooCodeInc/Roo-Code/pull/6537)) +* **Qdrant Deletion**: Gracefully handles deletion errors to prevent indexing interruption ([#6296](https://github.com/RooCodeInc/Roo-Code/pull/6296)) +* **LM Studio Context Length**: Models now correctly display their actual context length instead of "1" (thanks pwilkin, Angular-Angel!) ([#6183](https://github.com/RooCodeInc/Roo-Code/pull/6183)) +* **Claude Code Errors**: ENOENT errors now show helpful installation guidance (thanks JamieJ1!) ([#5867](https://github.com/RooCodeInc/Roo-Code/pull/5867)) +* **Claude Code Error Handling**: Fixed "spawn claude ENOENT" error when using Claude Code provider, now provides better error handling and installation guidance (thanks JamieJ1!) ([#6565](https://github.com/RooCodeInc/Roo-Code/pull/6565)) +* **Multi-file Edit Fix**: Fixed issue where Git diff views interfered with file operations (thanks hassoncs, szermatt!) ([#6350](https://github.com/RooCodeInc/Roo-Code/pull/6350)) +* **Non-QWERTY Keyboard Support**: Fixed keyboard shortcuts for Dvorak, AZERTY, and other layouts (thanks shlgug!) ([#6162](https://github.com/RooCodeInc/Roo-Code/pull/6162)) +* **Mode Export/Import**: Fixed custom mode export to handle slug changes correctly ([#6186](https://github.com/RooCodeInc/Roo-Code/pull/6186)) +* **Hidden Directory Support**: [`list_files`](/advanced-usage/available-tools/list-files) now properly shows contents of dot directories (thanks MuriloFP, avtc, zhang157686!) ([#5176](https://github.com/RooCodeInc/Roo-Code/pull/5176)) +* **Scrollbar Stability**: Fixed flickering scrollbar when streaming tables and code blocks ([#6266](https://github.com/RooCodeInc/Roo-Code/pull/6266)) +* **Settings Link Fix**: Restored working "View Settings" link in command permissions tooltip ([#6253](https://github.com/RooCodeInc/Roo-Code/pull/6253)) +* **@mention Parsing**: Fixed mentions to work in all input contexts including follow-up questions ([#6331](https://github.com/RooCodeInc/Roo-Code/pull/6331)) +* **Debug Button Removal**: Hidden test error boundary button in production builds (thanks bangjohn!) ([#6216](https://github.com/RooCodeInc/Roo-Code/pull/6216)) +* **Command Highlighting Fix**: Fixed inconsistent slash command highlighting behavior ([#6325](https://github.com/RooCodeInc/Roo-Code/pull/6325)) +* **Text Wrapping**: Fixed text overflow for long command patterns in permissions UI ([#6255](https://github.com/RooCodeInc/Roo-Code/pull/6255)) +* **Cross-Platform Mode Export**: Windows path separators now convert correctly for Unix systems ([#6308](https://github.com/RooCodeInc/Roo-Code/pull/6308)) +* **Diff View Display**: Fixed an issue where the diff view wasn't showing before approval when background edits were disabled ([#6386](https://github.com/RooCodeInc/Roo-Code/pull/6386)) +* **Chat Input Preservation**: Fixed an issue where clicking chat buttons would clear your typed message (thanks hassoncs!) ([#6222](https://github.com/RooCodeInc/Roo-Code/pull/6222)) +* **Image Queueing**: Fixed image queueing functionality that was not working properly ([#6414](https://github.com/RooCodeInc/Roo-Code/pull/6414)) +* **Claude Code Output Tokens**: Fixed truncated responses by increasing default max output tokens from 8k to 16k (thanks bpeterson1991!) ([#6312](https://github.com/RooCodeInc/Roo-Code/pull/6312)) +* **Execute Command Kill Button**: Fixed the kill button functionality for the execute_command tool ([#6457](https://github.com/RooCodeInc/Roo-Code/pull/6457)) +* **Token Counting**: Fixed accuracy issues by extracting text from messages using VSCode LM API (thanks NaccOll!) ([#6424](https://github.com/RooCodeInc/Roo-Code/pull/6424)) +* **Tool Repetition Detector**: Fixed a bug where setting the "Errors and Repetition Limit" to 1 would incorrectly block the first tool call (thanks NaccOll!) ([#6836](https://github.com/RooCodeInc/Roo-Code/pull/6836)) +* **`max_tokens` Calculation**: Fixed an error for models with very large context windows where requests would fail due to incorrect calculation of maximum output tokens (thanks markp018!) ([#6808](https://github.com/RooCodeInc/Roo-Code/pull/6808)) +* **AWS Bedrock Connection**: Fixed a connection issue when using AWS Bedrock with LiteLLM ([#6778](https://github.com/RooCodeInc/Roo-Code/pull/6778)) +* **Search Tool Reliability**: Fixed the search_files tool failing when encountering permission-denied files - it now continues working and returns results from accessible files (thanks R-omk!) ([#6757](https://github.com/RooCodeInc/Roo-Code/pull/6757)) +* **Native Ollama API**: Fixed Ollama models to use native API instead of OpenAI compatibility layer for improved performance and reliability ([#7137](https://github.com/RooCodeInc/Roo-Code/pull/7137)) +* **Terminal Reuse**: Fixed terminal reuse logic to properly handle terminal lifecycle management ([#7157](https://github.com/RooCodeInc/Roo-Code/pull/7157)) +* **LM Studio Models**: Fixed duplicate model entries by implementing case-insensitive deduplication, ensuring models appear only once in the provider configuration (thanks fbuechler!) ([#7185](https://github.com/RooCodeInc/Roo-Code/pull/7185)) +* **Reasoning Usage**: Fixed enableReasoningEffort setting not being respected when determining reasoning usage, avoiding unintended reasoning costs (thanks ikbencasdoei!) ([#7049](https://github.com/RooCodeInc/Roo-Code/pull/7049)) +* **Welcome Screen**: Fixed the "Let's go" button not working for Roo Code Cloud provider ([#7239](https://github.com/RooCodeInc/Roo-Code/pull/7239)) + +### Provider Updates + +* **Requesty Provider**: Added support for custom base URLs, allowing you to connect to self-hosted or alternative Requesty endpoints ([#7337](https://github.com/RooCodeInc/Roo-Code/pull/7337)) +* **Chutes AI**: Added DeepSeek V3.1 model support, expanding the available model options for Chutes AI users ([#7295](https://github.com/RooCodeInc/Roo-Code/pull/7295)) +* **Featherless Provider**: Access a wide range of open-source models through the new Featherless AI platform (thanks DarinVerheijke!) ([#7235](https://github.com/RooCodeInc/Roo-Code/pull/7235)) +* **Sonic Model Integration**: Added support for the Sonic stealth model through Roo Code Cloud provider ([#7207](https://github.com/RooCodeInc/Roo-Code/pull/7207), [#7212](https://github.com/RooCodeInc/Roo-Code/pull/7212), [#7218](https://github.com/RooCodeInc/Roo-Code/pull/7218)): + - 262,144-token context window for processing large documents and codebases + - Free 72-hour access period for evaluation + - Thinking token controls for managing reasoning budget + - Max output tokens increased to 16,384 for longer responses +* **GPT-5 Model Support**: Added support for OpenAI's latest GPT-5 model family ([#6819](https://github.com/RooCodeInc/Roo-Code/pull/6819)): + - `gpt-5-2025-08-07`: The full GPT-5 model, now set as the default for OpenAI Native provider + - `gpt-5-mini-2025-08-07`: A smaller, faster variant for quick responses + - `gpt-5-nano-2025-08-07`: The most compact version for resource-constrained scenarios + - `gpt-5-chat-latest`: Optimized for conversational AI and non-reasoning tasks ([#7058](https://github.com/RooCodeInc/Roo-Code/pull/7058)) +* **GPT-5 Verbosity Controls**: New settings to control model output detail levels (low, medium, high), allowing you to fine-tune response length and detail based on your needs ([#6819](https://github.com/RooCodeInc/Roo-Code/pull/6819)) +* **Fireworks AI Models**: Added GLM-4.5 series models (355B and 106B parameters with 128K context) and OpenAI gpt-oss models (20b for edge deployments, 120b for production use) to expand model selection options (thanks alexfarlander!) ([#6784](https://github.com/RooCodeInc/Roo-Code/pull/6784)) +* **Claude Opus 4.1 Support**: Added support for the new Claude Opus 4.1 model across Anthropic, Claude Code, Bedrock, Vertex AI, and LiteLLM providers with 8192 max tokens, reasoning budget support, and prompt caching ([#6728](https://github.com/RooCodeInc/Roo-Code/pull/6728)) +* **Z AI Provider**: Z AI (formerly Zhipu AI) is now available with GLM-4.5 series models, offering dual regional support for both international and mainland China users (thanks jues!) ([#6657](https://github.com/RooCodeInc/Roo-Code/pull/6657)) +* **Fireworks AI Provider**: New provider offering hosted versions of popular open-source models like Kimi and Qwen (thanks ershang-fireworks!) ([#6652](https://github.com/RooCodeInc/Roo-Code/pull/6652)) +* **Groq GPT-OSS Models**: Added GPT-OSS-120b and GPT-OSS-20b models with 131K context windows and support for tool use, browser search, code execution, and JSON object mode ([#6732](https://github.com/RooCodeInc/Roo-Code/pull/6732)) +* **Cerebras GPT-OSS-120b**: Added OpenAI's GPT-OSS-120b model - free to use with 64K context and ~2800 tokens/sec ([#6734](https://github.com/RooCodeInc/Roo-Code/pull/6734)) +* **Cerebras Provider**: Added support for Cerebras as a new AI provider with Qwen 3 Coder models, offering both free and paid tier options with automatic thinking token filtering (thanks kevint-cerebras!) ([#6392](https://github.com/RooCodeInc/Roo-Code/pull/6392), [#6562](https://github.com/RooCodeInc/Roo-Code/pull/6562)) +* **Prompt Caching for LiteLLM**: Reduce API costs and improve response times with caching support for Claude 3.5 Sonnet and compatible models (thanks MuriloFP, steve-gore-snapdocs!) ([#6074](https://github.com/RooCodeInc/Roo-Code/pull/6074)) +* **Chutes AI - GLM-4.5-Air Model**: Added support for the GLM-4.5-Air model to the Chutes AI provider with 151K token context window for complex reasoning tasks and large codebase analysis - completely free to use (thanks matbgn!) ([#6377](https://github.com/RooCodeInc/Roo-Code/pull/6377)) +* **Doubao Provider**: Added support for ByteDance's AI model provider with full integration including API handling (thanks AntiMoron!) ([#6345](https://github.com/RooCodeInc/Roo-Code/pull/6345)) +* **SambaNova Provider**: Integrated SambaNova as a new LLM provider offering high-speed inference and broader model selection (thanks snova-jorgep!) ([#6188](https://github.com/RooCodeInc/Roo-Code/pull/6188)) +* **Chutes AI**: Added zai-org/GLM-4.5-FP8 model support ([#6441](https://github.com/RooCodeInc/Roo-Code/pull/6441)) +* **OpenRouter**: Set horizon-alpha model max tokens to 32k ([#6470](https://github.com/RooCodeInc/Roo-Code/pull/6470)) +* **Horizon Beta Stealth Model via OpenRouter**: Optimized support for OpenRouter's new stealth model Horizon Beta with 32k max tokens for better response times. Thanks to OpenRouter for providing this free, improved version of Horizon Alpha! ([#6577](https://github.com/RooCodeInc/Roo-Code/pull/6577)) +* **Type Definitions**: Updated @roo-code/types to v1.41.0 for latest type compatibility ([#6568](https://github.com/RooCodeInc/Roo-Code/pull/6568)) +* **Databricks**: Added support for /invocations endpoints pattern (thanks adambrand!) ([#6317](https://github.com/RooCodeInc/Roo-Code/pull/6317)) +* **Codex Mini Model Support**: Added support for the `codex-mini-latest` model in the OpenAI Native provider (thanks KJ7LNW!) ([#6931](https://github.com/RooCodeInc/Roo-Code/pull/6931)) +* **IO Intelligence Provider**: Added IO Intelligence as a new provider, giving users access to a wide range of AI models ([#6875](https://github.com/RooCodeInc/Roo-Code/pull/6875)) +* **OpenAI**: Removed the deprecated GPT-4.5 Preview model from available options as it was removed from the OpenAI API (thanks PeterDaveHello!) ([#6948](https://github.com/RooCodeInc/Roo-Code/pull/6948)) +* **Task Metadata**: Improved compatibility with Roo Code Cloud services ([#7092](https://github.com/RooCodeInc/Roo-Code/pull/7092)) +* **Sonic Model Support**: Added support for the Sonic model in the provider system (thanks mrubens!) ([#7246](https://github.com/RooCodeInc/Roo-Code/pull/7246)) + +### Misc. Improvements + +* **MDM Authentication**: Clear feedback when authentication is required by your organization's MDM policy ([#7291](https://github.com/RooCodeInc/Roo-Code/pull/7291)) +* **Security Updates**: Updated mermaid dependency to v11.10.0 ([#7231](https://github.com/RooCodeInc/Roo-Code/pull/7231)) and tmp dependency to v0.2.4 ([#6762](https://github.com/RooCodeInc/Roo-Code/pull/6762)) +* **Task Tracking**: Pass task ID in Roo provider request headers ([#7303](https://github.com/RooCodeInc/Roo-Code/pull/7303)) +* **Error Handling**: Removed exceptions from RooHandler constructor ([#7302](https://github.com/RooCodeInc/Roo-Code/pull/7302)) +* **Cloud Services**: Various internal improvements for cloud services ([#7299](https://github.com/RooCodeInc/Roo-Code/pull/7299), [#7258](https://github.com/RooCodeInc/Roo-Code/pull/7258)) +* **Build Optimization**: Marked non-English package files as linguist-generated ([#7271](https://github.com/RooCodeInc/Roo-Code/pull/7271)) +* **Cloud Integration**: Reverted to using the npm package version of @roo-code/cloud for improved build stability and maintenance ([#6795](https://github.com/RooCodeInc/Roo-Code/pull/6795)) +* **Slash Command Interpolation**: Skip interpolation for non-existent commands ([#6475](https://github.com/RooCodeInc/Roo-Code/pull/6475)) +* **Linter Coverage**: Applied to locale README files (thanks liwilliam2021!) ([#6477](https://github.com/RooCodeInc/Roo-Code/pull/6477)) +* **Cloud Service Events**: Migrated from callbacks to event-based architecture ([#6519](https://github.com/RooCodeInc/Roo-Code/pull/6519)) +* **Website Updates**: Phase 1 improvements (thanks thill2323!) ([#6085](https://github.com/RooCodeInc/Roo-Code/pull/6085)) +* **Background Editing (Experimental)**: Work uninterrupted while Roo edits files in the background—no more losing focus from automatic diff views ([#6214](https://github.com/RooCodeInc/Roo-Code/pull/6214)). Files change silently while you keep coding, with diagnostics and error checking still active. See [Background Editing](/features/experimental/background-editing) for details. +* **Security Update**: Updated form-data dependency to address security vulnerability ([#6332](https://github.com/RooCodeInc/Roo-Code/pull/6332)) +* **Contributor Updates**: Refreshed contributor acknowledgments across all localizations ([#6302](https://github.com/RooCodeInc/Roo-Code/pull/6302)) +* **Release Engineering**: Converted release engineer role to slash command for easier releases ([#6333](https://github.com/RooCodeInc/Roo-Code/pull/6333)) +* **PR Reviewer Improvements**: Made PR reviewer mode generic for any GitHub repository ([#6357](https://github.com/RooCodeInc/Roo-Code/pull/6357), [#6328](https://github.com/RooCodeInc/Roo-Code/pull/6328), [#6324](https://github.com/RooCodeInc/Roo-Code/pull/6324)) +* **Organization MCP Controls**: Added support for managing MCP servers at the organization level, allowing centralized configuration across teams ([#6378](https://github.com/RooCodeInc/Roo-Code/pull/6378)) +* **Extension Title Update**: Removed "(prev Roo Cline)" from the extension title across all languages ([#6426](https://github.com/RooCodeInc/Roo-Code/pull/6426)) +* **Translation Improvements**: Updated auto-translate prompt and added translation check action ([#6430](https://github.com/RooCodeInc/Roo-Code/pull/6430), [#6393](https://github.com/RooCodeInc/Roo-Code/pull/6393)) +* **Mode Configuration**: Updated PR reviewer rules and mode configuration ([#6391](https://github.com/RooCodeInc/Roo-Code/pull/6391), [#6428](https://github.com/RooCodeInc/Roo-Code/pull/6428)) +* **Navigator Global Error**: Resolved errors by updating mammoth and bluebird dependencies ([#6363](https://github.com/RooCodeInc/Roo-Code/pull/6363)) +* **Nightly Build Fixes**: Resolved marketplace freezing issues with separate changelog ([#6449](https://github.com/RooCodeInc/Roo-Code/pull/6449)) +* **Cloud Provider Profile Sync**: Added support for syncing provider profiles from the cloud, enabling automatic synchronization across devices and team collaboration ([#6540](https://github.com/RooCodeInc/Roo-Code/pull/6540)) + +### Documentation Updates + +* **ask_followup_question Tool**: Simplified the prompt guidance for clearer authoring, making it faster to create effective follow-up questions ([#7191](https://github.com/RooCodeInc/Roo-Code/pull/7191)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.0.mdx b/docs/update-notes/v3.26.0.mdx new file mode 100644 index 00000000..66142485 --- /dev/null +++ b/docs/update-notes/v3.26.0.mdx @@ -0,0 +1,81 @@ +--- +description: Roo Code v3.26.0 introduces Grok Code Fast, built-in /init command, and Qwen Code CLI API support. +keywords: + - roo code 3.26.0 + - grok code fast + - init command + - qwen code cli +image: /img/v3.26.0/v3.26.0.png +--- + +# Roo Code 3.26.0 Release Notes (2025-08-26) + +This release introduces Grok Code Fast (formerly Sonic), a built-in /init command, and Qwen Code CLI API support. + +Roo Code v3.26.0 Release +## Grok Code Fast +As you may have already figured out, our stealth model Sonic has officially been uncloaked! ([#7426](https://github.com/RooCodeInc/Roo-Code/pull/7426)) + +From xAI, this model is optimized for coding tasks and already beloved by the community in Code Mode for its: +- **Sharp reasoning** capabilities +- **Plan execution at scale** +- **Code suggestions with UI taste and intuition** + +If you've already been enjoying Sonic in Roo Code Cloud, you'll be transitioned to Grok Code Fast. The model `xai/grok-code-fast-1` is also available under the [xAI Provider](/providers/xai) and is not free (for when the free period ends on Aug 28th, 2025). + +A massive thank-you to our partners at xAI and to all of you — over 100B tokens (and counting!) ran through Sonic during stealth! Your incredible adoption and helpful feedback shaped Grok Code Fast into the powerful model it is today. + +**Important:** Grok Code Fast remains **FREE** when accessed through the [Roo Code Cloud provider](/providers/roo-code-cloud) during the promotional period. Using it directly through the xAI provider will incur standard charges once pricing is established. + +> **📚 Documentation**: See [Roo Code Cloud Provider](/providers/roo-code-cloud) for free access or [xAI Provider](/providers/xai) for direct configuration. + +## Built-in /init Command + +We've added a new /init slash command for project onboarding ([#7381](https://github.com/RooCodeInc/Roo-Code/pull/7381), [#7400](https://github.com/RooCodeInc/Roo-Code/pull/7400)): + +- **Automatic Project Analysis**: Analyzes your entire codebase and creates comprehensive AGENTS.md files +- **AI Assistant Optimization**: Generates documentation that enables AI assistants to be immediately productive in your codebase +- **Mode-Specific Guidance**: Creates tailored documentation for different Roo Code modes (code, debug, architect, etc.) + +The /init command helps LLMs understand your project's unique patterns and conventions by documenting project-specific information that isn't obvious from the code structure alone. + +> 📚 Documentation: See [Slash Commands - The init command](/features/slash-commands#the-init-command) for details. + +## Qwen Code CLI API Support + +We've integrated with the Qwen Code CLI tool, allowing Roo Code to leverage its free access tier for Alibaba's Qwen3 Coder models ([#7380](https://github.com/RooCodeInc/Roo-Code/pull/7380)): + +- **Free Inference**: Piggybacks off the Qwen Code CLI's generous free tier (2,000 requests/day and 60 requests/minute with no token limits) via OAuth, available during a promotional period. +- **1M Context Windows**: Handle entire codebases in a single conversation. +- **Seamless Setup**: Works automatically if you've already authenticated the Qwen Code CLI tool. + +This integration provides free access to the Qwen3 Coder models by using the local authentication from the Qwen Code CLI. + +> **📚 Documentation**: See [Qwen Code CLI Provider](/providers/qwen-code) for setup and configuration. + +## Provider Updates + +* **DeepSeek V3.1 on Fireworks**: Added support for DeepSeek V3.1 model in the Fireworks AI provider (thanks dmarkey!) ([#7375](https://github.com/RooCodeInc/Roo-Code/pull/7375)) +* **Provider Visibility**: Static providers with no models are now hidden from the provider list for a cleaner interface ([#7392](https://github.com/RooCodeInc/Roo-Code/pull/7392)) + +## QOL Improvements + +* **Auto-Approve Toggle UI**: The auto-approve toggle now stays at the bottom when expanded, reducing mouse movements (thanks elianiva, kyle-apex!) ([#7318](https://github.com/RooCodeInc/Roo-Code/pull/7318)) +* **OpenRouter Cache Pricing**: Cache read and write prices are now displayed for OpenRouter models (thanks chrarnoldus!) ([#7176](https://github.com/RooCodeInc/Roo-Code/pull/7176)) +* **Protected Workspace Files**: VS Code workspace configuration files (*.code-workspace) are now protected from accidental modification (thanks thelicato!) ([#7403](https://github.com/RooCodeInc/Roo-Code/pull/7403)) + +## Bug Fixes + +* **Security - Symlink Handling**: Fixed security vulnerability where symlinks could bypass rooignore patterns ([#7405](https://github.com/RooCodeInc/Roo-Code/pull/7405)) +* **Security - Default Commands**: Removed potentially unsafe commands (`npm test`, `npm install`, `tsc`) from default allowed list (thanks thelicato, SGudbrandsson!) ([#7404](https://github.com/RooCodeInc/Roo-Code/pull/7404)) +* **Command Validation**: Fixed handling of substitution patterns in command validation ([#7390](https://github.com/RooCodeInc/Roo-Code/pull/7390)) +* **Follow-up Input Preservation**: Fixed issue where user input wasn't preserved when selecting follow-up choices ([#7394](https://github.com/RooCodeInc/Roo-Code/pull/7394)) +* **Mistral Thinking Content**: Fixed validation errors when using Mistral models that send thinking content (thanks Biotrioo!) ([#7106](https://github.com/RooCodeInc/Roo-Code/pull/7106)) +* **Requesty Model Listing**: Fixed model listing for Requesty provider when using custom base URLs (thanks dtrugman!) ([#7378](https://github.com/RooCodeInc/Roo-Code/pull/7378)) +* **Todo List Setting**: Fixed newTaskRequireTodos setting to properly enforce todo list requirements ([#7363](https://github.com/RooCodeInc/Roo-Code/pull/7363)) + +## Misc Improvements + +* **Issue Fixer Mode**: Added missing todos parameter in new_task tool usage ([#7391](https://github.com/RooCodeInc/Roo-Code/pull/7391)) +* **Privacy Policy Update**: Updated privacy policy to clarify proxy mode data handling (thanks jdilla1277!) ([#7255](https://github.com/RooCodeInc/Roo-Code/pull/7255)) +* **Dependencies**: Updated drizzle-kit to v0.31.4 ([#5453](https://github.com/RooCodeInc/Roo-Code/pull/5453)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.1.mdx b/docs/update-notes/v3.26.1.mdx new file mode 100644 index 00000000..cac8e8e5 --- /dev/null +++ b/docs/update-notes/v3.26.1.mdx @@ -0,0 +1,34 @@ +--- +description: This release adds comprehensive Vercel AI Gateway support as a full provider with embeddings integration, along with cloud agent remote control improvements and UI consistency enhancements. +keywords: + - roo code v3.26.1 + - vercel ai gateway + - vercel provider + - vercel embeddings + - cloud remote control + - ui improvements +image: /img/v3.26.1/v3.26.1.png +--- + +# Roo Code v3.26.1 Release Notes (2025-08-27) + +This release adds comprehensive Vercel AI Gateway support as a full provider with embeddings integration, improves cloud agent remote control, and enhances UI consistency. + +Roo Code v3.26.1 Release +## Vercel AI Gateway Provider + +We've added Vercel AI Gateway as a complete provider integration (thanks joshualipman123!) ([#7396](https://github.com/RooCodeInc/Roo-Code/pull/7396), [#7433](https://github.com/RooCodeInc/Roo-Code/pull/7433)): + +- **Full Provider Support**: Use Vercel AI Gateway as a comprehensive AI model provider alongside existing options +- **Model Access**: Access Vercel's wide range of AI models through their optimized gateway infrastructure +- **Embeddings Support**: Includes built-in support for Vercel AI Gateway embeddings ([#7445](https://github.com/RooCodeInc/Roo-Code/pull/7445)) + +> **📚 Documentation**: See [Vercel AI Gateway](/providers/vercel-ai-gateway) for detailed setup instructions. + +## QOL Improvements + +* **Cleaner Model Display**: Removed dot separator in API configuration dropdown for cleaner appearance ([#7461](https://github.com/RooCodeInc/Roo-Code/pull/7461)) +* **Better Tooltips**: Updated tooltip styling to match VSCode native shadows for improved visual consistency ([#7457](https://github.com/RooCodeInc/Roo-Code/pull/7457)) +* **Model ID Visibility**: API configuration dropdown now shows model IDs alongside profile names for easier identification ([#7423](https://github.com/RooCodeInc/Roo-Code/pull/7423)) +* **Chat UI Cleanup**: Improved consistency in chat input controls and fixed tooltip behavior ([#7436](https://github.com/RooCodeInc/Roo-Code/pull/7436)) +* **Clearer Task Headers**: Removed duplicate cache display in task headers to eliminate confusion ([#7443](https://github.com/RooCodeInc/Roo-Code/pull/7443)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.2.mdx b/docs/update-notes/v3.26.2.mdx new file mode 100644 index 00000000..cce187c3 --- /dev/null +++ b/docs/update-notes/v3.26.2.mdx @@ -0,0 +1,70 @@ +--- +description: Adds built-in image generation (OpenRouter), a free Gemini preview option, GPT-5 usage without BYOK rate limit blockers, plus QOL improvements and fixes. +keywords: + - roo code 3.26.2 + - release notes + - image generation + - openrouter + - gemini 2.5 flash image preview + - free image generation + - prompt to image + - image viewer + - approvals flow + - gpt-5 + - rate limits + - byok + - openai provider + - model picker + - input modalities + - output modalities + - provider updates + - qol improvements + - bug fixes + - release automation + - taskspawned event +image: /img/v3.26.2/v3.26.2.png +--- + +# Roo Code 3.26.2 Release Notes (2025-08-28) + +This release adds integrated image generation, a free Gemini image preview option, improved GPT-5 availability without BYOK rate limit blockers, and multiple quality-of-life improvements and fixes. + +Roo Code v3.26.2 Release +## Image Generation (OpenRouter) — Free option: Gemini 2.5 Flash Image Preview + +Generate images from natural‑language prompts directly inside Roo Code using OpenRouter’s image generation models. Configure your OpenRouter API key, pick a supported model, and preview results in the built‑in Image Viewer. See [Image Generation](/features/image-generation) and [OpenRouter Provider](/providers/openrouter) for setup and model selection. + +- **Free option available: Gemini 2.5 Flash Image Preview** — try image generation without paid credits for faster onboarding and quick experiments +- Prompt‑to‑image workflow inside the editor with approvals flow (supports auto‑approval when write permissions are granted) +- Image Viewer with zoom, copy, and save for quick reuse in docs and prototypes + +PRs: [#7474](https://github.com/RooCodeInc/Roo-Code/pull/7474), [#7492](https://github.com/RooCodeInc/Roo-Code/pull/7492), [#7493](https://github.com/RooCodeInc/Roo-Code/pull/7493) + + +## GPT-5 usage without BYOK rate limit blockers + +If you’re being rate limited with GPT‑5, you can now use GPT‑5 models without bringing your own key. This improves availability and reduces interruptions during development. See [OpenAI Provider](/providers/openai) for model support and guidance. + + +## QOL Improvements + +- Improved padding and click targets in the image model picker for easier selection and fewer misclicks. (#[7494](https://github.com/RooCodeInc/Roo-Code/pull/7494)) +- Generic default filename for saved images (e.g., `img_`) instead of `mermaid_diagram_`. (#[7479](https://github.com/RooCodeInc/Roo-Code/pull/7479)) + +## Bug Fixes + +- ImageGenerationSettings no longer shows a dirty state on first open; the save button only enables after an actual change. (#[7495](https://github.com/RooCodeInc/Roo-Code/pull/7495)) +- GPT‑5 reliability improvements: + - Manual condense preserves conversation continuity by correctly handling `previous_response_id` on the next request + - Image inputs work reliably with structured text+image payloads + - Temperature control is shown only for models that support it + - Fewer GPT‑5–specific errors with updated provider definitions and SDK (thanks nlbuescher!) + + (#[7067](https://github.com/RooCodeInc/Roo-Code/pull/7067)) + + +## Misc Improvements + +- Release automation: version bumps, changelog updates, and auto-publishing on merge for a faster, more reliable release process. (#[7490](https://github.com/RooCodeInc/Roo-Code/pull/7490)) +- New TaskSpawned developer event so integrations can detect when a subtask is created and capture its ID for chaining or monitoring. (#[7465](https://github.com/RooCodeInc/Roo-Code/pull/7465)) +- Roo Code Cloud SDK bumped to 0.25.0. (#[7475](https://github.com/RooCodeInc/Roo-Code/pull/7475)) diff --git a/docs/update-notes/v3.26.3.mdx b/docs/update-notes/v3.26.3.mdx new file mode 100644 index 00000000..9027015e --- /dev/null +++ b/docs/update-notes/v3.26.3.mdx @@ -0,0 +1,34 @@ +--- +description: This release adds image editing capabilities to the image generation tool and improves developer experience. +keywords: + - roo code 3.26.3 + - image editing + - image generation +image: /img/v3.26.3/v3.26.3.png +--- + +# Roo Code 3.26.3 Release Notes (2025-08-29) + +This release adds image editing capabilities to the image generation tool and improves developer experience. + +Roo Code v3.26.3 Release +## Image Editing with Input Images + +We've enhanced the image generation tool with the ability to edit and transform existing images ([#7525](https://github.com/RooCodeInc/Roo-Code/pull/7525)): + +- **Transform Existing Images**: Apply artistic styles, convert photos to paintings, or create variations of existing artwork +- **Style Transfer**: Convert images into watercolor, oil painting, sketch, or other artistic styles +- **Image Enhancement**: Upscale and enhance existing images to higher resolution while maintaining composition +- **Creative Editing**: Use text prompts to modify specific aspects of an image while preserving the rest + +The tool now accepts an optional `image` parameter for transforming existing images in your workspace. Supported input formats include PNG, JPG, JPEG, GIF, and WEBP. + +> **📚 Documentation**: See [Image Generation - Editing Existing Images](/features/image-generation#editing-existing-images) for detailed usage and transformation examples. + +## Bug Fixes + +* **Image Generation Settings**: Fixed issue where the saved API key would clear when switching modes ([#7536](https://github.com/RooCodeInc/Roo-Code/pull/7536)) + +## Misc Improvements + +* **Test Debugging**: Console logs now visible in tests when using the --no-silent flag (thanks hassoncs!) ([#7467](https://github.com/RooCodeInc/Roo-Code/pull/7467)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.4.mdx b/docs/update-notes/v3.26.4.mdx new file mode 100644 index 00000000..1cbb5e1e --- /dev/null +++ b/docs/update-notes/v3.26.4.mdx @@ -0,0 +1,33 @@ +--- +description: Memory optimization for image handling and bug fixes. +keywords: + - roo code 3.26.4 + - memory optimization + - ollama turbo +image: /img/v3.26.4/v3.26.4.png +--- + +# Roo Code 3.26.4 Release Notes (2025-09-01) + +This release focuses on memory optimization for image handling and includes several improvements. + +Roo Code v3.26.4 Release +## QOL Improvements + +* **Memory Optimization**: Optimize memory usage for image handling in webview ([#7556](https://github.com/RooCodeInc/Roo-Code/pull/7556)) + +## Bug Fixes + +* **Special Tokens Handling**: Fixed issue where special tokens would break task processing (thanks pwilkin!) ([#7540](https://github.com/RooCodeInc/Roo-Code/pull/7540)) + +## Provider Updates + +* **Ollama Turbo Mode**: Added API key support for Turbo mode (thanks LivioGama!) ([#7425](https://github.com/RooCodeInc/Roo-Code/pull/7425)) + +## UI Updates + +* **Cloud Tab Rename**: Renamed Account tab to Cloud tab for clarity ([#7558](https://github.com/RooCodeInc/Roo-Code/pull/7558)) + +## Misc Improvements + +* **Release Image**: Added kangaroo-themed release image generation ([#7546](https://github.com/RooCodeInc/Roo-Code/pull/7546)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.5.mdx b/docs/update-notes/v3.26.5.mdx new file mode 100644 index 00000000..e08ecd3f --- /dev/null +++ b/docs/update-notes/v3.26.5.mdx @@ -0,0 +1,28 @@ +--- +description: Adds Qwen3 235B Thinking model support, configurable embedding batch size for code indexing, and MCP resource auto-approval. +keywords: + - roo code 3.26.5 + - qwen3 thinking model + - code indexing batch size + - mcp auto-approve +image: /img/v3.26.5/v3.26.5.png +--- + +# Roo Code 3.26.5 Release Notes (2025-09-03) + +This release adds support for the Qwen3 235B Thinking model with a 262K context window, introduces configurable embedding batch sizes for code indexing, and improves MCP resource auto-approval. + +Roo Code v3.26.5 Release +## Provider Updates + +* **Qwen3 235B Thinking Model**: Added support for Qwen3-235B-A22B-Thinking-2507 model with an impressive 262K context window, enabling processing of extremely long documents and large codebases in a single request through the Chutes provider (thanks mohammad154, apple-techie!) ([#7578](https://github.com/RooCodeInc/Roo-Code/pull/7578)) + +## QOL Improvements + +* **MCP Resource Auto-Approval**: MCP resource access requests are now automatically approved when auto-approve is enabled, eliminating manual approval steps and enabling smoother automation workflows (thanks m-ibm!) ([#7606](https://github.com/RooCodeInc/Roo-Code/pull/7606)) +* **Message Queue Performance**: Improved message queueing reliability and performance by moving the queue management to the extension host, making the interface more stable ([#7604](https://github.com/RooCodeInc/Roo-Code/pull/7604)) + +## Bug Fixes + +* **Configurable Embedding Batch Size**: Fixed an issue where users with API providers having stricter batch limits couldn't use code indexing. You can now configure the embedding batch size (1-2048, default: 400) to match your provider's limits (thanks BenLampson!) ([#7464](https://github.com/RooCodeInc/Roo-Code/pull/7464)) +* **OpenAI-Native Cache Reporting**: Fixed cache usage statistics and cost calculations when using the OpenAI-Native provider with cached content ([#7602](https://github.com/RooCodeInc/Roo-Code/pull/7602)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.6.mdx b/docs/update-notes/v3.26.6.mdx new file mode 100644 index 00000000..05bc2f4f --- /dev/null +++ b/docs/update-notes/v3.26.6.mdx @@ -0,0 +1,38 @@ +--- +description: Adds the run_slash_command tool for AI-driven slash command execution, fixes tool approval errors, and includes Kimi K2 Turbo model support. +keywords: + - roo code 3.26.6 + - run_slash_command tool + - kimi k2 turbo + - bug fixes +image: /img/v3.26.6/v3.26.6.png +--- + +# Roo Code 3.26.6 Release Notes (2025-09-03) + +This release adds the ability for AI to execute slash commands programmatically, fixes tool approval issues, and includes support for the high-speed Kimi K2 Turbo model. + +Roo Code v3.26.6 Release +## New run_slash_command Tool + +We've added a powerful new tool that allows the AI to execute slash commands as part of its workflow ([#7473](https://github.com/RooCodeInc/Roo-Code/pull/7473)): + +- **Automated Command Execution**: The AI can now run commands like `/init`, `/review`, and other slash commands automatically +- **Seamless Integration**: Existing slash commands work directly within AI workflows without manual intervention +- **Enhanced Automation**: Combine multiple slash commands to create complex automated sequences + +This opens up new possibilities for task automation, letting the AI leverage the full power of Roo Code's slash command ecosystem programmatically. + +> **📚 Documentation**: See the [run_slash_command tool documentation](/advanced-usage/available-tools/run-slash-command) for usage examples and integration patterns. + +## QOL Improvements + +* **Settings Scroll Position**: Settings tabs now remember their individual scroll positions when switching between them (thanks DC-Dancao!) ([#7587](https://github.com/RooCodeInc/Roo-Code/pull/7587)) + +## Bug Fixes + +* **Tool Approval Fix**: Fixed an error that occurred when using insert_content and search_and_replace tools on write-protected files - these tools now handle file protection correctly ([#7649](https://github.com/RooCodeInc/Roo-Code/pull/7649)) + +## Provider Updates + +* **Kimi K2 Turbo Model**: Added support for the high-speed Kimi K2 Turbo model with 60-100 tokens/sec processing and a 131K token context window (thanks wangxiaolong100!) ([#7593](https://github.com/RooCodeInc/Roo-Code/pull/7593)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.7.mdx b/docs/update-notes/v3.26.7.mdx new file mode 100644 index 00000000..ae84690e --- /dev/null +++ b/docs/update-notes/v3.26.7.mdx @@ -0,0 +1,64 @@ +--- +description: Enhanced Kimi K2 models with 256K+ context windows, OpenAI service tiers for flexible pricing, and DeepInfra as a new provider with 100+ models. +keywords: + - roo code 3.26.7 + - kimi k2 models + - openai service tiers + - deepinfra provider + - bug fixes +image: /img/v3.26.7/v3.26.7.png +--- + +# Roo Code 3.26.7 Release Notes (2025-09-05) + +This release brings enhanced Kimi K2 models with massive context windows, OpenAI service tier selection, and DeepInfra as a new provider offering 100+ models. + +Roo Code v3.26.7 Release +## Kimi K2-0905: Moonshot's Latest Open Source Model is Live in Roo Code + +We've upgraded to the latest Kimi K2-0905 models across multiple providers (thanks CellenLee!) ([#7663](https://github.com/RooCodeInc/Roo-Code/pull/7663), [#7693](https://github.com/RooCodeInc/Roo-Code/pull/7693)): + +K2-0905 comes with three major upgrades: +- **256K Context Window**: Massive context supporting up to 256K-262K tokens, doubling the previous limit for processing much larger documents and conversations +- **Improved Tool Calling**: Enhanced function calling and tool use capabilities for better agentic workflows +- **Enhanced Front-end Development**: Superior HTML, CSS, and JavaScript generation with modern framework support + +Available through Groq, Moonshot, and Fireworks providers. These models excel at handling large codebases, long conversations, and complex multi-file operations. + +## OpenAI Service Tiers + +We've added support for OpenAI's new Responses API service tiers ([#7646](https://github.com/RooCodeInc/Roo-Code/pull/7646)): + +- **Standard Tier**: Default tier with regular pricing +- **Flex Tier**: 50% discount with slightly longer response times for non-urgent tasks +- **Priority Tier**: Faster response times for time-critical operations + +Select your preferred tier directly in the UI based on your needs and budget. This gives you more control over costs while maintaining access to OpenAI's powerful models. + +> **📚 Documentation**: See [OpenAI Provider Guide](/providers/openai) for detailed tier comparison and pricing. + +## DeepInfra Provider + +DeepInfra is now available as a model provider (thanks Thachnh!) ([#7677](https://github.com/RooCodeInc/Roo-Code/pull/7677)): + +- **100+ Models**: Access to a vast selection of open-source and frontier models +- **Competitive Pricing**: Very cost-effective rates compared to other providers +- **Automatic Prompt Caching**: Built-in prompt caching for supported models like Qwen3 Coder +- **Fast Inference**: Optimized infrastructure for quick response times + +DeepInfra is an excellent choice for developers looking for variety and value in their AI model selection. + +> **📚 Documentation**: See [DeepInfra Provider Setup](/providers/deepinfra) to get started. + +## QOL Improvements + +* **Shell Security**: Added shell executable allowlist validation with platform-specific fallbacks for improved command execution safety ([#7681](https://github.com/RooCodeInc/Roo-Code/pull/7681)) + +## Bug Fixes + +* **MCP Tool Validation**: Roo now validates MCP tool existence before execution and shows helpful error messages with available tools (thanks R-omk!) ([#7632](https://github.com/RooCodeInc/Roo-Code/pull/7632)) +* **OpenAI API Key Errors**: Clear error messages now display when API keys contain invalid characters instead of cryptic ByteString errors (thanks A0nameless0man!) ([#7586](https://github.com/RooCodeInc/Roo-Code/pull/7586)) +* **Follow-up Questions**: Fixed countdown timer incorrectly reappearing in task history for already answered follow-up questions (thanks XuyiK!) ([#7686](https://github.com/RooCodeInc/Roo-Code/pull/7686)) +* **Moonshot Token Limit**: Resolved issue where Moonshot models were incorrectly limited to 1024 tokens, now properly respects configured limits (thanks wangxiaolong100, greyishsong!) ([#7673](https://github.com/RooCodeInc/Roo-Code/pull/7673)) +* **Zsh Command Safety**: Improved handling of zsh process substitution and glob qualifiers to prevent auto-execution of potentially dangerous commands ([#7658](https://github.com/RooCodeInc/Roo-Code/pull/7658), [#7667](https://github.com/RooCodeInc/Roo-Code/pull/7667)) +* **Traditional Chinese Localization**: Fixed typo in zh-TW locale text (thanks PeterDaveHello!) ([#7672](https://github.com/RooCodeInc/Roo-Code/pull/7672)) \ No newline at end of file diff --git a/docs/update-notes/v3.26.mdx b/docs/update-notes/v3.26.mdx new file mode 100644 index 00000000..4ad715fe --- /dev/null +++ b/docs/update-notes/v3.26.mdx @@ -0,0 +1,187 @@ +--- +description: Roo Code v3.26 series - Grok Code Fast, built-in /init command, Qwen Code CLI API support, Vercel AI Gateway integration, and image generation enhancements. +keywords: + - roo code 3.26 + - grok code fast + - init command + - qwen code cli + - vercel ai gateway + - image generation +image: /img/v3.26.0/v3.26.0.png +--- + +# Roo Code 3.26 Release Notes + +This document combines all releases in the v3.26 series. + +Roo Code v3.26 Release +### Grok Code Fast + +As you may have already figured out, our stealth model Sonic has officially been uncloaked! ([#7426](https://github.com/RooCodeInc/Roo-Code/pull/7426)) + +From xAI, this model is optimized for coding tasks and already beloved by the community in Code Mode for its: +- **Sharp reasoning** capabilities +- **Plan execution at scale** +- **Code suggestions with UI taste and intuition** + +If you've already been enjoying Sonic in Roo Code Cloud, you'll be transitioned to Grok Code Fast. The model `xai/grok-code-fast-1` is also available under the [xAI Provider](/providers/xai) and is not free (for when the free period ends on Aug 28th, 2025). + +A massive thank-you to our partners at xAI and to all of you — over 100B tokens (and counting!) ran through Sonic during stealth! Your incredible adoption and helpful feedback shaped Grok Code Fast into the powerful model it is today. + +**Important:** Grok Code Fast remains **FREE** when accessed through the [Roo Code Cloud provider](/providers/roo-code-cloud) during the promotional period. Using it directly through the xAI provider will incur standard charges once pricing is established. + +> **📚 Documentation**: See [Roo Code Cloud Provider](/providers/roo-code-cloud) for free access or [xAI Provider](/providers/xai) for direct configuration. + +### Built-in /init Command + +We've added a new /init slash command for project onboarding ([#7381](https://github.com/RooCodeInc/Roo-Code/pull/7381), [#7400](https://github.com/RooCodeInc/Roo-Code/pull/7400)): + +- **Automatic Project Analysis**: Analyzes your entire codebase and creates comprehensive AGENTS.md files +- **AI Assistant Optimization**: Generates documentation that enables AI assistants to be immediately productive in your codebase +- **Mode-Specific Guidance**: Creates tailored documentation for different Roo Code modes (code, debug, architect, etc.) + +The /init command helps LLMs understand your project's unique patterns and conventions by documenting project-specific information that isn't obvious from the code structure alone. + +> 📚 Documentation: See [Slash Commands - The init command](/features/slash-commands#the-init-command) for details. + +### New run_slash_command Tool + +We've added a powerful new tool that allows the AI to execute slash commands as part of its workflow ([#7473](https://github.com/RooCodeInc/Roo-Code/pull/7473)): + +- **Automated Command Execution**: The AI can now run commands like `/init`, `/review`, and other slash commands automatically +- **Seamless Integration**: Existing slash commands work directly within AI workflows without manual intervention +- **Enhanced Automation**: Combine multiple slash commands to create complex automated sequences + +This opens up new possibilities for task automation, letting the AI leverage the full power of Roo Code's slash command ecosystem programmatically. + +> **📚 Documentation**: See the [run_slash_command tool documentation](/advanced-usage/available-tools/run-slash-command) for usage examples and integration patterns. + +### Qwen Code CLI API Support + +We've integrated with the Qwen Code CLI tool, allowing Roo Code to leverage its free access tier for Alibaba's Qwen3 Coder models ([#7380](https://github.com/RooCodeInc/Roo-Code/pull/7380)): + +- **Free Inference**: Piggybacks off the Qwen Code CLI's generous free tier (2,000 requests/day and 60 requests/minute with no token limits) via OAuth, available during a promotional period. +- **1M Context Windows**: Handle entire codebases in a single conversation. +- **Seamless Setup**: Works automatically if you've already authenticated the Qwen Code CLI tool. + +This integration provides free access to the Qwen3 Coder models by using the local authentication from the Qwen Code CLI. + +> **📚 Documentation**: See [Qwen Code CLI Provider](/providers/qwen-code) for setup and configuration. + +### Vercel AI Gateway Provider + +We've added Vercel AI Gateway as a complete provider integration (thanks joshualipman123!) ([#7396](https://github.com/RooCodeInc/Roo-Code/pull/7396), [#7433](https://github.com/RooCodeInc/Roo-Code/pull/7433)): + +- **Full Provider Support**: Use Vercel AI Gateway as a comprehensive AI model provider alongside existing options +- **Model Access**: Access Vercel's wide range of AI models through their optimized gateway infrastructure +- **Embeddings Support**: Includes built-in support for Vercel AI Gateway embeddings ([#7445](https://github.com/RooCodeInc/Roo-Code/pull/7445)) + +> **📚 Documentation**: See [Vercel AI Gateway](/providers/vercel-ai-gateway) for detailed setup instructions. + +### Image Generation (OpenRouter) — Free option: Gemini 2.5 Flash Image Preview + +Generate images from natural‑language prompts directly inside Roo Code using OpenRouter's image generation models. Configure your OpenRouter API key, pick a supported model, and preview results in the built‑in Image Viewer. See [Image Generation](/features/image-generation) and [OpenRouter Provider](/providers/openrouter) for setup and model selection. + +- **Free option available: Gemini 2.5 Flash Image Preview** — try image generation without paid credits for faster onboarding and quick experiments +- Prompt‑to‑image workflow inside the editor with approvals flow (supports auto‑approval when write permissions are granted) +- Image Viewer with zoom, copy, and save for quick reuse in docs and prototypes +- **NEW in v3.26.3: Image Editing** — Transform and edit existing images in your workspace ([#7525](https://github.com/RooCodeInc/Roo-Code/pull/7525)): + - Apply artistic styles like watercolor, oil painting, or sketch + - Upscale and enhance images to higher resolution + - Modify specific aspects while preserving the rest + - Supports PNG, JPG, JPEG, GIF, and WEBP input formats + +PRs: [#7474](https://github.com/RooCodeInc/Roo-Code/pull/7474), [#7492](https://github.com/RooCodeInc/Roo-Code/pull/7492), [#7493](https://github.com/RooCodeInc/Roo-Code/pull/7493), [#7525](https://github.com/RooCodeInc/Roo-Code/pull/7525)) + +> **📚 Documentation**: See [Image Generation - Editing Existing Images](/features/image-generation#editing-existing-images) for transformation examples. + +### Kimi K2-0905: Moonshot's Latest Open Source Model is Live in Roo Code + +We've upgraded to the latest Kimi K2-0905 models across multiple providers (thanks CellenLee!) ([#7663](https://github.com/RooCodeInc/Roo-Code/pull/7663), [#7693](https://github.com/RooCodeInc/Roo-Code/pull/7693)): + +K2-0905 comes with three major upgrades: +- **256K Context Window**: Massive context supporting up to 256K-262K tokens, doubling the previous limit for processing much larger documents and conversations +- **Improved Tool Calling**: Enhanced function calling and tool use capabilities for better agentic workflows +- **Enhanced Front-end Development**: Superior HTML, CSS, and JavaScript generation with modern framework support + +Available through Groq, Moonshot, and Fireworks providers. These models excel at handling large codebases, long conversations, and complex multi-file operations. + +### OpenAI Service Tiers + +We've added support for OpenAI's new Responses API service tiers ([#7646](https://github.com/RooCodeInc/Roo-Code/pull/7646)): + +- **Standard Tier**: Default tier with regular pricing +- **Flex Tier**: 50% discount with slightly longer response times for non-urgent tasks +- **Priority Tier**: Faster response times for time-critical operations + +Select your preferred tier directly in the UI based on your needs and budget. This gives you more control over costs while maintaining access to OpenAI's powerful models. + +> **📚 Documentation**: See [OpenAI Provider Guide](/providers/openai) for detailed tier comparison and pricing. + +### Provider Updates + +* **DeepInfra Provider**: DeepInfra is now available as a model provider with 100+ open-source and frontier models, competitive pricing, and automatic prompt caching for supported models like Qwen3 Coder (thanks Thachnh!) ([#7677](https://github.com/RooCodeInc/Roo-Code/pull/7677)) +* **Kimi K2 Turbo Model**: Added support for the high-speed Kimi K2 Turbo model with 60-100 tokens/sec processing and a 131K token context window (thanks wangxiaolong100!) ([#7593](https://github.com/RooCodeInc/Roo-Code/pull/7593)) +* **Qwen3 235B Thinking Model**: Added support for Qwen3-235B-A22B-Thinking-2507 model with an impressive 262K context window, enabling processing of extremely long documents and large codebases in a single request through the Chutes provider (thanks mohammad154, apple-techie!) ([#7578](https://github.com/RooCodeInc/Roo-Code/pull/7578)) +* **Ollama Turbo Mode**: Added API key support for Turbo mode, enabling faster model execution with datacenter-grade hardware (thanks LivioGama!) ([#7425](https://github.com/RooCodeInc/Roo-Code/pull/7425)) +* **DeepSeek V3.1 on Fireworks**: Added support for DeepSeek V3.1 model in the Fireworks AI provider (thanks dmarkey!) ([#7375](https://github.com/RooCodeInc/Roo-Code/pull/7375)) +* **Provider Visibility**: Static providers with no models are now hidden from the provider list for a cleaner interface ([#7392](https://github.com/RooCodeInc/Roo-Code/pull/7392)) + +### QOL Improvements + +* **Shell Security**: Added shell executable allowlist validation with platform-specific fallbacks for improved command execution safety ([#7681](https://github.com/RooCodeInc/Roo-Code/pull/7681)) +* **Settings Scroll Position**: Settings tabs now remember their individual scroll positions when switching between them (thanks DC-Dancao!) ([#7587](https://github.com/RooCodeInc/Roo-Code/pull/7587)) +* **MCP Resource Auto-Approval**: MCP resource access requests are now automatically approved when auto-approve is enabled, eliminating manual approval steps and enabling smoother automation workflows (thanks m-ibm!) ([#7606](https://github.com/RooCodeInc/Roo-Code/pull/7606)) +* **Message Queue Performance**: Improved message queueing reliability and performance by moving the queue management to the extension host, making the interface more stable ([#7604](https://github.com/RooCodeInc/Roo-Code/pull/7604)) +* **Memory Optimization**: Optimized memory usage for image handling in webview, achieving ~75% reduction in memory consumption ([#7556](https://github.com/RooCodeInc/Roo-Code/pull/7556)) +* **Auto-Approve Toggle UI**: The auto-approve toggle now stays at the bottom when expanded, reducing mouse movements (thanks elianiva, kyle-apex!) ([#7318](https://github.com/RooCodeInc/Roo-Code/pull/7318)) +* **OpenRouter Cache Pricing**: Cache read and write prices are now displayed for OpenRouter models (thanks chrarnoldus!) ([#7176](https://github.com/RooCodeInc/Roo-Code/pull/7176)) +* **Protected Workspace Files**: VS Code workspace configuration files (*.code-workspace) are now protected from accidental modification (thanks thelicato!) ([#7403](https://github.com/RooCodeInc/Roo-Code/pull/7403)) +* **Cleaner Model Display**: Removed dot separator in API configuration dropdown for cleaner appearance ([#7461](https://github.com/RooCodeInc/Roo-Code/pull/7461)) +* **Better Tooltips**: Updated tooltip styling to match VSCode native shadows for improved visual consistency ([#7457](https://github.com/RooCodeInc/Roo-Code/pull/7457)) +* **Model ID Visibility**: API configuration dropdown now shows model IDs alongside profile names for easier identification ([#7423](https://github.com/RooCodeInc/Roo-Code/pull/7423)) +* **Chat UI Cleanup**: Improved consistency in chat input controls and fixed tooltip behavior ([#7436](https://github.com/RooCodeInc/Roo-Code/pull/7436)) +* **Clearer Task Headers**: Removed duplicate cache display in task headers to eliminate confusion ([#7443](https://github.com/RooCodeInc/Roo-Code/pull/7443)) +* **Cloud Tab Rename**: Renamed Account tab to Cloud tab for clarity ([#7558](https://github.com/RooCodeInc/Roo-Code/pull/7558)) +* Improved padding and click targets in the image model picker for easier selection and fewer misclicks ([#7494](https://github.com/RooCodeInc/Roo-Code/pull/7494)) +* Generic default filename for saved images (e.g., `img_`) instead of `mermaid_diagram_` ([#7479](https://github.com/RooCodeInc/Roo-Code/pull/7479)) + +### Bug Fixes + +* **MCP Tool Validation**: Roo now validates MCP tool existence before execution and shows helpful error messages with available tools (thanks R-omk!) ([#7632](https://github.com/RooCodeInc/Roo-Code/pull/7632)) +* **OpenAI API Key Errors**: Clear error messages now display when API keys contain invalid characters instead of cryptic ByteString errors (thanks A0nameless0man!) ([#7586](https://github.com/RooCodeInc/Roo-Code/pull/7586)) +* **Follow-up Questions**: Fixed countdown timer incorrectly reappearing in task history for already answered follow-up questions (thanks XuyiK!) ([#7686](https://github.com/RooCodeInc/Roo-Code/pull/7686)) +* **Moonshot Token Limit**: Resolved issue where Moonshot models were incorrectly limited to 1024 tokens, now properly respects configured limits (thanks wangxiaolong100, greyishsong!) ([#7673](https://github.com/RooCodeInc/Roo-Code/pull/7673)) +* **Zsh Command Safety**: Improved handling of zsh process substitution and glob qualifiers to prevent auto-execution of potentially dangerous commands ([#7658](https://github.com/RooCodeInc/Roo-Code/pull/7658), [#7667](https://github.com/RooCodeInc/Roo-Code/pull/7667)) +* **Traditional Chinese Localization**: Fixed typo in zh-TW locale text (thanks PeterDaveHello!) ([#7672](https://github.com/RooCodeInc/Roo-Code/pull/7672)) +* **Tool Approval Fix**: Fixed an error that occurred when using insert_content and search_and_replace tools on write-protected files - these tools now handle file protection correctly ([#7649](https://github.com/RooCodeInc/Roo-Code/pull/7649)) +* **Configurable Embedding Batch Size**: Fixed an issue where users with API providers having stricter batch limits couldn't use code indexing. You can now configure the embedding batch size (1-2048, default: 400) to match your provider's limits (thanks BenLampson!) ([#7464](https://github.com/RooCodeInc/Roo-Code/pull/7464)) +* **OpenAI-Native Cache Reporting**: Fixed cache usage statistics and cost calculations when using the OpenAI-Native provider with cached content ([#7602](https://github.com/RooCodeInc/Roo-Code/pull/7602)) +* **Special Tokens Handling**: Fixed issue where special tokens would break task processing (thanks pwilkin!) ([#7540](https://github.com/RooCodeInc/Roo-Code/pull/7540)) +* **Security - Symlink Handling**: Fixed security vulnerability where symlinks could bypass rooignore patterns ([#7405](https://github.com/RooCodeInc/Roo-Code/pull/7405)) +* **Security - Default Commands**: Removed potentially unsafe commands (`npm test`, `npm install`, `tsc`) from default allowed list (thanks thelicato, SGudbrandsson!) ([#7404](https://github.com/RooCodeInc/Roo-Code/pull/7404)) +* **Command Validation**: Fixed handling of substitution patterns in command validation ([#7390](https://github.com/RooCodeInc/Roo-Code/pull/7390)) +* **Follow-up Input Preservation**: Fixed issue where user input wasn't preserved when selecting follow-up choices ([#7394](https://github.com/RooCodeInc/Roo-Code/pull/7394)) +* **Mistral Thinking Content**: Fixed validation errors when using Mistral models that send thinking content (thanks Biotrioo!) ([#7106](https://github.com/RooCodeInc/Roo-Code/pull/7106)) +* **Requesty Model Listing**: Fixed model listing for Requesty provider when using custom base URLs (thanks dtrugman!) ([#7378](https://github.com/RooCodeInc/Roo-Code/pull/7378)) +* **Todo List Setting**: Fixed newTaskRequireTodos setting to properly enforce todo list requirements ([#7363](https://github.com/RooCodeInc/Roo-Code/pull/7363)) +* **Image Generation Settings** (v3.26.3): Fixed issue where the saved API key would clear when switching modes ([#7536](https://github.com/RooCodeInc/Roo-Code/pull/7536)) +* ImageGenerationSettings no longer shows a dirty state on first open; the save button only enables after an actual change ([#7495](https://github.com/RooCodeInc/Roo-Code/pull/7495)) +* GPT‑5 reliability improvements: + - Manual condense preserves conversation continuity by correctly handling `previous_response_id` on the next request + - Image inputs work reliably with structured text+image payloads + - Temperature control is shown only for models that support it + - Fewer GPT‑5–specific errors with updated provider definitions and SDK (thanks nlbuescher!) + + ([#7067](https://github.com/RooCodeInc/Roo-Code/pull/7067)) + +### Misc Improvements + +* **Release Image**: Added kangaroo-themed release image generation ([#7546](https://github.com/RooCodeInc/Roo-Code/pull/7546)) +* **Issue Fixer Mode**: Added missing todos parameter in new_task tool usage ([#7391](https://github.com/RooCodeInc/Roo-Code/pull/7391)) +* **Privacy Policy Update**: Updated privacy policy to clarify proxy mode data handling (thanks jdilla1277!) ([#7255](https://github.com/RooCodeInc/Roo-Code/pull/7255)) +* **Dependencies**: Updated drizzle-kit to v0.31.4 ([#5453](https://github.com/RooCodeInc/Roo-Code/pull/5453)) +* **Test Debugging** (v3.26.3): Console logs now visible in tests when using the --no-silent flag (thanks hassoncs!) ([#7467](https://github.com/RooCodeInc/Roo-Code/pull/7467)) +* Release automation: version bumps, changelog updates, and auto-publishing on merge for a faster, more reliable release process ([#7490](https://github.com/RooCodeInc/Roo-Code/pull/7490)) +* New TaskSpawned developer event so integrations can detect when a subtask is created and capture its ID for chaining or monitoring ([#7465](https://github.com/RooCodeInc/Roo-Code/pull/7465)) +* Roo Code Cloud SDK bumped to 0.25.0 ([#7475](https://github.com/RooCodeInc/Roo-Code/pull/7475)) \ No newline at end of file diff --git a/docs/update-notes/v3.27.0.mdx b/docs/update-notes/v3.27.0.mdx new file mode 100644 index 00000000..8f2a7ae7 --- /dev/null +++ b/docs/update-notes/v3.27.0.mdx @@ -0,0 +1,60 @@ +--- +description: Edit or delete messages with instant rollback checkpoints, Kimi K2-0905 provider update, and stability fixes across indexing, grounding, and multi-root workspaces. +keywords: + - roo code 3.27.0 + - release notes + - edit messages + - delete messages + - checkpoints + - auto checkpoints + - rollback + - chutes provider + - kimi k2-0905 + - 256k context + - provider update + - codebase indexing + - multi-root workspace + - mcp config + - slash commands + - gemini grounding + - citations + - openai responses api + - previous_response_id + - vscode terminal profiles + - ci e2e +image: /img/v3.27.0/v3.27.0.png +--- + +# Roo Code 3.27.0 Release Notes (2025-09-05) + +This release adds message editing and deletion with instant rollback checkpoints, updates the Chutes provider with Kimi K2-0905, and improves reliability across indexing, grounding, and multi-root workspaces. + +Roo Code v3.27.0 Release +## Edit and delete messages with instant rollback checkpoints + +Edit or delete any chat message and quickly recover from mistakes using automatic checkpoints (thanks NaccOll!) ([#7447](https://github.com/RooCodeInc/Roo-Code/pull/7447), [#7713](https://github.com/RooCodeInc/Roo-Code/pull/7713)): + +- Edit or delete past messages to correct prompts without restarting the session. +- Automatic checkpoint on every user message enables instant rollback, even when no file diffs exist. +- Review changes with a Checkpoint Restore dialog before applying them. +- Runs in the background and suppresses extra chat noise. + +> 📚 Documentation: See [Checkpoints](/features/checkpoints) and [The Chat Interface](/basic-usage/the-chat-interface). + +## QOL Improvements + +* Welcome screen readability and spacing improvements for faster scanning (#[7682](https://github.com/RooCodeInc/Roo-Code/pull/7682)) + +## Bug Fixes + +* Fixes an issue where indexing very large projects could hit a stack overflow (thanks StarTrai1!) (#[7712](https://github.com/RooCodeInc/Roo-Code/pull/7712)) +* Fixes an issue where terminal launch sometimes failed when VS Code provided the shell path as an array (thanks Amosvcc!) (#[7697](https://github.com/RooCodeInc/Roo-Code/pull/7697)) +* Fixes cases where MCP and slash-command paths in multi-root workspaces resolved to the wrong folder (now uses the active folder CWD) (thanks NaccOll, kfuglsang!) (#[6904](https://github.com/RooCodeInc/Roo-Code/pull/6904)) +* Fixes an issue where Gemini grounding citations sometimes leaked or duplicated (thanks HahaBill!) (#[7434](https://github.com/RooCodeInc/Roo-Code/pull/7434)) +* Fixes an issue where conversation context could be lost when previous_response_id became invalid (now retries with full history) (#[7714](https://github.com/RooCodeInc/Roo-Code/pull/7714)) +* Fixes a CI issue where e2e runs sometimes timed out while downloading VS Code (#[7583](https://github.com/RooCodeInc/Roo-Code/pull/7583)) + +## Provider Updates + +* Chutes: Adds Kimi K2-0905 model with a 256k context window and pricing metadata (thanks pwilkin!) (#[7701](https://github.com/RooCodeInc/Roo-Code/pull/7701)) + > 📚 Documentation: See [Chutes](/providers/chutes) \ No newline at end of file diff --git a/docs/update-notes/v3.28.0.mdx b/docs/update-notes/v3.28.0.mdx new file mode 100644 index 00000000..ae4ed319 --- /dev/null +++ b/docs/update-notes/v3.28.0.mdx @@ -0,0 +1,67 @@ +--- +description: Introduces Task Sync (free monitoring) and Roomote Control (Pro remote control) for mobile-friendly task follow-up, plus improved chat editing and multiple bug fixes. +keywords: + - roo code 3.28.0 + - roomote control + - remote control + - chat editing + - vertex ai models +image: /img/v3.28.0/v3.28.0.png +--- + +# Roo Code 3.28.0 Release Notes (2025-09-10) + +This release introduces Task Sync & Roomote Control - check on long-running tasks from your phone and keep them going without being stuck at your desk. Plus enhanced chat editing and multiple bug fixes. + +## Task Sync & Roomote Control + +Introducing our new cloud connectivity features that let you **monitor and control long-running tasks from your phone** - no more waiting at your desk! ([#7799](https://github.com/RooCodeInc/Roo-Code/pull/7799), [#7805](https://github.com/RooCodeInc/Roo-Code/pull/7805), [#7850](https://github.com/RooCodeInc/Roo-Code/pull/7850)): + +> **Important**: Roo Code remains **completely free and open source**. Task Sync and Roomote Control are optional supplementary services that connect your local VS Code to the cloud - all processing still happens in your VS Code instance. + +Roomote Control interface showing real-time task monitoring and control from browser + +**[Task Sync](/roo-code-cloud/task-sync) (FREE for All Users)**: +- **Monitor from Anywhere**: Check on long-running tasks from your phone while away from your desk +- **Real-time Updates**: Live streaming of your local task messages and progress +- **Task History**: Your tasks are saved to the cloud for later reference +- **Cloud Visibility**: View your VS Code tasks from any browser + +**[Roomote Control](/roo-code-cloud/roomote-control) ([14-Day Free Trial, then $20/month](/roo-code-cloud/billing-subscriptions))**: +- **Continue Tasks Remotely**: Keep tasks going from your phone - respond to prompts, fix errors, approve actions +- **Full Chat Control**: Interact with the chatbox as though you were in your IDE +- **Start/Stop Tasks**: Launch new tasks or terminate running ones from anywhere +- **Complete Control**: Full bidirectional control of your local VS Code from anywhere + +Task Sync enables monitoring your local development environment from any device. Add Roomote Control for full remote control capabilities - whether you're on another computer, tablet, or smartphone. + + +> **📚 Documentation**: See [Task Sync](/roo-code-cloud/task-sync), [Roomote Control Guide](/roo-code-cloud/roomote-control), and [Billing & Subscriptions](/roo-code-cloud/billing-subscriptions). + +## QOL Improvements + +* **Click-to-Edit Chat Messages**: Click directly on any message text to edit it, with ESC to cancel and improved padding consistency ([#7790](https://github.com/RooCodeInc/Roo-Code/pull/7790)) +* **Enhanced Reasoning Display**: The AI's thinking process now shows a persistent timer and displays reasoning content in clean italic text ([#7752](https://github.com/RooCodeInc/Roo-Code/pull/7752)) +* **Manual Auth URL Input**: Users in containerized environments can now paste authentication redirect URLs manually when automatic redirection fails ([#7805](https://github.com/RooCodeInc/Roo-Code/pull/7805)) + +## Bug Fixes + +* **Groq Context Window**: Fixed incorrect display of cached tokens in context window ([#7839](https://github.com/RooCodeInc/Roo-Code/pull/7839)) +* **Chat Message Operations**: Resolved duplication issues when editing messages and "Couldn't find timestamp" errors when deleting ([#7793](https://github.com/RooCodeInc/Roo-Code/pull/7793)) +* **UI Overlap**: Fixed CodeBlock button z-index to prevent overlap with popovers and configuration panels (thanks A0nameless0man!) ([#7783](https://github.com/RooCodeInc/Roo-Code/pull/7783)) +* **Temperature Parameter**: Restored temperature parameter to fix crashes in TabbyApi and ExLlamaV2 backends (thanks drknyt!) ([#7594](https://github.com/RooCodeInc/Roo-Code/pull/7594)) +* **Ollama Model Info**: Fixed max context window display for Ollama models (thanks ItsOnlyBinary!) ([#7679](https://github.com/RooCodeInc/Roo-Code/pull/7679)) + +## Provider Updates + +* **Vertex AI Models**: Added support for 6 new models including DeepSeek-V3, GPT-OSS, and Qwen models, plus the us-south1 region (thanks ssweens!) ([#7727](https://github.com/RooCodeInc/Roo-Code/pull/7727)) +* **DeepSeek Pricing**: Updated to new unified rates effective September 5, 2025 - $0.56/M input tokens, $1.68/M output tokens (thanks NaccOll!) ([#7687](https://github.com/RooCodeInc/Roo-Code/pull/7687)) + +## Misc Improvements + +* **Merge Resolver Mode**: Added GIT_EDITOR environment variable to prevent hanging during non-interactive rebase operations ([#7819](https://github.com/RooCodeInc/Roo-Code/pull/7819)) +* Updated dependency esbuild to v0.25.9 for improved build performance ([#5455](https://github.com/RooCodeInc/Roo-Code/pull/5455)) +* Updated dependency @changesets/cli to v2.29.6 ([#7376](https://github.com/RooCodeInc/Roo-Code/pull/7376)) +* Updated dependency nock to v14.0.10 ([#6465](https://github.com/RooCodeInc/Roo-Code/pull/6465)) +* Updated dependency eslint-config-prettier to v10.1.8 ([#6464](https://github.com/RooCodeInc/Roo-Code/pull/6464)) +* Updated dependency eslint-plugin-turbo to v2.5.6 ([#7764](https://github.com/RooCodeInc/Roo-Code/pull/7764)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.1.mdx b/docs/update-notes/v3.28.1.mdx new file mode 100644 index 00000000..c6ddc0e1 --- /dev/null +++ b/docs/update-notes/v3.28.1.mdx @@ -0,0 +1,29 @@ +--- +description: Small patch release with QOL improvements and Roo Code Cloud announcements. +keywords: + - roo code 3.28.1 + - qol improvements + - cloud features +image: /img/v3.28.1/v3.28.1.png +--- + +# Roo Code 3.28.1 Release Notes (2025-09-11) + +This release adds Roo Code Cloud integration features, improves conversation condensing, and includes various quality-of-life improvements. + +Roo Code v3.28.1 Release +## QOL Improvements + +* **Active Mode Centering**: The mode selector dropdown now automatically centers the active mode when opened ([#7883](https://github.com/RooCodeInc/Roo-Code/pull/7883)) +* **Preserve First Message**: The first message containing slash commands or initial context is now preserved during conversation condensing instead of being replaced with a summary ([#7910](https://github.com/RooCodeInc/Roo-Code/pull/7910)) +* **Checkpoint Initialization Notifications**: You'll now receive clear notifications when checkpoint initialization fails, particularly with nested Git repositories ([#7766](https://github.com/RooCodeInc/Roo-Code/pull/7766)) + +## Bug Fixes + +* **Image Preview Caching**: This ensures the chat always displays the newly generated image instead of a cached version ([#7860](https://github.com/RooCodeInc/Roo-Code/pull/7860)) + +## Misc Improvements + +* **Cloud Task Button**: Added a new button for opening tasks in Roo Code Cloud with QR codes and shareable URLs ([#7572](https://github.com/RooCodeInc/Roo-Code/pull/7572)) +* **Telemetry Default**: Posthog telemetry is now enabled by default with easy opt-out options in settings ([#7909](https://github.com/RooCodeInc/Roo-Code/pull/7909)) +* **Roo Code Cloud Announcement**: Updated in-app announcements about Roo Code Cloud features, localized in 18 languages ([#7914](https://github.com/RooCodeInc/Roo-Code/pull/7914)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.10.mdx b/docs/update-notes/v3.28.10.mdx new file mode 100644 index 00000000..827e622e --- /dev/null +++ b/docs/update-notes/v3.28.10.mdx @@ -0,0 +1,44 @@ +--- +description: Claude 4.5 Sonnet support, GPT-5 LiteLLM fix, and UI improvements. +keywords: + - roo code 3.28.10 + - claude 4.5 sonnet + - gpt-5 litellm + - bug fixes +image: /img/v3.28.10/v3.28.10.png +--- + +# Roo Code 3.28.10 Release Notes (2025-09-29) + +This release adds support for Claude 4.5 Sonnet across all providers, fixes GPT-5 compatibility with LiteLLM, and includes UI improvements. + +Roo Code v3.28.10 Release + +## Claude 4.5 Sonnet Support + +We've added support for Anthropic's latest Claude 4.5 Sonnet model across all Claude-supporting providers ([#8368](https://github.com/RooCodeInc/Roo-Code/pull/8368)). + +According to [Anthropic's announcement](https://www.anthropic.com/news/claude-sonnet-4-5), Claude 4.5 Sonnet is: + +- State-of-the-art on SWE-bench Verified, maintaining focus for more than 30 hours on complex, multi-step tasks +- Showing a significant leap forward on computer use with 61.4% on OSWorld benchmark (up from 42.2% just four months ago) +- Delivering substantial gains in reasoning, math, and domain-specific knowledge across finance, law, medicine, and STEM + +Claude 4.5 Sonnet model selection + +The model is now available in the model selection dropdown for all supported providers. + +## Bug Fixes + +* **AWS Bedrock Claude Sonnet 4.5**: Corrected model identifier for Claude Sonnet 4.5 on AWS Bedrock (thanks sunhyung!) ([#8371](https://github.com/RooCodeInc/Roo-Code/pull/8371)) +* **GPT-5 LiteLLM Compatibility**: Fixed GPT-5 models failing with LiteLLM provider by using correct `max_completion_tokens` parameter (thanks lx1054331851!) ([#6980](https://github.com/RooCodeInc/Roo-Code/pull/6980)) + +## QOL Improvements + +* **Chat Icon Sizing**: Chat interface icons now maintain consistent size in limited space ([#8343](https://github.com/RooCodeInc/Roo-Code/pull/8343)) + +## Misc Improvements + +* **Telemetry Tracking**: Enhanced analytics to track when users change telemetry settings ([#8339](https://github.com/RooCodeInc/Roo-Code/pull/8339)) +* **Website Testimonials**: Updated website with enhanced testimonials section ([#8360](https://github.com/RooCodeInc/Roo-Code/pull/8360)) +* **Contributor Recognition**: Improved contributor badge workflow with automated cache refreshing ([#8083](https://github.com/RooCodeInc/Roo-Code/pull/8083)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.11.mdx b/docs/update-notes/v3.28.11.mdx new file mode 100644 index 00000000..608a2fae --- /dev/null +++ b/docs/update-notes/v3.28.11.mdx @@ -0,0 +1,19 @@ +--- +description: Fixes Claude Sonnet 4.5 model identifiers for AWS Bedrock and OpenRouter to prevent model ID errors. +keywords: + - roo code 3.28.11 + - bug fixes + - bedrock + - claude sonnet 4.5 + - openrouter +image: /img/social-share.jpg +--- + +# Roo Code 3.28.11 Release Notes (2025-09-29) + +This patch fixes model identifier issues for Claude Sonnet 4.5 across AWS Bedrock and OpenRouter, so prompts run reliably without ID or selection errors. + +## Bug Fixes + +* AWS Bedrock: Use the correct Claude Sonnet 4.5 model ID so prompts run without “model not found” errors (thanks sunhyung!) ([#8372](https://github.com/RooCodeInc/Roo-Code/pull/8372)) +* OpenRouter: Correct Claude Sonnet 4.5 model ID format to align with naming and prevent selection/API mismatches ([#8373](https://github.com/RooCodeInc/Roo-Code/pull/8373)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.12.mdx b/docs/update-notes/v3.28.12.mdx new file mode 100644 index 00000000..c93b9080 --- /dev/null +++ b/docs/update-notes/v3.28.12.mdx @@ -0,0 +1,21 @@ +--- +description: Fixes Anthropic Sonnet 4.5 model ID and adds Bedrock 1M context checkbox. +keywords: + - roo code 3.28.12 + - anthropic sonnet 4.5 + - bedrock 1m context + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.28.12 Release Notes (2025-09-29) + +This release fixes the Anthropic Sonnet 4.5 model ID and adds Bedrock 1M context checkbox support. + +## Bug Fixes + +* **Anthropic Sonnet 4.5 Model ID**: Corrects the model ID to the official `claude-sonnet-4-5`, resolving API errors when using Claude Sonnet 4.5 ([#8384](https://github.com/RooCodeInc/Roo-Code/pull/8384)) + +## QOL Improvements + +* **Bedrock 1M Context Checkbox**: Adds checkbox to enable 1M context window support for Claude Sonnet 4 and 4.5 on Bedrock, providing more flexibility for large-scale projects ([#8384](https://github.com/RooCodeInc/Roo-Code/pull/8384)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.13.mdx b/docs/update-notes/v3.28.13.mdx new file mode 100644 index 00000000..d4a44677 --- /dev/null +++ b/docs/update-notes/v3.28.13.mdx @@ -0,0 +1,18 @@ +--- +description: Fixes Vertex AI Sonnet 4.5 configuration and removes AWS Bedrock topP to improve reliability. +keywords: + - roo code 3.28.13 + - new features + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.28.13 Release Notes (2025-09-29) + +This patch improves provider reliability: Vertex AI Sonnet 4.5 now works with the correct model ID and AWS Bedrock requests avoid conflicts by removing topP. + + +## Bug Fixes + +* Vertex AI: Fix Sonnet 4.5 model configuration so requests no longer 404; sets the correct default ID and enables computer‑use via LiteLLM (thanks nickcatal!) ([#8391](https://github.com/RooCodeInc/Roo-Code/pull/8391)) +* AWS Bedrock: Remove topP parameter to avoid conflicts with extended thinking, improving reliability for streaming and non‑streaming responses (thanks ronyblum!) ([#8388](https://github.com/RooCodeInc/Roo-Code/pull/8388)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.14.mdx b/docs/update-notes/v3.28.14.mdx new file mode 100644 index 00000000..78b7ca25 --- /dev/null +++ b/docs/update-notes/v3.28.14.mdx @@ -0,0 +1,27 @@ +--- +description: Adds GLM-4.6 support for the z.ai provider with a 200k context window and availability across international and mainland APIs. +keywords: + - roo code 3.28.14 + - new features + - bug fixes +image: /img/v3.28.14/v3.28.14.png +--- + +# Roo Code 3.28.14 Release Notes (2025-09-30) + +This patch adds GLM-4.6 support for the z.ai provider, enabling a 200k context window and availability across both international and mainland APIs. + +Roo Code v3.28.14 Release + +## Provider Updates + +### GLM‑4.6 on Z.ai + +We’ve added the GLM‑4.6 model to the Z.ai provider (thanks dmarkey!) ([#8408](https://github.com/RooCodeInc/Roo-Code/pull/8408)). What you get: + +- 200k (204,800) token context window for longer files and multi‑turn conversations +- Better real‑world coding performance, including cleaner front‑end output +- Improved reasoning with tool‑use support for steadier multi‑step tasks +- Stronger agent behavior for search/tool workflows + +To use it, select GLM‑4.6 under the Z.ai provider in Settings. diff --git a/docs/update-notes/v3.28.15.mdx b/docs/update-notes/v3.28.15.mdx new file mode 100644 index 00000000..a4e778e8 --- /dev/null +++ b/docs/update-notes/v3.28.15.mdx @@ -0,0 +1,40 @@ +--- +description: Adds new Chutes models, finalized cloud reasoning messages, deprecates Grok 4 Fast, and includes fixes and a Vite security update. +keywords: + - roo code 3.28.15 + - new models + - bug fixes + - security update +image: /img/v3.28.15/v3.28.15.png +--- + +# Roo Code 3.28.15 Release Notes (2025-10-03) + +This release adds new Chutes models, shows finalized reasoning in cloud tasks, deprecates Grok 4 Fast, and includes UI fixes and security updates. + +Roo Code v3.28.15 Release + +## QOL Improvements + +* Include reasoning messages in cloud task histories so you can review complete thinking after runs ([#8401](https://github.com/RooCodeInc/Roo-Code/pull/8401)) +* Add structured data to the homepage to improve SEO and discoverability ([#8427](https://github.com/RooCodeInc/Roo-Code/pull/8427)) + +## Bug Fixes + +* “Reset and Continue” now truly resets cost tracking; subsequent requests only count new costs (thanks alecoot!) ([#6890](https://github.com/RooCodeInc/Roo-Code/pull/6890)) +* Prompts settings: Save button activates on first change and preserves empty strings (thanks beccare!) ([#8267](https://github.com/RooCodeInc/Roo-Code/pull/8267)) +* Remove overeager “unsaved changes” dialog in Settings when nothing changed ([#8410](https://github.com/RooCodeInc/Roo-Code/pull/8410)) +* Show the Send button when only images are attached ([#8423](https://github.com/RooCodeInc/Roo-Code/pull/8423)) + +## Provider Updates + +* Chutes: Add new models for speed, longer context, and multimodal reasoning (DeepSeek V3.1 Terminus, V3.1 turbo, V3.2-Exp; GLM‑4.6‑FP8; Qwen3‑VL‑235B‑A22B‑Thinking) (thanks mohammad154!) ([#8467](https://github.com/RooCodeInc/Roo-Code/pull/8467)) +* Gemini: Remove unsupported free “2.5 Flash Image Preview”; paid path unaffected (thanks SannidhyaSah!) ([#8359](https://github.com/RooCodeInc/Roo-Code/pull/8359)) +* Bedrock: Treat Claude Sonnet 4 as 1M context to reduce truncation and mis-selection ([#8421](https://github.com/RooCodeInc/Roo-Code/pull/8421)) +* Roo Code Cloud: Deprecate “Grok 4 Fast”; show warning if selected and hide when not selected ([#8481](https://github.com/RooCodeInc/Roo-Code/pull/8481)) + +## Misc Improvements + +* Add internal UsageStats schema and type to enable future dashboards and clearer usage insights ([#8441](https://github.com/RooCodeInc/Roo-Code/pull/8441)) +* Security: Update Vite dev server to 6.3.6 to address path traversal (GHSA-g4jq-h2w9-997c) (thanks app/renovate!) ([#7838](https://github.com/RooCodeInc/Roo-Code/pull/7838)) +* Dependency: Update glob to 11.0.3 for stability (thanks app/renovate!) ([#7767](https://github.com/RooCodeInc/Roo-Code/pull/7767)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.16.mdx b/docs/update-notes/v3.28.16.mdx new file mode 100644 index 00000000..146a7e58 --- /dev/null +++ b/docs/update-notes/v3.28.16.mdx @@ -0,0 +1,34 @@ +--- +description: Adds Claude Sonnet 4.5 1M context for Claude Code, improves Cloud task routing telemetry, and fixes Ollama/LM Studio visibility. +keywords: + - roo code 3.28.16 + - new features + - bug fixes +image: /img/v3.28.16/v3.28.16.png +--- + +# Roo Code 3.28.16 Release Notes (2025-10-10) + +This release adds a 1M‑context variant for Claude Sonnet 4.5 in Claude Code, improves Cloud task routing telemetry, and fixes Ollama/LM Studio provider visibility. + +Roo Code v3.28.16 Release + +## 1M context for Claude Sonnet 4.5 in Claude Code + +We've added a 1M‑token context variant of Claude Sonnet 4.5 to Claude Code (thanks ColbySerpa!) ([#8586](https://github.com/RooCodeInc/Roo-Code/pull/8586)): + +- Fit very large projects and long logs with fewer truncations. +- Select it via the [1m] suffix when choosing the model; reduces splitting and manual chunking. + +This makes it easier to work across big repos and lengthy traces without losing context. + +> **📚 Documentation**: See [Claude Code provider](/providers/claude-code) for model options and context limits. + +## QOL Improvements + +* Identify Cloud tasks in the extension bridge to improve diagnostics, logging, and future UI behavior ([#8539](https://github.com/RooCodeInc/Roo-Code/pull/8539)) +* Add the parent task ID in telemetry to improve traceability ([#8532](https://github.com/RooCodeInc/Roo-Code/pull/8532)) + +## Bug Fixes + +* Make Ollama and LM Studio appear as dynamic providers in provider lists so they can be selected and configured like others ([#8511](https://github.com/RooCodeInc/Roo-Code/pull/8511)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.17.mdx b/docs/update-notes/v3.28.17.mdx new file mode 100644 index 00000000..1e2879a6 --- /dev/null +++ b/docs/update-notes/v3.28.17.mdx @@ -0,0 +1,20 @@ +--- +description: Adds Claude Haiku 4.5 model across Anthropic, Bedrock, and Vertex with 200k context and prompt caching, plus a zh‑TW UI label fix. +keywords: + - roo code 3.28.17 + - provider updates + - qol improvements +--- + +# Roo Code 3.28.17 Release Notes (2025-10-15) + +This release adds Claude Haiku 4.5 (200k context, prompt caching) and clarifies the zh‑TW “Run command” label. + + +## QOL Improvements + +* Clarify the zh‑TW “Run command” label to match the tooltip and reduce confusion (thanks PeterDaveHello!) ([#8631](https://github.com/RooCodeInc/Roo-Code/pull/8631)) + +## Provider Updates + +* Add Claude Haiku 4.5 across Anthropic, AWS Bedrock, and Vertex AI with 200k context, up to 64k output tokens, images, and prompt caching support ([#8673](https://github.com/RooCodeInc/Roo-Code/pull/8673)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.18.mdx b/docs/update-notes/v3.28.18.mdx new file mode 100644 index 00000000..4cc7ca11 --- /dev/null +++ b/docs/update-notes/v3.28.18.mdx @@ -0,0 +1,30 @@ +--- +description: Fixes grey screen UI crashes, improves image generation defaults, and updates provider settings. +keywords: + - roo code 3.28.18 + - bug fixes + - image generation + - provider updates +image: /img/social-share.jpg +--- +# Roo Code 3.28.18 Release Notes (2025-10-17) + +This patch fixes the grey screen issue, improves image generation defaults, and updates provider settings. + + +## Grey Screen of Death Fix + +This should fix grey screens caused by long context task sessions ([#8696](https://github.com/RooCodeInc/Roo-Code/pull/8696)). + +## QOL Improvements + +* Image generation model selection update: defaults to Gemini 2.5 Flash Image; adds OpenAI GPT‑5 Image and GPT‑5 Image Mini; clearer settings dropdown (thanks chrarnoldus!) ([#8698](https://github.com/RooCodeInc/Roo-Code/pull/8698)) + +## Bug Fixes + +* Editor targeting fix: avoids editing read‑only git diff views; edits the actual file (thanks hassoncs!) ([#8676](https://github.com/RooCodeInc/Roo-Code/pull/8676)) + +## Provider Updates + +* Bedrock: add versioned user agent for per‑version metrics and error tracking; no action needed (thanks ajjuaire!) ([#8663](https://github.com/RooCodeInc/Roo-Code/pull/8663)) +* Z AI: only two coding endpoints (International/China) are supported; defaults to International; legacy non‑coding endpoints unsupported ([#8693](https://github.com/RooCodeInc/Roo-Code/pull/8693)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.2.mdx b/docs/update-notes/v3.28.2.mdx new file mode 100644 index 00000000..9166db1a --- /dev/null +++ b/docs/update-notes/v3.28.2.mdx @@ -0,0 +1,32 @@ +--- +description: Improves auto-approve UI, adds Qwen3 Next 80B A3B models via chutes, and fixes @-mentions, nested repo warning, authenticated Ollama tags, and message queue performance. +keywords: + - roo code 3.28.2 + - new features + - bug fixes +image: /img/v3.28.2/v3.28.2.png +--- + +# Roo Code 3.28.2 Release Notes (2025-09-14) + +This release improves the auto-approve UI, adds Qwen3 Next 80B A3B models via the chutes provider, and fixes issues with @-mentions, nested git warnings, authenticated Ollama tag fetches, and message queue performance. + +Roo Code v3.28.2 Release +## QOL Improvements + +* Smaller and more subtle auto-approve UI (thanks brunobergher!) ([#7894](https://github.com/RooCodeInc/Roo-Code/pull/7894)) +* Disable Roomote Control on logout for better security ([#7976](https://github.com/RooCodeInc/Roo-Code/pull/7976)) +* Add padding to the cloudview for better visual spacing ([#7954](https://github.com/RooCodeInc/Roo-Code/pull/7954)) + +## Bug Fixes + +* Fix message queue re-queue loop in Task.ask() that could degrade performance ([#7823](https://github.com/RooCodeInc/Roo-Code/pull/7823)) +* Restrict @-mention parsing to line-start or whitespace boundaries to prevent false triggers ([#7876](https://github.com/RooCodeInc/Roo-Code/pull/7876)) +* Make nested git repository warning persistent with path info for better visibility ([#7885](https://github.com/RooCodeInc/Roo-Code/pull/7885)) +* Include API key in Ollama /api/tags requests to support authenticated instances (thanks ItsOnlyBinary!) ([#7903](https://github.com/RooCodeInc/Roo-Code/pull/7903)) +* Preserve original first message context during conversation condensing for more coherent long chats ([#7939](https://github.com/RooCodeInc/Roo-Code/pull/7939)) + +## Provider Updates + +* Add Qwen3 Next 80B A3B models to the chutes provider ([#7948](https://github.com/RooCodeInc/Roo-Code/pull/7948)) + > See [Chutes provider](/providers/chutes) for setup and usage. \ No newline at end of file diff --git a/docs/update-notes/v3.28.3.mdx b/docs/update-notes/v3.28.3.mdx new file mode 100644 index 00000000..44d8be4e --- /dev/null +++ b/docs/update-notes/v3.28.3.mdx @@ -0,0 +1,42 @@ +--- +description: This patch adds UI polish and shortcuts, improves provider configuration, and fixes issues affecting Gemini, Claude Code tools, the editor context menu, and C# parsing. +keywords: + - roo code 3.28.3 + - new features + - bug fixes +image: /img/v3.28.3/v3.28.3.png +--- + +# Roo Code 3.28.3 Release Notes (2025-09-16) + +This release improves slash command discoverability, adds a global pause for auto-approve, introduces an "Add to Context" shortcut, refines the composer UI, adds region-aware Z.ai plans, and fixes Gemini bracket rendering, Claude Code tool filtering, an editing context menu issue, embedder key errors, and C# parsing. + +Roo Code v3.28.3 Release +## QOL Improvements + +* Temporarily pause auto-approve with a global “Enabled” switch so you can pause without losing your per-toggle selections; the UI clearly distinguishes global vs. per-toggle states ([#8024](https://github.com/RooCodeInc/Roo-Code/pull/8024)) +* Slash commands management moved to Settings > Slash Commands with a gear shortcut from the chat popover; the popover is now selection-only for quick use ([#7988](https://github.com/RooCodeInc/Roo-Code/pull/7988)) +* Keyboard shortcut to quickly “Add to Context” (macOS: Cmd+Y; Windows/Linux: Ctrl+Y) ([#7908](https://github.com/RooCodeInc/Roo-Code/pull/7908)) +* Add Image button moved inside the text area (top-right) and Enhance Prompt positioned above Send to reduce pointer travel and clarify layout ([#7989](https://github.com/RooCodeInc/Roo-Code/pull/7989)) +* Composer action buttons now appear only when there’s text input, reducing visual clutter and accidental clicks ([#7987](https://github.com/RooCodeInc/Roo-Code/pull/7987)) +* New Task button icon switched from “+” to a compose/pencil icon to better match its purpose and align with codicon standards ([#7942](https://github.com/RooCodeInc/Roo-Code/pull/7942)) + +## Bug Fixes + +* Restore square brackets in Gemini-generated code so arrays/indexers render correctly (e.g., `string[] items = new string[5];`) (thanks AtkinsDynamicObjects!) ([#7577](https://github.com/RooCodeInc/Roo-Code/pull/7577)) +* Filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) to avoid erroneous tool calls and distracting warnings (thanks juliettefournier-econ!) ([#7818](https://github.com/RooCodeInc/Roo-Code/pull/7818)) +* Fix an issue where the context menu could be obscured while editing messages; the menu stays visible and usable across screen sizes (thanks NaccOll, mini2s!) ([#7951](https://github.com/RooCodeInc/Roo-Code/pull/7951)) +* Surface a clear, actionable error instead of cryptic ByteString conversion failures during code indexing when API keys contain invalid/special characters (thanks PavelA85!) ([#8008](https://github.com/RooCodeInc/Roo-Code/pull/8008)) +* Correct C# tree-sitter query so C# files are parsed and indexed properly, improving semantic search, navigation, and context quality (thanks mubeen-zulfiqar, vadash, Source-GuyCoder!) ([#7813](https://github.com/RooCodeInc/Roo-Code/pull/7813)) + +## Misc Improvements + +* Dependency update: bump axios to 1.12.0 to improve reliability and security of HTTP requests (thanks dependabot!) ([#7963](https://github.com/RooCodeInc/Roo-Code/pull/7963)) + +## Provider Updates + +* Z.ai coding plan support with region-aware options (International/China), automatic base URL selection, and sensible defaults to simplify setup (thanks chrarnoldus!) ([#8003](https://github.com/RooCodeInc/Roo-Code/pull/8003)) + +## Documentation Updates + +* Contributor workflow: internal CONTRIBUTING templates refined for clearer bug reports and feature requests (no user-facing docs change) ([#8014](https://github.com/RooCodeInc/Roo-Code/pull/8014)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.4.mdx b/docs/update-notes/v3.28.4.mdx new file mode 100644 index 00000000..6b0b5bc7 --- /dev/null +++ b/docs/update-notes/v3.28.4.mdx @@ -0,0 +1,38 @@ +--- +description: Introducing the Supernova model, redesigned message feed, and improved auto-approve UI. +keywords: + - roo code 3.28.4 + - supernova model + - message feed redesign + - responsive auto-approve +image: /img/v3.28.4/v3.28.4.png +--- + +# Roo Code 3.28.4 Release Notes (2025-09-19) + +This release introduces the Supernova model to Roo Code Cloud, enhances the user interface with a redesigned message feed, and improves workflow efficiency with responsive auto-approve. + +Roo Code v3.28.4 Release +## Supernova Model - FREE Access + +We've added the new **roo/code-supernova** stealth model to the Roo Code Cloud provider - **completely FREE during the promotional period** ([#8175](https://github.com/RooCodeInc/Roo-Code/pull/8175)): + +- **FREE ACCESS**: No API keys, no costs - completely free through Roo Code Cloud +- **Advanced Capabilities**: Powerful AI model with **image support** for multimodal coding tasks +- **Not So Massive Context**: 200,000 token context window with 16,384 max output +- **Stealth Performance**: Experience cutting-edge model performance with the code-supernova variant +- **Zero Setup**: Just select it from your Roo Code Cloud provider - no configuration needed + +Select the **FREE** code-supernova model from the Roo provider to start using this powerful new capability at **no cost**. + +> **Documentation**: See the [Roo Code Cloud provider guide](/providers/roo-code-cloud) for model selection details. + +## QOL Improvements + +* **Redesigned Message Feed**: Enjoy a cleaner, more readable chat interface with improved visual hierarchy that helps you focus on what matters ([#7985](https://github.com/RooCodeInc/Roo-Code/pull/7985)) +* **Responsive Auto-Approve**: The auto-approve dropdown now adapts to different window sizes with smart 1-2 column layouts, and tooltips show all enabled actions without truncation ([#8032](https://github.com/RooCodeInc/Roo-Code/pull/8032)) +* **Network Resilience**: Telemetry data now automatically retries on network failures, ensuring analytics and diagnostics aren't lost during connectivity issues ([#7597](https://github.com/RooCodeInc/Roo-Code/pull/7597)) + +## Bug Fixes + +* **Keyboard Shortcut**: Fixed the command+y shortcut in Nightly builds, restoring quick content addition to context ([#8070](https://github.com/RooCodeInc/Roo-Code/pull/8070)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.5.mdx b/docs/update-notes/v3.28.5.mdx new file mode 100644 index 00000000..d8d3a46b --- /dev/null +++ b/docs/update-notes/v3.28.5.mdx @@ -0,0 +1,32 @@ +--- +description: Bug fixes for todo lists and Vertex AI pricing, plus QOL improvements. +keywords: + - roo code 3.28.5 + - bug fixes + - provider updates +image: /img/v3.28.5/v3.28.5.png +--- + +# Roo Code 3.28.5 Release Notes (2025-09-20) + +This release includes bug fixes for todo lists and Vertex AI pricing, improved code block wrapping, and SambaNova model updates. + +Roo Code v3.28.5 Release +## QOL Improvements + +* **Code blocks wrap by default**: Code blocks now wrap text by default, improving readability when viewing long commands and code snippets ([#8194](https://github.com/RooCodeInc/Roo-Code/pull/8194)) + +## Bug Fixes + +* **Todo list compatibility**: Todo lists now display correctly when AI models return checklists with dash prefixes (`- [ ] Task`), improving compatibility with various models (thanks NaccOll!) ([#8055](https://github.com/RooCodeInc/Roo-Code/pull/8055)) +* **Vertex AI pricing accuracy**: Fixed local cost calculation for Gemini models via Vertex AI to properly apply tiered pricing and cache discounts, ensuring displayed costs match actual Google Cloud billing (thanks ikumi3!) ([#8018](https://github.com/RooCodeInc/Roo-Code/pull/8018)) +* **Conversation history preservation**: Fixed duplicate/overlaid tasks and lost conversation history when canceling during model responses, especially during reasoning phases ([#8171](https://github.com/RooCodeInc/Roo-Code/pull/8171)) + +## Provider Updates + +* **SambaNova models**: Added DeepSeek-V3.1 and GPT-OSS 120B to the SambaNova provider (thanks snova-jorgep!) ([#8186](https://github.com/RooCodeInc/Roo-Code/pull/8186)) + +## Misc Improvements + +* **Code Supernova announcement**: Added announcement for the new Code Supernova model with improved authentication flow and landing page redirection ([#8197](https://github.com/RooCodeInc/Roo-Code/pull/8197)) +* **Privacy policy update**: Updated privacy policy to include provisions for optional marketing emails with clear opt-out options (thanks jdilla1277!) ([#8180](https://github.com/RooCodeInc/Roo-Code/pull/8180)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.6.mdx b/docs/update-notes/v3.28.6.mdx new file mode 100644 index 00000000..20ec1a27 --- /dev/null +++ b/docs/update-notes/v3.28.6.mdx @@ -0,0 +1,40 @@ +--- +description: GPT-5-Codex arrives in OpenAI Native alongside localization tooling and UI refinements. +keywords: + - roo code 3.28.6 + - gpt-5-codex + - localization + - bug fixes + - release notes +image: /img/v3.28.6/v3.28.6.png +--- + +# Roo Code 3.28.6 Release Notes (2025-09-23) + +This release adds GPT-5-Codex to OpenAI Native, sharpens localization coverage, and smooths UI workflows across languages. + +Roo Code v3.28.6 Release + +## GPT-5-Codex lands in OpenAI Native + +- **Work with repository-scale context**: Keep multi-file specs and long reviews in a single thread thanks to a 400k token window. +- **Reuse prompts faster and include visuals**: Prompt caching and image support help you iterate on UI fixes without re-uploading context. +- **Let the model adapt its effort**: GPT-5-Codex automatically balances quick responses for simple questions with deeper reasoning on complex builds. + +This gives teams a higher-capacity OpenAI option without extra configuration.[#8260](https://github.com/RooCodeInc/Roo-Code/pull/8260): + + +> **📚 Documentation**: See [OpenAI Provider Guide](/providers/openai) for capabilities and setup guidance. + +## QOL Improvements + +* **Keyboard shortcut for auto-approve**: Toggle approvals with Cmd/Ctrl+Alt+A from anywhere in the editor, keeping focus on the code review flow (via [#8214](https://github.com/RooCodeInc/Roo-Code/pull/8214)) +* **Cleaner code blocks**: Removed the snippet language picker and word-wrap toggle so wrapped code is easier to read and copy across locales (via [#8208](https://github.com/RooCodeInc/Roo-Code/pull/8208)) +* **More readable reasoning blocks**: Added spacing before section headers inside reasoning transcripts to make long explanations easier to scan (via [#7868](https://github.com/RooCodeInc/Roo-Code/pull/7868)) +* **Translation checks cover package settings**: The missing translation finder now validates package.nls files for 17 locales to catch untranslated VS Code strings earlier (via [#8255](https://github.com/RooCodeInc/Roo-Code/pull/8255)) + +## Bug Fixes + +* **Bare-metal evals stay signed in**: Roo provider tokens refresh automatically and the local evals app binds to port 3446 for predictable scripts (via [#8224](https://github.com/RooCodeInc/Roo-Code/pull/8224)) +* **Checkpoint text stays on one line**: Prevented multi-line wrapping in languages such as Chinese, Korean, Japanese, and Russian so the checkpoint UI stays compact (via [#8207](https://github.com/RooCodeInc/Roo-Code/pull/8207); reported in [#8206](https://github.com/RooCodeInc/Roo-Code/issues/8206)) +* **Ollama respects Modelfile num_ctx**: Roo now defers to your Modelfile’s context window to avoid GPU OOMs while still allowing explicit overrides when needed (via [#7798](https://github.com/RooCodeInc/Roo-Code/pull/7798); reported in [#7797](https://github.com/RooCodeInc/Roo-Code/issues/7797)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.7.mdx b/docs/update-notes/v3.28.7.mdx new file mode 100644 index 00000000..7a379486 --- /dev/null +++ b/docs/update-notes/v3.28.7.mdx @@ -0,0 +1,29 @@ +--- +description: Roo Code 3.28.7 adds a Cloud account switcher, improves conversation readability with collapsible thinking blocks, fixes a checkpoint popover issue, and updates the Chutes provider. +keywords: + - roo code 3.28.7 + - cloud account switcher + - collapsible thinking blocks + - checkpoints + - chutes provider +image: /img/v3.28.7/v3.28.7.png +--- + +# Roo Code 3.28.7 Release Notes (2025-09-23) + +One-click Cloud account switching, cleaner conversations with collapsible thinking blocks, a checkpoint UI fix, and a new GLM-4.5-turbo model in Chutes. + +Roo Code v3.28.7 Release +## QOL Improvements + +* Cloud account switcher: Easily change account context without leaving your current view ([#8223](https://github.com/RooCodeInc/Roo-Code/pull/8223)) +* Collapse thinking messages by default: Conversations are easier to scan; configurable via Settings → UI ([#8254](https://github.com/RooCodeInc/Roo-Code/pull/8254)) + +## Bug Fixes + +* Checkpoint restore popover remains anchored and interactive when moving from the saved checkpoint indicator to the menu, preventing flicker/misalignment and accidental closing (thanks NaccOll!) ([#8220](https://github.com/RooCodeInc/Roo-Code/pull/8220)) + +## Provider Updates + +* Chutes: add `zai-org/GLM-4.5-turbo` model with a 128K context window and competitive pricing (approx. $1/M input, $3/M output), enabling longer prompts with fast inference (thanks mugnimaestra!) ([#8157](https://github.com/RooCodeInc/Roo-Code/pull/8157)) + > See provider setup at [Chutes](/providers/chutes). \ No newline at end of file diff --git a/docs/update-notes/v3.28.8.mdx b/docs/update-notes/v3.28.8.mdx new file mode 100644 index 00000000..6446d4f9 --- /dev/null +++ b/docs/update-notes/v3.28.8.mdx @@ -0,0 +1,43 @@ +--- +description: Bug fixes for tool usage errors and context condensing, plus new free models and cloud account management improvements. +keywords: + - roo code 3.28.8 + - tool usage fixes + - context condensing + - free models + - cloud accounts +image: /img/v3.28.8/v3.28.8.png +--- + +# Roo Code 3.28.8 Release Notes (2025-09-25) + +This release fixes critical GPT-5-Codex tool usage errors, improves context condensing, and adds new free models to the Roo provider. + +Roo Code v3.28.8 Release + +## Fixed: GPT-5-Codex errors and more! + +We've resolved the situation where LLMs would sometimes not make tool calls in their response which improves Roo's overall flow. ([#8292](https://github.com/RooCodeInc/Roo-Code/pull/8292)) + +- **GPT-5-Codex Response Fix**: Fixes the issue where the model `gpt-5-codex` (and less frequently other models) would send a response with no assistant message +- **Completion Tool Reliability**: This fix eliminates some situations where the LLM would repeat its last text message when the attempt_completion tool was called +- **Tool Call Consistency**: Fixes where the LLM would sometimes respond without a tool call + +## QOL Improvements + +* **Cloud Account Management**: Added account switcher and "Create Team Account" option for logged-in users, making it easier to manage multiple accounts ([#8291](https://github.com/RooCodeInc/Roo-Code/pull/8291)) +* **Social Media Sharing**: Improved OpenGraph images for better preview cards when sharing Roo Code links on Slack, Twitter, and Facebook ([#8285](https://github.com/RooCodeInc/Roo-Code/pull/8285)) + +## Bug Fixes + +* **Context Condensing**: Fixed an issue where the initial task request was being lost during context condensing, causing Roo to try to re-answer the original task ask when resuming after condensing ([#8298](https://github.com/RooCodeInc/Roo-Code/pull/8298)) + +## Provider Updates + +* **New Free Models**: Added two more free models to the Roo provider ([#8304](https://github.com/RooCodeInc/Roo-Code/pull/8304)): + - xai/grok-4-fast + - deepseek/deepseek-chat-v3.1 + +## Misc Improvements + +* **Infrastructure**: Set port 3446 for web-evals service in production mode ([#8288](https://github.com/RooCodeInc/Roo-Code/pull/8288)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.9.mdx b/docs/update-notes/v3.28.9.mdx new file mode 100644 index 00000000..8fb86000 --- /dev/null +++ b/docs/update-notes/v3.28.9.mdx @@ -0,0 +1,41 @@ +--- +description: Upgrade Supernova to a 1M‑token context, plus onboarding/UI improvements and cleaner prompts. +keywords: + - roo code 3.28.9 + - new features + - bug fixes +image: /img/v3.28.9/v3.28.9.png +--- + +# Roo Code 3.28.9 Release Notes (2025-09-26) + +This release upgrades Supernova to a 1M‑token context, improves onboarding and UI clarity, and cleans up prompts for leaner outputs. + +Roo Code v3.28.9 Release + +## Supernova upgraded to 1M-token context + +Supernova is now roo/code-supernova-1-million with a 1,000,000‑token context window. Existing settings migrate automatically; no action needed: + +- Work across very large files and long multi‑step conversations with far fewer truncations +- More stable execution on big refactors and long file read/write loops +- Auto‑migrate: previous roo/code-supernova maps to roo/code-supernova-1-million + +Quick start: https://app.roocode.com/l/supernova + +## QOL Improvements + +* **Reset logs you out of Roo Code Cloud**: Reset now also logs you out of Roo Code Cloud for a truly clean slate; the reset still completes even if logout fails. ([#8312](https://github.com/RooCodeInc/Roo-Code/pull/8312)) +* **Measure engagement with upsell messages**: Telemetry for DismissibleUpsell tracks dismiss vs click (upsellId only) to tune messaging and reduce noise; no user-facing behavior change. ([#8309](https://github.com/RooCodeInc/Roo-Code/pull/8309)) +* **Discover Roo Code Cloud faster in the welcome screen**: Experiment to show the Roo provider on the welcome screen (localized strings with click telemetry) to speed up setup. ([#8317](https://github.com/RooCodeInc/Roo-Code/pull/8317)) +* **Cleaner prompts (no “thinking” tags)**: Removes <thinking> tags for cleaner output, fewer tokens, and better model compatibility; preserves the plain‑language rule to confirm tool success. ([#8319](https://github.com/RooCodeInc/Roo-Code/pull/8319)) +* **Simpler Requesty model refresh**: Removes an unnecessary warning when refreshing the Requesty models list so you can fetch new policies without leaving the screen (thanks requesty-JohnCosta27!) ([#7710](https://github.com/RooCodeInc/Roo-Code/pull/7710)) + +## Bug Fixes + +* **Tool‑use guidance clarity**: Clarifies the retry suggestion so the model selects the correct file‑reading step during apply‑diff retries, reducing failed file edits. ([#8315](https://github.com/RooCodeInc/Roo-Code/pull/8315)) + +## Misc Improvements + +* **Website improvements**: New pricing page, clearer homepage messaging, and tighter navigation/visuals (including mobile). No changes to the extension UX. ([#8303](https://github.com/RooCodeInc/Roo-Code/pull/8303), [#8326](https://github.com/RooCodeInc/Roo-Code/pull/8326)) +* **Internal cleanup**: Removes the deprecated pr-reviewer mode. No changes to the extension UX. ([#8222](https://github.com/RooCodeInc/Roo-Code/pull/8222)) \ No newline at end of file diff --git a/docs/update-notes/v3.28.mdx b/docs/update-notes/v3.28.mdx new file mode 100644 index 00000000..01f4de7d --- /dev/null +++ b/docs/update-notes/v3.28.mdx @@ -0,0 +1,198 @@ +--- +description: Combined release notes for Roo Code v3.28, featuring the Supernova model, Task Sync & Roomote Control for mobile task management, Roo Code Cloud integration, improved chat editing, and various bug fixes. +keywords: + - roo code 3.28 + - supernova model + - roomote control + - task sync + - cloud integration + - chat editing +image: /img/v3.28.0/v3.28.0.png +--- + +# Roo Code 3.28 Combined Release Notes + +This version introduces the Supernova model to Roo Code Cloud, Task Sync & Roomote Control for monitoring and controlling tasks from your phone, plus Roo Code Cloud integration features, enhanced chat editing, conversation preservation improvements, and multiple bug fixes. + +## Supernova Model - FREE Access + +We've added the new **roo/code-supernova** stealth model to the Roo Code Cloud provider - **completely FREE during the promotional period** ([#8175](https://github.com/RooCodeInc/Roo-Code/pull/8175)): + +- **FREE ACCESS**: No API keys, no costs - completely free through Roo Code Cloud +- **Advanced Capabilities**: Powerful AI model with **image support** for multimodal coding tasks +- **Not So Massive Context**: 200,000 token context window with 16,384 max output +- **Stealth Performance**: Experience cutting-edge model performance with the code-supernova variant +- **Zero Setup**: Just select it from your Roo Code Cloud provider - no configuration needed + +Select the **FREE** code-supernova model from the Roo provider to start using this powerful new capability at **no cost**. + +> **Documentation**: See the [Roo Code Cloud provider guide](/providers/roo-code-cloud) for model selection details. + +## Task Sync & Roomote Control + +Introducing our new cloud connectivity features that let you **monitor and control long-running tasks from your phone** - no more waiting at your desk! ([#7799](https://github.com/RooCodeInc/Roo-Code/pull/7799), [#7805](https://github.com/RooCodeInc/Roo-Code/pull/7805), [#7850](https://github.com/RooCodeInc/Roo-Code/pull/7850)): + +> **Important**: Roo Code remains **completely free and open source**. Task Sync and Roomote Control are optional supplementary services that connect your local VS Code to the cloud - all processing still happens in your VS Code instance. + +Roomote Control interface showing real-time task monitoring and control from browser + +**[Task Sync](/roo-code-cloud/task-sync) (FREE for All Users)**: +- **Monitor from Anywhere**: Check on long-running tasks from your phone while away from your desk +- **Real-time Updates**: Live streaming of your local task messages and progress +- **Task History**: Your tasks are saved to the cloud for later reference +- **Cloud Visibility**: View your VS Code tasks from any browser + +**[Roomote Control](/roo-code-cloud/roomote-control) ([14-Day Free Trial, then $20/month](/roo-code-cloud/billing-subscriptions))**: +- **Continue Tasks Remotely**: Keep tasks going from your phone - respond to prompts, fix errors, approve actions +- **Full Chat Control**: Interact with the chatbox as though you were in your IDE +- **Start/Stop Tasks**: Launch new tasks or terminate running ones from anywhere +- **Complete Control**: Full bidirectional control of your local VS Code from anywhere + +Task Sync enables monitoring your local development environment from any device. Add Roomote Control for full remote control capabilities - whether you're on another computer, tablet, or smartphone. + +> **Documentation**: See [Task Sync](/roo-code-cloud/task-sync), [Roomote Control Guide](/roo-code-cloud/roomote-control), and [Billing & Subscriptions](/roo-code-cloud/billing-subscriptions). + +## GPT-5-Codex lands in OpenAI Native + +- **Work with repository-scale context**: Keep multi-file specs and long reviews in a single thread thanks to a 400k token window. +- **Reuse prompts faster and include visuals**: Prompt caching and image support help you iterate on UI fixes without re-uploading context. +- **Let the model adapt its effort**: GPT-5-Codex automatically balances quick responses for simple questions with deeper reasoning on complex builds. + +This gives teams a higher-capacity OpenAI option without extra configuration.[#8260](https://github.com/RooCodeInc/Roo-Code/pull/8260): + +> **Documentation**: See [OpenAI Provider Guide](/providers/openai) for capabilities and setup guidance. + +## QOL Improvements + +* **Cloud Account Management**: Added account switcher and "Create Team Account" option for logged-in users, making it easier to manage multiple accounts ([#8291](https://github.com/RooCodeInc/Roo-Code/pull/8291)) +* **Chat Icon Sizing**: Chat interface icons now maintain consistent size in limited space ([#8343](https://github.com/RooCodeInc/Roo-Code/pull/8343)) +* **Social Media Sharing**: Improved OpenGraph images for better preview cards when sharing Roo Code links on Slack, Twitter, and Facebook ([#8285](https://github.com/RooCodeInc/Roo-Code/pull/8285)) +* **Auto-approve keyboard shortcut**: Toggle approvals with Cmd/Ctrl+Alt+A from anywhere in the editor so you can stay in the flow while reviewing changes (via [#8214](https://github.com/RooCodeInc/Roo-Code/pull/8214)) +* **Click-to-Edit Chat Messages**: Click directly on any message text to edit it, with ESC to cancel and improved padding consistency ([#7790](https://github.com/RooCodeInc/Roo-Code/pull/7790)) +* **Enhanced Reasoning Display**: The AI's thinking process now shows a persistent timer and displays reasoning content in clean italic text ([#7752](https://github.com/RooCodeInc/Roo-Code/pull/7752)) +* **Easier-to-scan reasoning transcripts**: Added clear line breaks before reasoning headers inside the UI so long thoughts are easier to skim (via [#7868](https://github.com/RooCodeInc/Roo-Code/pull/7868)) +* **Manual Auth URL Input**: Users in containerized environments can now paste authentication redirect URLs manually when automatic redirection fails ([#7805](https://github.com/RooCodeInc/Roo-Code/pull/7805)) +* **Active Mode Centering**: The mode selector dropdown now automatically centers the active mode when opened ([#7883](https://github.com/RooCodeInc/Roo-Code/pull/7883)) +* **Preserve First Message**: The first message containing slash commands or initial context is now preserved during conversation condensing instead of being replaced with a summary ([#7910](https://github.com/RooCodeInc/Roo-Code/pull/7910)) +* **Checkpoint Initialization Notifications**: You'll now receive clear notifications when checkpoint initialization fails, particularly with nested Git repositories ([#7766](https://github.com/RooCodeInc/Roo-Code/pull/7766)) +* **Translation coverage auditing**: The translation checker now validates package.nls locales by default to catch missing strings before release (via [#8255](https://github.com/RooCodeInc/Roo-Code/pull/8255)) + +* Smaller and more subtle auto-approve UI (thanks brunobergher!) ([#7894](https://github.com/RooCodeInc/Roo-Code/pull/7894)) +* Disable Roomote Control on logout for better security ([#7976](https://github.com/RooCodeInc/Roo-Code/pull/7976)) +* Add padding to the cloudview for better visual spacing ([#7954](https://github.com/RooCodeInc/Roo-Code/pull/7954)) + +* Temporarily pause auto-approve with a global “Enabled” switch so you can pause without losing your per-toggle selections; the UI clearly distinguishes global vs. per-toggle states ([#8024](https://github.com/RooCodeInc/Roo-Code/pull/8024)) +* Slash commands management moved to Settings > Slash Commands with a gear shortcut from the chat popover; the popover is now selection-only for quick use ([#7988](https://github.com/RooCodeInc/Roo-Code/pull/7988)) +* Keyboard shortcut to quickly “Add to Context” (macOS: Cmd+Y; Windows/Linux: Ctrl+Y) ([#7908](https://github.com/RooCodeInc/Roo-Code/pull/7908)) +* Add Image button moved inside the text area (top-right) and Enhance Prompt positioned above Send to reduce pointer travel and clarify layout ([#7989](https://github.com/RooCodeInc/Roo-Code/pull/7989)) +* Composer action buttons now appear only when there's text input, reducing visual clutter and accidental clicks ([#7987](https://github.com/RooCodeInc/Roo-Code/pull/7987)) +* New Task button icon switched from "+" to a compose/pencil icon to better match its purpose and align with codicon standards ([#7942](https://github.com/RooCodeInc/Roo-Code/pull/7942)) +* **Redesigned Message Feed**: Enjoy a cleaner, more readable chat interface with improved visual hierarchy that helps you focus on what matters ([#7985](https://github.com/RooCodeInc/Roo-Code/pull/7985)) +* **Responsive Auto-Approve**: The auto-approve dropdown now adapts to different window sizes with smart 1-2 column layouts, and tooltips show all enabled actions without truncation ([#8032](https://github.com/RooCodeInc/Roo-Code/pull/8032)) +* **Network Resilience**: Telemetry data now automatically retries on network failures, ensuring analytics and diagnostics aren't lost during connectivity issues ([#7597](https://github.com/RooCodeInc/Roo-Code/pull/7597)) +* **Code blocks wrap by default**: Code blocks now wrap text by default, and the snippet toolbar no longer includes language or wrap toggles, keeping snippets readable across locales (via [#8194](https://github.com/RooCodeInc/Roo-Code/pull/8194); [#8208](https://github.com/RooCodeInc/Roo-Code/pull/8208)) + +* **Reset logs you out of Roo Code Cloud**: Reset now also logs you out of Roo Code Cloud for a truly clean slate; the reset still completes even if logout fails. ([#8312](https://github.com/RooCodeInc/Roo-Code/pull/8312)) +* **Measure engagement with upsell messages**: Telemetry for DismissibleUpsell tracks dismiss vs click (upsellId only) to tune messaging and reduce noise; no user-facing behavior change. ([#8309](https://github.com/RooCodeInc/Roo-Code/pull/8309)) +* **Welcome screen Roo provider experiment**: Surfaces the Roo provider on the welcome screen (localized, with click telemetry) to speed up setup. ([#8317](https://github.com/RooCodeInc/Roo-Code/pull/8317)) +* **Cleaner prompts (no “thinking” tags)**: Removes `` tags for cleaner output, fewer tokens, and better model compatibility; preserves the plain‑language rule to confirm tool success. ([#8319](https://github.com/RooCodeInc/Roo-Code/pull/8319)) +* **Simpler Requesty model refresh**: Removes an unnecessary warning when refreshing the Requesty models list so you can fetch new policies without leaving the screen. ([#7710](https://github.com/RooCodeInc/Roo-Code/pull/7710)) +* **Bedrock 1M Context Checkbox**: Adds checkbox to enable 1M context window support for Claude Sonnet 4 and 4.5 on Bedrock, providing more flexibility for large-scale projects ([#8384](https://github.com/RooCodeInc/Roo-Code/pull/8384)) +* Include reasoning messages in cloud task histories so you can review complete thinking after runs ([#8401](https://github.com/RooCodeInc/Roo-Code/pull/8401)) + +* Identify Cloud tasks in the extension bridge to improve diagnostics, logging, and future UI behavior ([#8539](https://github.com/RooCodeInc/Roo-Code/pull/8539)) +* Add the parent task ID in telemetry to improve traceability ([#8532](https://github.com/RooCodeInc/Roo-Code/pull/8532)) +* Clarify the zh‑TW “Run command” label to match the tooltip and reduce confusion (thanks PeterDaveHello!) ([#8631](https://github.com/RooCodeInc/Roo-Code/pull/8631)) + +* Image generation model selection update: defaults to Gemini 2.5 Flash Image; adds OpenAI GPT‑5 Image and GPT‑5 Image Mini; clearer settings dropdown (thanks chrarnoldus!) ([#8698](https://github.com/RooCodeInc/Roo-Code/pull/8698)) + +## Bug Fixes + +* **AWS Bedrock Claude Sonnet 4.5**: Corrected model identifier for Claude Sonnet 4.5 on AWS Bedrock (thanks sunhyung!) ([#8371](https://github.com/RooCodeInc/Roo-Code/pull/8371)) +* **OpenRouter Claude Sonnet 4.5**: Corrected model ID format to align with naming and prevent selection/API mismatches ([#8373](https://github.com/RooCodeInc/Roo-Code/pull/8373)) +* **GPT-5 LiteLLM Compatibility**: Fixed GPT-5 models failing with LiteLLM provider by using correct `max_completion_tokens` parameter (thanks lx1054331851!) ([#6980](https://github.com/RooCodeInc/Roo-Code/pull/6980)) +* **Fixed "No tool used" Errors**: Resolved the situation where LLMs would sometimes not make tool calls in their response which improves Roo's overall flow. ([#8292](https://github.com/RooCodeInc/Roo-Code/pull/8292)) +* **Context Condensing**: Fixed an issue where the initial task request was being lost during context condensing, causing Roo to try to re-answer the original task ask when resuming after condensing ([#8298](https://github.com/RooCodeInc/Roo-Code/pull/8298)) +* **Roo provider stays signed in**: Roo provider tokens refresh automatically and the local evals app binds to port 3446 for predictable scripts (via [#8224](https://github.com/RooCodeInc/Roo-Code/pull/8224)) +* **Checkpoint text stays on one line**: Prevented multi-line wrapping in languages such as Chinese, Korean, Japanese, and Russian so the checkpoint UI stays compact (via [#8207](https://github.com/RooCodeInc/Roo-Code/pull/8207); reported in [#8206](https://github.com/RooCodeInc/Roo-Code/issues/8206)) +* **Ollama respects Modelfile num_ctx**: Roo now defers to your Modelfile’s context window to avoid GPU OOMs while still allowing explicit overrides when needed (via [#7798](https://github.com/RooCodeInc/Roo-Code/pull/7798); reported in [#7797](https://github.com/RooCodeInc/Roo-Code/issues/7797)) +* **Groq Context Window**: Fixed incorrect display of cached tokens in context window ([#7839](https://github.com/RooCodeInc/Roo-Code/pull/7839)) +* **Chat Message Operations**: Resolved duplication issues when editing messages and "Couldn't find timestamp" errors when deleting ([#7793](https://github.com/RooCodeInc/Roo-Code/pull/7793)) +* **UI Overlap**: Fixed CodeBlock button z-index to prevent overlap with popovers and configuration panels (thanks A0nameless0man!) ([#7783](https://github.com/RooCodeInc/Roo-Code/pull/7783)) +* Fix message queue re-queue loop in Task.ask() that could degrade performance ([#7823](https://github.com/RooCodeInc/Roo-Code/pull/7823)) +* Restrict @-mention parsing to line-start or whitespace boundaries to prevent false triggers ([#7876](https://github.com/RooCodeInc/Roo-Code/pull/7876)) +* Make nested git repository warning persistent with path info for better visibility ([#7885](https://github.com/RooCodeInc/Roo-Code/pull/7885)) +* Include API key in Ollama /api/tags requests to support authenticated instances (thanks ItsOnlyBinary!) ([#7903](https://github.com/RooCodeInc/Roo-Code/pull/7903)) +* Preserve original first message context during conversation condensing for more coherent long chats ([#7939](https://github.com/RooCodeInc/Roo-Code/pull/7939)) + +* **Temperature Parameter**: Restored temperature parameter to fix crashes in TabbyApi and ExLlamaV2 backends (thanks drknyt!) ([#7594](https://github.com/RooCodeInc/Roo-Code/pull/7594)) +* **Ollama Model Info**: Fixed max context window display for Ollama models (thanks ItsOnlyBinary!) ([#7679](https://github.com/RooCodeInc/Roo-Code/pull/7679)) +* **Image Preview Caching**: This ensures the chat always displays the newly generated image instead of a cached version ([#7860](https://github.com/RooCodeInc/Roo-Code/pull/7860)) + +* Restore square brackets in Gemini-generated code so arrays/indexers render correctly (e.g., `string[] items = new string[5];`) (thanks AtkinsDynamicObjects!) ([#7577](https://github.com/RooCodeInc/Roo-Code/pull/7577)) +* Filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) to avoid erroneous tool calls and distracting warnings (thanks juliettefournier-econ!) ([#7818](https://github.com/RooCodeInc/Roo-Code/pull/7818)) +* Fix an issue where the context menu could be obscured while editing messages; the menu stays visible and usable across screen sizes (thanks NaccOll, mini2s!) ([#7951](https://github.com/RooCodeInc/Roo-Code/pull/7951)) +* Surface a clear, actionable error instead of cryptic ByteString conversion failures during code indexing when API keys contain invalid/special characters (thanks PavelA85!) ([#8008](https://github.com/RooCodeInc/Roo-Code/pull/8008)) +* Correct C# tree-sitter query so C# files are parsed and indexed properly, improving semantic search, navigation, and context quality (thanks mubeen-zulfiqar, vadash, Source-GuyCoder!) ([#7813](https://github.com/RooCodeInc/Roo-Code/pull/7813)) +* **Keyboard Shortcut**: Fixed the command+y shortcut in Nightly builds, restoring quick content addition to context ([#8070](https://github.com/RooCodeInc/Roo-Code/pull/8070)) +* **Todo list compatibility**: Todo lists now display correctly when AI models return checklists with dash prefixes (`- [ ] Task`), improving compatibility with various models (thanks NaccOll!) ([#8055](https://github.com/RooCodeInc/Roo-Code/pull/8055)) +* **Vertex AI pricing accuracy**: Fixed local cost calculation for Gemini models via Vertex AI to properly apply tiered pricing and cache discounts, ensuring displayed costs match actual Google Cloud billing (thanks ikumi3!) ([#8018](https://github.com/RooCodeInc/Roo-Code/pull/8018)) +* **Conversation history preservation**: Fixed duplicate/overlaid tasks and lost conversation history when canceling during model responses, especially during reasoning phases ([#8171](https://github.com/RooCodeInc/Roo-Code/pull/8171)) + + +* **Tool‑use guidance clarity**: Clarifies the retry suggestion so the model selects the correct file‑reading step during apply‑diff retries, reducing failed file edits. ([#8315](https://github.com/RooCodeInc/Roo-Code/pull/8315)) +* **Anthropic Sonnet 4.5 Model ID**: Corrects the model ID to the official `claude-sonnet-4-5`, resolving API errors when using Claude Sonnet 4.5 ([#8384](https://github.com/RooCodeInc/Roo-Code/pull/8384)) + +* **AWS Bedrock**: Removed `topP` parameter to avoid conflicts with extended thinking, improving reliability for streaming and non‑streaming responses (thanks ronyblum!) ([#8388](https://github.com/RooCodeInc/Roo-Code/pull/8388)) +* **Vertex AI**: Fixed Sonnet 4.5 model configuration to prevent 404s and align with the correct default model ID (thanks nickcatal!) ([#8391](https://github.com/RooCodeInc/Roo-Code/pull/8391)) +* "Reset and Continue" now truly resets cost tracking; subsequent requests only count new message costs ([#6890](https://github.com/RooCodeInc/Roo-Code/pull/6890)) +* Prompts settings: Save button activates on first change and preserves empty strings ([#8267](https://github.com/RooCodeInc/Roo-Code/pull/8267)) +* Settings: Remove overeager "unsaved changes" dialog when nothing changed ([#8410](https://github.com/RooCodeInc/Roo-Code/pull/8410)) +* Show the Send button when only images are attached ([#8423](https://github.com/RooCodeInc/Roo-Code/pull/8423)) + +* Fix grey screens caused by long context task sessions ([#8696](https://github.com/RooCodeInc/Roo-Code/pull/8696)) +* Editor targeting fix: avoids editing read‑only git diff views; edits the actual file (thanks hassoncs!) ([#8676](https://github.com/RooCodeInc/Roo-Code/pull/8676)) + +## Provider Updates + +* **Claude 4.5 Sonnet**: Added support for Anthropic's latest Claude 4.5 Sonnet model across all providers (Anthropic, AWS Bedrock, Claude Code, Google Vertex AI, and OpenRouter) with 1M context window support ([#8368](https://github.com/RooCodeInc/Roo-Code/pull/8368)) +* **New Free Models**: Added two more free models to the Roo provider - xai/grok-4-fast and deepseek/deepseek-chat-v3.1 ([#8304](https://github.com/RooCodeInc/Roo-Code/pull/8304)) +* **Vertex AI Models**: Added support for 6 new models including DeepSeek-V3, GPT-OSS, and Qwen models, plus the us-south1 region (thanks ssweens!) ([#7727](https://github.com/RooCodeInc/Roo-Code/pull/7727)) +* **DeepSeek Pricing**: Updated to new unified rates effective September 5, 2025 - $0.56/M input tokens, $1.68/M output tokens (thanks NaccOll!) ([#7687](https://github.com/RooCodeInc/Roo-Code/pull/7687)) + +* **Chutes Provider**: Add Qwen3 Next 80B A3B models ([#7948](https://github.com/RooCodeInc/Roo-Code/pull/7948)) +* **Z.ai Coding Plans**: Region-aware options (International/China) with automatic base URL selection and sensible defaults to simplify setup (thanks chrarnoldus!) ([#8003](https://github.com/RooCodeInc/Roo-Code/pull/8003)) +* **SambaNova models**: Added DeepSeek-V3.1 and GPT-OSS 120B to the SambaNova provider (thanks snova-jorgep!) ([#8186](https://github.com/RooCodeInc/Roo-Code/pull/8186)) + +* **Supernova 1M context**: Upgrades the default Supernova to roo/code-supernova-1-million (1,000,000‑token context). Existing settings auto‑migrate; expect fewer truncations on long tasks. ([#8330](https://github.com/RooCodeInc/Roo-Code/pull/8330)) +* **Z.ai GLM‑4.6**: Adds GLM‑4.6 model support with a 200k (204,800) context window and availability across both international and mainland API lines (thanks dmarkey!) ([#8408](https://github.com/RooCodeInc/Roo-Code/pull/8408)) +* **Chutes**: Add DeepSeek‑V3.1‑Terminus, DeepSeek‑V3.1‑turbo, DeepSeek‑V3.2‑Exp, GLM‑4.6‑FP8, and Qwen3‑VL‑235B‑A22B‑Thinking to the provider picker ([#8467](https://github.com/RooCodeInc/Roo-Code/pull/8467)) +* **Claude Code**: Added a 1M‑context variant of Claude Sonnet 4.5; select via the `[1m]` suffix to fit larger repos and logs with fewer truncations (thanks ColbySerpa!) ([#8586](https://github.com/RooCodeInc/Roo-Code/pull/8586)) +* **Claude Haiku 4.5**: Available across Anthropic, AWS Bedrock, and Vertex AI with 200k context, up to 64k output, image input, and prompt caching support ([#8673](https://github.com/RooCodeInc/Roo-Code/pull/8673)) +* **Gemini**: Remove unsupported free “2.5 Flash Image Preview”; paid path unaffected ([#8359](https://github.com/RooCodeInc/Roo-Code/pull/8359)) +* **Roo Code Cloud**: Deprecate “Grok 4 Fast”; show warning if selected and hide when not selected ([#8481](https://github.com/RooCodeInc/Roo-Code/pull/8481)) +* **Bedrock**: Claude Sonnet 4 1M‑context handling and compatibility improvements ([#8421](https://github.com/RooCodeInc/Roo-Code/pull/8421)) + +* Bedrock: add versioned user agent for per‑version metrics and error tracking; no action needed (thanks ajjuaire!) ([#8663](https://github.com/RooCodeInc/Roo-Code/pull/8663)) +* Z AI: only two coding endpoints (International/China) are supported; defaults to International; legacy non‑coding endpoints unsupported ([#8693](https://github.com/RooCodeInc/Roo-Code/pull/8693)) + +## Misc Improvements + +* **Website improvements**: New pricing page, clearer homepage messaging, and tighter navigation/visuals (including mobile). No changes to the extension UX. ([#8303](https://github.com/RooCodeInc/Roo-Code/pull/8303), [#8326](https://github.com/RooCodeInc/Roo-Code/pull/8326)) +* **Telemetry Tracking**: Enhanced analytics to track when users change telemetry settings ([#8339](https://github.com/RooCodeInc/Roo-Code/pull/8339)) +* **Website Testimonials**: Updated website with enhanced testimonials section ([#8360](https://github.com/RooCodeInc/Roo-Code/pull/8360)) +* **Contributor Recognition**: Improved contributor badge workflow with automated cache refreshing ([#8083](https://github.com/RooCodeInc/Roo-Code/pull/8083)) +* **Internal cleanup**: Removes the deprecated pr-reviewer mode. No changes to the extension UX. ([#8222](https://github.com/RooCodeInc/Roo-Code/pull/8222)) +* **Infrastructure**: Set port 3446 for web-evals service in production mode ([#8288](https://github.com/RooCodeInc/Roo-Code/pull/8288)) +* **Cloud Task Button**: Added a new button for opening tasks in Roo Code Cloud with QR codes and shareable URLs ([#7572](https://github.com/RooCodeInc/Roo-Code/pull/7572)) +* **Telemetry Default**: Posthog telemetry is now enabled by default with easy opt-out options in settings ([#7909](https://github.com/RooCodeInc/Roo-Code/pull/7909)) +* **Roo Code Cloud Announcement**: Updated in-app announcements about Roo Code Cloud features, localized in 18 languages ([#7914](https://github.com/RooCodeInc/Roo-Code/pull/7914)) +* **Merge Resolver Mode**: Added GIT_EDITOR environment variable to prevent hanging during non-interactive rebase operations ([#7819](https://github.com/RooCodeInc/Roo-Code/pull/7819)) +* Updated dependency esbuild to v0.25.9 for improved build performance ([#5455](https://github.com/RooCodeInc/Roo-Code/pull/5455)) +* Updated dependency @changesets/cli to v2.29.6 ([#7376](https://github.com/RooCodeInc/Roo-Code/pull/7376)) +* Updated dependency nock to v14.0.10 ([#6465](https://github.com/RooCodeInc/Roo-Code/pull/6465)) +* Updated dependency eslint-config-prettier to v10.1.8 ([#6464](https://github.com/RooCodeInc/Roo-Code/pull/6464)) +* Updated dependency eslint-plugin-turbo to v2.5.6 ([#7764](https://github.com/RooCodeInc/Roo-Code/pull/7764)) +* Updated dependency axios to v1.12.0 for improved reliability and security of HTTP requests ([#7963](https://github.com/RooCodeInc/Roo-Code/pull/7963)) +* **Code Supernova announcement**: Added announcement for the new Code Supernova model with improved authentication flow and landing page redirection ([#8197](https://github.com/RooCodeInc/Roo-Code/pull/8197)) +* **Privacy policy update**: Updated privacy policy to include provisions for optional marketing emails with clear opt-out options (thanks jdilla1277!) ([#8180](https://github.com/RooCodeInc/Roo-Code/pull/8180)) \ No newline at end of file diff --git a/docs/update-notes/v3.29.0.mdx b/docs/update-notes/v3.29.0.mdx new file mode 100644 index 00000000..4e17b712 --- /dev/null +++ b/docs/update-notes/v3.29.0.mdx @@ -0,0 +1,56 @@ +--- +description: Intelligent file reading, browser-use on image-capable models, dynamic Roo Code Cloud model loading, plus fixes and provider updates. +keywords: + - roo code 3.29.0 + - new features + - bug fixes +image: /img/v3.29.0/v3.29.0.png +--- + +# Roo Code 3.29.0 Release Notes (2025-10-24) + +This release adds intelligent file reading, enables browser-use for all image-capable models, and adds dynamic Roo Code Cloud model loading — plus many fixes and model updates. + +Roo Code v3.29.0 Release + +## Introducing Roo Code's first Cloud Agent, the PR Reviewer + +It runs Roo in the cloud, giving extremely high quality code reviews instantly. We’ve been using it heavily to build Roo and now it's also available to the community. + +Learn more: https://roocode.com/reviewer + +## QOL Improvements + +* Intelligent file reading with token‑budget management and a 100KB preview for very large files (thanks daniel-lxs, liwilliam2021!) ([#8789](https://github.com/RooCodeInc/Roo-Code/pull/8789)) +* Browser‑use enabled for all image‑capable models (thanks app/roomote, hannesrudolph!) ([#8121](https://github.com/RooCodeInc/Roo-Code/pull/8121), issue #8116) +* Reduce ui_messages.json bloat by removing GPT‑5 instructions/reasoning_summary ([#8756](https://github.com/RooCodeInc/Roo-Code/pull/8756)) +* Adjustable checkpoint initialization timeout and clearer warnings (thanks NaccOll!) ([#8019](https://github.com/RooCodeInc/Roo-Code/pull/8019), issue #7843) +* Improve auto‑approve button responsiveness ([#8798](https://github.com/RooCodeInc/Roo-Code/pull/8798)) +* Retry API requests on stream failures instead of aborting the task ([#8794](https://github.com/RooCodeInc/Roo-Code/pull/8794)) +* Improve checkpoint menu translations ([#8796](https://github.com/RooCodeInc/Roo-Code/pull/8796)) +* Try a 5s status mutation timeout to reduce flaky status changes ([#8734](https://github.com/RooCodeInc/Roo-Code/pull/8734)) + +## Bug Fixes + +* search_files now respects .gitignore (including nested) by default; override when needed ([#8804](https://github.com/RooCodeInc/Roo-Code/pull/8804), issue #7921) +* apply_diff export preserves trailing newlines (fix stripLineNumbers) ([#8227](https://github.com/RooCodeInc/Roo-Code/pull/8227), issue #8020) +* Export: exclude max tokens for models that don’t support it (thanks elianiva!) ([#8464](https://github.com/RooCodeInc/Roo-Code/pull/8464), issue #7944) +* Checkpoints: always show restore options regardless of change detection ([#8758](https://github.com/RooCodeInc/Roo-Code/pull/8758)) + +## Provider Updates + +* Roo Code Cloud: dynamic model loading in the Model Picker with 5‑minute caching, auth‑state refresh, and graceful fallback to static models on failure ([#8728](https://github.com/RooCodeInc/Roo-Code/pull/8728)) +* Chutes: add zai‑org/GLM‑4.6‑turbo (204.8K context; clear pricing) (thanks mohammad154!) ([#8502](https://github.com/RooCodeInc/Roo-Code/pull/8502)) +* OpenRouter: add Anthropic Claude Haiku 4.5 to prompt‑caching models ([#8764](https://github.com/RooCodeInc/Roo-Code/pull/8764)) +* Z.ai: expand model coverage with GLM‑4.5‑X, AirX, Flash ([#8745](https://github.com/RooCodeInc/Roo-Code/pull/8745)) +* Mistral: update “Medium” model name (thanks ThomsenDrake!) ([#8364](https://github.com/RooCodeInc/Roo-Code/pull/8364)) + + +## Misc Updates + +* Reviewer page copy clarifications for clearer expectations ([#8753](https://github.com/RooCodeInc/Roo-Code/pull/8753)) +* Dynamic OpenGraph images for clean link previews ([#8773](https://github.com/RooCodeInc/Roo-Code/pull/8773)) +* Fix link text to “Roomote Control” in README (thanks laz-001!) ([#8742](https://github.com/RooCodeInc/Roo-Code/pull/8742)) +* Remove a very verbose cloud‑agents error ([#8795](https://github.com/RooCodeInc/Roo-Code/pull/8795)) +* Update X/Twitter username from roo_code to roocode ([#8780](https://github.com/RooCodeInc/Roo-Code/pull/8780)) +* Update “Configuring Profiles” video link across localized READMEs ([#8189](https://github.com/RooCodeInc/Roo-Code/pull/8189)) \ No newline at end of file diff --git a/docs/update-notes/v3.29.1.mdx b/docs/update-notes/v3.29.1.mdx new file mode 100644 index 00000000..0c964c19 --- /dev/null +++ b/docs/update-notes/v3.29.1.mdx @@ -0,0 +1,27 @@ +--- +description: Bug-fix patch that prevents context overruns, restores standard Redo keybinding, and improves provider model loading reliability. +keywords: + - roo code 3.29.1 + - new features + - bug fixes +image: /img/v3.29.1/v3.29.1.png +--- + +# Roo Code 3.29.1 Release Notes (2025-10-27) + +This patch prevents context overruns on long generations, restores the standard Redo keybinding, and reduces intermittent provider model loading errors. + +Roo Code v3.29.1 Release + +## QOL Improvements + +* Keyboard shortcut update: “Add to Context” moved to Ctrl+K Ctrl+A (Windows/Linux) / Cmd+K Cmd+A (macOS) to avoid Redo conflict and restore standard Redo (thanks swythan!) ([#8653](https://github.com/RooCodeInc/Roo-Code/pull/8653)) + +## Bug Fixes + +* Clean up max output token calculations to prevent context window overruns (thanks enerage!) ([#8822](https://github.com/RooCodeInc/Roo-Code/pull/8822)) +* Fix provider model loading race conditions to reduce timeouts and intermittent errors ([#8836](https://github.com/RooCodeInc/Roo-Code/pull/8836)) + +## Provider Updates + +* OpenAI-compatible: centralized ~20% maxTokens cap to prevent context overruns; GLM‑4.6‑turbo default 40,960 for reliable long-context runs (thanks enerage!) ([#8822](https://github.com/RooCodeInc/Roo-Code/pull/8822)) diff --git a/docs/update-notes/v3.29.2.mdx b/docs/update-notes/v3.29.2.mdx new file mode 100644 index 00000000..85b0bdf4 --- /dev/null +++ b/docs/update-notes/v3.29.2.mdx @@ -0,0 +1,30 @@ +--- +description: Roo Code 3.29.2 adds higher-context Chutes AI models, improves settings text, and fixes provider caching and free-model pricing display. +keywords: + - roo code 3.29.2 + - chutes ai + - longcat + - provider update + - bug fixes + - free models + - pricing display +image: /img/social-share.jpg +--- + +# Roo Code 3.29.2 Release Notes (2025-10-27) + +This patch adds higher-context Chutes AI models, cleans up settings text, and fixes provider caching and free‑model pricing display. + + +## Provider Updates + +* Chutes AI: Add LongCat‑Flash‑Thinking‑FP8 models (200K, 128K) for longer coding sessions with faster, cost‑effective performance (thanks leakless21!) ([#8426](https://github.com/RooCodeInc/Roo-Code/pull/8426)) + +## QOL Improvements + +* Settings descriptions: Remove specific "Claude 3.7 Sonnet" version across locales to keep guidance current (thanks rwydaegh!) ([#8437](https://github.com/RooCodeInc/Roo-Code/pull/8437)) + +## Bug Fixes + +* Roo provider: Fix caching logic to emit correct usage data and apply proper protocol ([#8860](https://github.com/RooCodeInc/Roo-Code/pull/8860)) +* Free models: Hide pricing info and show zero cost to avoid confusion ([#8864](https://github.com/RooCodeInc/Roo-Code/pull/8864)) \ No newline at end of file diff --git a/docs/update-notes/v3.29.3.mdx b/docs/update-notes/v3.29.3.mdx new file mode 100644 index 00000000..d8541947 --- /dev/null +++ b/docs/update-notes/v3.29.3.mdx @@ -0,0 +1,33 @@ +--- +description: Adds Roo provider reasoning control, Z.ai Deep Thinking toggle, Gemini model updates, plus fixes for rate limiting, retries, and UI polish. +keywords: + - roo code 3.29.3 + - release notes + - bug fixes + - provider updates + - qol improvements +image: /img/social-share.jpg +--- + +# Roo Code 3.29.3 Release Notes (2025-10-28) + +This patch adds reasoning controls for Roo and Z.ai providers, updates Gemini "latest" models, and delivers stability and UI fixes. + +## QOL Improvements + +* Toggle time and cost display in the system prompt to reduce model distraction during long runs (thanks jaxnb!) ([#8451](https://github.com/RooCodeInc/Roo-Code/pull/8451)) +* After “Add to Context,” input auto‑focuses and two newlines are inserted for clearer separation, so you can keep typing immediately ([#8877](https://github.com/RooCodeInc/Roo-Code/pull/8877)) + +## Bug Fixes + +* LiteLLM: Prefer max_output_tokens (with fallback to max_tokens) to prevent 400 errors on Claude Sonnet 4.5 via Vertex (thanks fabb!) ([#8455](https://github.com/RooCodeInc/Roo-Code/pull/8455)) +* Messages typed during context condensing now send automatically once condensing finishes; per‑task queues no longer cross‑drain (thanks JosXa!) ([#8478](https://github.com/RooCodeInc/Roo-Code/pull/8478)) +* Rate limiting now uses a monotonic clock and enforces a hard cap at the configured limit to avoid long lockouts (thanks chrarnoldus, intermarkec!) ([#8456](https://github.com/RooCodeInc/Roo-Code/pull/8456)) +* Restore green tests and TypeScript build for LiteLLM after interface changes; keeps monotonic clock fix and token limit behavior ([#8870](https://github.com/RooCodeInc/Roo-Code/pull/8870)) +* Checkpoint menu popover no longer clips long option text; items remain fully visible ([#8867](https://github.com/RooCodeInc/Roo-Code/pull/8867)) + +## Provider Updates + +* Roo provider: Reasoning effort control lets you choose deeper step‑by‑step thinking vs. faster/cheaper responses. See [Roo Code Cloud provider](/providers/roo-code-cloud) for details. ([#8874](https://github.com/RooCodeInc/Roo-Code/pull/8874)) +* Z.ai (GLM‑4.5/4.6): “Enable reasoning” toggle to activate Deep Thinking; hidden on unsupported models (thanks BeWater799!). See [Z.ai provider](/providers/zai). ([#8872](https://github.com/RooCodeInc/Roo-Code/pull/8872)) +* Gemini: Updated model list and “latest” aliases for easier selection (thanks cleacos!). See [Gemini provider](/providers/gemini). ([#8486](https://github.com/RooCodeInc/Roo-Code/pull/8486)) \ No newline at end of file diff --git a/docs/update-notes/v3.29.4.mdx b/docs/update-notes/v3.29.4.mdx new file mode 100644 index 00000000..3334428f --- /dev/null +++ b/docs/update-notes/v3.29.4.mdx @@ -0,0 +1,44 @@ +--- +description: Adds MiniMax provider, improves @ file search for large repos, clarifies Logs tab and VS Code LM guidance, and fixes indexing/startup issues. +keywords: + - roo code 3.29.4 + - new features + - bug fixes +image: /img/v3.29.4/v3.29.4.png +--- +# Roo Code 3.29.4 Release Notes (2025-10-31) + +This release adds the MiniMax provider, improves @ file search on large projects, clarifies the Logs tab and VS Code LM guidance, and delivers multiple stability fixes. + +Roo Code v3.29.4 Release + +## We’re hiring + +We added a “We’re hiring” link to the announcement modal. Explore open roles at [careers.roocode.com](https://careers.roocode.com). + +## MiniMax provider + +We've added the MiniMax provider so you can run coding and reasoning tasks with strong Chinese language support and competitive pricing (thanks Maosghoul!) ([#8820](https://github.com/RooCodeInc/Roo-Code/pull/8820)): + +## QOL Improvements + +* Improve @ file search for large projects with a higher default index limit and respect for VS Code ignore settings; add the roo-cline.maximumIndexedFilesForFileSearch setting for tunable limits (thanks Naituw!) ([#8805](https://github.com/RooCodeInc/Roo-Code/pull/8805)) +* Rename MCP “Errors” tab to “Logs” to match mixed-level messages; clearer empty state (“No logs yet”) ([#8894](https://github.com/RooCodeInc/Roo-Code/pull/8894)) +* Custom modes now load from your configured storage path and persist after restart (thanks elianiva!) ([#8499](https://github.com/RooCodeInc/Roo-Code/pull/8499)) +* Breaking: Removed search_and_replace tool. Use [apply_diff](/advanced-usage/available-tools/apply-diff) or [insert_content](/advanced-usage/available-tools/insert-content) instead. Migration notes below. ([#8892](https://github.com/RooCodeInc/Roo-Code/pull/8892)) +* Clarified VS Code LM API integration warning in Settings to reduce “model not supported” errors ([#8493](https://github.com/RooCodeInc/Roo-Code/pull/8493)) + +## Bug Fixes + +* Reasoning effort selection now auto-enables reasoning when needed so UI and behavior stay in sync ([#8890](https://github.com/RooCodeInc/Roo-Code/pull/8890)) +* Reduce noisy cloud-agent exceptions by suppressing repeated auth messages ([#8577](https://github.com/RooCodeInc/Roo-Code/pull/8577)) +* Prevent MCP server restart when toggling “Always allow” for MCP tools (thanks heyseth!) ([#8633](https://github.com/RooCodeInc/Roo-Code/pull/8633)) +* Reuse existing Qdrant index after outages to avoid full reindex and cut restart time (thanks heyseth, jaroslaw-weber!) ([#8588](https://github.com/RooCodeInc/Roo-Code/pull/8588)) +* Make code index initialization non‑blocking at activation to avoid startup hangs (thanks cjlawson02!) ([#8933](https://github.com/RooCodeInc/Roo-Code/pull/8933)) +* Honor maxReadFileLine across code definition listing and file reads to prevent context overflows (thanks elianiva, chenxluo!) ([#8509](https://github.com/RooCodeInc/Roo-Code/pull/8509)) +* Prevent infinite retry loop when canceling during auto‑retry (thanks mini2s!) ([#8902](https://github.com/RooCodeInc/Roo-Code/pull/8902)) +* Gate auth‑driven Roo model refresh to the active provider only to reduce background work ([#8915](https://github.com/RooCodeInc/Roo-Code/pull/8915)) + +## Provider Updates + +* Cerebras: add zai‑glm‑4.6 and change default to gpt‑oss‑120b; deprecate qwen‑3‑coder models ([#8920](https://github.com/RooCodeInc/Roo-Code/pull/8920)) \ No newline at end of file diff --git a/docs/update-notes/v3.29.5.mdx b/docs/update-notes/v3.29.5.mdx new file mode 100644 index 00000000..b9006a36 --- /dev/null +++ b/docs/update-notes/v3.29.5.mdx @@ -0,0 +1,19 @@ +--- +description: Reliability fixes for code search with Qdrant and more accurate cost/token usage metrics across providers. +keywords: + - roo code 3.29.5 + - bug fixes + - qdrant + - codebase search +image: /img/social-share.jpg +--- + +# Roo Code 3.29.5 Release Notes (2025-11-01) + +This patch improves code search reliability with Qdrant and ensures accurate usage and cost reporting across providers. + + +## Bug Fixes + +* Qdrant codebase_search reliability: Indexes the type field to prevent errors when using Qdrant hosted instances (thanks rossdonald!) ([#8964](https://github.com/RooCodeInc/Roo-Code/pull/8964)) +* Accurate cost and token tracking across providers: Ensures consistent usage metrics and billing in Roo Code Cloud dashboards ([#8954](https://github.com/RooCodeInc/Roo-Code/pull/8954)) \ No newline at end of file diff --git a/docs/update-notes/v3.29.mdx b/docs/update-notes/v3.29.mdx new file mode 100644 index 00000000..ccafdb24 --- /dev/null +++ b/docs/update-notes/v3.29.mdx @@ -0,0 +1,67 @@ +--- +description: Combined notes for the 3.29 release cycle. Highlights MiniMax provider, large-repo @ file search improvements, UI/UX refinements, and stability fixes. +keywords: + - roo code 3.29 + - release notes + - combined +image: /img/social-share.jpg +--- + +# Roo Code 3.29 Release Notes (2025-10-31) + +This combined summary covers the 3.29.x releases. It introduces the MiniMax provider, improves @ file search on large projects, clarifies the Logs tab and VS Code LM guidance, and includes multiple stability fixes. + +## Feature Highlights + +* Cloud Agent: PR Reviewer for instant high‑quality code reviews (learn more: https://roocode.com/reviewer) +* Intelligent file reading with token‑budget management and a 100 KB preview for very large files ([#8789](https://github.com/RooCodeInc/Roo-Code/pull/8789)) +* MiniMax provider for coding and reasoning with strong Chinese language support and competitive pricing (thanks Maosghoul!) ([#8820](https://github.com/RooCodeInc/Roo-Code/pull/8820)) +* Faster and more reliable @ file search on large repositories with configurable indexing limits and respect for VS Code ignore settings (thanks Naituw!) ([#8805](https://github.com/RooCodeInc/Roo-Code/pull/8805)) +* MCP tab renamed to “Logs” to match mixed-level messages (thanks hannesrudolph!) ([#8894](https://github.com/RooCodeInc/Roo-Code/pull/8894)) + +## QOL Improvements + +* Improve @ file search for large projects; add the roo-cline.maximumIndexedFilesForFileSearch setting with guidance on memory tradeoffs ([#8805](https://github.com/RooCodeInc/Roo-Code/pull/8805)) +* Rename MCP “Errors” tab to “Logs” to match info/warning/error messages; clearer empty state (“No logs yet”) ([#8894](https://github.com/RooCodeInc/Roo-Code/pull/8894)) +* Custom modes load from the configured storage path and persist across restarts (thanks elianiva!) ([#8499](https://github.com/RooCodeInc/Roo-Code/pull/8499)) +* Clarify VS Code LM API integration warning in Settings to reduce “model not supported” errors ([#8493](https://github.com/RooCodeInc/Roo-Code/pull/8493)) +* Keyboard shortcut: “Add to Context” moved to avoid Redo conflict; restores standard Redo ([#8653](https://github.com/RooCodeInc/Roo-Code/pull/8653)) +* Auto‑approve button responsiveness improved ([#8798](https://github.com/RooCodeInc/Roo-Code/pull/8798)) +* After “Add to Context,” input auto‑focuses and inserts two newlines to keep typing immediately ([#8877](https://github.com/RooCodeInc/Roo-Code/pull/8877)) + +## Bug Fixes + +* Reasoning effort selection auto-enables reasoning when needed so UI and behavior stay in sync ([#8890](https://github.com/RooCodeInc/Roo-Code/pull/8890)) +* Suppress noisy cloud‑agent exceptions for cleaner logs ([#8577](https://github.com/RooCodeInc/Roo-Code/pull/8577)) +* Prevent MCP server restart when toggling “Always allow” for MCP tools ([#8633](https://github.com/RooCodeInc/Roo-Code/pull/8633)) +* Reuse existing Qdrant index after outages to avoid full reindex and cut restart time ([#8588](https://github.com/RooCodeInc/Roo-Code/pull/8588)) +* Make code index initialization non‑blocking at activation to avoid startup hangs ([#8933](https://github.com/RooCodeInc/Roo-Code/pull/8933)) +* Honor maxReadFileLine across code definition listing and file reads to prevent context overflows ([#8509](https://github.com/RooCodeInc/Roo-Code/pull/8509)) +* Prevent infinite retry loop when canceling during auto‑retry ([#8902](https://github.com/RooCodeInc/Roo-Code/pull/8902)) +* Gate auth‑driven Roo model refresh to the active provider only to reduce background work ([#8915](https://github.com/RooCodeInc/Roo-Code/pull/8915)) +* search_files now respects .gitignore (including nested) by default; override when needed ([#8804](https://github.com/RooCodeInc/Roo-Code/pull/8804)) +* apply_diff export preserves trailing newlines (fix stripLineNumbers) ([#8227](https://github.com/RooCodeInc/Roo-Code/pull/8227)) +* Fix provider model loading race conditions to reduce timeouts and intermittent errors ([#8836](https://github.com/RooCodeInc/Roo-Code/pull/8836)) +* Rate limiting now uses a monotonic clock and enforces a hard cap to avoid long lockouts ([#8456](https://github.com/RooCodeInc/Roo-Code/pull/8456)) +* Messages typed during context condensing now send automatically once condensing finishes; per‑task queues no longer cross‑drain ([#8478](https://github.com/RooCodeInc/Roo-Code/pull/8478)) +* Checkpoint menu popover no longer clips long option text; items remain fully visible ([#8867](https://github.com/RooCodeInc/Roo-Code/pull/8867)) + +## Provider Updates + +* MiniMax provider added (MiniMax‑M2) with API key setup and model selection in UI ([#8820](https://github.com/RooCodeInc/Roo-Code/pull/8820)) +* Cerebras: add zai‑glm‑4.6 and change default to gpt‑oss‑120b; deprecate qwen‑3‑coder models ([#8920](https://github.com/RooCodeInc/Roo-Code/pull/8920)) +* Roo Code Cloud: dynamic model loading in the Model Picker with caching and graceful fallback ([#8728](https://github.com/RooCodeInc/Roo-Code/pull/8728)) +* Chutes AI: LongCat‑Flash‑Thinking‑FP8 models (200K, 128K) for longer coding sessions ([#8426](https://github.com/RooCodeInc/Roo-Code/pull/8426)) +* OpenRouter: add Anthropic Claude Haiku 4.5 to prompt‑caching models ([#8764](https://github.com/RooCodeInc/Roo-Code/pull/8764)) +* Z.ai (GLM‑4.5/4.6): “Enable reasoning” Deep Thinking toggle in UI ([#8872](https://github.com/RooCodeInc/Roo-Code/pull/8872)) +* Roo provider: Reasoning effort control to choose deeper thinking vs. faster/cheaper ([#8874](https://github.com/RooCodeInc/Roo-Code/pull/8874)) +* OpenAI‑compatible: centralized ~20% maxTokens cap to prevent context overruns ([#8822](https://github.com/RooCodeInc/Roo-Code/pull/8822)) +* Gemini: updated model list and “latest” aliases for easier selection ([#8486](https://github.com/RooCodeInc/Roo-Code/pull/8486)) + +## Documentation Updates + +* New: [MiniMax Provider](/providers/minimax) +* Update: VS Code LM guidance [VS Code LM](/providers/vscode-lm) +* Update: Custom Modes path and persistence [Custom Modes](/features/custom-modes) +* Update: Tools truncation behavior [list_code_definition_names](/advanced-usage/available-tools/list-code-definition-names) and [read_file](/advanced-usage/available-tools/read-file) +* Update: MCP UI wording to “Logs” [Using MCP in Roo](/features/mcp/using-mcp-in-roo) \ No newline at end of file diff --git a/docs/update-notes/v3.30.0.mdx b/docs/update-notes/v3.30.0.mdx new file mode 100644 index 00000000..e6e528ff --- /dev/null +++ b/docs/update-notes/v3.30.0.mdx @@ -0,0 +1,46 @@ +--- +description: Roo Code 3.30.0 adds OpenRouter embeddings, reasoning handling improvements, and stability/UI fixes. +keywords: + - roo code 3.30.0 + - new features + - bug fixes +image: /img/v3.30.0/v3.30.0.png +--- + +# Roo Code 3.30.0 Release Notes (2025-11-03) + +This patch introduces OpenRouter embeddings, improves reasoning handling, and delivers stability and UI fixes. + +Roo Code v3.30.0 Release + +## OpenRouter Embeddings + +We've added OpenRouter as an embedding provider for codebase indexing in Roo Code (thanks dmarkey!) ([#8973](https://github.com/RooCodeInc/Roo-Code/pull/8973)). + +OpenRouter currently supports 7 embedding models, including the top‑ranking Qwen3 Embedding. + +> **📚 Documentation**: See [Codebase Indexing](/features/codebase-indexing) and [OpenRouter Provider](/providers/openrouter). + +## QOL Improvements + +* Terminal settings cleanup with Inline as the default terminal and clearer options; shell integration default is disabled to reduce environment conflicts ([#8342](https://github.com/RooCodeInc/Roo-Code/pull/8342)) + +## Bug Fixes + +* Prevent message loss during queue drain race conditions to preserve message order and reliable chats ([#8955](https://github.com/RooCodeInc/Roo-Code/pull/8955)) +* Requesty OAuth: auto-create a stable "Requesty" profile with a default model so sign-in completes reliably (thanks Thibault00!) ([#8699](https://github.com/RooCodeInc/Roo-Code/pull/8699)) +* Cancel during streaming no longer causes flicker; you can resume in place, input stays enabled, and the spinner stops deterministically ([#8986](https://github.com/RooCodeInc/Roo-Code/pull/8986)) +* Remove newline-only reasoning blocks from OpenAI-compatible responses for cleaner output and logs ([#8990](https://github.com/RooCodeInc/Roo-Code/pull/8990)) +* "Disable Terminal Shell Integration" now links to the correct documentation section ([#8997](https://github.com/RooCodeInc/Roo-Code/pull/8997)) + +## Misc Improvements + +* Add preserveReasoning flag to optionally include reasoning in API history so later turns can leverage prior reasoning; off by default and model‑gated ([#8934](https://github.com/RooCodeInc/Roo-Code/pull/8934)) + +## Provider Updates + +* Chutes: dynamic/router provider so new models appear automatically; safer error logging and temperature applied only when supported ([#8980](https://github.com/RooCodeInc/Roo-Code/pull/8980)) +* OpenAI‑compatible providers: handle `` reasoning tags in streaming for consistent reasoning chunk handling ([#8989](https://github.com/RooCodeInc/Roo-Code/pull/8989)) +* GLM 4.6: capture reasoning content in base OpenAI‑compatible provider during streaming ([#8976](https://github.com/RooCodeInc/Roo-Code/pull/8976)) +* Fireworks: add GLM‑4.6 to the model dropdown for stronger coding performance and longer context (thanks mmealman!) ([#8754](https://github.com/RooCodeInc/Roo-Code/pull/8754)) +* Fireworks: add MiniMax M2 with 204.8K context and 4K output tokens; correct pricing metadata (thanks dmarkey!) ([#8962](https://github.com/RooCodeInc/Roo-Code/pull/8962)) \ No newline at end of file diff --git a/docs/update-notes/v3.30.1.mdx b/docs/update-notes/v3.30.1.mdx new file mode 100644 index 00000000..b66bf567 --- /dev/null +++ b/docs/update-notes/v3.30.1.mdx @@ -0,0 +1,20 @@ +--- +description: Roo Code 3.30.1 fixes an embedding dimension mismatch and reverts a problematic cancel/resume change to restore stability. +keywords: + - roo code 3.30.1 + - bug fixes + - embeddings + - OpenRouter + - Mistral + - UI flicker +image: /img/social-share.jpg +--- +# Roo Code 3.30.1 Release Notes (2025-11-04) + +This patch improves reliability by fixing an embedding dimension mismatch and restoring stable cancel/resume behavior. + + +## Bug Fixes + +* Correct OpenRouter Mistral embedding dimension to 1536 to prevent vector size errors; existing Qdrant collections are recreated with the correct size for consistent similarity search ([#9028](https://github.com/RooCodeInc/Roo-Code/pull/9028)) +* Revert recent cancel/resume change that caused UI flicker and unreliable resumption, restoring the previous stable behavior while a safer fix is prepared ([#9032](https://github.com/RooCodeInc/Roo-Code/pull/9032)) \ No newline at end of file diff --git a/docs/update-notes/v3.30.2.mdx b/docs/update-notes/v3.30.2.mdx new file mode 100644 index 00000000..64b139e2 --- /dev/null +++ b/docs/update-notes/v3.30.2.mdx @@ -0,0 +1,42 @@ +--- +description: Bedrock Global Inference, expanded model support and limits, and QOL fixes for UI clarity and provider reliability. +keywords: + - roo code 3.30.2 + - new features + - bug fixes + - provider updates + - bedrock global inference + - claude sonnet 4.5 defaults + - qwen3 embeddings + - cerebras zai-glm-4.6 +image: /img/v3.30.2/v3.30.2.png +--- + +# Roo Code 3.30.2 Release Notes (2025-11-06) + +This patch adds Bedrock Global Inference, expands model options and limits, improves UI clarity, and fixes provider selection and auditing issues. + +Roo Code v3.30.2 Release + +## QOL Improvements + +* File path tooltips show full paths on hover across reads/edits, directory listings, and search, reducing confusion in narrow layouts (thanks da2ce7!) ([#9030](https://github.com/RooCodeInc/Roo-Code/pull/9030)) + +## Bug Fixes + +* Eliminates brief UI flicker when cancelling a task; the task view remains stable ([#9037](https://github.com/RooCodeInc/Roo-Code/pull/9037)) +* Pinned models remain visible at the top while scrolling long lists for quicker access (thanks XiaoYingYo!) ([#8813](https://github.com/RooCodeInc/Roo-Code/pull/8813)) +* Checkpoints always commit to Roo’s shadow repository even when GIT_DIR is set in Dev Containers, preventing leaks to external repos (thanks heyseth, nonsleepr!) ([#8811](https://github.com/RooCodeInc/Roo-Code/pull/8811)) +* Restores correct 32K maxTokens for Claude Opus 4.1 to avoid premature truncation on long generations (thanks kaveh-deriv!) ([#9046](https://github.com/RooCodeInc/Roo-Code/pull/9046)) +* Fixes dynamic provider model validation so switching providers uses a valid default model and avoids TypeErrors (thanks NotADev137!) ([#9054](https://github.com/RooCodeInc/Roo-Code/pull/9054)) +* AWS Bedrock requests now report full user agent details in CloudTrail for better auditing and troubleshooting (thanks ajjuaire!) ([#9043](https://github.com/RooCodeInc/Roo-Code/pull/9043)) + +## Misc Improvements + +* Optional pre-push full test run via RUN_TESTS_ON_PUSH=true in .env.local; default behavior keeps pushes fast (tests skipped) ([#9055](https://github.com/RooCodeInc/Roo-Code/pull/9055)) + +## Provider Updates + +* Sets Claude Sonnet 4.5 as the default where available across Anthropic, Bedrock, OpenRouter, Claude Code, and Unbound ([#8922](https://github.com/RooCodeInc/Roo-Code/pull/8922)) +* Updates Cerebras zai‑glm‑4.6 limits to 40,960 output tokens with a 131,072‑token context window; reflects faster response rates (~1,000 tokens/s) (thanks sebastiand-cerebras!) ([#9024](https://github.com/RooCodeInc/Roo-Code/pull/9024)) +* Adds Qwen3-Embedding-0.6B (1024‑dim) and Qwen3-Embedding-4B (2560‑dim) to OpenRouter for code indexing (thanks dmarkey!) ([#9060](https://github.com/RooCodeInc/Roo-Code/pull/9060)) \ No newline at end of file diff --git a/docs/update-notes/v3.30.3.mdx b/docs/update-notes/v3.30.3.mdx new file mode 100644 index 00000000..9eb747d7 --- /dev/null +++ b/docs/update-notes/v3.30.3.mdx @@ -0,0 +1,37 @@ +--- +description: Adds Moonshot kimi-k2-thinking and MiniMax-M2-Stable with prompt caching, smoother mode import flow, and multiple UI and reliability fixes. +keywords: + - roo code 3.30.3 + - new features + - bug fixes + - provider updates +image: /img/v3.30.3/v3.30.3.png +--- + +# Roo Code 3.30.3 Release Notes (2025-11-07) + +This release adds support for Moonshot's newest model, kimi‑k2‑thinking, and includes several UI improvements and a few bug fixes. + +Roo Code v3.30.3 Release + +## New models and caching: Moonshot kimi‑k2‑thinking and MiniMax‑M2‑Stable + +kimi‑k2‑thinking: Moonshot's latest & best‑performing model. Plus MiniMax‑M2‑Stable with prompt caching to cut latency and cost on repeated prompts (thanks nokaka!) ([#9079](https://github.com/RooCodeInc/Roo-Code/pull/9079), [#9072](https://github.com/RooCodeInc/Roo-Code/pull/9072)). + +## UI and workflow improvements + +We’ve batched several UX updates to make everyday use smoother ([#9057](https://github.com/RooCodeInc/Roo-Code/pull/9057), [#8932](https://github.com/RooCodeInc/Roo-Code/pull/8932), [#8965](https://github.com/RooCodeInc/Roo-Code/pull/8965), [#9003](https://github.com/RooCodeInc/Roo-Code/pull/9003)): + +- Home screen: cleaner left‑aligned layout, clearer recent history (up to 4), tips auto‑dismiss after 6 tasks, improved spacing on large windows. +- Diff view in chat: unified format with line numbers and inline added/removed counts for faster, more accurate reviews. +- Settings clarity: setting Error & Repetition Limit to 0 explicitly disables that safety mechanism, avoiding unexpected auto‑stops. +- Mode import flow: after importing a mode, Roo auto‑switches to it; if the mode data hasn’t loaded yet, Roo briefly falls back to Architect mode to avoid UI desync. + +Together these reduce clicks, improve readability, and make behavior more predictable. + +## Bug Fixes + +* Auto‑retry on empty assistant response to prevent task cancellations (reporter: Akillatech) ([#9083](https://github.com/RooCodeInc/Roo-Code/pull/9083)) +* Use “system” role for non‑streaming OpenAI‑compatible requests to prevent provider errors (reporter: whitfin) ([#8216](https://github.com/RooCodeInc/Roo-Code/pull/8216)) +* Prevent notification sound when messages are queued to auto‑continue ([#8540](https://github.com/RooCodeInc/Roo-Code/pull/8540)) + diff --git a/docs/update-notes/v3.30.mdx b/docs/update-notes/v3.30.mdx new file mode 100644 index 00000000..78aed709 --- /dev/null +++ b/docs/update-notes/v3.30.mdx @@ -0,0 +1,67 @@ +--- +description: Adds OpenRouter embeddings, Bedrock Global Inference, provider defaults/limits updates, and stability/UI fixes. +keywords: + - roo code 3.30 + - new features + - bug fixes +image: /img/v3.30.0/v3.30.0.png +--- + +# Roo Code 3.30 Release Notes (2025-11-03) + +This release adds OpenRouter embeddings and Bedrock Global Inference, updates provider defaults and limits, and delivers stability and UI improvements. + +Roo Code v3.30 Release + +## OpenRouter Embeddings + +We've added OpenRouter as an embedding provider for codebase indexing in Roo Code (thanks dmarkey!) ([#8973](https://github.com/RooCodeInc/Roo-Code/pull/8973)). + +OpenRouter currently supports 7 embedding models, including the top‑ranking Qwen3 Embedding. + +> **📚 Documentation**: See [Codebase Indexing](/features/codebase-indexing) and [OpenRouter Provider](/providers/openrouter). + +## QOL Improvements + +* Terminal settings cleanup with Inline as the default terminal and clearer options; shell integration default is disabled to reduce environment conflicts ([#8342](https://github.com/RooCodeInc/Roo-Code/pull/8342)) +* File path tooltips show full paths on hover across reads/edits, directory listings, and search, reducing confusion in narrow layouts (thanks da2ce7!) ([#9030](https://github.com/RooCodeInc/Roo-Code/pull/9030)) +* Home screen visuals refined for clarity and space usage ([#9057](https://github.com/RooCodeInc/Roo-Code/pull/9057)) +* Chat diff appearance is clearer and easier to scan ([#8932](https://github.com/RooCodeInc/Roo-Code/pull/8932)) +* Settings copy clarifies that an Error & Repetition Limit of 0 disables the mechanism ([#8965](https://github.com/RooCodeInc/Roo-Code/pull/8965)) + +## Bug Fixes + +* Prevent message loss during queue drain race conditions to preserve message order and reliable chats ([#8955](https://github.com/RooCodeInc/Roo-Code/pull/8955)) +* Requesty OAuth: auto-create a stable "Requesty" profile with a default model so sign-in completes reliably (thanks Thibault00!) ([#8699](https://github.com/RooCodeInc/Roo-Code/pull/8699)) +* Cancel during streaming no longer causes flicker; you can resume in place, input stays enabled, and the spinner stops deterministically ([#8986](https://github.com/RooCodeInc/Roo-Code/pull/8986)) +* Remove newline-only reasoning blocks from OpenAI-compatible responses for cleaner output and logs ([#8990](https://github.com/RooCodeInc/Roo-Code/pull/8990)) +* "Disable Terminal Shell Integration" now links to the correct documentation section ([#8997](https://github.com/RooCodeInc/Roo-Code/pull/8997)) +* Correct OpenRouter Mistral embedding dimension to 1536 to prevent vector size errors; existing Qdrant collections are recreated with the correct size for consistent similarity search ([#9028](https://github.com/RooCodeInc/Roo-Code/pull/9028)) +* Revert the recent cancel/resume change that caused UI flicker and unreliable resumption, restoring the previous stable behavior ([#9032](https://github.com/RooCodeInc/Roo-Code/pull/9032)) +* Eliminate UI flicker during task cancellation; the task view remains stable ([#9037](https://github.com/RooCodeInc/Roo-Code/pull/9037)) +* Keep pinned models fixed at the top of long lists for faster access (thanks XiaoYingYo!) ([#8813](https://github.com/RooCodeInc/Roo-Code/pull/8813)) +* Ensure Checkpoints commit to Roo’s shadow repository even when GIT_DIR is set in Dev Containers (thanks nonsleepr!) ([#8811](https://github.com/RooCodeInc/Roo-Code/pull/8811)) +* Restore correct 32K maxTokens for Claude Opus 4.1 to avoid premature truncation (thanks kaveh-deriv!) ([#9046](https://github.com/RooCodeInc/Roo-Code/pull/9046)) +* Fix dynamic provider model validation so provider switches use a valid default model without TypeErrors (thanks NotADev137!) ([#9054](https://github.com/RooCodeInc/Roo-Code/pull/9054)) +* Include full user agent details in AWS Bedrock requests for better auditing and troubleshooting (thanks ajjuaire!) ([#9043](https://github.com/RooCodeInc/Roo-Code/pull/9043)) +* Auto‑retry on empty assistant response to prevent task cancellations (reporter: Akillatech) ([#9083](https://github.com/RooCodeInc/Roo-Code/pull/9083)) +* Use “system” role for non‑streaming OpenAI‑compatible requests to prevent provider errors (reporter: whitfin) ([#8216](https://github.com/RooCodeInc/Roo-Code/pull/8216)) +* Prevent notification sound when messages are queued to auto‑continue ([#8540](https://github.com/RooCodeInc/Roo-Code/pull/8540)) + +## Misc Improvements + +* Add preserveReasoning flag to optionally include reasoning in API history so later turns can leverage prior reasoning; off by default and model‑gated ([#8934](https://github.com/RooCodeInc/Roo-Code/pull/8934)) +* Optional pre-push full test run via RUN_TESTS_ON_PUSH=true in .env.local; default behavior keeps pushes fast (tests skipped) ([#9055](https://github.com/RooCodeInc/Roo-Code/pull/9055)) + +## Provider Updates + +* Chutes: dynamic/router provider so new models appear automatically; safer error logging and temperature applied only when supported ([#8980](https://github.com/RooCodeInc/Roo-Code/pull/8980)) +* OpenAI‑compatible providers: handle `` reasoning tags in streaming for consistent reasoning chunk handling ([#8989](https://github.com/RooCodeInc/Roo-Code/pull/8989)) +* GLM 4.6: capture reasoning content in base OpenAI‑compatible provider during streaming ([#8976](https://github.com/RooCodeInc/Roo-Code/pull/8976)) +* Fireworks: add GLM‑4.6 to the model dropdown for stronger coding performance and longer context (thanks mmealman!) ([#8754](https://github.com/RooCodeInc/Roo-Code/pull/8754)) +* Fireworks: add MiniMax M2 with 204.8K context and 4K output tokens; correct pricing metadata (thanks dmarkey!) ([#8962](https://github.com/RooCodeInc/Roo-Code/pull/8962)) +* Set Claude Sonnet 4.5 as the default where available across Anthropic, Bedrock, OpenRouter, Claude Code, and Unbound ([#8922](https://github.com/RooCodeInc/Roo-Code/pull/8922)) +* Cerebras zai‑glm‑4.6: 40,960 max output tokens and a 131,072‑token context window; faster responses (~1,000 tok/s) (thanks sebastiand-cerebras!) ([#9024](https://github.com/RooCodeInc/Roo-Code/pull/9024)) +* OpenRouter: add Qwen3‑Embedding‑0.6B (1024‑dim) and 4B (2560‑dim) for code indexing (thanks dmarkey!) ([#9060](https://github.com/RooCodeInc/Roo-Code/pull/9060)) +* Moonshot: add kimi‑k2‑thinking (262k context) ([#9079](https://github.com/RooCodeInc/Roo-Code/pull/9079)) +* MiniMax: add MiniMax‑M2‑Stable and enable prompt caching for MiniMax models ([#9072](https://github.com/RooCodeInc/Roo-Code/pull/9072)) \ No newline at end of file diff --git a/docs/update-notes/v3.31.0.mdx b/docs/update-notes/v3.31.0.mdx new file mode 100644 index 00000000..ffa1322d --- /dev/null +++ b/docs/update-notes/v3.31.0.mdx @@ -0,0 +1,39 @@ +--- +description: Focused UX, logging, and stability improvements for Roo Code tasks, providers, and context handling. +keywords: + - roo code 3.31.0 + - new features + - bug fixes + - stability + - roo code cloud +image: /img/v3.31.0/v3.31.0.png +--- + +# Roo Code 3.31.0 Release Notes (2025-11-08) + +This release refines task and to-do workflows, improves Roo Code Cloud diagnostics, tightens OpenRouter routing, and delivers key stability fixes for long-running sessions. + +Roo Code v3.31.0 Release + +## Integrated task header and to-do list + +The task header and to-do list now work together so you can see progress at a glance without juggling extra UI: + +- Integrated to-dos directly into the task header so active work is always visible. +- Show only relevant to-do changes in chat instead of noisy full-list updates. +- Simplified header layout to reduce distractions while keeping key controls in reach. + + +## QOL Improvements + +- **Less caffeinated welcome animation** ([#9104](https://github.com/RooCodeInc/Roo-Code/pull/9104)): Smooths the Roo hover animation to be less distracting during long sessions while keeping the interface responsive. + +## Bug Fixes + +- **Respect custom OpenRouter-compatible URLs everywhere** ([#8951](https://github.com/RooCodeInc/Roo-Code/pull/8951)): Ensures all OpenRouter-related operations (model lists, pricing, image generation, CSP checks) consistently use your configured custom base URL for better privacy, compliance, and predictable billing (thanks sstraus!). +- **Prevent crashes from null streaming chunks** ([#9105](https://github.com/RooCodeInc/Roo-Code/pull/9105)): Handles provider responses with null choices arrays correctly, improving stability for long-running generations across MiniMax M2 Stable and other OpenAI-compatible endpoints. (Contributors: daniel-lxs) +- **Stop unwanted context condensing on settings save** ([#9108](https://github.com/RooCodeInc/Roo-Code/pull/9108)): Saving settings no longer triggers early context condensing when your provider/model is unchanged, so active tasks retain history until thresholds are truly reached. (Contributors: daniel-lxs, hannesrudolph) + +## Misc Improvements + +- Improved Roo Code Cloud error logging to capture richer context (status codes, response bodies, and request details), making it easier to understand and resolve provider and configuration issues. ([#9098](https://github.com/RooCodeInc/Roo-Code/pull/9098)) \ No newline at end of file diff --git a/docs/update-notes/v3.31.1.mdx b/docs/update-notes/v3.31.1.mdx new file mode 100644 index 00000000..4df81c69 --- /dev/null +++ b/docs/update-notes/v3.31.1.mdx @@ -0,0 +1,31 @@ +--- +description: New polished button UI, smoother auto-approvals, safer cloud execution, model profile sync fix, and a new IPC command for posting messages to the current task. +keywords: + - roo code 3.31.1 + - new features + - bug fixes +image: /img/v3.31.1/v3.31.1.png +--- + +# Roo Code 3.31.1 Release Notes (2025-11-12) + +This release highlights a refreshed button look across the UI, improves auto-approvals reliability, prevents cloud tasks from stalling, keeps model profiles in sync on switch, and adds an IPC command to post messages into the current task. + +Roo Code v3.31.1 Release + +## New Button Look + +A consistent, rounded Button component with clear variants and sizes now appears across the UI. The result is a cleaner, more modern interface with predictable interactions where buttons are used ([#9150](https://github.com/RooCodeInc/Roo-Code/pull/9150)). + +## Features + +* IPC command to send messages (text/images) to the current task for automations and richer context ([#9149](https://github.com/RooCodeInc/Roo-Code/pull/9149)) + +## QOL Improvements + +* Move auto-approval logic from ChatView to Task for more reliable handling and clearer UI safeguards ([#9157](https://github.com/RooCodeInc/Roo-Code/pull/9157)) + +## Bug Fixes + +* Prevent command_output asks from blocking in cloud/headless environments, so tasks no longer stall ([#9152](https://github.com/RooCodeInc/Roo-Code/pull/9152)) +* Ensure model switch re-applies the selected profile so task configuration stays in sync ([#9181](https://github.com/RooCodeInc/Roo-Code/pull/9181)) \ No newline at end of file diff --git a/docs/update-notes/v3.31.2.mdx b/docs/update-notes/v3.31.2.mdx new file mode 100644 index 00000000..55ac0c70 --- /dev/null +++ b/docs/update-notes/v3.31.2.mdx @@ -0,0 +1,28 @@ +--- +description: Stateless continuity via OpenAI Responses API, faster settings saves, and key fixes for API profiles, auto-approval, and Issue Fixer. +keywords: + - roo code 3.31.2 + - new features + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.31.2 Release Notes (2025-11-13) + +This patch improves stateless conversation continuity, speeds up settings updates, and fixes API profiles, Issue Fixer, and auto‑approval behavior. + + +## QOL Improvements + +* Batched settings updates: saves apply faster with less UI flicker across Settings, Auto Approve, Command Execution, and MCP toggles ([#9165](https://github.com/RooCodeInc/Roo-Code/pull/9165)) +* README badges: switched to badgen.net so badges render reliably; Installs and Rating are visible at a glance ([#9200](https://github.com/RooCodeInc/Roo-Code/pull/9200)) + +## Bug Fixes + +* API Profiles: apply updated headers, baseUrl, service tier, and reasoning budget even when provider/model stay the same ([#9210](https://github.com/RooCodeInc/Roo-Code/pull/9210)) +* Auto-approval: include MCP server state so tool auto-approval works as configured (thanks bozoweed!) ([#9199](https://github.com/RooCodeInc/Roo-Code/pull/9199)) +* Issue Fixer: migrated to GitHub REST + ProjectsV2 to resolve sync errors and restore reliable triage ([#9207](https://github.com/RooCodeInc/Roo-Code/pull/9207)) + +## Provider Updates + +* Conversation continuity via encrypted reasoning items (OpenAI Responses API): preserves context locally while requests remain stateless for better privacy and reliability; removes previous_response_id complexity ([#9203](https://github.com/RooCodeInc/Roo-Code/pull/9203)) diff --git a/docs/update-notes/v3.31.3.mdx b/docs/update-notes/v3.31.3.mdx new file mode 100644 index 00000000..84ac9333 --- /dev/null +++ b/docs/update-notes/v3.31.3.mdx @@ -0,0 +1,23 @@ +--- +description: Patch fixes for OpenAI native encrypted reasoning and Anthropic token normalization, plus terminology cleanup for context management. +keywords: + - roo code 3.31.3 + - new features + - bug fixes +image: /img/v3.31.3/v3.31.3.png +--- + +# Roo Code 3.31.3 Release Notes (2025-11-13) + +This patch fixes OpenAI native encrypted reasoning handling, corrects Anthropic input token normalization, and cleans up context management terminology. + +Roo Code v3.31.3 Release + +## Bug Fixes + +* OpenAI native encrypted reasoning parameters: Restores usability of gpt-5-chat-latest by including encrypted reasoning only when a reasoning effort is set and enforcing medium-only verbosity to prevent invalid parameter errors (thanks politsin!) ([#9231](https://github.com/RooCodeInc/Roo-Code/pull/9231)) +* Roo Anthropic token normalization: Prevents double-counting cached tokens so usage metrics, cost estimates, and context calculations are accurate across providers ([#9224](https://github.com/RooCodeInc/Roo-Code/pull/9224)) + +## Misc Improvements + +* Terminology cleanup for context handling: Rename "sliding window" to "context management" and unify the code path under a single entry point, manageContext, for clearer behavior and documentation alignment ([#9206](https://github.com/RooCodeInc/Roo-Code/pull/9206)) \ No newline at end of file diff --git a/docs/update-notes/v3.31.mdx b/docs/update-notes/v3.31.mdx new file mode 100644 index 00000000..3d6be709 --- /dev/null +++ b/docs/update-notes/v3.31.mdx @@ -0,0 +1,55 @@ +--- +description: Combined notes for Roo Code 3.31, highlighting task UX refinements, better diagnostics, and key stability fixes. +keywords: + - roo code 3.31 + - release notes + - combined updates + - bug fixes + - stability +image: /img/v3.31.0/v3.31.0.png +--- + +# Roo Code 3.31 Release Notes (2025-11-08) + +Roo Code 3.31 focuses on a smoother task and to-do experience, clearer diagnostics, safer routing for custom endpoints, and more resilient long-running generations. + +Roo Code v3.31 Release + +## Integrated task header and to-do list + +The task header and to-do list now work together so you can see progress at a glance without juggling extra UI: + +- Integrated to-dos directly into the task header so active work is always visible. (From [#9096](https://github.com/RooCodeInc/Roo-Code/pull/9096)) +- Show only relevant to-do changes in chat instead of noisy full-list updates, making progress easier to track. (From [#9096](https://github.com/RooCodeInc/Roo-Code/pull/9096)) +- Simplified header layout to reduce distractions while keeping key controls in reach. (From [#9096](https://github.com/RooCodeInc/Roo-Code/pull/9096)) + +## QOL Improvements + +- **Less caffeinated welcome animation** ([#9104](https://github.com/RooCodeInc/Roo-Code/pull/9104)): Smooths the Roo hover animation so it is less distracting during long sessions while keeping the interface responsive. +- **Auto-approval is now handled by Task** ([#9157](https://github.com/RooCodeInc/Roo-Code/pull/9157)): Centralizes approval logic for commands, tools, MCP, and subtasks, reducing blocked prompts and making safeguards clearer. +- **Consistent rounded buttons across the UI** ([#9150](https://github.com/RooCodeInc/Roo-Code/pull/9150)): New Button component with variants/sizes delivers a cleaner, more predictable interface. +- **Batched settings updates** ([#9165](https://github.com/RooCodeInc/Roo-Code/pull/9165)): Applies multiple setting changes in one go, making saves faster and reducing UI flicker across Settings, Auto Approve, Command Execution, and MCP toggles. +- **README badges render reliably** ([#9200](https://github.com/RooCodeInc/Roo-Code/pull/9200)): Switched to badgen.net so badges are consistently visible; Installs and Rating are clear at a glance. + +## Bug Fixes + +- **Respect custom OpenRouter-compatible URLs everywhere** ([#8951](https://github.com/RooCodeInc/Roo-Code/pull/8951)): Ensures all OpenRouter-related operations (model lists, pricing, image generation, CSP checks) consistently use your configured custom base URL for better privacy, compliance, and predictable billing (thanks sstraus!). +- **Prevent crashes from null streaming chunks** ([#9105](https://github.com/RooCodeInc/Roo-Code/pull/9105)): Handles provider responses with null choices arrays correctly, improving stability for long-running generations across MiniMax M2 Stable and other OpenAI-compatible endpoints. +- **Stop unwanted context condensing on settings save** ([#9108](https://github.com/RooCodeInc/Roo-Code/pull/9108)): Saving settings no longer triggers early context condensing when your provider/model is unchanged, so active tasks retain history until thresholds are truly reached. +- **Cloud/headless: prevent command_output from blocking** ([#9152](https://github.com/RooCodeInc/Roo-Code/pull/9152)): Non‑blocking behavior avoids stalled tasks and intermittent timeouts. +- **Model switch re‑applies selected profile** ([#9181](https://github.com/RooCodeInc/Roo-Code/pull/9181)): Ensures task configuration stays in sync when switching providers/models. +- **API Profiles apply immediately when provider/model unchanged** ([#9210](https://github.com/RooCodeInc/Roo-Code/pull/9210)): Updates headers, baseUrl, service tier, and reasoning budgets without requiring a model change. +- **Auto‑approval honors MCP server state** ([#9199](https://github.com/RooCodeInc/Roo-Code/pull/9199)): Restores expected tool auto‑approval behavior (thanks bozoweed!). +- **Issue Fixer reliability via REST + ProjectsV2** ([#9207](https://github.com/RooCodeInc/Roo-Code/pull/9207)): Resolves sync errors and restores dependable triage. +- **OpenAI (native) encrypted reasoning handling** ([#9231](https://github.com/RooCodeInc/Roo-Code/pull/9231)): Includes encrypted reasoning only when a reasoning effort is set and enforces medium‑only verbosity for gpt‑5‑chat‑latest to prevent invalid parameter errors (thanks politsin!). +- **Roo Anthropic input token normalization** ([#9224](https://github.com/RooCodeInc/Roo-Code/pull/9224)): Prevents double‑counting cached tokens so usage metrics, cost estimates, and context calculations are accurate across providers. + +## Misc Improvements + +- **Roo Code Cloud error logging** ([#9098](https://github.com/RooCodeInc/Roo-Code/pull/9098)): Captures richer context for failed requests (status codes, response bodies, and request details), making it easier to understand and resolve provider and configuration issues. +- **IPC: send messages to the current task** ([#9149](https://github.com/RooCodeInc/Roo-Code/pull/9149)): Programmatically post text and images into an active task for automations and richer context. +- **Context management terminology** ([#9206](https://github.com/RooCodeInc/Roo-Code/pull/9206)): Rename “sliding window” to “context management” and unify handling under a single entry point for clearer behavior and documentation alignment. + +## Provider Updates + +- **Stateless conversation continuity via OpenAI Responses API** ([#9203](https://github.com/RooCodeInc/Roo-Code/pull/9203)): Preserves context locally with encrypted reasoning items while requests remain stateless, improving privacy and reliability and simplifying behavior (no previous_response_id). \ No newline at end of file diff --git a/docs/update-notes/v3.32.0.mdx b/docs/update-notes/v3.32.0.mdx new file mode 100644 index 00000000..f1cd1b2a --- /dev/null +++ b/docs/update-notes/v3.32.0.mdx @@ -0,0 +1,32 @@ +--- +description: Roo Code 3.32.0 adds GPT-5.1 models, enables OpenAI Responses prompt caching, fixes the share button, and improves release-note traceability. +keywords: + - roo code 3.32.0 + - gpt-5.1 + - openai prompt caching + - reasoning summaries + - bug fixes +image: /img/v3.32.0/v3.32.0.png +--- + +# Roo Code 3.32.0 Release Notes (2025-11-14) + +This release adds GPT-5.1 models, enables OpenAI Responses prompt caching, fixes the share button, and improves release-note traceability. + +Roo Code v3.32.0 Release + +## Features & Improvements + +* **GPT-5.1 in Roo Code** ([#9252](https://github.com/RooCodeInc/Roo-Code/pull/9252), [#9258](https://github.com/RooCodeInc/Roo-Code/pull/9258), [#9261](https://github.com/RooCodeInc/Roo-Code/pull/9261), [#9259](https://github.com/RooCodeInc/Roo-Code/pull/9259)): Adds all new GPT-5.1 models to the OpenAI Native provider with extended 24‑hour prompt caching support, all new GPT-5.1 models and overall support for 51 throughout other supported providers. + + - **Adaptive reasoning**: GPT-5.1 includes adaptive reasoning that adjusts effort based on task complexity for faster and more efficient results. + - **Better tone and instruction following**: GPT-5.1 provides improved tone control and stronger instruction following so outputs match your brand voice more naturally. + - **Stronger software engineering performance**: GPT-5.1 delivers more reliable software engineering performance with better code generation, stronger edge case handling, and improved logic planning. + +## Bug Fixes + +- **Share button works reliably again**: Fixes the Share button so you can open the share popover and send shared tasks and messages without failures ([#9253](https://github.com/RooCodeInc/Roo-Code/pull/9253)). + +### Misc + +- **Release notes are easier to audit**: The internal release guide now requires PR numbers in release notes so each documented change can be traced back to its source PR ([#9236](https://github.com/RooCodeInc/Roo-Code/pull/9236)). \ No newline at end of file diff --git a/docs/update-notes/v3.32.1.mdx b/docs/update-notes/v3.32.1.mdx new file mode 100644 index 00000000..d87180fc --- /dev/null +++ b/docs/update-notes/v3.32.1.mdx @@ -0,0 +1,31 @@ +--- +description: Improves reliability for OpenAI Native and native tool protocol by fixing reasoning handling, duplicate tool blocks, and cancellation behavior. +keywords: + - roo code 3.32.1 + - new features + - bug fixes +image: /img/v3.32.1/v3.32.1.png +--- + +# Roo Code 3.32.1 Release Notes (2025-11-14) + +This patch improves reliability for OpenAI Native and native tool protocol by fixing reasoning handling, duplicate tool blocks, and cancellation behavior. + +Roo Code v3.32.1 Release + +## Bug Fixes + +* **Keep OpenAI Native reasoning stable during condensing** ([#9263](https://github.com/RooCodeInc/Roo-Code/pull/9263)) + Keeps encrypted reasoning blocks paired with the assistant messages that produced them so OpenAI Native condensing no longer throws errors and long-running tasks with reasoning stay stable even as history is trimmed. + +* **Prevent duplicate tool_result blocks for read_file in native protocol** ([#9272](https://github.com/RooCodeInc/Roo-Code/pull/9272)) + Ensures read_file emits exactly one tool_result per tool_call_id in native protocol, preventing 400 errors while still surfacing clear error messages to both the agent and the user. + +* **Fix duplicate tool blocks causing "tool has already been used" errors** ([#9275](https://github.com/RooCodeInc/Roo-Code/pull/9275)) + Stops XML protocol runs from merging duplicate tool blocks into assistant messages so each tool block executes only once per turn and tool-driven tasks no longer get stuck behind false “tool has already been used” errors. + +* **Make OpenAI Native cancellation stop streaming immediately** ([#9276](https://github.com/RooCodeInc/Roo-Code/pull/9276)) + Adds an abort controller so cancelling an OpenAI Native request stops streaming promptly, avoiding extra tokens after cancellation and reducing wasted usage. + +* **Disable XML parser for native tool protocol** ([#9277](https://github.com/RooCodeInc/Roo-Code/pull/9277)) + Bypasses XML parsing when toolProtocol is set to native and relies on structured tool_call chunks instead, avoiding mis-parsed XML-like snippets and making native tool runs more reliable—especially for models that sometimes mix formats. diff --git a/docs/update-notes/v3.32.mdx b/docs/update-notes/v3.32.mdx new file mode 100644 index 00000000..3afcfb8e --- /dev/null +++ b/docs/update-notes/v3.32.mdx @@ -0,0 +1,41 @@ +--- +description: Combined notes for Roo Code 3.32, including GPT-5.1 model support, OpenAI Responses prompt caching, and reliability fixes for OpenAI Native and native tools. +keywords: + - roo code 3.32 + - release notes + - gpt-5.1 + - openai prompt caching + - bug fixes +image: /img/v3.32.0/v3.32.0.png +--- + +# Roo Code 3.32 Release Notes (2025-11-14) + +Roo Code 3.32 combines GPT-5.1 model support and OpenAI Responses prompt caching with reliability fixes for OpenAI Native and native tool protocol. + +Roo Code v3.32 Release + +## GPT-5.1 models and OpenAI prompt caching + +* **GPT-5.1 in Roo Code** ([#9252](https://github.com/RooCodeInc/Roo-Code/pull/9252), [#9258](https://github.com/RooCodeInc/Roo-Code/pull/9258), [#9261](https://github.com/RooCodeInc/Roo-Code/pull/9261), [#9259](https://github.com/RooCodeInc/Roo-Code/pull/9259)) + Adds the new GPT-5.1 models across supported providers, with extended 24‑hour prompt caching support in the OpenAI Native provider and improved overall software‑engineering performance. + +## Bug Fixes + +* **Share button works reliably again** ([#9253](https://github.com/RooCodeInc/Roo-Code/pull/9253)) + Fixes the Share button so you can open the share popover and send shared tasks and messages without failures. + +* **Keep OpenAI Native reasoning stable during condensing** ([#9263](https://github.com/RooCodeInc/Roo-Code/pull/9263)) + Keeps encrypted reasoning blocks paired with the assistant messages that produced them so OpenAI Native condensing no longer throws errors and long-running tasks with reasoning stay stable even as history is trimmed. + +* **Prevent duplicate tool_result blocks for read_file in native protocol** ([#9272](https://github.com/RooCodeInc/Roo-Code/pull/9272)) + Ensures read_file emits exactly one tool_result per tool_call_id in native protocol, preventing 400 errors while still surfacing clear error messages to both the agent and the user. + +* **Fix duplicate tool blocks causing "tool has already been used" errors** ([#9275](https://github.com/RooCodeInc/Roo-Code/pull/9275)) + Stops XML protocol runs from merging duplicate tool blocks into assistant messages so each tool block executes only once per turn and tool-driven tasks no longer get stuck behind false “tool has already been used” errors. + +* **Make OpenAI Native cancellation stop streaming immediately** ([#9276](https://github.com/RooCodeInc/Roo-Code/pull/9276)) + Adds an abort controller so cancelling an OpenAI Native request stops streaming promptly, avoiding extra tokens after cancellation and reducing wasted usage. + +* **Disable XML parser for native tool protocol** ([#9277](https://github.com/RooCodeInc/Roo-Code/pull/9277)) + Bypasses XML parsing when toolProtocol is set to native and relies on structured tool_call chunks instead, avoiding mis-parsed XML-like snippets and making native tool runs more reliable—especially for models that sometimes mix formats. \ No newline at end of file diff --git a/docs/update-notes/v3.33.0.mdx b/docs/update-notes/v3.33.0.mdx new file mode 100644 index 00000000..41fb0417 --- /dev/null +++ b/docs/update-notes/v3.33.0.mdx @@ -0,0 +1,45 @@ +--- +description: Roo Code 3.33.0 adds Gemini 3 Pro Preview, improves Gemini defaults and cost reporting, and enables native tool calling for the OpenAI-native provider. +keywords: + - roo code 3.33.0 + - new features + - bug fixes +image: /img/v3.33.0/v3.33.0.png +--- + +# Roo Code 3.33.0 Release Notes (2025-11-18) + +Gemini 3 Pro Preview is now available in Roo Code and already performing extremely well in real-world coding tasks, alongside 16 tweaks and fixes—thanks to everyone in the Roo Code community who helped shape this release. + +Roo Code v3.33.0 Release + +## Gemini 3 Pro Preview + +Roo Code now supports Google’s Gemini 3 Pro Preview model through direct Gemini, Vertex AI, and aggregator providers like OpenRouter and Requesty ([#9357](https://github.com/RooCodeInc/Roo-Code/pull/9357), [#9327](https://github.com/RooCodeInc/Roo-Code/pull/9327)): + +- **1M-token, reasoning-capable model**: Handles very large conversations while providing higher-quality multi-step reasoning on complex coding and refactoring tasks. +- **Strong eval performance**: Achieves a 100% score on internal Roo Code evals and 76.2% on SWE-bench Verified, giving more consistent solutions on real-world coding tasks. +- **Reliable tool usage**: Executes complex multi-step tool workflows without getting stuck or losing track, especially in long, tool-heavy tasks. +- **Better out-of-the-box defaults**: Uses `gemini-2.5-pro` by default where supported, sets a more natural temperature of 1, cleans up the Gemini model list, and includes reasoning / “thought” tokens in cost reporting so usage numbers better match provider billing. + +## QOL Improvements + +- **Git status in environment details** ([#9310](https://github.com/RooCodeInc/Roo-Code/pull/9310)): Shows git status information in environment details so agents have more context about untracked, modified, and staged files when reasoning about your workspace. +- **Tool protocol selector in advanced settings** ([#9324](https://github.com/RooCodeInc/Roo-Code/pull/9324)): Lets you choose which tool protocol to use (such as XML vs native) without editing config files, making it easier to experiment with different tool behaviors. +- **Dynamic tool protocol resolution** ([#9286](https://github.com/RooCodeInc/Roo-Code/pull/9286)): Resolves the active tool protocol using a clear precedence hierarchy, so provider defaults, mode settings, and user overrides interact in a predictable way. +- **Improved Modes view toolbar** ([#9077](https://github.com/RooCodeInc/Roo-Code/pull/9077)): Moves Import/Export into the Modes view toolbar and cleans up the Mode edit view, making it easier to manage and share modes from a single place. +- **Cloud agent CTA points to setup page** ([#9338](https://github.com/RooCodeInc/Roo-Code/pull/9338)): Updates the cloud agent call-to-action to link directly to the setup page so new users can get started faster. +- **Roo Code Cloud provider pricing page** ([#9195](https://github.com/RooCodeInc/Roo-Code/pull/9195)): Adds a pricing page and related Cloud provider tweaks so pricing is easier to understand before you enable Roo Code Cloud. + +## Bug Fixes + +- **Prevent duplicate tool_result blocks in native protocol** ([#9248](https://github.com/RooCodeInc/Roo-Code/pull/9248)): Ensures each native tool call emits a single tool_result block, avoiding 400 errors and duplicated tool executions. +- **Format tool responses for native protocol** ([#9270](https://github.com/RooCodeInc/Roo-Code/pull/9270)): Normalizes the structure of tool responses so native protocol runs are easier for models to follow and less likely to error. +- **Centralize toolProtocol configuration checks** ([#9279](https://github.com/RooCodeInc/Roo-Code/pull/9279)): Uses a single source of truth for toolProtocol configuration, reducing configuration drift and subtle behavior differences. +- **Preserve tool blocks in conversation history** ([#9319](https://github.com/RooCodeInc/Roo-Code/pull/9319)): Keeps native protocol tool blocks intact in history so follow-up turns can reason correctly about prior tool calls. +- **Prevent infinite loops after successful finalization** ([#9325](https://github.com/RooCodeInc/Roo-Code/pull/9325)): Fixes a regression where certain native tool flows could loop after successful completion instead of stopping cleanly. +- **Sync parser state with profile and model changes** ([#9355](https://github.com/RooCodeInc/Roo-Code/pull/9355)): Keeps the conversation parser aligned with the active profile and model so switching models or profiles does not leave the parser in an inconsistent state. +- **Pass tool protocol to truncation errors** ([#9358](https://github.com/RooCodeInc/Roo-Code/pull/9358)): Ensures truncation errors know which tool protocol is active so error handling and messaging stay accurate. +- **VS Code theme-colored outline button borders** ([#9336](https://github.com/RooCodeInc/Roo-Code/pull/9336)): Aligns outline button borders with the current VS Code theme for a more consistent UI. +- **Use shields.io badges instead of badgen.net** ([#9318](https://github.com/RooCodeInc/Roo-Code/pull/9318)): Replaces broken badge URLs with shields.io so badges render reliably again. +- **Cap git status file sampling in evals** ([#9322](https://github.com/RooCodeInc/Roo-Code/pull/9322)): Adds a maximum for git status files in eval settings so evaluations don’t pull excessively large environment details. \ No newline at end of file diff --git a/docs/update-notes/v3.33.1.mdx b/docs/update-notes/v3.33.1.mdx new file mode 100644 index 00000000..4b4809a9 --- /dev/null +++ b/docs/update-notes/v3.33.1.mdx @@ -0,0 +1,29 @@ +--- +description: Native Tool Calling for OpenAI-compatible providers, improved Gemini reasoning support, and various bug fixes. +keywords: + - roo code 3.33.1 + - openai compatible native tools + - gemini reasoning fixes + - native tool protocol +image: /img/v3.33.1/v3.33.1.png +--- + +# Roo Code 3.33.1 Release Notes (2025-11-18) + +This release introduces native tool calling support for OpenAI-compatible providers, improves Gemini reasoning reliability, and fixes several native tool protocol issues. + +Roo Code v3.33.1 Release + +## Provider Updates + +- **Native Tool Calling for OpenAI-compatible Providers**: Enables native tool use with a wider range of models and providers that support the OpenAI format, offering more robust tool interactions in both streaming and non-streaming modes ([#9369](https://github.com/RooCodeInc/Roo-Code/pull/9369)) + +## Bug Fixes + +- **Native Tool Protocol Race Condition**: Fixed a race condition where switching profiles or changing API configuration could cause tool results to be formatted incorrectly, leading to 400 errors ([#9363](https://github.com/RooCodeInc/Roo-Code/pull/9363)) +- **Native Tool Repetition Detection**: Fixed false positive "stuck in a loop" errors when using native tools repeatedly with different arguments ([#9377](https://github.com/RooCodeInc/Roo-Code/pull/9377)) +- **Strict Native Protocol Parsing**: Ensured no XML parsing occurs when the native protocol is active, preventing model confusion ([#9371](https://github.com/RooCodeInc/Roo-Code/pull/9371)) +- **Prompt Cleanliness**: Removed incompatible XML tool examples from the system prompt when native tool calling is enabled ([#9367](https://github.com/RooCodeInc/Roo-Code/pull/9367)) +- **Gemini Reasoning Config**: Fixed an issue where high/low reasoning effort configuration was not being applied correctly ([#9375](https://github.com/RooCodeInc/Roo-Code/pull/9375)) +- **Gemini Thought Validation**: Resolved integration errors with Gemini reasoning models by correctly handling thought signatures and token counting ([#9380](https://github.com/RooCodeInc/Roo-Code/pull/9380)) +- **Structured JSON Returns**: Updated tools to consistently return structured JSON when using the native protocol ([#9373](https://github.com/RooCodeInc/Roo-Code/pull/9373)) \ No newline at end of file diff --git a/docs/update-notes/v3.33.2.mdx b/docs/update-notes/v3.33.2.mdx new file mode 100644 index 00000000..f0fee6a4 --- /dev/null +++ b/docs/update-notes/v3.33.2.mdx @@ -0,0 +1,26 @@ +--- +description: Patch release adding Gemini native tool calling, in-extension Roo Code Cloud credit visibility, clearer free model pricing, and native tool reliability fixes. +keywords: + - roo code 3.33.2 + - new features + - bug fixes + - performance improvements + - gemini provider + - roo code cloud +image: /img/social-share.jpg +--- + +# Roo Code 3.33.2 Release Notes (2025-11-20) + +This patch release focuses on Gemini native tool calling, making Roo Code Cloud usage more visible, clarifying which models are free, and improving native tool reliability and performance. + +## QOL Improvements + +* **Gemini native tool calling (experimental, Google Gemini provider only)**: Add an experimental option for the Google Gemini provider to call tools through the native tool protocol (off by default), so Gemini-based workflows that rely on tools can behave more like other native-tool providers without going through XML translation. ([#9343](https://github.com/RooCodeInc/Roo-Code/pull/9343)) +* **Roo Code Cloud credit balance in the extension**: Show your Roo Code Cloud RCC credit balance directly in the Roo provider settings when signed in, helping you track usage and avoid unexpected interruptions. ([#9386](https://github.com/RooCodeInc/Roo-Code/pull/9386)) +* **Explicit 0 pricing for free models**: Display a 0 price for both input and output tokens on free models in the pricing UI so it is obvious which options are free instead of leaving prices blank. ([#9419](https://github.com/RooCodeInc/Roo-Code/pull/9419)) + +## Bug Fixes + +* **Preserve images in native tool call results**: Ensure images attached to messages are preserved and passed through native tool calls to the model, so follow-up reasoning can still use important visual context instead of losing it as plain text only. ([#9401](https://github.com/RooCodeInc/Roo-Code/pull/9401)) +* **Faster router model metadata loading**: Cut redundant getModel() calls and add a disk cache fallback for router-based providers, making capability metadata available on startup and reducing latency and flakiness when loading model info. ([#9410](https://github.com/RooCodeInc/Roo-Code/pull/9410)) diff --git a/docs/update-notes/v3.33.3.mdx b/docs/update-notes/v3.33.3.mdx new file mode 100644 index 00000000..1ddf2828 --- /dev/null +++ b/docs/update-notes/v3.33.3.mdx @@ -0,0 +1,40 @@ +--- +description: A patch release adding Google Gemini 3 Pro Image Preview support, Minimax provider support, and various bug fixes. +keywords: + - roo code 3.33.3 + - google gemini 3 pro + - image preview + - minimax + - bug fixes +image: /img/v3.33.3/v3.33.3.png +--- + +# Roo Code 3.33.3 Release Notes (2025-11-20) + +This release introduces image preview support for Google Gemini 3 Pro, adds Minimax as a new provider, and includes several important bug fixes and quality of life improvements. + +Roo Code v3.33.3 Release + +## Google Gemini 3 Pro Image Preview + +We've added support for image generation with Google Gemini 3 Pro image generation model ([#9440](https://github.com/RooCodeInc/Roo-Code/pull/9440)) + +## QOL Improvements + +* **Minimax Provider Support**: Added support for Minimax as an Anthropic-compatible provider ([#9455](https://github.com/RooCodeInc/Roo-Code/pull/9455)) +* **Reasoning History**: Reasoning is now stored in conversation history for all providers ([#9451](https://github.com/RooCodeInc/Roo-Code/pull/9451)) +* **Improved Read File Tool**: Enhanced the `read_file` tool description with clearer examples ([#9422](https://github.com/RooCodeInc/Roo-Code/pull/9422)) + +## Bug Fixes + +* **Environment Details Duplication**: Fixed an issue where `environment_details` were duplicated when resuming cancelled tasks ([#9442](https://github.com/RooCodeInc/Roo-Code/pull/9442)) +* **Preserve Reasoning Flag**: Fixed the `preserveReasoning` flag to correctly control API reasoning inclusion ([#9453](https://github.com/RooCodeInc/Roo-Code/pull/9453)) +* **OpenAI Parallel Tool Calls**: Prevented OpenAI Native parallel tool calls when using native tool calling to avoid errors ([#9433](https://github.com/RooCodeInc/Roo-Code/pull/9433)) +* **Search and Replace Parsing**: Improved symbol parsing in the search and replace functionality ([#9456](https://github.com/RooCodeInc/Roo-Code/pull/9456)) +* **Skipped Tool Results**: Fixed an issue where `tool_result` blocks were not sent for skipped tools in the native protocol ([#9457](https://github.com/RooCodeInc/Roo-Code/pull/9457)) +* **Markdown Formatting**: Improved markdown formatting and added reasoning support ([#9458](https://github.com/RooCodeInc/Roo-Code/pull/9458)) + +## Misc Improvements + +* **Dependency Update**: Updated `glob` dependency to ^11.1.0 ([#9449](https://github.com/RooCodeInc/Roo-Code/pull/9449)) +* **Dependency Update**: Updated `tar-fs` to 3.1.1 via pnpm override ([#9450](https://github.com/RooCodeInc/Roo-Code/pull/9450)) diff --git a/docs/update-notes/v3.33.mdx b/docs/update-notes/v3.33.mdx new file mode 100644 index 00000000..0263f593 --- /dev/null +++ b/docs/update-notes/v3.33.mdx @@ -0,0 +1,71 @@ +--- +description: Combined notes for Roo Code 3.33, including Gemini 3 Pro Preview support, native tool calling for OpenAI-compatible providers, and various native tool reliability fixes. +keywords: + - roo code 3.33 + - release notes + - gemini 3 pro + - native tool protocol + - openai compatible + - bug fixes +image: /img/social-share.jpg +--- + +# Roo Code 3.33 Release Notes (2025-11-18) + +Roo Code 3.33 introduces support for Gemini 3 Pro Preview and native tool calling for OpenAI-compatible providers, along with improved Gemini defaults and numerous native tool protocol fixes. + +## Major Features + +### Gemini 3 Pro Preview + +Roo Code now supports Google’s Gemini 3 Pro Preview model through direct Gemini, Vertex AI, and aggregator providers like OpenRouter and Requesty ([#9357](https://github.com/RooCodeInc/Roo-Code/pull/9357), [#9327](https://github.com/RooCodeInc/Roo-Code/pull/9327)): + +- **1M-token, reasoning-capable model**: Handles very large conversations while providing higher-quality multi-step reasoning on complex coding and refactoring tasks. +- **Strong eval performance**: Achieves a 100% score on internal Roo Code evals and 76.2% on SWE-bench Verified, giving more consistent solutions on real-world coding tasks. +- **Reliable tool usage**: Executes complex multi-step tool workflows without getting stuck or losing track, especially in long, tool-heavy tasks. +- **Better out-of-the-box defaults**: Uses `gemini-2.5-pro` by default where supported, sets a more natural temperature of 1, cleans up the Gemini model list, and includes reasoning / “thought” tokens in cost reporting so usage numbers better match provider billing. +- **Image Preview Support**: Added support for image previews with Google Gemini 3 Pro image generation models ([#9440](https://github.com/RooCodeInc/Roo-Code/pull/9440)). + +## QOL Improvements + +- **Native Tool Calling for OpenAI-compatible Providers** ([#9369](https://github.com/RooCodeInc/Roo-Code/pull/9369)): Enables native tool use with a wider range of models and providers that support the OpenAI format, offering more robust tool interactions in both streaming and non-streaming modes. +- **Minimax Provider Support** ([#9455](https://github.com/RooCodeInc/Roo-Code/pull/9455)): Added support for Minimax as an Anthropic-compatible provider. +- **Reasoning History** ([#9451](https://github.com/RooCodeInc/Roo-Code/pull/9451)): Reasoning is now stored in conversation history for all providers. +- **Improved Read File Tool** ([#9422](https://github.com/RooCodeInc/Roo-Code/pull/9422)): Enhanced the `read_file` tool description with clearer examples. + +- **Git status in environment details** ([#9310](https://github.com/RooCodeInc/Roo-Code/pull/9310)): Shows git status information in environment details so agents have more context about untracked, modified, and staged files. +- **Tool protocol selector in advanced settings** ([#9324](https://github.com/RooCodeInc/Roo-Code/pull/9324)): Lets you choose which tool protocol to use (such as XML vs native) without editing config files. +- **Dynamic tool protocol resolution** ([#9286](https://github.com/RooCodeInc/Roo-Code/pull/9286)): Resolves the active tool protocol using a clear precedence hierarchy. +- **Improved Modes view toolbar** ([#9077](https://github.com/RooCodeInc/Roo-Code/pull/9077)): Moves Import/Export into the Modes view toolbar and cleans up the Mode edit view. +- **Cloud agent CTA points to setup page** ([#9338](https://github.com/RooCodeInc/Roo-Code/pull/9338)): Updates the cloud agent call-to-action to link directly to the setup page. +- **Roo Code Cloud provider pricing page** ([#9195](https://github.com/RooCodeInc/Roo-Code/pull/9195)): Adds a pricing page and related Cloud provider tweaks. +- **Gemini native tool calling (experimental, Google Gemini provider only)** ([#9343](https://github.com/RooCodeInc/Roo-Code/pull/9343)): Adds an experimental native tool option (off by default) for the Google Gemini provider so Gemini-based workflows can use tools without XML translation and behave more like other native-tool providers. +- **Roo Code Cloud credit balance in the extension** ([#9386](https://github.com/RooCodeInc/Roo-Code/pull/9386)): Shows your Roo Code Cloud RCC credit balance directly in the Roo provider settings so you can track usage and avoid unexpected interruptions. +- **Explicit 0 pricing for free models** ([#9419](https://github.com/RooCodeInc/Roo-Code/pull/9419)): Displays explicit 0 input/output token prices for free models in the pricing UI so it is always clear which options are free. + +## Bug Fixes + +- **Native Tool Protocol Race Condition** ([#9363](https://github.com/RooCodeInc/Roo-Code/pull/9363)): Fixed a race condition where switching profiles or changing API configuration could cause 400 errors. +- **Native Tool Repetition Detection** ([#9377](https://github.com/RooCodeInc/Roo-Code/pull/9377)): Fixed false positive "stuck in a loop" errors when using native tools repeatedly. +- **Strict Native Protocol Parsing** ([#9371](https://github.com/RooCodeInc/Roo-Code/pull/9371)): Ensured no XML parsing occurs when the native protocol is active. +- **Gemini Reasoning Config** ([#9375](https://github.com/RooCodeInc/Roo-Code/pull/9375)): Fixed an issue where high/low reasoning effort configuration was not being applied correctly. +- **Gemini Thought Validation** ([#9380](https://github.com/RooCodeInc/Roo-Code/pull/9380)): Resolved integration errors with Gemini reasoning models. +- **Prevent duplicate tool_result blocks in native protocol** ([#9248](https://github.com/RooCodeInc/Roo-Code/pull/9248)): Ensures each native tool call emits a single tool_result block. +- **Format tool responses for native protocol** ([#9270](https://github.com/RooCodeInc/Roo-Code/pull/9270)): Normalizes the structure of tool responses for easier model comprehension. +- **Centralize toolProtocol configuration checks** ([#9279](https://github.com/RooCodeInc/Roo-Code/pull/9279)): Uses a single source of truth for toolProtocol configuration. +- **Preserve tool blocks in conversation history** ([#9319](https://github.com/RooCodeInc/Roo-Code/pull/9319)): Keeps native protocol tool blocks intact in history. +- **Prevent infinite loops after successful finalization** ([#9325](https://github.com/RooCodeInc/Roo-Code/pull/9325)): Fixes a regression where certain native tool flows could loop. +- **Sync parser state with profile and model changes** ([#9355](https://github.com/RooCodeInc/Roo-Code/pull/9355)): Keeps the conversation parser aligned with the active profile and model. +- **Pass tool protocol to truncation errors** ([#9358](https://github.com/RooCodeInc/Roo-Code/pull/9358)): Ensures truncation errors know which tool protocol is active. +- **Structured JSON Returns** ([#9373](https://github.com/RooCodeInc/Roo-Code/pull/9373)): Updated tools to consistently return structured JSON when using the native protocol. +- **VS Code theme-colored outline button borders** ([#9336](https://github.com/RooCodeInc/Roo-Code/pull/9336)): Aligns outline button borders with the current VS Code theme. +- **Use shields.io badges instead of badgen.net** ([#9318](https://github.com/RooCodeInc/Roo-Code/pull/9318)): Replaces broken badge URLs with shields.io. +- **Cap git status file sampling in evals** ([#9322](https://github.com/RooCodeInc/Roo-Code/pull/9322)): Adds a maximum for git status files in eval settings. +- **Preserve images in native tool call results** ([#9401](https://github.com/RooCodeInc/Roo-Code/pull/9401)): Ensures images attached to messages are preserved and passed through native tool calls so follow-up reasoning can still use visual context instead of losing it as plain text only. +- **Faster router model metadata loading** ([#9410](https://github.com/RooCodeInc/Roo-Code/pull/9410)): Reduces redundant getModel() calls and adds a disk-backed metadata cache so router-based providers start faster and are more reliable when loading model info. +- **Environment Details Duplication** ([#9442](https://github.com/RooCodeInc/Roo-Code/pull/9442)): Fixed an issue where `environment_details` were duplicated when resuming cancelled tasks. +- **Preserve Reasoning Flag** ([#9453](https://github.com/RooCodeInc/Roo-Code/pull/9453)): Fixed the `preserveReasoning` flag to correctly control API reasoning inclusion. +- **OpenAI Parallel Tool Calls** ([#9433](https://github.com/RooCodeInc/Roo-Code/pull/9433)): Prevented OpenAI Native parallel tool calls when using native tool calling to avoid errors. +- **Search and Replace Parsing** ([#9456](https://github.com/RooCodeInc/Roo-Code/pull/9456)): Improved symbol parsing in the search and replace functionality. +- **Skipped Tool Results** ([#9457](https://github.com/RooCodeInc/Roo-Code/pull/9457)): Fixed an issue where `tool_result` blocks were not sent for skipped tools in the native protocol. +- **Markdown Formatting** ([#9458](https://github.com/RooCodeInc/Roo-Code/pull/9458)): Improved markdown formatting and added reasoning support. \ No newline at end of file diff --git a/docs/update-notes/v3.34.0.mdx b/docs/update-notes/v3.34.0.mdx new file mode 100644 index 00000000..46ff2fc7 --- /dev/null +++ b/docs/update-notes/v3.34.0.mdx @@ -0,0 +1,46 @@ +--- +description: This release introduces Browser Use 2.0, adds the Baseten provider, improves OpenAI-compatible behavior, and refines onboarding and tool descriptions. +keywords: + - roo code 3.34.0 + - browser use 2.0 + - baseten provider + - openai compatible + - onboarding + - native tools +image: /img/v3.34.0/v3.34.0.png +--- + +# Roo Code 3.34.0 Release Notes (2025-11-21) + +This release introduces Browser Use 2.0 for richer web automation, adds the Baseten provider, improves OpenAI-compatible behavior, and refines onboarding and native tool descriptions to make it easier for Roo to understand and use your tools effectively. + +Roo Code v3.34.0 Release + +## Browser Use 2.0 + +Browser Use now supports a more capable "2.0" experience ([#8941](https://github.com/RooCodeInc/Roo-Code/pull/8941)): + +- **Richer browser interaction**: Enables more advanced navigation and interaction patterns so Roo can better follow multi-step web workflows. +- **More reliable automation**: Improves stability for sequences of clicks, typing, and scrolling, reducing the chance of flaky browser runs. +- **Better fit for complex sites**: Makes it easier to work with modern web apps that require multiple steps or stateful interactions. + +> **📚 Documentation**: See [Browser Use](/features/browser-use) for details on how to enable and use browser workflows. Note: We have not yet updated these docs with images and a video of the new experience. + +## QOL Improvements + +- **Provider-Oriented Welcome Screen**: Added a provider-focused welcome screen so new users can more quickly choose and configure a working model setup ([#9484](https://github.com/RooCodeInc/Roo-Code/pull/9484)). +- **Pinned Roo Provider**: Pinned the Roo provider to the top of the provider list so it is easier to discover and select ([#9485](https://github.com/RooCodeInc/Roo-Code/pull/9485)). +- **Clearer Native Tool Descriptions**: Enhanced built-in tool descriptions with examples and clarifications so Roo can choose the right tools and use them more accurately ([#9486](https://github.com/RooCodeInc/Roo-Code/pull/9486)). + +## Bug Fixes + +- **Streaming Cancel Responsiveness**: Fixed the cancel button so it responds immediately during streaming, making it easier to stop long or unwanted runs (thanks jwadow!) ([#9448](https://github.com/RooCodeInc/Roo-Code/pull/9448)). +- **apply_diff Performance Regression**: Resolved a recent performance regression in `apply_diff`, restoring fast patch application on larger edits ([#9474](https://github.com/RooCodeInc/Roo-Code/pull/9474)). +- **Model Cache Refresh**: Implemented cache refreshing to avoid using stale disk-cached models, ensuring configuration updates are picked up correctly ([#9478](https://github.com/RooCodeInc/Roo-Code/pull/9478)). +- **Tool Call Fallbacks**: Added a fallback to always yield tool calls regardless of `finish_reason`, preventing cases where valid tool calls were dropped ([#9476](https://github.com/RooCodeInc/Roo-Code/pull/9476)). + +## Provider Updates + +- **Baseten Provider**: Added Baseten as a new AI provider, giving you another option for hosted models and deployments (thanks AlexKer!) ([#9461](https://github.com/RooCodeInc/Roo-Code/pull/9461)). +- **OpenAI-Compatible Improvements**: Improved the base OpenAI-compatible provider configuration and error handling so more OpenAI-style endpoints work smoothly without special tweaks ([#9462](https://github.com/RooCodeInc/Roo-Code/pull/9462)). +- **OpenRouter Capabilities**: Improved copying of model-level capabilities onto OpenRouter endpoint models so routing respects each model's real abilities ([#9483](https://github.com/RooCodeInc/Roo-Code/pull/9483)). diff --git a/docs/update-notes/v3.34.1.mdx b/docs/update-notes/v3.34.1.mdx new file mode 100644 index 00000000..7dec1e54 --- /dev/null +++ b/docs/update-notes/v3.34.1.mdx @@ -0,0 +1,24 @@ +--- +description: This patch release lets eval jobs run on Roo Code Cloud models, clarifies image generation prompts, cleans up todo list updates, and fixes duplicate cloud message sync. +keywords: + - roo code 3.34.1 + - evals roo code cloud + - image generation ui + - todo list ui + - cloud sync bug fix +image: /img/social-share.jpg +--- + +# Roo Code 3.34.1 Release Notes (2025-11-23) + +This patch release lets evaluation jobs run on Roo Code Cloud models, makes image generation prompts easier to read, cleans up todo list updates, and prevents duplicate cloud-synced messages. + +## Bug Fixes + +* **Single todo list in updates**: Removed a redundant todo list block from chat updates so you only see one clean, focused list when the updateTodoList tool runs ([#9517](https://github.com/RooCodeInc/Roo-Code/pull/9517), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). +* **Cloud message deduplication**: Fixed cloud message syncing so duplicate copies of the same reasoning or assistant message are no longer re-synced, keeping task histories cleaner and less confusing ([#9518](https://github.com/RooCodeInc/Roo-Code/pull/9518), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). + +## QOL Improvements + +* **Clearer image generation prompts**: The full prompt and path for image generation now appear directly in the chat UI with clearer spacing and typography, making it easier to inspect, debug, and reuse prompts ([#9505](https://github.com/RooCodeInc/Roo-Code/pull/9505), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). +* **Eval jobs on Roo Code Cloud**: You can now run evaluation jobs directly on Roo Code Cloud models, reusing the same managed models and job tokens as regular cloud runs ([#9492](https://github.com/RooCodeInc/Roo-Code/pull/9492), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). diff --git a/docs/update-notes/v3.34.2.mdx b/docs/update-notes/v3.34.2.mdx new file mode 100644 index 00000000..e4230592 --- /dev/null +++ b/docs/update-notes/v3.34.2.mdx @@ -0,0 +1,41 @@ +--- +description: This patch release adds Claude Opus 4.5 across multiple providers, introduces Roo Code Cloud image generation, hardens Gemini and LiteLLM behavior, and refreshes Cerebras models. +keywords: + - roo code 3.34.2 + - claude opus 4.5 + - roo code cloud image generation + - gemini 3 reasoning_details + - litellm cache refresh + - cerebras models +image: /img/v3.34.2/v3.34.2.png +--- + +# Roo Code 3.34.2 Release Notes (2025-11-24) + +This patch release adds Claude Opus 4.5 support across OpenRouter, Anthropic, and Vertex, introduces Roo Code Cloud image generation, and improves provider reliability for Gemini, Cerebras, and LiteLLM-backed models. + +Roo Code v3.34.2 Release + +## Claude Opus 4.5 across providers + +Claude Opus 4.5 is now available through multiple providers with support for large context windows, prompt caching, and reasoning budgets ([#9540](https://github.com/RooCodeInc/Roo-Code/pull/9540), [#9541](https://github.com/RooCodeInc/Roo-Code/pull/9541)): + +- **Roo Code Cloud**: Run Claude Opus 4.5 as a managed cloud model for long, reasoning-heavy tasks without managing API keys yourself. +- **OpenRouter**: Use the `anthropic/claude-opus-4.5` model with prompt caching and reasoning budget support so you can run longer or more complex tasks with lower latency and cost. +- **Anthropic**: Access `claude-opus-4-5-20251101` directly via the Anthropic provider with full support for large context windows and reasoning budgets. +- **Vertex AI**: Use `claude-opus-4-5@20251101` on Vertex AI for managed, region-aware deployments with reasoning budget support. + +## Provider Updates + +- **Roo Code Cloud image generation provider**: Roo Code Cloud is now available as an image generation provider, so you can generate images directly through Roo Code Cloud instead of relying only on third-party image APIs ([#9528](https://github.com/RooCodeInc/Roo-Code/pull/9528))). +- **Cerebras model list clean-up**: The Cerebras provider model list now only shows currently supported models, reducing errors from deprecated Cerebras/Qwen variants and keeping the model picker aligned with what the API actually serves ([#9527](https://github.com/RooCodeInc/Roo-Code/pull/9527))). +- **Reliable LiteLLM model refresh after credential changes**: Clicking **Refresh Models** after changing your LiteLLM API key or base URL now immediately reloads the model list using the new credentials, so you do not need to clear caches or restart VS Code, while background refreshes still benefit from caching for speed ([#9536](https://github.com/RooCodeInc/Roo-Code/pull/9536))). + +## QOL Improvements + +- **XML tool protocol stays in sync with configuration**: Tool runs that use the XML protocol now correctly track the configured tool protocol after configuration updates, preventing rare parser-state errors when switching between XML and native tools ([#9535](https://github.com/RooCodeInc/Roo-Code/pull/9535))). + +## Bug Fixes + +- **Gemini 3 reasoning_details support**: Fixes 400 INVALID_ARGUMENT errors when using Gemini 3 models via OpenRouter by fully supporting the newer `reasoning_details` format, so multi-turn and tool-calling conversations now work reliably without dropping reasoning context ([#9506](https://github.com/RooCodeInc/Roo-Code/pull/9506))). +- **Skip unsupported Gemini content blocks safely**: Gemini conversations on Vertex AI now skip unsupported metadata blocks (such as certain reasoning or document types) with a warning instead of failing the entire thread, keeping long-running chats stable ([#9537](https://github.com/RooCodeInc/Roo-Code/pull/9537))). diff --git a/docs/update-notes/v3.34.3.mdx b/docs/update-notes/v3.34.3.mdx new file mode 100644 index 00000000..623952a1 --- /dev/null +++ b/docs/update-notes/v3.34.3.mdx @@ -0,0 +1,35 @@ +--- +description: This patch adds Roo Code Cloud embeddings for codebase indexing, streams native tool calls, expands Claude Opus 4.5 coverage, and includes UI and reliability improvements. +keywords: + - roo code 3.34.3 + - new features + - bug fixes + - provider updates + - codebase indexing + - roo code cloud +image: /img/v3.34.3/v3.34.3.png +--- + +# Roo Code 3.34.3 Release Notes (2025-11-25) + +This release adds Roo Code Cloud as an embeddings provider for codebase indexing, streams native tool calls, expands Claude Opus 4.5 support, and includes UI, reliability, and cost improvements. + +Roo Code v3.34.3 Release + +* **Roo Code Cloud embeddings for codebase indexing**: Use Roo Code Cloud as a managed embeddings provider for codebase indexing so you can build semantic search over your project without running your own embedding service or managing separate API keys. The Code Index UI now exposes Roo Code Cloud as an embedder option and batches, rate-limits, and authenticates embedding requests through Roo Code Cloud for more reliable indexing. ([#9543](https://github.com/RooCodeInc/Roo-Code/pull/9543)) ([#9542](https://github.com/RooCodeInc/Roo-Code/pull/9542)) See [Codebase Indexing](/features/codebase-indexing) and [Roo Code Cloud](/providers/roo-code-cloud) for setup and usage details. +* **Streaming native tool calls**: Native tools (including Roo Code Cloud and OpenRouter helpers) now stream arguments and partial results into the UI, matching the streaming experience of XML tools so you can watch long-running operations progress and debug tool behavior more easily. ([#9542](https://github.com/RooCodeInc/Roo-Code/pull/9542)) + +## QOL Improvements + +* **Simpler bare‑metal evals setup with mise**: Standardizes the bare‑metal evals setup script on the `mise` runtime manager instead of `asdf`, reducing setup friction and avoiding version mismatches for contributors running local evals. ([#9548](https://github.com/RooCodeInc/Roo-Code/pull/9548)) +* **Contact links in the About Roo Code page**: Adds clear contact options directly to the About Roo Code settings page so you can quickly report bugs, request features, disclose security issues, or email the team without leaving the extension. ([#9570](https://github.com/RooCodeInc/Roo-Code/pull/9570)) + +## Bug Fixes + +* **Streaming follow‑up questions**: Fixes `ask_followup_question` streaming so the UI shows only the intended question text instead of raw JSON, and ensures all native tools emit and handle partial tool calls correctly when streaming is enabled, preventing confusing or missing tool output. ([#9561](https://github.com/RooCodeInc/Roo-Code/pull/9561)) +* **Prompt caching for Claude Opus 4.5**: Ensures Anthropic Claude Opus 4.5 requests now use prompt caching like other Claude models, significantly reducing ongoing API costs for users who rely on Opus 4.5 (thanks iainRedro!). ([#9568](https://github.com/RooCodeInc/Roo-Code/pull/9568)) + +## Provider Updates + +* **Claude Opus 4.5 in Claude Code**: Adds the `claude-opus-4-5-20251101` model to the Claude Code provider so you can select it like other Claude code models, with prompt caching support, no image support, and no reasoning effort/budget controls in the UI. ([#9560](https://github.com/RooCodeInc/Roo-Code/pull/9560)) See [Claude Code](/providers/claude-code) for supported models and configuration details. +* **Claude Opus 4.5 in AWS Bedrock**: Exposes Claude Opus 4.5 through the AWS Bedrock provider so Bedrock users can access the same 200k-context, 8192-token limits, prompt caching, and reasoning capabilities as the existing Claude Opus 4 model (thanks pisicode!). ([#9572](https://github.com/RooCodeInc/Roo-Code/pull/9572)) See [AWS Bedrock](/providers/bedrock) for details on enabling and configuring this model. diff --git a/docs/update-notes/v3.34.4.mdx b/docs/update-notes/v3.34.4.mdx new file mode 100644 index 00000000..3b43c30d --- /dev/null +++ b/docs/update-notes/v3.34.4.mdx @@ -0,0 +1,34 @@ +--- +description: This patch release adds free Black Forest Labs image generation models on Roo Code Cloud and OpenRouter and improves reliability when using native MCP tools with context condensing. +keywords: + - roo code 3.34.4 + - black forest labs flux 2 + - image generation + - mcp native tools + - context condensing +image: /img/v3.34.4/v3.34.4.png +--- + +# Roo Code 3.34.4 Release Notes (2025-11-25) + +This patch release adds free Black Forest Labs image generation models on Roo Code Cloud and OpenRouter, and makes native MCP tools more reliable by preserving tool names and tool_use blocks during context condensing. + +Roo Code v3.34.4 Release + +## Black Forest Labs image generation on Roo Code Cloud + +New Black Forest Labs FLUX.2 models are now wired through Roo Code’s image pipeline for Roo Code Cloud image generation ([#9587](https://github.com/RooCodeInc/Roo-Code/pull/9587)): + +- **Free image generation on Roo Code Cloud**: Use the `bfl/flux-2-pro:free` model on Roo Code Cloud for high-quality image generation without worrying about unexpected image charges. +- **Native images API support**: The `images_api` image generation method is supported for compatible models, improving parity with provider-native image APIs and giving better forwards compatibility as providers add new features. + +> **📚 Documentation**: See [Image Generation](/features/image-generation) for how to use image generation in Roo Code. + +## Bug Fixes + +- **Native MCP tool names preserved in history**: Native mode now keeps the real dynamic MCP tool names (such as `mcp_serverName_toolName`) in the API history instead of teaching the model a fake `use_mcp_tool` name, so follow-up calls pick the right tools and tool suggestions stay consistent ([#9559](https://github.com/RooCodeInc/Roo-Code/pull/9559)). +- **Native tools condensing keeps tool_use context**: When condensing long conversations that use native tools, required `tool_use` and `tool_result` blocks are preserved in the summary message, preventing 400 errors and avoiding lost context during follow-up turns ([#9582](https://github.com/RooCodeInc/Roo-Code/pull/9582)). + +## Provider Updates + +- **Black Forest Labs models on OpenRouter**: Adds Black Forest Labs FLUX.2 Flex and FLUX.2 Pro image generation models via OpenRouter, giving you additional high-quality options when you prefer to use your OpenRouter account for image generation ([#9589](https://github.com/RooCodeInc/Roo-Code/pull/9589)). diff --git a/docs/update-notes/v3.34.5.mdx b/docs/update-notes/v3.34.5.mdx new file mode 100644 index 00000000..af12ce80 --- /dev/null +++ b/docs/update-notes/v3.34.5.mdx @@ -0,0 +1,30 @@ +--- +description: This patch release improves native tool workflows, enhances the web-evals dashboard, and fixes tooling reliability issues. +keywords: + - roo code 3.34.5 + - new features + - bug fixes +image: /img/v3.34.5/v3.34.5.png +--- + +# Roo Code 3.34.5 Release Notes (2025-11-25) + +This release improves native tool calling workflows, enhances the web-evals dashboard, and refines provider and embeddings behavior. + +Roo Code v3.34.5 Release + +## QOL Improvements + +* **Experimental multiple native tool calls per turn with guardrails**: Lets the native tool protocol run multiple tools in a single assistant turn and blocks `attempt_completion()` if any tool fails in that turn, reducing the risk of partial or incorrect completions ([#9273](https://github.com/RooCodeInc/Roo-Code/pull/9273)). +* **Web-evals dashboard enhancements with dynamic tool columns and UX improvements**: Adds aggregate run statistics, per-tool success metrics, and dynamic tool usage columns so you can quickly spot failing tools or exercises and compare runs without rebuilding configs ([#9592](https://github.com/RooCodeInc/Roo-Code/pull/9592)). +* **Native tools as default for specific Roo Code Cloud models**: Sets the providers’ native tool protocol as the default for `minimax/minimax-m2` and `anthropic/claude-haiku-4.5` on Roo Code Cloud to reduce configuration overhead and improve tool-calling reliability ([#9586](https://github.com/RooCodeInc/Roo-Code/pull/9586)). + +## Bug Fixes + +* **API handler refresh on tool protocol changes**: Ensures switching API profiles that only change the tool protocol still refreshes the underlying handler and parser so tool calls always use the correct configuration ([#9599](https://github.com/RooCodeInc/Roo-Code/pull/9599)). +* **Native tools file reading regression for Grok Code Fast**: Restricts the single-file read behavior to XML tools so native tool calls use the standard multi-file-aware file reader and can access the workspace as expected ([#9600](https://github.com/RooCodeInc/Roo-Code/pull/9600)). +* **Roo Code Cloud embeddings revert and reliability**: Removes Roo Code Cloud as an embeddings provider to prevent `codebase_search` from appearing when it is not configured and to avoid indexing getting stuck in a standby state ([#9602](https://github.com/RooCodeInc/Roo-Code/pull/9602)). + +## Provider Updates + +* **Bedrock Anthropic Claude Opus 4.5 for global inference**: Adds the Anthropic Claude Opus 4.5 Bedrock model to the global inference model list so it can be used automatically anywhere global inference is supported, with no extra setup ([#9595](https://github.com/RooCodeInc/Roo-Code/pull/9595)). diff --git a/docs/update-notes/v3.34.6.mdx b/docs/update-notes/v3.34.6.mdx new file mode 100644 index 00000000..03d27147 --- /dev/null +++ b/docs/update-notes/v3.34.6.mdx @@ -0,0 +1,34 @@ +--- +description: This patch release adds AWS Bedrock embeddings support, improves native tool and provider behavior, and fixes several reliability issues. +keywords: + - roo code 3.34.6 + - new features + - bug fixes +image: /img/v3.34.6/v3.34.6.png +--- + +# Roo Code 3.34.6 Release Notes (2025-11-26) + +This release adds AWS Bedrock embeddings support for code indexing, improves native tool and provider behavior, and fixes several reliability issues across Bedrock, Vertex, and native tooling. + +Roo Code v3.34.6 Release + +## Features + +* **AWS Bedrock embeddings for code indexing**: Adds support for using AWS Bedrock embeddings in code indexing so teams that standardize on Bedrock can reuse their existing infrastructure when indexing repos for Roo-based navigation and search (PR #9475). + +## QOL Improvements + +* **Native tool calling for Mistral**: Adds native tool calling support for the Mistral provider, enabling more reliable tool workflows and better multi-step automation when using Mistral models (PR #9625). +* **Parallel native tool execution via OpenAI protocol**: Wires the `MULTIPLE_NATIVE_TOOL_CALLS` experiment to OpenAI's `parallel_tool_calls` capability so multiple tools can run in parallel under the OpenAI-compatible protocol, improving throughput for tool-heavy tasks (PR #9621). +* **Fine-grained tool streaming for OpenRouter Anthropic**: Adds fine-grained tool streaming support for Anthropic models on OpenRouter so tool call responses stream more smoothly and stay aligned with Anthropic's tool semantics (PR #9629). +* **Global inference selection for Bedrock with cross-region**: Allows global inference to pick Bedrock models correctly even when cross-region routing is enabled, reducing the risk of mismatched regions or unavailable models during automatic selection (PR #9616). + +## Bug Fixes + +* **Vertex Anthropic content block filtering**: Filters out non-Anthropic content blocks before sending requests to the Vertex Anthropic API so mixed or unsupported blocks no longer cause request failures (#9583, PR #9618). +* **WriteToFileTool partial content safety**: Restores a missing `content` undefined check in `WriteToFileTool.handlePartial()` to prevent rare crashes or incorrect writes when partial content is unavailable (#9611, PR #9614). +* **Model cache avoids persisting empty responses**: Prevents the model cache from persisting empty API responses so configuration and model metadata do not get silently replaced with blank entries (#9597, PR #9623). +* **Skip access_mcp_resource when no resources exist**: Excludes the `access_mcp_resource` tool from native tool runs when an MCP server does not expose any resources, avoiding confusing no-op calls and making tool menus cleaner (PR #9615). +* **Inline terminal and indexing defaults**: Updates default settings for the inline terminal and codebase indexing to better match common workflows out of the box, reducing the amount of manual tuning needed after installation (PR #9622). +* **Native new_task tool_result timing**: Defers emitting the `new_task` tool_result in the native protocol until the corresponding subtask actually finishes, eliminating premature “done” signals and keeping task state accurate for downstream tools (PR #9628). diff --git a/docs/update-notes/v3.34.7.mdx b/docs/update-notes/v3.34.7.mdx new file mode 100644 index 00000000..11e9c4d4 --- /dev/null +++ b/docs/update-notes/v3.34.7.mdx @@ -0,0 +1,33 @@ +--- +title: "Roo Code v3.34.7" +description: Native tool calling for Anthropic, Z.AI, and Moonshot providers, improved cloud onboarding, and bug fixes. +keywords: + - roo code 3.34.7 + - native tool calling + - provider updates + - bug fixes +image: /img/v3.34.7/v3.34.7.png +--- + +# Roo Code v3.34.7 Release Notes (2025-11-27) + +This release adds native tool calling support for Anthropic, Z.AI, and Moonshot providers, improves cloud onboarding, and fixes several bugs. + +Roo Code v3.34.7 Release + +## QOL Improvements + +* **Improved Cloud Sign-in Experience**: Adds a "taking you to cloud" screen with a progress indicator during authentication, plus a manual URL entry option as fallback for more reliable onboarding ([#9652](https://github.com/RooCodeInc/Roo-Code/pull/9652)) + +## Bug Fixes + +* **OpenRouter GPT-5 Schema Validation**: Fixes schema validation errors when using GPT-5 models via OpenRouter with the read_file tool ([#9633](https://github.com/RooCodeInc/Roo-Code/pull/9633)) +* **write_to_file Directory Creation**: Fixes ENOENT errors when creating files in non-existent subdirectories (thanks ivanenev!) ([#9640](https://github.com/RooCodeInc/Roo-Code/pull/9640)) +* **OpenRouter Tool Calls**: Fixes tool calls handling when using OpenRouter provider ([#9642](https://github.com/RooCodeInc/Roo-Code/pull/9642)) +* **Claude Code Configuration**: Fixes configuration conflicts by correctly disabling native tools and temperature support options that are managed by the Claude Code CLI ([#9643](https://github.com/RooCodeInc/Roo-Code/pull/9643)) + +## Provider Updates + +* **Anthropic Native Tool Calling**: Anthropic models now support native tool calling for improved performance and more reliable tool use ([#9644](https://github.com/RooCodeInc/Roo-Code/pull/9644)) +* **Z.AI Native Tool Calling**: Z.AI models (glm-4.5, glm-4.5-air, glm-4.5-x, glm-4.5-airx, glm-4.5-flash, glm-4.5v, glm-4.6, glm-4-32b-0414-128k) now support native tool calling ([#9645](https://github.com/RooCodeInc/Roo-Code/pull/9645)) +* **Moonshot Native Tool Calling**: Moonshot models now support native tool calling with parallel tool calls support ([#9646](https://github.com/RooCodeInc/Roo-Code/pull/9646)) diff --git a/docs/update-notes/v3.34.8.mdx b/docs/update-notes/v3.34.8.mdx new file mode 100644 index 00000000..336e49ce --- /dev/null +++ b/docs/update-notes/v3.34.8.mdx @@ -0,0 +1,20 @@ +--- +title: "Roo Code v3.34.8 Release Notes" +description: "Roo Code v3.34.8 fixes a race condition in the new_task tool for native protocol APIs." +keywords: + - roo code 3.34.8 + - bug fixes + - new_task tool + - native protocol +image: /img/v3.34.8/v3.34.8.png +--- + +# Roo Code 3.34.8 Release Notes (2025-11-27) + +This release fixes a race condition affecting subtask handling in native protocol APIs. + +Roo Code v3.34.8 Release + +## Bug Fixes + +* **Race Condition in new_task Tool**: Fixes a timing issue where subtasks completing quickly (within 500ms) could break conversation history when using the `new_task` tool with native protocol APIs. Users on native protocol providers should now experience more reliable subtask handling. ([#9655](https://github.com/RooCodeInc/Roo-Code/pull/9655)) diff --git a/docs/update-notes/v3.34.mdx b/docs/update-notes/v3.34.mdx new file mode 100644 index 00000000..69067bd7 --- /dev/null +++ b/docs/update-notes/v3.34.mdx @@ -0,0 +1,83 @@ +--- +description: Combined notes for Roo Code 3.34, including Browser Use 2.0, the Baseten provider, OpenAI-compatible improvements, Roo Code Cloud eval jobs, image generation UI tweaks, todo list cleanup, and cloud sync fixes. +keywords: + - roo code 3.34 + - browser use 2.0 + - baseten provider + - openai compatible + - evals roo code cloud + - image generation ui + - todo list ui + - cloud sync bug fix +image: /img/v3.34.0/v3.34.0.png +--- + +# Roo Code 3.34 Release Notes (2025-11-21) + +Roo Code 3.34 combines Browser Use 2.0, the Baseten provider, OpenAI-compatible improvements, and refined onboarding and native tool descriptions with patches that add Roo Code Cloud eval support, clearer image generation prompts, todo list cleanup, cloud sync fixes, Claude Opus 4.5 across Roo Code Cloud, OpenRouter, Anthropic, and Vertex, AWS Bedrock embeddings for code indexing, improved native tool workflows for Mistral and OpenAI-compatible providers, smoother Anthropic tool streaming on OpenRouter, better Bedrock global inference selection, plus new provider reliability and model updates, free Black Forest Labs image generation on Roo Code Cloud, native MCP tool reliability fixes, native tool calling for Anthropic, Z.AI, and Moonshot providers, improved cloud sign-in experience, a race condition fix for the new_task tool on native protocol, and multiple bug fixes. + +Roo Code v3.34 Release + +## Browser Use 2.0 + +Browser Use now supports a more capable "2.0" experience ([#8941](https://github.com/RooCodeInc/Roo-Code/pull/8941)): + +- **Richer browser interaction**: Enables more advanced navigation and interaction patterns so Roo can better follow multi-step web workflows. +- **More reliable automation**: Improves stability for sequences of clicks, typing, and scrolling, reducing the chance of flaky browser runs. +- **Better fit for complex sites**: Makes it easier to work with modern web apps that require multiple steps or stateful interactions. + +> **📚 Documentation**: See [Browser Use](/features/browser-use) for details on how to enable and use browser workflows. Note: We have not yet updated these docs with images and a video of the new experience. + +## QOL Improvements + +- **Provider-oriented welcome screen**: Added a provider-focused welcome screen so new users can more quickly choose and configure a working model setup ([#9484](https://github.com/RooCodeInc/Roo-Code/pull/9484)). +- **Pinned Roo provider**: Pinned the Roo provider to the top of the provider list so it is easier to discover and select ([#9485](https://github.com/RooCodeInc/Roo-Code/pull/9485)). +- **Clearer native tool descriptions**: Enhanced built-in tool descriptions with examples and clarifications so Roo can choose the right tools and use them more accurately ([#9486](https://github.com/RooCodeInc/Roo-Code/pull/9486)). +- **Clearer image generation prompts**: The full prompt and path for image generation now appear directly in the chat UI with clearer spacing and typography, making it easier to inspect, debug, and reuse prompts ([#9505](https://github.com/RooCodeInc/Roo-Code/pull/9505), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). +- **Eval jobs on Roo Code Cloud**: You can now run evaluation jobs directly on Roo Code Cloud models, reusing the same managed models and job tokens as regular cloud runs ([#9492](https://github.com/RooCodeInc/Roo-Code/pull/9492), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). +- **XML tool protocol stays in sync with configuration**: Tool runs that use the XML protocol now correctly track the configured tool protocol after configuration updates, preventing rare parser-state errors when switching between XML and native tools ([#9535](https://github.com/RooCodeInc/Roo-Code/pull/9535))). +- **Experimental multiple native tool calls per turn with guardrails**: Lets the native tool protocol run multiple tools in a single assistant turn and blocks `attempt_completion()` if any tool fails in that turn, reducing the risk of partial or incorrect completions ([#9273](https://github.com/RooCodeInc/Roo-Code/pull/9273)). +- **Web-evals dashboard enhancements with dynamic tool columns and UX improvements**: Adds aggregate run statistics, per-tool success metrics, and dynamic tool usage columns so you can quickly spot failing tools or exercises and compare runs without rebuilding configs ([#9592](https://github.com/RooCodeInc/Roo-Code/pull/9592)). +- **Native tools as default for specific Roo Code Cloud models**: Sets the providers’ native tool protocol as the default for `minimax/minimax-m2` and `anthropic/claude-haiku-4.5` on Roo Code Cloud to reduce configuration overhead and improve tool-calling reliability ([#9586](https://github.com/RooCodeInc/Roo-Code/pull/9586)). +- **Native tool calling for Mistral**: Adds native tool calling support for the Mistral provider, enabling more reliable tool workflows and better multi-step automation when using Mistral models ([#9625](https://github.com/RooCodeInc/Roo-Code/pull/9625)). +- **Parallel native tool execution via OpenAI protocol**: Wires the `MULTIPLE_NATIVE_TOOL_CALLS` experiment to OpenAI's `parallel_tool_calls` capability so multiple tools can run in parallel under the OpenAI-compatible protocol, improving throughput for tool-heavy tasks ([#9621](https://github.com/RooCodeInc/Roo-Code/pull/9621)). +- **Fine-grained tool streaming for OpenRouter Anthropic**: Adds fine-grained tool streaming support for Anthropic models on OpenRouter so tool call responses stream more smoothly and stay aligned with Anthropic's tool semantics ([#9629](https://github.com/RooCodeInc/Roo-Code/pull/9629)). +- **Global inference selection for Bedrock with cross-region**: Allows global inference to pick Bedrock models correctly even when cross-region routing is enabled, reducing the risk of mismatched regions or unavailable models during automatic selection ([#9616](https://github.com/RooCodeInc/Roo-Code/pull/9616)). +- **Improved Cloud Sign-in Experience**: Adds a "taking you to cloud" screen with a progress indicator during authentication, plus a manual URL entry option as fallback for more reliable onboarding ([#9652](https://github.com/RooCodeInc/Roo-Code/pull/9652)). + +## Bug Fixes + +- **Streaming cancel responsiveness**: Fixed the cancel button so it responds immediately during streaming, making it easier to stop long or unwanted runs ([#9448](https://github.com/RooCodeInc/Roo-Code/pull/9448)). +- **apply_diff performance regression**: Resolved a recent performance regression in `apply_diff`, restoring fast patch application on larger edits ([#9474](https://github.com/RooCodeInc/Roo-Code/pull/9474)). +- **Model cache refresh**: Implemented cache refreshing to avoid using stale disk-cached models, ensuring configuration updates are picked up correctly ([#9478](https://github.com/RooCodeInc/Roo-Code/pull/9478)). +- **Tool call fallbacks**: Added a fallback to always yield tool calls regardless of `finish_reason`, preventing cases where valid tool calls were dropped ([#9476](https://github.com/RooCodeInc/Roo-Code/pull/9476)). +- **Single todo list in updates**: Removed a redundant todo list block from chat updates so you only see one clean, focused list when the updateTodoList tool runs ([#9517](https://github.com/RooCodeInc/Roo-Code/pull/9517), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). +- **Cloud message deduplication**: Fixed cloud message syncing so duplicate copies of the same reasoning or assistant message are no longer re-synced, keeping task histories cleaner and less confusing ([#9518](https://github.com/RooCodeInc/Roo-Code/pull/9518), [#9522](https://github.com/RooCodeInc/Roo-Code/pull/9522)). +- **Gemini 3 reasoning_details support**: Fixes 400 INVALID_ARGUMENT errors when using Gemini 3 models via OpenRouter by fully supporting the newer `reasoning_details` format, so multi-turn and tool-calling conversations now work reliably without dropping reasoning context ([#9506](https://github.com/RooCodeInc/Roo-Code/pull/9506))). +- **Skip unsupported Gemini content blocks safely**: Gemini conversations on Vertex AI now skip unsupported metadata blocks (such as certain reasoning or document types) with a warning instead of failing the entire thread, keeping long-running chats stable ([#9537](https://github.com/RooCodeInc/Roo-Code/pull/9537))). +- **Native MCP tool names preserved in history**: Native mode now keeps the real dynamic MCP tool names (such as `mcp_serverName_toolName`) in the API history instead of teaching the model a fake `use_mcp_tool` name, so follow-up calls pick the right tools and tool suggestions stay consistent ([#9559](https://github.com/RooCodeInc/Roo-Code/pull/9559)). +- **Native tools condensing keeps tool_use context**: When condensing long conversations that use native tools, required `tool_use` and `tool_result` blocks are preserved in the summary message, preventing 400 errors and avoiding lost context during follow-up turns ([#9582](https://github.com/RooCodeInc/Roo-Code/pull/9582)). +- **API handler refresh on tool protocol changes**: Ensures switching API profiles that only change the tool protocol still refreshes the underlying handler and parser so tool calls always use the correct configuration ([#9599](https://github.com/RooCodeInc/Roo-Code/pull/9599)). +- **Native tools file reading regression for Grok Code Fast**: Restricts the single-file read behavior to XML tools so native tool calls use the standard multi-file-aware file reader and can access the workspace as expected ([#9600](https://github.com/RooCodeInc/Roo-Code/pull/9600)). +- **Roo Code Cloud embeddings revert and reliability**: Removes Roo Code Cloud as an embeddings provider to prevent `codebase_search` from appearing when it is not configured and to avoid indexing getting stuck in a standby state ([#9602](https://github.com/RooCodeInc/Roo-Code/pull/9602)). +- **OpenRouter GPT-5 Schema Validation**: Fixes schema validation errors when using GPT-5 models via OpenRouter with the read_file tool ([#9633](https://github.com/RooCodeInc/Roo-Code/pull/9633)). +- **write_to_file Directory Creation**: Fixes ENOENT errors when creating files in non-existent subdirectories (thanks ivanenev!) ([#9640](https://github.com/RooCodeInc/Roo-Code/pull/9640)). +- **OpenRouter Tool Calls**: Fixes tool calls handling when using OpenRouter provider ([#9642](https://github.com/RooCodeInc/Roo-Code/pull/9642)). +- **Claude Code Configuration**: Fixes configuration conflicts by correctly disabling native tools and temperature support options that are managed by the Claude Code CLI ([#9643](https://github.com/RooCodeInc/Roo-Code/pull/9643)). +- **Race Condition in new_task Tool**: Fixes a timing issue where subtasks completing quickly (within 500ms) could break conversation history when using the `new_task` tool with native protocol APIs ([#9655](https://github.com/RooCodeInc/Roo-Code/pull/9655)). + +## Provider Updates + +- **Baseten provider**: Added Baseten as a new AI provider, giving you another option for hosted models and deployments ([#9461](https://github.com/RooCodeInc/Roo-Code/pull/9461)). +- **OpenAI-compatible improvements**: Improved the base OpenAI-compatible provider configuration and error handling so more OpenAI-style endpoints work smoothly without special tweaks ([#9462](https://github.com/RooCodeInc/Roo-Code/pull/9462)). +- **OpenRouter capabilities**: Improved copying of model-level capabilities onto OpenRouter endpoint models so routing respects each model's real abilities ([#9483](https://github.com/RooCodeInc/Roo-Code/pull/9483)). +- **Roo Code Cloud image generation provider**: Roo Code Cloud is now available as an image generation provider, so you can generate images directly through Roo Code Cloud instead of relying only on third-party image APIs ([#9528](https://github.com/RooCodeInc/Roo-Code/pull/9528))). +- **Cerebras model list clean-up**: The Cerebras provider model list now only shows currently supported models, reducing errors from deprecated Cerebras/Qwen variants and keeping the model picker aligned with what the API actually serves ([#9527](https://github.com/RooCodeInc/Roo-Code/pull/9527))). +- **Reliable LiteLLM model refresh after credential changes**: Clicking **Refresh Models** after changing your LiteLLM API key or base URL now immediately reloads the model list using the new credentials, so you do not need to clear caches or restart VS Code, while background refreshes still benefit from caching for speed ([#9536](https://github.com/RooCodeInc/Roo-Code/pull/9536))). +- **Black Forest Labs image generation on Roo Code Cloud**: Use the free `bfl/flux-2-pro:free` model on Roo Code Cloud for high-quality image generation without unexpected charges, powered by the `images_api` image generation method for compatible models ([#9587](https://github.com/RooCodeInc/Roo-Code/pull/9587)). +- **Black Forest Labs models on OpenRouter**: Adds Black Forest Labs FLUX.2 Flex and FLUX.2 Pro image generation models via OpenRouter, giving you additional high-quality options when you prefer to use your OpenRouter account for image generation ([#9589](https://github.com/RooCodeInc/Roo-Code/pull/9589)). +- **Bedrock Anthropic Claude Opus 4.5 for global inference**: Adds the Anthropic Claude Opus 4.5 Bedrock model to the global inference model list so it can be used automatically anywhere global inference is supported, with no extra setup ([#9595](https://github.com/RooCodeInc/Roo-Code/pull/9595)). +- **AWS Bedrock embeddings for code indexing**: Adds support for using AWS Bedrock embeddings in code indexing so teams that standardize on Bedrock can reuse their existing infrastructure when indexing repos for Roo-based navigation and search ([#9475](https://github.com/RooCodeInc/Roo-Code/pull/9475)). +- **Anthropic Native Tool Calling**: Anthropic models now support native tool calling for improved performance and more reliable tool use ([#9644](https://github.com/RooCodeInc/Roo-Code/pull/9644)). +- **Z.AI Native Tool Calling**: Z.AI models (glm-4.5, glm-4.5-air, glm-4.5-x, glm-4.5-airx, glm-4.5-flash, glm-4.5v, glm-4.6, glm-4-32b-0414-128k) now support native tool calling ([#9645](https://github.com/RooCodeInc/Roo-Code/pull/9645)). +- **Moonshot Native Tool Calling**: Moonshot models now support native tool calling with parallel tool calls support ([#9646](https://github.com/RooCodeInc/Roo-Code/pull/9646)). diff --git a/docs/update-notes/v3.35.0.mdx b/docs/update-notes/v3.35.0.mdx new file mode 100644 index 00000000..31d07ce7 --- /dev/null +++ b/docs/update-notes/v3.35.0.mdx @@ -0,0 +1,57 @@ +--- +description: Roo Code 3.35.0 introduces resilient subtasks that persist across reloads and massive native tool calling expansion across 15+ providers. +keywords: + - roo code 3.35.0 + - subtasks + - native tool calling + - provider updates +image: /img/v3.35.0/v3.35.0.png +--- + +# Roo Code 3.35.0 Release Notes (2025-12-01) + +This release introduces metadata-driven subtasks that never lose their parent connection, plus native tool calling support for 15+ providers. + +Roo Code v3.35.0 Release + +## Metadata-Driven Subtasks + +The connection between subtasks and parent tasks no longer breaks when you exit a task, crash, reboot, or reload VS Code ([#9090](https://github.com/RooCodeInc/Roo-Code/pull/9090)). Subtask relationships are now controlled by metadata, so the parent-child link persists through any interruption. + +## Native Tool Calling Expansion + +Native tool calling support has been expanded to 15+ providers: + +* Bedrock ([#9698](https://github.com/RooCodeInc/Roo-Code/pull/9698)) +* Cerebras ([#9692](https://github.com/RooCodeInc/Roo-Code/pull/9692)) +* Chutes ([#9715](https://github.com/RooCodeInc/Roo-Code/pull/9715)) +* DeepInfra ([#9691](https://github.com/RooCodeInc/Roo-Code/pull/9691)) +* DeepSeek & Doubao ([#9671](https://github.com/RooCodeInc/Roo-Code/pull/9671)) +* Groq ([#9673](https://github.com/RooCodeInc/Roo-Code/pull/9673)) +* LiteLLM ([#9719](https://github.com/RooCodeInc/Roo-Code/pull/9719)) +* Ollama ([#9696](https://github.com/RooCodeInc/Roo-Code/pull/9696)) +* OpenAI-compatible: Fireworks, SambaNova, Featherless, IO Intelligence ([#9676](https://github.com/RooCodeInc/Roo-Code/pull/9676)) +* Requesty ([#9672](https://github.com/RooCodeInc/Roo-Code/pull/9672)) +* Unbound ([#9699](https://github.com/RooCodeInc/Roo-Code/pull/9699)) +* Vercel AI Gateway ([#9697](https://github.com/RooCodeInc/Roo-Code/pull/9697)) +* Vertex Gemini ([#9678](https://github.com/RooCodeInc/Roo-Code/pull/9678)) +* xAI with new Grok 4 Fast models ([#9690](https://github.com/RooCodeInc/Roo-Code/pull/9690)) + +## QOL Improvements + +* **Improved Onboarding**: Simplified provider settings during initial setup—advanced options remain in Settings ([#9709](https://github.com/RooCodeInc/Roo-Code/pull/9709)) +* **Cleaner Toolbar**: Modes and MCP settings consolidated into the main settings panel for better discoverability ([#9710](https://github.com/RooCodeInc/Roo-Code/pull/9710)) +* **Tool Format in Environment Details**: Models now receive tool format information, improving behavior when switching between XML and native tools ([#9661](https://github.com/RooCodeInc/Roo-Code/pull/9661)) +* **Debug Buttons**: View API and UI history with new debug buttons (requires `roo-cline.debug: true`) ([#9684](https://github.com/RooCodeInc/Roo-Code/pull/9684)) +* **Grok Code Fast Default**: Native tools now default for xai/grok-code-fast-1 ([#9717](https://github.com/RooCodeInc/Roo-Code/pull/9717)) + +## Bug Fixes + +* **Parallel Tool Calls Fix**: Preserve tool_use blocks in summary during context condensation, fixing 400 errors with Anthropic's parallel tool calls feature (thanks SilentFlower!) ([#9714](https://github.com/RooCodeInc/Roo-Code/pull/9714)) +* **Navigation Button Wrapping**: Prevent navigation buttons from wrapping on smaller screens ([#9721](https://github.com/RooCodeInc/Roo-Code/pull/9721)) + +## Misc Improvements + +* **Model-specific Tool Customization**: Configure `excludedTools` and `includedTools` per model for fine-grained tool availability control ([#9641](https://github.com/RooCodeInc/Roo-Code/pull/9641)) +* **apply_patch Tool**: New native tool for file editing using simplified diff format with fuzzy matching and file rename support ([#9663](https://github.com/RooCodeInc/Roo-Code/pull/9663)) +* **search_and_replace Tool**: Batch text replacements with partial matching and error recovery ([#9549](https://github.com/RooCodeInc/Roo-Code/pull/9549)) diff --git a/docs/update-notes/v3.35.1.mdx b/docs/update-notes/v3.35.1.mdx new file mode 100644 index 00000000..7e67e7a7 --- /dev/null +++ b/docs/update-notes/v3.35.1.mdx @@ -0,0 +1,20 @@ +--- +description: Bug fix for parallel tool calls during task delegation and improved error logging. +keywords: + - roo code 3.35.1 + - bug fixes + - error logging +image: /img/social-share.jpg +--- + +# Roo Code v3.35.1 Release Notes (2025-12-01) + +This patch release fixes an issue with parallel tool calls during task delegation and improves error diagnostics. + +## Bug Fixes + +* **Parallel Tool Call Fix**: Fixes 400 errors that occurred when using native tool protocol with parallel tool calls (e.g., `update_todo_list` + `new_task`). Pending tool results are now properly flushed before task delegation ([#9726](https://github.com/RooCodeInc/Roo-Code/pull/9726)) + +## Misc Improvements + +* **Better IPC Error Logging**: Error logs now display detailed structured data instead of unhelpful `[object Object]` messages, making debugging extension issues easier ([#9727](https://github.com/RooCodeInc/Roo-Code/pull/9727)) diff --git a/docs/update-notes/v3.35.2.mdx b/docs/update-notes/v3.35.2.mdx new file mode 100644 index 00000000..a84e6ca5 --- /dev/null +++ b/docs/update-notes/v3.35.2.mdx @@ -0,0 +1,26 @@ +--- +description: Provider updates including model default temperatures and improved native tool support. +keywords: + - roo code 3.35.2 + - provider updates + - model temperature + - native tools + - litellm +image: /img/v3.35.2/v3.35.2.png +--- + +# Roo Code 3.35.2 Release Notes (2025-12-01) + +This release improves provider behavior with model default temperatures and enhanced native tool support across providers. + +Roo Code v3.35.2 Release + +## Provider Updates + +* **Model Default Temperatures**: Models can now specify their own default temperature settings. Temperature precedence is: user's custom setting → model's default → system default ([#9734](https://github.com/RooCodeInc/Roo-Code/pull/9734)) + +* **Roo Provider Native Tools**: Models with the `default-native-tools` tag automatically use native tool calling by default for improved tool-based interactions ([#9735](https://github.com/RooCodeInc/Roo-Code/pull/9735)) + +* **LiteLLM Native Tool Support**: All LiteLLM models now assume native tool support by default, improving tool compatibility and reducing configuration issues ([#9736](https://github.com/RooCodeInc/Roo-Code/pull/9736)) + +* **App Version Tracking**: The Roo provider now sends app version information with API requests for improved request tracking and analytics ([#9730](https://github.com/RooCodeInc/Roo-Code/pull/9730)) diff --git a/docs/update-notes/v3.35.3.mdx b/docs/update-notes/v3.35.3.mdx new file mode 100644 index 00000000..6db31e75 --- /dev/null +++ b/docs/update-notes/v3.35.3.mdx @@ -0,0 +1,21 @@ +--- +description: Roo Code 3.35.3 features an improved welcome view and stealth model privacy for API configurations. +keywords: + - roo code 3.35.3 + - welcome view + - stealth models + - privacy +image: /img/social-share.jpg +--- + +# Roo Code 3.35.3 Release Notes (2025-12-02) + +This release improves the onboarding experience with a simplified welcome view and adds stealth model support for API providers. + +## QOL Improvements + +* **New Welcome View**: Simplified welcome view with consolidated components for a cleaner, more consistent onboarding experience ([#9741](https://github.com/RooCodeInc/Roo-Code/pull/9741)) + +## Misc Improvements + +* **Stealth Model Privacy**: Models tagged with "stealth" in the Roo API now receive vendor confidentiality instructions in their system prompt, enabling white-label or anonymous model experiences ([#9742](https://github.com/RooCodeInc/Roo-Code/pull/9742)) diff --git a/docs/update-notes/v3.35.4.mdx b/docs/update-notes/v3.35.4.mdx new file mode 100644 index 00000000..5ecc9293 --- /dev/null +++ b/docs/update-notes/v3.35.4.mdx @@ -0,0 +1,25 @@ +--- +description: Roo Code 3.35.4 fixes tool call handling, simplifies the write_to_file tool, and updates z.ai provider settings. +keywords: + - roo code 3.35.4 + - bug fixes + - write_to_file + - z.ai +image: /img/social-share.jpg +--- + +# Roo Code 3.35.4 Release Notes (2025-12-02) + +This release fixes a tool call handling regression, simplifies the write_to_file tool, and corrects z.ai provider UI. + +## QOL Improvements + +* **Simplified write_to_file Tool**: The `line_count` parameter has been removed from the write_to_file tool, making tool calls cleaner and reducing potential errors from incorrect line counts ([#9667](https://github.com/RooCodeInc/Roo-Code/pull/9667)) + +## Bug Fixes + +* **Malformed Tool Call Fix**: Fixed a regression where malformed native tool calls would cause Roo Code to hang indefinitely. Tool calls now proceed to validation which catches and reports the missing parameters properly ([#9758](https://github.com/RooCodeInc/Roo-Code/pull/9758)) + +## Provider Updates + +* **z.ai GLM Model Fix**: Removed misleading reasoning toggle UI for GLM-4.5 and GLM-4.6 models on z.ai provider, as these models don't support think/reasoning data for coding agents ([#9752](https://github.com/RooCodeInc/Roo-Code/pull/9752)) diff --git a/docs/update-notes/v3.35.5.mdx b/docs/update-notes/v3.35.5.mdx new file mode 100644 index 00000000..2f872c29 --- /dev/null +++ b/docs/update-notes/v3.35.5.mdx @@ -0,0 +1,26 @@ +--- +description: Adds OpenRouter embedding provider routing, updates CloudView UI, and improves provider compatibility. +keywords: + - roo code 3.35.5 + - openrouter embeddings + - provider routing + - cloudview +image: /img/social-share.jpg +--- + +# Roo Code v3.35.5 Release Notes (2025-12-03) + +This release adds provider routing selection for OpenRouter embeddings, updates the CloudView interface, and improves provider compatibility. + +## Features + +* **OpenRouter Embeddings Provider Routing**: Select specific routing providers for OpenRouter embeddings in code indexing settings, enabling cost optimization since providers can vary by 4-5x in price for the same embedding model (thanks SannidhyaSah!) ([#9693](https://github.com/RooCodeInc/Roo-Code/pull/9693)) + +## QOL Improvements + +* **CloudView Interface Updates**: Cleaner UI with refreshed marketing copy, updated button styling with rounded corners for a more modern look ([#9776](https://github.com/RooCodeInc/Roo-Code/pull/9776)) + +## Provider Updates + +* **Roo Provider Tool Compatibility**: Improved tool conversion for OpenAI-compatible API endpoints, ensuring tools work correctly with OpenAI-style request formats ([#9769](https://github.com/RooCodeInc/Roo-Code/pull/9769)) +* **MiniMax M2 Free Tier Default**: MiniMax M2 model now defaults to the free tier when using OpenRouter ([#9778](https://github.com/RooCodeInc/Roo-Code/pull/9778)) diff --git a/docs/update-notes/v3.35.mdx b/docs/update-notes/v3.35.mdx new file mode 100644 index 00000000..d4f1dc62 --- /dev/null +++ b/docs/update-notes/v3.35.mdx @@ -0,0 +1,75 @@ +--- +description: Roo Code 3.35 introduces resilient subtasks that persist across reloads and massive native tool calling expansion across 15+ providers. +keywords: + - roo code 3.35 + - subtasks + - native tool calling + - provider updates +image: /img/v3.35.0/v3.35.0.png +--- + +# Roo Code 3.35 Release Notes (Combined) + +This release introduces metadata-driven subtasks that never lose their parent connection, plus native tool calling support for 15+ providers. + +Roo Code v3.35 Release + +## Metadata-Driven Subtasks + +The connection between subtasks and parent tasks no longer breaks when you exit a task, crash, reboot, or reload VS Code ([#9090](https://github.com/RooCodeInc/Roo-Code/pull/9090)). Subtask relationships are now controlled by metadata, so the parent-child link persists through any interruption. + +## Native Tool Calling Expansion + +Native tool calling support has been expanded to 15+ providers: + +* Bedrock ([#9698](https://github.com/RooCodeInc/Roo-Code/pull/9698)) +* Cerebras ([#9692](https://github.com/RooCodeInc/Roo-Code/pull/9692)) +* Chutes ([#9715](https://github.com/RooCodeInc/Roo-Code/pull/9715)) +* DeepInfra ([#9691](https://github.com/RooCodeInc/Roo-Code/pull/9691)) +* DeepSeek & Doubao ([#9671](https://github.com/RooCodeInc/Roo-Code/pull/9671)) +* Groq ([#9673](https://github.com/RooCodeInc/Roo-Code/pull/9673)) +* LiteLLM ([#9719](https://github.com/RooCodeInc/Roo-Code/pull/9719)) +* Ollama ([#9696](https://github.com/RooCodeInc/Roo-Code/pull/9696)) +* OpenAI-compatible: Fireworks, SambaNova, Featherless, IO Intelligence ([#9676](https://github.com/RooCodeInc/Roo-Code/pull/9676)) +* Requesty ([#9672](https://github.com/RooCodeInc/Roo-Code/pull/9672)) +* Unbound ([#9699](https://github.com/RooCodeInc/Roo-Code/pull/9699)) +* Vercel AI Gateway ([#9697](https://github.com/RooCodeInc/Roo-Code/pull/9697)) +* Vertex Gemini ([#9678](https://github.com/RooCodeInc/Roo-Code/pull/9678)) +* xAI with new Grok 4 Fast models ([#9690](https://github.com/RooCodeInc/Roo-Code/pull/9690)) + +## QOL Improvements + +* **Improved Onboarding**: Simplified provider settings during initial setup—advanced options remain in Settings ([#9709](https://github.com/RooCodeInc/Roo-Code/pull/9709)) +* **Cleaner Toolbar**: Modes and MCP settings consolidated into the main settings panel for better discoverability ([#9710](https://github.com/RooCodeInc/Roo-Code/pull/9710)) +* **Tool Format in Environment Details**: Models now receive tool format information, improving behavior when switching between XML and native tools ([#9661](https://github.com/RooCodeInc/Roo-Code/pull/9661)) +* **Debug Buttons**: View API and UI history with new debug buttons (requires `roo-cline.debug: true`) ([#9684](https://github.com/RooCodeInc/Roo-Code/pull/9684)) +* **Grok Code Fast Default**: Native tools now default for xai/grok-code-fast-1 ([#9717](https://github.com/RooCodeInc/Roo-Code/pull/9717)) +* **New Welcome View**: Simplified welcome view with consolidated components for a cleaner, more consistent onboarding experience ([#9741](https://github.com/RooCodeInc/Roo-Code/pull/9741)) +* **Simplified write_to_file Tool**: The `line_count` parameter has been removed from the write_to_file tool, making tool calls cleaner and reducing potential errors from incorrect line counts ([#9667](https://github.com/RooCodeInc/Roo-Code/pull/9667)) +* **OpenRouter Embeddings Provider Routing**: Select specific routing providers for OpenRouter embeddings in code indexing settings, enabling cost optimization since providers can vary by 4-5x in price for the same embedding model (thanks SannidhyaSah!) ([#9693](https://github.com/RooCodeInc/Roo-Code/pull/9693)) +* **CloudView Interface Updates**: Cleaner UI with refreshed marketing copy, updated button styling with rounded corners for a more modern look ([#9776](https://github.com/RooCodeInc/Roo-Code/pull/9776)) + +## Bug Fixes + +* **Parallel Tool Calls Fix**: Preserve tool_use blocks in summary during context condensation, fixing 400 errors with Anthropic's parallel tool calls feature (thanks SilentFlower!) ([#9714](https://github.com/RooCodeInc/Roo-Code/pull/9714)) +* **Navigation Button Wrapping**: Prevent navigation buttons from wrapping on smaller screens ([#9721](https://github.com/RooCodeInc/Roo-Code/pull/9721)) +* **Task Delegation Tool Flush**: Fixes 400 errors that occurred when using native tool protocol with parallel tool calls (e.g., `update_todo_list` + `new_task`). Pending tool results are now properly flushed before task delegation ([#9726](https://github.com/RooCodeInc/Roo-Code/pull/9726)) +* **Malformed Tool Call Fix**: Fixed a regression where malformed native tool calls would cause Roo Code to hang indefinitely. Tool calls now proceed to validation which catches and reports the missing parameters properly ([#9758](https://github.com/RooCodeInc/Roo-Code/pull/9758)) + +## Misc Improvements + +* **Model-specific Tool Customization**: Configure `excludedTools` and `includedTools` per model for fine-grained tool availability control ([#9641](https://github.com/RooCodeInc/Roo-Code/pull/9641)) +* **apply_patch Tool**: New native tool for file editing using simplified diff format with fuzzy matching and file rename support ([#9663](https://github.com/RooCodeInc/Roo-Code/pull/9663)) +* **search_and_replace Tool**: Batch text replacements with partial matching and error recovery ([#9549](https://github.com/RooCodeInc/Roo-Code/pull/9549)) +* **Better IPC Error Logging**: Error logs now display detailed structured data instead of unhelpful `[object Object]` messages, making debugging extension issues easier ([#9727](https://github.com/RooCodeInc/Roo-Code/pull/9727)) +* **Stealth Model Privacy**: Models tagged with "stealth" in the Roo API now receive vendor confidentiality instructions in their system prompt, enabling white-label or anonymous model experiences ([#9742](https://github.com/RooCodeInc/Roo-Code/pull/9742)) + +## Provider Updates + +* **Model Default Temperatures**: Models can now specify their own default temperature settings. Temperature precedence is: user's custom setting → model's default → system default ([#9734](https://github.com/RooCodeInc/Roo-Code/pull/9734)) +* **Roo Provider Native Tools**: Models with the `default-native-tools` tag automatically use native tool calling by default ([#9735](https://github.com/RooCodeInc/Roo-Code/pull/9735)) +* **LiteLLM Native Tool Support**: All LiteLLM models now assume native tool support by default, improving tool compatibility ([#9736](https://github.com/RooCodeInc/Roo-Code/pull/9736)) +* **App Version Tracking**: The Roo provider now sends app version information with API requests for improved request tracking ([#9730](https://github.com/RooCodeInc/Roo-Code/pull/9730)) +* **z.ai GLM Model Fix**: Removed misleading reasoning toggle UI for GLM-4.5 and GLM-4.6 models on z.ai provider, as these models don't support think/reasoning data for coding agents ([#9752](https://github.com/RooCodeInc/Roo-Code/pull/9752)) +* **Roo Provider Tool Compatibility**: Improved tool conversion for OpenAI-compatible API endpoints, ensuring tools work correctly with OpenAI-style request formats ([#9769](https://github.com/RooCodeInc/Roo-Code/pull/9769)) +* **MiniMax M2 Free Tier Default**: MiniMax M2 model now defaults to the free tier when using OpenRouter ([#9778](https://github.com/RooCodeInc/Roo-Code/pull/9778)) diff --git a/docs/update-notes/v3.36.0.mdx b/docs/update-notes/v3.36.0.mdx new file mode 100644 index 00000000..e2596b57 --- /dev/null +++ b/docs/update-notes/v3.36.0.mdx @@ -0,0 +1,47 @@ +--- +description: Roo Code 3.36.0 introduces non-destructive context management for reliable checkpoint restoration, plus Roo provider enhancements and provider improvements. +keywords: + - roo code 3.36.0 + - context condensing + - checkpoint restoration + - rewind + - roo provider + - reasoning details +image: /img/v3.36.0/v3.36.0.png +--- + +# Roo Code 3.36.0 Release Notes (2025-12-04) + +This release introduces non-destructive context management for reliable checkpoint restoration, adds reasoning visibility for supported models, and improves provider reliability across Roo, Minimax, Cerebras, and Vercel AI Gateway. + +Roo Code v3.36.0 Release + +## Non-Destructive Context Management + +Context condensing and sliding window truncation now preserve your original messages internally rather than deleting them ([#9665](https://github.com/RooCodeInc/Roo-Code/pull/9665)). When you rewind to an earlier checkpoint, the full conversation history is restored automatically. This applies to both automatic condensing and sliding window operations. + +## Provider Updates + +* **Reasoning Details Support**: The Roo provider now displays reasoning details from models with extended thinking capabilities, giving you visibility into how the model approaches your requests ([#9796](https://github.com/RooCodeInc/Roo-Code/pull/9796)) + +* **Native Tools Default**: All Roo provider models now default to native tool protocol for improved reliability and performance ([#9811](https://github.com/RooCodeInc/Roo-Code/pull/9811)) + +* **Minimax search_and_replace**: The Minimax M2 model now uses search_and_replace for more reliable file editing operations ([#9780](https://github.com/RooCodeInc/Roo-Code/pull/9780)) + +* **Cerebras Token Optimization**: Conservative 8K token limits prevent premature rate limiting (thanks sebastiand-cerebras!), plus deprecated model cleanup ([#9804](https://github.com/RooCodeInc/Roo-Code/pull/9804)) + +* **Vercel AI Gateway**: More reliable model fetching for models without complete pricing information ([#9791](https://github.com/RooCodeInc/Roo-Code/pull/9791)) + +## Bug Fixes + +* **Write Tool Validation**: Resolved false positives where `write_to_file` incorrectly rejected complete markdown files containing inline code comments like `# NEW:` or `// Step 1:` (thanks Michaelzag!) ([#9787](https://github.com/RooCodeInc/Roo-Code/pull/9787)) + +* **Download Count Display**: Fixed homepage download count to display with proper precision for million-scale numbers ([#9807](https://github.com/RooCodeInc/Roo-Code/pull/9807)) + +## Misc Improvements + +* **Tool Consolidation**: Removed the deprecated `insert_content` tool; use `apply_diff` or `write_to_file` for file modifications ([#9751](https://github.com/RooCodeInc/Roo-Code/pull/9751)) + +* **Experimental Settings**: Temporarily disabled the parallel tool calls experiment while improvements are in progress ([#9798](https://github.com/RooCodeInc/Roo-Code/pull/9798)) + +* **Infrastructure**: Updated Next.js dependencies for web applications ([#9799](https://github.com/RooCodeInc/Roo-Code/pull/9799)) diff --git a/docs/update-notes/v3.36.1.mdx b/docs/update-notes/v3.36.1.mdx new file mode 100644 index 00000000..056d7253 --- /dev/null +++ b/docs/update-notes/v3.36.1.mdx @@ -0,0 +1,44 @@ +--- +description: Message management improvements, GPT-5.1 Codex Max support, symlink support for slash commands, and stability fixes. +keywords: + - roo code 3.36.1 + - gpt-5.1 codex max + - slash commands symlinks + - message management + - bug fixes +image: /img/v3.36.1/v3.36.1.png +--- + +# Roo Code 3.36.1 Release Notes (2025-12-04) + +This release adds GPT-5.1 Codex Max support, enables symlinks for slash commands, improves message management with better checkpoint restore, and fixes several stability issues. + +Roo Code v3.36.1 Release + +## GPT-5.1 Codex Max Support + +Roo Code now supports GPT-5.1 Codex Max ([#9848](https://github.com/RooCodeInc/Roo-Code/pull/9848)), OpenAI's most intelligent coding model optimized for long-horizon, agentic coding tasks. This release also adds model defaults for gpt-5.1, gpt-5, and gpt-5-mini variants with optimized configurations. + +> **📚 Documentation**: See [OpenAI Provider](/providers/openai) for configuration details. + +## QOL Improvements + +* **Symlink support for slash commands**: Share and organize commands across projects using symlinks for individual files or directories, with command names derived from symlink names for easy aliasing ([#9838](https://github.com/RooCodeInc/Roo-Code/pull/9838)) +* **Smoother chat scroll**: Chat view maintains scroll position more reliably during streaming, eliminating disruptive jumps ([#8999](https://github.com/RooCodeInc/Roo-Code/pull/8999)) +* **Improved error messages**: Clearer, more actionable error messages with proper attribution and direct links to documentation ([#9777](https://github.com/RooCodeInc/Roo-Code/pull/9777)) + +## Bug Fixes + +* **Extension freeze prevention**: The extension no longer freezes when a model attempts to call a non-existent tool (thanks daniel-lxs!) ([#9834](https://github.com/RooCodeInc/Roo-Code/pull/9834)) +* **Checkpoint restore reliability**: MessageManager layer ensures consistent message history handling across all rewind operations ([#9842](https://github.com/RooCodeInc/Roo-Code/pull/9842)) +* **Context truncation fix**: Prevent cascading truncation loops by only truncating visible messages ([#9844](https://github.com/RooCodeInc/Roo-Code/pull/9844)) +* **Reasoning models**: Models that require reasoning now always receive valid reasoning effort values ([#9836](https://github.com/RooCodeInc/Roo-Code/pull/9836)) +* **Terminal input handling**: Inline terminal no longer hangs when commands require user input ([#9827](https://github.com/RooCodeInc/Roo-Code/pull/9827)) +* **Large file safety**: Safer large file reads with proper token budget accounting for model output ([#9843](https://github.com/RooCodeInc/Roo-Code/pull/9843)) +* **Follow-up button styling**: Fixed overly rounded corners on follow-up question suggestions ([#9829](https://github.com/RooCodeInc/Roo-Code/pull/9829)) + +## Misc Improvements + +* **Evals UI enhancements**: Added filtering by timeframe/model/provider, bulk delete actions, tool column consolidation, and run notes ([#9837](https://github.com/RooCodeInc/Roo-Code/pull/9837)) +* **Multi-model evals launch**: Launch identical test runs across multiple models with automatic staggering ([#9845](https://github.com/RooCodeInc/Roo-Code/pull/9845)) +* **New pricing page**: Updated website pricing page with clearer feature explanations ([#9821](https://github.com/RooCodeInc/Roo-Code/pull/9821)) diff --git a/docs/update-notes/v3.36.2.mdx b/docs/update-notes/v3.36.2.mdx new file mode 100644 index 00000000..cab1b751 --- /dev/null +++ b/docs/update-notes/v3.36.2.mdx @@ -0,0 +1,24 @@ +--- +description: Dynamic API settings for Roo models, optimized GPT-5 tool configuration, and Chutes provider fix. +keywords: + - roo code 3.36.2 + - dynamic settings + - gpt-5 apply_patch + - chutes provider +image: /img/v3.36.2/v3.36.2.png +--- + +# Roo Code 3.36.2 Release Notes (2025-12-05) + +This release adds dynamic API settings support for Roo models, optimizes GPT-5 model configurations, and fixes Chutes provider model fetching. + +Roo Code v3.36.2 Release + +## Provider Updates + +* **Dynamic model settings**: Roo models now receive configuration dynamically from the API, enabling faster iteration on model-specific settings without extension updates ([#9852](https://github.com/RooCodeInc/Roo-Code/pull/9852)) +* **Optimized GPT-5 tool configuration**: GPT-5.x, GPT-5.1.x, and GPT-4.1 models now use only the `apply_patch` tool for file editing, improving code editing performance ([#9853](https://github.com/RooCodeInc/Roo-Code/pull/9853)) + +## Bug Fixes + +* **Chutes provider fix**: Resolved model fetching errors for the Chutes provider by making schema validation more robust for optional fields ([#9854](https://github.com/RooCodeInc/Roo-Code/pull/9854)) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index a3082d81..5a3ce323 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -38,7 +38,16 @@ const config: Config = { projectName: 'Roo-Code-Docs', onBrokenLinks: 'warn', - onBrokenMarkdownLinks: 'warn', + markdown: { + hooks: { + onBrokenMarkdownLinks: 'warn', + }, + }, + + // Custom fields for client-side access + customFields: { + intercomAppId: process.env.INTERCOM_APP_ID, + }, // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you @@ -76,6 +85,17 @@ const config: Config = { highlightSearchTermsOnTargetPage: true, explicitSearchResultPath: true, docsRouteBasePath: "/", + indexBlog: false, + searchContextByPaths: [ + { label: "Getting Started", path: "getting-started" }, + { label: "Basic Usage", path: "basic-usage" }, + { label: "Features", path: "features" }, + { label: "Advanced Usage", path: "advanced-usage" }, + { label: "Providers", path: "providers" }, + { label: "Roo Code Cloud", path: "roo-code-cloud" }, + { label: "Release Notes", path: "update-notes" } + ], + useAllContextsWithNoSearchContext: true, }, ], ], @@ -86,7 +106,7 @@ const config: Config = { "posthog-docusaurus", { apiKey: process.env.POSTHOG_API_KEY, - appUrl: "https://us.i.posthog.com", + appUrl: "https://ph.roocode.com", enableInDevelopment: true, }, ], @@ -234,10 +254,6 @@ const config: Config = { to: '/advanced-usage/available-tools/read-file', from: ['/features/tools/read-file'], }, - { - to: '/advanced-usage/available-tools/search-and-replace', - from: ['/features/tools/search-and-replace'], - }, { to: '/advanced-usage/available-tools/search-files', from: ['/features/tools/search-files'], @@ -262,6 +278,11 @@ const config: Config = { to: '/advanced-usage/roo-code-nightly', from: ['/advanced-usage/prerelease-build'], }, + // Redirect /roo to Roo Code Cloud documentation + { + to: '/providers/roo-code-cloud', + from: ['/providers/roo'], + }, ], }, ], @@ -272,8 +293,8 @@ const config: Config = { metadata: [ {name: 'keywords', content: 'Roo Code, AI coding assistant, VS Code extension, autonomous coding agent, AI pair programmer, code generation, documentation'}, {name: 'twitter:card', content: 'summary_large_image'}, - {name: 'twitter:site', content: '@roo_code'}, - {name: 'twitter:creator', content: '@roo_code'}, + {name: 'twitter:site', content: '@roocode'}, + {name: 'twitter:creator', content: '@roocode'}, {property: 'og:type', content: 'website'}, {property: 'og:locale', content: 'en_US'}, ], diff --git a/package-lock.json b/package-lock.json index 636e39e8..8224aee5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,23 +8,27 @@ "name": "docs-new", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "^3.8.1", - "@docusaurus/plugin-client-redirects": "^3.8.1", - "@docusaurus/preset-classic": "^3.8.1", + "@docusaurus/core": "^3.9.2", + "@docusaurus/plugin-client-redirects": "^3.9.2", + "@docusaurus/preset-classic": "^3.9.2", "@easyops-cn/docusaurus-search-local": "^0.48.5", "@mdx-js/react": "^3.0.0", + "@roo-code/types": "^1.79.0", "@vscode/codicons": "^0.0.36", "clsx": "^2.0.0", + "lucide-react": "^0.546.0", "posthog-docusaurus": "^2.0.4", "prism-react-renderer": "^2.3.0", "react": "^19.0.0", + "react-cookie-consent": "^9.0.0", "react-dom": "^19.0.0", - "react-icons": "^5.5.0" + "react-icons": "^5.5.0", + "tldts": "^7.0.14" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.8.1", - "@docusaurus/tsconfig": "^3.8.1", - "@docusaurus/types": "^3.8.1", + "@docusaurus/module-type-aliases": "^3.9.2", + "@docusaurus/tsconfig": "^3.9.2", + "@docusaurus/types": "^3.9.2", "@eslint/js": "^9.29.0", "@typescript-eslint/eslint-plugin": "^8.34.0", "@typescript-eslint/parser": "^8.34.0", @@ -39,45 +43,117 @@ "node": ">=18.0" } }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", - "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", - "license": "MIT", + "node_modules/@ai-sdk/gateway": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-2.0.0.tgz", + "integrity": "sha512-Gj0PuawK7NkZuyYgO/h5kDK/l6hFOjhLdTq3/Lli1FTl47iGmwhH1IZQpAL3Z09BeFYWakcwUmn02ovIm2wy9g==", + "license": "Apache-2.0", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", - "@algolia/autocomplete-shared": "1.17.9" + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.12", + "@vercel/oidc": "3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" } }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", - "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", - "license": "MIT", + "node_modules/@ai-sdk/provider": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-2.0.0.tgz", + "integrity": "sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==", + "license": "Apache-2.0", "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ai-sdk/provider-utils": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.12.tgz", + "integrity": "sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@standard-schema/spec": "^1.0.0", + "eventsource-parser": "^3.0.5" + }, + "engines": { + "node": ">=18" }, "peerDependencies": { - "search-insights": ">= 1 < 3" + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/react": { + "version": "2.0.76", + "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-2.0.76.tgz", + "integrity": "sha512-ggAPzyaKJTqUWigpxMzI5DuC0Y3iEpDUPCgz6/6CpnKZY/iok+x5xiZhDemeaP0ILw5IQekV0kdgBR8JPgI8zQ==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider-utils": "3.0.12", + "ai": "5.0.76", + "swr": "^2.2.5", + "throttleit": "2.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "zod": "^3.25.76 || ^4.1.8" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.6.1.tgz", + "integrity": "sha512-wV/gNRkzb7sI9vs1OneG129hwe3Q5zPj7zigz3Ps7M5Lpo2hSorrOnXNodHEOV+yXE/ks4Pd+G3CDFIjFTWhMQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", - "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "node_modules/@algolia/autocomplete-core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-shared": "1.19.2" }, "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" + "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", - "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -85,99 +161,99 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.27.0.tgz", - "integrity": "sha512-SITU5umoknxETtw67TxJu9njyMkWiH8pM+Bvw4dzfuIrIAT6Y1rmwV4y0A0didWoT+6xVuammIykbtBMolBcmg==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.40.1.tgz", + "integrity": "sha512-cxKNATPY5t+Mv8XAVTI57altkaPH+DZi4uMrnexPxPHODMljhGYY+GDZyHwv9a+8CbZHcY372OkxXrDMZA4Lnw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.27.0.tgz", - "integrity": "sha512-go1b9qIZK5vYEQ7jD2bsfhhhVsoh9cFxQ5xF8TzTsg2WOCZR3O92oXCkq15SOK0ngJfqDU6a/k0oZ4KuEnih1Q==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.40.1.tgz", + "integrity": "sha512-XP008aMffJCRGAY8/70t+hyEyvqqV7YKm502VPu0+Ji30oefrTn2al7LXkITz7CK6I4eYXWRhN6NaIUi65F1OA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.27.0.tgz", - "integrity": "sha512-tnFOzdNuMzsz93kOClj3fKfuYoF3oYaEB5bggULSj075GJ7HUNedBEm7a6ScrjtnOaOtipbnT7veUpHA4o4wEQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.40.1.tgz", + "integrity": "sha512-gWfQuQUBtzUboJv/apVGZMoxSaB0M4Imwl1c9Ap+HpCW7V0KhjBddqF2QQt5tJZCOFsfNIgBbZDGsEPaeKUosw==", "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.27.0.tgz", - "integrity": "sha512-y1qgw39qZijjQBXrqZTiwK1cWgWGRiLpJNWBv9w36nVMKfl9kInrfsYmdBAfmlhVgF/+Woe0y1jQ7pa4HyShAw==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.40.1.tgz", + "integrity": "sha512-RTLjST/t+lsLMouQ4zeLJq2Ss+UNkLGyNVu+yWHanx6kQ3LT5jv8UvPwyht9s7R6jCPnlSI77WnL80J32ZuyJg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.27.0.tgz", - "integrity": "sha512-XluG9qPZKEbiLoIfXTKbABsWDNOMPx0t6T2ImJTTeuX+U/zBdmfcqqgcgkqXp+vbXof/XX/4of9Eqo1JaqEmKw==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.40.1.tgz", + "integrity": "sha512-2FEK6bUomBzEYkTKzD0iRs7Ljtjb45rKK/VSkyHqeJnG+77qx557IeSO0qVFE3SfzapNcoytTofnZum0BQ6r3Q==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.27.0.tgz", - "integrity": "sha512-V8/To+SsAl2sdw2AAjeLJuCW1L+xpz+LAGerJK7HKqHzE5yQhWmIWZTzqYQcojkii4iBMYn0y3+uReWqT8XVSQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.40.1.tgz", + "integrity": "sha512-Nju4NtxAvXjrV2hHZNLKVJLXjOlW6jAXHef/CwNzk1b2qIrCWDO589ELi5ZHH1uiWYoYyBXDQTtHmhaOVVoyXg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.27.0.tgz", - "integrity": "sha512-EJJ7WmvmUXZdchueKFCK8UZFyLqy4Hz64snNp0cTc7c0MKaSeDGYEDxVsIJKp15r7ORaoGxSyS4y6BGZMXYuCg==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.40.1.tgz", + "integrity": "sha512-Mw6pAUF121MfngQtcUb5quZVqMC68pSYYjCRZkSITC085S3zdk+h/g7i6FxnVdbSU6OztxikSDMh1r7Z+4iPlA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" @@ -190,99 +266,86 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.27.0.tgz", - "integrity": "sha512-xNCyWeqpmEo4EdmpG57Fs1fJIQcPwt5NnJ6MBdXnUdMVXF4f5PHgza+HQWQQcYpCsune96jfmR0v7us6gRIlCw==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.40.1.tgz", + "integrity": "sha512-z+BPlhs45VURKJIxsR99NNBWpUEEqIgwt10v/fATlNxc4UlXvALdOsWzaFfe89/lbP5Bu4+mbO59nqBC87ZM/g==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.27.0.tgz", - "integrity": "sha512-P0NDiEFyt9UYQLBI0IQocIT7xHpjMpoFN3UDeerbztlkH9HdqT0GGh1SHYmNWpbMWIGWhSJTtz6kSIWvFu4+pw==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.40.1.tgz", + "integrity": "sha512-VJMUMbO0wD8Rd2VVV/nlFtLJsOAQvjnVNGkMkspFiFhpBA7s/xJOb+fJvvqwKFUjbKTUA7DjiSi1ljSMYBasXg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.27.0.tgz", - "integrity": "sha512-cqfTMF1d1cc7hg0vITNAFxJZas7MJ4Obc36WwkKpY23NOtGb+4tH9X7UKlQa2PmTgbXIANoJ/DAQTeiVlD2I4Q==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.40.1.tgz", + "integrity": "sha512-ehvJLadKVwTp9Scg9NfzVSlBKH34KoWOQNTaN8i1Ac64AnO6iH2apJVSP6GOxssaghZ/s8mFQsDH3QIZoluFHA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.27.0.tgz", - "integrity": "sha512-ErenYTcXl16wYXtf0pxLl9KLVxIztuehqXHfW9nNsD8mz9OX42HbXuPzT7y6JcPiWJpc/UU/LY5wBTB65vsEUg==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.40.1.tgz", + "integrity": "sha512-PbidVsPurUSQIr6X9/7s34mgOMdJnn0i6p+N6Ab+lsNhY5eiu+S33kZEpZwkITYBCIbhzDLOvb7xZD3gDi+USA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0" + "@algolia/client-common": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.27.0.tgz", - "integrity": "sha512-CNOvmXsVi+IvT7z1d+6X7FveVkgEQwTNgipjQCHTIbF9KSMfZR7tUsJC+NpELrm10ALdOMauah84ybs9rw1cKQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.40.1.tgz", + "integrity": "sha512-ThZ5j6uOZCF11fMw9IBkhigjOYdXGXQpj6h4k+T9UkZrF2RlKcPynFzDeRgaLdpYk8Yn3/MnFbwUmib7yxj5Lw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0" + "@algolia/client-common": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.27.0.tgz", - "integrity": "sha512-Nx9EdLYZDsaYFTthqmc0XcVvsx6jqeEX8fNiYOB5i2HboQwl8pJPj1jFhGqoGd0KG7KFR+sdPO5/e0EDDAru2Q==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.40.1.tgz", + "integrity": "sha512-H1gYPojO6krWHnUXu/T44DrEun/Wl95PJzMXRcM/szstNQczSbwq6wIFJPI9nyE95tarZfUNU3rgorT+wZ6iCQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.27.0" + "@algolia/client-common": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -298,30 +361,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -346,15 +409,15 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -399,17 +462,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", + "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "engines": { @@ -455,21 +518,30 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", @@ -497,14 +569,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -609,39 +681,39 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -714,13 +786,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", - "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -845,14 +917,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", - "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -894,9 +966,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", - "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz", + "integrity": "sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -925,12 +997,12 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", - "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { @@ -941,17 +1013,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -977,12 +1049,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", - "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1053,6 +1126,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", @@ -1304,15 +1393,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", - "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.3", - "@babel/plugin-transform-parameters": "^7.27.1" + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -1369,9 +1459,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1447,9 +1537,9 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", - "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1512,9 +1602,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", - "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1558,16 +1648,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", - "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz", + "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "engines": { @@ -1663,12 +1753,12 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", + "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", @@ -1745,12 +1835,12 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", - "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", + "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", + "@babel/compat-data": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", @@ -1758,25 +1848,26 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.27.1", "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.27.1", - "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.3", "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", "@babel/plugin-transform-exponentiation-operator": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", @@ -1793,15 +1884,15 @@ "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.27.2", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1", - "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.3", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", @@ -1814,10 +1905,10 @@ "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.40.0", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "engines": { @@ -1901,12 +1992,12 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.6.tgz", - "integrity": "sha512-vDVrlmRAY8z9Ul/HxT+8ceAru95LQgkSKiXkSYZvqtbkPSfhZJgpRp45Cldbh1GJ1kxzQkI70AqyrTI58KpaWQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz", + "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==", "license": "MIT", "dependencies": { - "core-js-pure": "^3.30.2" + "core-js-pure": "^3.43.0" }, "engines": { "node": ">=6.9.0" @@ -1927,27 +2018,27 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.4", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1990,9 +2081,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", "funding": [ { "type": "github", @@ -2032,9 +2123,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", - "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", "funding": [ { "type": "github", @@ -2047,7 +2138,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.0.2", + "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "engines": { @@ -2122,10 +2213,39 @@ "@csstools/css-tokenizer": "^3.0.4" } }, + "node_modules/@csstools/postcss-alpha-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", "funding": [ { "type": "github", @@ -2184,9 +2304,38 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.10.tgz", - "integrity": "sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function-display-p3-linear": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", "funding": [ { "type": "github", @@ -2199,10 +2348,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2213,9 +2362,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.10.tgz", - "integrity": "sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", "funding": [ { "type": "github", @@ -2228,10 +2377,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2242,9 +2391,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.0.tgz", - "integrity": "sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", "funding": [ { "type": "github", @@ -2257,10 +2406,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2271,9 +2420,37 @@ } }, "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.6.tgz", - "integrity": "sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", "funding": [ { "type": "github", @@ -2286,9 +2463,10 @@ ], "license": "MIT-0", "dependencies": { + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2352,9 +2530,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.10.tgz", - "integrity": "sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", + "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", "funding": [ { "type": "github", @@ -2367,7 +2545,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" }, @@ -2379,9 +2557,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.10.tgz", - "integrity": "sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", "funding": [ { "type": "github", @@ -2394,10 +2572,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2408,9 +2586,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.10.tgz", - "integrity": "sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", "funding": [ { "type": "github", @@ -2423,10 +2601,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2437,9 +2615,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.2.tgz", - "integrity": "sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", "funding": [ { "type": "github", @@ -2452,7 +2630,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2547,9 +2725,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.9.tgz", - "integrity": "sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", "funding": [ { "type": "github", @@ -2564,7 +2742,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2798,9 +2976,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.10.tgz", - "integrity": "sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", "funding": [ { "type": "github", @@ -2813,10 +2991,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2827,9 +3005,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.1.0.tgz", - "integrity": "sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", "funding": [ { "type": "github", @@ -2879,9 +3057,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.10.tgz", - "integrity": "sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", "funding": [ { "type": "github", @@ -2894,10 +3072,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -3000,9 +3178,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", - "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", + "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", "funding": [ { "type": "github", @@ -3015,7 +3193,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/color-helpers": "^5.0.2", + "@csstools/color-helpers": "^5.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -3105,21 +3283,24 @@ } }, "node_modules/@docsearch/css": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", - "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.2.0.tgz", + "integrity": "sha512-65KU9Fw5fGsPPPlgIghonMcndyx1bszzrDQYLfierN+Ha29yotMHzVS94bPkZS6On9LS8dE4qmW4P/fGjtCf/g==", "license": "MIT" }, "node_modules/@docsearch/react": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", - "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.2.0.tgz", + "integrity": "sha512-zSN/KblmtBcerf7Z87yuKIHZQmxuXvYc6/m0+qnjyNu+Ir67AVOagTa1zBqcxkVUVkmBqUExdcyrdo9hbGbqTw==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-core": "1.17.9", - "@algolia/autocomplete-preset-algolia": "1.17.9", - "@docsearch/css": "3.9.0", - "algoliasearch": "^5.14.2" + "@ai-sdk/react": "^2.0.30", + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/css": "4.2.0", + "ai": "^5.0.30", + "algoliasearch": "^5.28.0", + "marked": "^16.3.0", + "zod": "^4.1.8" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 20.0.0", @@ -3142,10 +3323,19 @@ } } }, + "node_modules/@docsearch/react/node_modules/zod": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", + "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@docusaurus/babel": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz", - "integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.9.2.tgz", + "integrity": "sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", @@ -3158,28 +3348,28 @@ "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/bundler": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz", - "integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.9.2.tgz", + "integrity": "sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.8.1", - "@docusaurus/cssnano-preset": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/babel": "3.9.2", + "@docusaurus/cssnano-preset": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", "babel-loader": "^9.2.1", "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", @@ -3200,7 +3390,7 @@ "webpackbar": "^6.0.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/faster": "*" @@ -3212,18 +3402,18 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz", - "integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==", - "license": "MIT", - "dependencies": { - "@docusaurus/babel": "3.8.1", - "@docusaurus/bundler": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.2.tgz", + "integrity": "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.9.2", + "@docusaurus/bundler": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", @@ -3257,14 +3447,14 @@ "update-notifier": "^6.0.2", "webpack": "^5.95.0", "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", + "webpack-dev-server": "^5.2.2", "webpack-merge": "^6.0.1" }, "bin": { "docusaurus": "bin/docusaurus.mjs" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@mdx-js/react": "^3.0.0", @@ -3273,9 +3463,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz", - "integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.2.tgz", + "integrity": "sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==", "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", @@ -3284,31 +3474,31 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/logger": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz", - "integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.9.2.tgz", + "integrity": "sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==", "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz", - "integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz", + "integrity": "sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -3332,7 +3522,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3340,12 +3530,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz", - "integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.2.tgz", + "integrity": "sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.8.1", + "@docusaurus/types": "3.9.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3359,23 +3549,23 @@ } }, "node_modules/@docusaurus/plugin-client-redirects": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.8.1.tgz", - "integrity": "sha512-F+86R7PBn6VNgy/Ux8w3ZRypJGJEzksbejQKlbTC8u6uhBUhfdXWkDp6qdOisIoW0buY5nLqucvZt1zNJzhJhA==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.9.2.tgz", + "integrity": "sha512-lUgMArI9vyOYMzLRBUILcg9vcPTCyyI2aiuXq/4npcMVqOr6GfmwtmBYWSbNMlIUM0147smm4WhpXD0KFboffw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3383,19 +3573,19 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", - "integrity": "sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.2.tgz", + "integrity": "sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -3408,7 +3598,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", @@ -3417,20 +3607,20 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz", - "integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", + "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -3442,7 +3632,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3450,22 +3640,22 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz", - "integrity": "sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.2.tgz", + "integrity": "sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3473,36 +3663,36 @@ } }, "node_modules/@docusaurus/plugin-css-cascade-layers": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz", - "integrity": "sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.2.tgz", + "integrity": "sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz", - "integrity": "sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.9.2.tgz", + "integrity": "sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", "fs-extra": "^11.1.1", "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3510,18 +3700,18 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz", - "integrity": "sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.2.tgz", + "integrity": "sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3529,19 +3719,19 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz", - "integrity": "sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.2.tgz", + "integrity": "sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3549,18 +3739,18 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz", - "integrity": "sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.2.tgz", + "integrity": "sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3568,23 +3758,23 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz", - "integrity": "sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.2.tgz", + "integrity": "sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3592,22 +3782,22 @@ } }, "node_modules/@docusaurus/plugin-svgr": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz", - "integrity": "sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.2.tgz", + "integrity": "sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "@svgr/core": "8.1.0", "@svgr/webpack": "^8.1.0", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3615,29 +3805,29 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz", - "integrity": "sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/plugin-css-cascade-layers": "3.8.1", - "@docusaurus/plugin-debug": "3.8.1", - "@docusaurus/plugin-google-analytics": "3.8.1", - "@docusaurus/plugin-google-gtag": "3.8.1", - "@docusaurus/plugin-google-tag-manager": "3.8.1", - "@docusaurus/plugin-sitemap": "3.8.1", - "@docusaurus/plugin-svgr": "3.8.1", - "@docusaurus/theme-classic": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-search-algolia": "3.8.1", - "@docusaurus/types": "3.8.1" + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.9.2.tgz", + "integrity": "sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/plugin-content-blog": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/plugin-content-pages": "3.9.2", + "@docusaurus/plugin-css-cascade-layers": "3.9.2", + "@docusaurus/plugin-debug": "3.9.2", + "@docusaurus/plugin-google-analytics": "3.9.2", + "@docusaurus/plugin-google-gtag": "3.9.2", + "@docusaurus/plugin-google-tag-manager": "3.9.2", + "@docusaurus/plugin-sitemap": "3.9.2", + "@docusaurus/plugin-svgr": "3.9.2", + "@docusaurus/theme-classic": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-search-algolia": "3.9.2", + "@docusaurus/types": "3.9.2" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3645,27 +3835,26 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz", - "integrity": "sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz", + "integrity": "sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/plugin-content-blog": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/plugin-content-pages": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-translations": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", @@ -3678,7 +3867,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3686,15 +3875,15 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz", - "integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.9.2.tgz", + "integrity": "sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==", "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3705,7 +3894,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", @@ -3714,21 +3903,21 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz", - "integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.9.0", - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "algoliasearch": "^5.17.1", - "algoliasearch-helper": "^3.22.6", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz", + "integrity": "sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.9.0 || ^4.1.0", + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-translations": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", @@ -3737,7 +3926,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3745,33 +3934,34 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz", - "integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz", + "integrity": "sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA==", "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/tsconfig": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.8.1.tgz", - "integrity": "sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.9.2.tgz", + "integrity": "sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ==", "dev": true, "license": "MIT" }, "node_modules/@docusaurus/types": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz", - "integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.9.2.tgz", + "integrity": "sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q==", "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", @@ -3799,14 +3989,14 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz", - "integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.9.2.tgz", + "integrity": "sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-common": "3.9.2", "escape-string-regexp": "^4.0.0", "execa": "5.1.1", "file-loader": "^6.2.0", @@ -3827,31 +4017,31 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/utils-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz", - "integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.9.2.tgz", + "integrity": "sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.8.1", + "@docusaurus/types": "3.9.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz", - "integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz", + "integrity": "sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -3859,7 +4049,7 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@easyops-cn/autocomplete.js": { @@ -4273,16 +4463,23 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -4293,14 +4490,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/source-map": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", @@ -4316,18 +4505,134 @@ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" }, "node_modules/@mdx-js/mdx": { "version": "3.1.0", @@ -4661,6 +4966,15 @@ "node": ">= 8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4703,6 +5017,15 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==" }, + "node_modules/@roo-code/types": { + "version": "1.79.0", + "resolved": "https://registry.npmjs.org/@roo-code/types/-/types-1.79.0.tgz", + "integrity": "sha512-ePbH+LNymbcdpuGPrsNc9SJ3+3JhGQybur6kbYCiMPhre1H0LztaweZryky7yQqdNrfGSjPc36UBExyKdOrPxw==", + "license": "MIT", + "dependencies": { + "zod": "^3.25.61" + } + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -4748,6 +5071,12 @@ "micromark-util-symbol": "^1.0.1" } }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -5043,9 +5372,10 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -5055,6 +5385,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5063,6 +5394,7 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5071,6 +5403,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -5116,9 +5449,10 @@ } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -5127,20 +5461,10 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -5178,14 +5502,16 @@ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" }, "node_modules/@types/http-proxy": { "version": "1.17.16", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5235,7 +5561,8 @@ "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", @@ -5251,9 +5578,10 @@ } }, "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5269,14 +5597,16 @@ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.18", @@ -5317,9 +5647,10 @@ } }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "license": "MIT" }, "node_modules/@types/sax": { "version": "1.2.7", @@ -5331,11 +5662,11 @@ } }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.0.tgz", + "integrity": "sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==", + "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -5343,24 +5674,37 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.9.tgz", + "integrity": "sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==", + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5371,9 +5715,10 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" }, "node_modules/@types/ws": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", - "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5668,6 +6013,15 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" }, + "node_modules/@vercel/oidc": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vercel/oidc/-/oidc-3.0.3.tgz", + "integrity": "sha512-yNEQvPcVrK9sIe637+I0jD6leluPxzwJKx/Haw6F4H77CdDsszUn5V3o96LPziXkSNE2B83+Z3mjqGKBK/R6Gg==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20" + } + }, "node_modules/@vscode/codicons": { "version": "0.0.36", "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.36.tgz", @@ -5818,6 +6172,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5830,6 +6185,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5838,6 +6194,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -5849,6 +6206,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5905,6 +6263,24 @@ "node": ">=8" } }, + "node_modules/ai": { + "version": "5.0.76", + "resolved": "https://registry.npmjs.org/ai/-/ai-5.0.76.tgz", + "integrity": "sha512-ZCxi1vrpyCUnDbtYrO/W8GLvyacV9689f00yshTIQ3mFFphbD7eIv40a2AOZBv3GGRA7SSRYIDnr56wcS/gyQg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/gateway": "2.0.0", + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.12", + "@opentelemetry/api": "1.9.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -5948,33 +6324,34 @@ } }, "node_modules/algoliasearch": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.27.0.tgz", - "integrity": "sha512-2PvAgvxxJzA3+dB+ERfS2JPdvUsxNf89Cc2GF5iCcFupTULOwmbfinvqrC4Qj9nHJJDNf494NqEN/1f9177ZTQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.27.0", - "@algolia/client-analytics": "5.27.0", - "@algolia/client-common": "5.27.0", - "@algolia/client-insights": "5.27.0", - "@algolia/client-personalization": "5.27.0", - "@algolia/client-query-suggestions": "5.27.0", - "@algolia/client-search": "5.27.0", - "@algolia/ingestion": "1.27.0", - "@algolia/monitoring": "1.27.0", - "@algolia/recommend": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.40.1.tgz", + "integrity": "sha512-iUNxcXUNg9085TJx0HJLjqtDE0r1RZ0GOGrt8KNQqQT5ugu8lZsHuMUYW/e0lHhq6xBvmktU9Bw4CXP9VQeKrg==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.6.1", + "@algolia/client-abtesting": "5.40.1", + "@algolia/client-analytics": "5.40.1", + "@algolia/client-common": "5.40.1", + "@algolia/client-insights": "5.40.1", + "@algolia/client-personalization": "5.40.1", + "@algolia/client-query-suggestions": "5.40.1", + "@algolia/client-search": "5.40.1", + "@algolia/ingestion": "1.40.1", + "@algolia/monitoring": "1.40.1", + "@algolia/recommend": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.25.0.tgz", - "integrity": "sha512-vQoK43U6HXA9/euCqLjvyNdM4G2Fiu/VFp4ae0Gau9sZeIKBPvUPnXfLYAe65Bg7PFuw03coeu5K6lTPSXRObw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.26.0.tgz", + "integrity": "sha512-Rv2x3GXleQ3ygwhkhJubhhYGsICmShLAiqtUuJTUkr9uOCOXyF2E71LVT4XDnVffbknv8XgScP4U0Oxtgm+hIw==", "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" @@ -6043,6 +6420,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -6073,6 +6451,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6112,7 +6491,8 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" }, "node_modules/array-includes": { "version": "3.1.9", @@ -6341,13 +6721,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -6364,25 +6744,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -6402,10 +6782,20 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.17.tgz", + "integrity": "sha512-j5zJcx6golJYTG6c05LUZ3Z8Gi+M62zRT/ycz4Xq4iCOdpcxwg7ngEYD4KA0eWZC7U17qh/Smq8bYbACJ0ipBA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" }, "node_modules/big.js": { "version": "5.2.2", @@ -6419,6 +6809,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6430,6 +6821,7 @@ "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -6453,6 +6845,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -6461,6 +6854,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6468,12 +6862,14 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/bonjour-service": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -6526,9 +6922,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "funding": [ { "type": "opencollective", @@ -6545,9 +6941,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { @@ -6562,6 +6959,21 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -6684,9 +7096,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001722", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", - "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==", + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", "funding": [ { "type": "opencollective", @@ -6812,6 +7224,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6979,7 +7392,8 @@ "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" }, "node_modules/combine-promises": { "version": "1.2.0", @@ -7021,6 +7435,7 @@ "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -7029,23 +7444,25 @@ } }, "node_modules/compressible/node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, @@ -7057,6 +7474,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7065,6 +7483,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -7072,7 +7491,8 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", @@ -7110,6 +7530,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", "engines": { "node": ">=0.8" } @@ -7135,6 +7556,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7149,6 +7571,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7156,19 +7579,8 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" }, "node_modules/copy-webpack-plugin": { "version": "11.0.0", @@ -7248,12 +7660,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", - "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", "license": "MIT", "dependencies": { - "browserslist": "^4.25.0" + "browserslist": "^4.26.3" }, "funding": { "type": "opencollective", @@ -7261,9 +7673,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.43.0.tgz", - "integrity": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.46.0.tgz", + "integrity": "sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -7274,7 +7686,8 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "8.3.6", @@ -7379,9 +7792,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz", + "integrity": "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==", "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" @@ -7391,9 +7804,9 @@ } }, "node_modules/css-has-pseudo": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", - "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", + "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", "funding": [ { "type": "github", @@ -7593,9 +8006,9 @@ } }, "node_modules/cssdb": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.3.0.tgz", - "integrity": "sha512-c7bmItIg38DgGjSwDPZOYF/2o0QU/sSgkWOMyl8votOfgFuyiFKWPesmCGEsrGLxEA9uL540cp8LdaGEjUGsZQ==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.4.2.tgz", + "integrity": "sha512-PzjkRkRUS+IHDJohtxkIczlxPPZqRo0nXplsYXOMBRPjcVRjj1W4DfvRgshUYTVuUigU7ptVYkFJQ7abUB0nyg==", "funding": [ { "type": "opencollective", @@ -7814,9 +8227,10 @@ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -7890,15 +8304,32 @@ "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "license": "MIT", "dependencies": { - "execa": "^5.0.0" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -7930,6 +8361,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7955,6 +8387,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7971,6 +8404,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -7979,7 +8413,8 @@ "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" }, "node_modules/detect-port": { "version": "1.6.1", @@ -8024,6 +8459,7 @@ "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -8172,12 +8608,13 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", - "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==", + "version": "1.5.237", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz", + "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -8211,6 +8648,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -8262,9 +8700,9 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -9074,6 +9512,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9103,6 +9542,15 @@ "node": ">=0.8.x" } }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -9129,6 +9577,7 @@ "version": "4.21.2", "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -9174,6 +9623,7 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -9185,6 +9635,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -9192,17 +9643,20 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9294,6 +9748,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -9429,6 +9884,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -9446,6 +9902,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -9453,7 +9910,8 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "4.0.0", @@ -9517,15 +9975,16 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -9571,6 +10030,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9592,6 +10052,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9609,21 +10070,12 @@ "node": ">=14.14" } }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -9755,26 +10207,6 @@ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -9786,6 +10218,22 @@ "node": ">= 6" } }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -9813,15 +10261,6 @@ "node": ">=10" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", @@ -9967,7 +10406,8 @@ "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.1.0", @@ -10254,6 +10694,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -10264,12 +10705,14 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -10283,31 +10726,18 @@ "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -10449,12 +10879,14 @@ "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -10467,14 +10899,16 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==" + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -10485,9 +10919,10 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -10511,6 +10946,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -10538,10 +10974,20 @@ "node": ">=10.17.0" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -10636,20 +11082,11 @@ "node": ">=12" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", @@ -10688,6 +11125,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -10778,6 +11216,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -10889,6 +11328,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -10978,6 +11418,39 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -11019,6 +11492,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-npm": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", @@ -11266,6 +11751,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -11384,6 +11870,12 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "license": "MIT" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11422,6 +11914,12 @@ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -11519,12 +12017,13 @@ } }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", + "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==", + "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/leven": { @@ -11681,6 +12180,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.546.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.546.0.tgz", + "integrity": "sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -11716,6 +12224,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/marked": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.1.tgz", + "integrity": "sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -12113,25 +12633,34 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "version": "4.49.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.49.0.tgz", + "integrity": "sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==", + "license": "Apache-2.0", "dependencies": { - "fs-monkey": "^1.0.4" + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, "node_modules/merge-descriptors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -12153,6 +12682,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13865,6 +14395,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13911,9 +14442,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", @@ -13933,7 +14464,8 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimatch": { "version": "3.1.2", @@ -13971,6 +14503,7 @@ "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -14008,6 +14541,7 @@ "version": "0.6.4", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -14044,19 +14578,22 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz", + "integrity": "sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==", + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14283,12 +14820,14 @@ "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -14297,21 +14836,14 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -14330,6 +14862,7 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -14465,15 +14998,20 @@ } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-timeout": { @@ -14610,6 +15148,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -14632,14 +15171,6 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -14717,9 +15248,9 @@ } }, "node_modules/postcss": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", - "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -14814,9 +15345,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.10.tgz", - "integrity": "sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", "funding": [ { "type": "github", @@ -14829,10 +15360,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -15128,9 +15659,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.2.tgz", - "integrity": "sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", "funding": [ { "type": "github", @@ -15143,7 +15674,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -15288,9 +15819,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.10.tgz", - "integrity": "sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", "funding": [ { "type": "github", @@ -15303,10 +15834,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -15877,9 +16408,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.3.tgz", - "integrity": "sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.4.0.tgz", + "integrity": "sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==", "funding": [ { "type": "github", @@ -15892,20 +16423,23 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.10", - "@csstools/postcss-color-mix-function": "^3.0.10", - "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.0", - "@csstools/postcss-content-alt-text": "^2.0.6", + "@csstools/postcss-alpha-function": "^1.0.1", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", "@csstools/postcss-exponential-functions": "^2.0.9", "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.10", - "@csstools/postcss-gradients-interpolation-method": "^5.0.10", - "@csstools/postcss-hwb-function": "^4.0.10", - "@csstools/postcss-ic-unit": "^4.0.2", + "@csstools/postcss-gamut-mapping": "^2.0.11", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", "@csstools/postcss-initial": "^2.0.1", "@csstools/postcss-is-pseudo-class": "^5.0.3", - "@csstools/postcss-light-dark-function": "^2.0.9", + "@csstools/postcss-light-dark-function": "^2.0.11", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", @@ -15915,38 +16449,38 @@ "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.10", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/postcss-random-function": "^2.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.10", + "@csstools/postcss-relative-color-syntax": "^3.0.12", "@csstools/postcss-scope-pseudo-class": "^4.0.1", "@csstools/postcss-sign-functions": "^1.1.4", "@csstools/postcss-stepped-value-functions": "^4.0.9", - "@csstools/postcss-text-decoration-shorthand": "^4.0.2", + "@csstools/postcss-text-decoration-shorthand": "^4.0.3", "@csstools/postcss-trigonometric-functions": "^4.0.9", "@csstools/postcss-unset-value": "^4.0.0", "autoprefixer": "^10.4.21", - "browserslist": "^4.25.0", + "browserslist": "^4.26.0", "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.2", + "css-has-pseudo": "^7.0.3", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.3.0", + "cssdb": "^8.4.2", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.10", + "postcss-color-functional-notation": "^7.0.12", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", "postcss-custom-media": "^11.0.6", "postcss-custom-properties": "^14.0.6", "postcss-custom-selectors": "^8.0.5", "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.2", + "postcss-double-position-gradients": "^6.0.4", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.10", + "postcss-lab-function": "^7.0.12", "postcss-logical": "^8.1.0", "postcss-nesting": "^13.0.2", "postcss-opacity-percentage": "^3.0.0", @@ -16232,7 +16766,8 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/prompts": { "version": "2.4.2", @@ -16274,6 +16809,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -16286,6 +16822,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -16316,6 +16853,7 @@ "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" }, @@ -16376,6 +16914,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -16390,6 +16929,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -16424,6 +16964,21 @@ "node": ">=0.10.0" } }, + "node_modules/react-cookie-consent": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/react-cookie-consent/-/react-cookie-consent-9.0.0.tgz", + "integrity": "sha512-Blyj+m+Zz7SFHYqT18p16EANgnSg2sIyU6Yp3vk83AnOnSW7qnehPkUe4+8+qxztJrNmCH5GP+VHsWzAKVOoZA==", + "license": "MIT", + "dependencies": { + "js-cookie": "^2.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16" + } + }, "node_modules/react-dom": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", @@ -16472,9 +17027,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-json-view-lite": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.4.1.tgz", - "integrity": "sha512-fwFYknRIBxjbFm0kBDrzgBy1xa5tDg2LyXXBepC5f1b+MY3BUClMCsvanMPn089JbV1Eg3nZcrp0VCuH43aXnA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz", + "integrity": "sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==", "license": "MIT", "engines": { "node": ">=18" @@ -16562,6 +17117,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16575,6 +17131,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -16672,9 +17229,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -16710,17 +17267,17 @@ } }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -16758,29 +17315,17 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/rehype-raw": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", @@ -17058,7 +17603,8 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.10", @@ -17117,6 +17663,7 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -17130,21 +17677,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", @@ -17163,6 +17695,18 @@ "node": ">=12.0.0" } }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17335,12 +17879,14 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -17378,6 +17924,7 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -17401,6 +17948,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -17408,12 +17956,14 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -17422,6 +17972,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17457,6 +18008,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -17474,6 +18026,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -17482,6 +18035,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17490,6 +18044,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -17503,22 +18058,26 @@ "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17527,6 +18086,7 @@ "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -17588,7 +18148,8 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -17626,9 +18187,10 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -17785,6 +18347,7 @@ "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -17847,6 +18410,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -17862,6 +18426,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -17892,14 +18457,15 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/std-env": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "license": "MIT" }, "node_modules/stop-iteration-iterator": { @@ -17920,6 +18486,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -18215,6 +18782,19 @@ "node": ">= 10" } }, + "node_modules/swr": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz", + "integrity": "sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -18305,10 +18885,39 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, + "node_modules/thingies": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/throttleit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", + "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" }, "node_modules/tiny-invariant": { "version": "1.3.3", @@ -18329,6 +18938,24 @@ "node": "^18.0.0 || >=20.0.0" } }, + "node_modules/tldts": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.14.tgz", + "integrity": "sha512-lMNHE4aSI3LlkMUMicTmAG3tkkitjOQGDTFboPJwAg2kJXKP1ryWEyqujktg5qhrFZOkk5YFzgkxg3jErE+i5w==", + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.14" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.14.tgz", + "integrity": "sha512-viZGNK6+NdluOJWwTO9olaugx0bkKhscIdriQQ+lNNhwitIKvb+SvhbYgnCz6j9p7dX3cJntt4agQAKMXLjJ5g==", + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -18344,6 +18971,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -18356,6 +18984,22 @@ "node": ">=6" } }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -18420,6 +19064,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18432,6 +19077,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18440,6 +19086,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -18609,18 +19256,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "license": "MIT", "engines": { "node": ">=4" @@ -18745,6 +19392,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -18947,10 +19595,20 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utila": { "version": "0.4.0", @@ -18969,6 +19627,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -18977,6 +19636,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -18990,6 +19650,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -19049,6 +19710,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -19141,41 +19803,50 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { "node": ">= 0.6" @@ -19185,58 +19856,58 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -19247,10 +19918,41 @@ } } }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -19428,6 +20130,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -19441,6 +20144,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -19666,11 +20370,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -19702,6 +20401,36 @@ } } }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", @@ -19743,6 +20472,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index a2e9cf8b..9e3dafd8 100644 --- a/package.json +++ b/package.json @@ -18,23 +18,27 @@ "lint:unused": "eslint src --ext .js,.jsx,.ts,.tsx --rule 'unused-imports/no-unused-imports: error'" }, "dependencies": { - "@docusaurus/core": "^3.8.1", - "@docusaurus/plugin-client-redirects": "^3.8.1", - "@docusaurus/preset-classic": "^3.8.1", + "@docusaurus/core": "^3.9.2", + "@docusaurus/plugin-client-redirects": "^3.9.2", + "@docusaurus/preset-classic": "^3.9.2", "@easyops-cn/docusaurus-search-local": "^0.48.5", "@mdx-js/react": "^3.0.0", + "@roo-code/types": "^1.79.0", "@vscode/codicons": "^0.0.36", "clsx": "^2.0.0", + "lucide-react": "^0.546.0", "posthog-docusaurus": "^2.0.4", "prism-react-renderer": "^2.3.0", "react": "^19.0.0", + "react-cookie-consent": "^9.0.0", "react-dom": "^19.0.0", - "react-icons": "^5.5.0" + "react-icons": "^5.5.0", + "tldts": "^7.0.14" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.8.1", - "@docusaurus/tsconfig": "^3.8.1", - "@docusaurus/types": "^3.8.1", + "@docusaurus/module-type-aliases": "^3.9.2", + "@docusaurus/tsconfig": "^3.9.2", + "@docusaurus/types": "^3.9.2", "@eslint/js": "^9.29.0", "@typescript-eslint/eslint-plugin": "^8.34.0", "@typescript-eslint/parser": "^8.34.0", diff --git a/sidebars.ts b/sidebars.ts index f8630164..807231c8 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -45,18 +45,21 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Roo Code Cloud', + collapsed: false, items: [ 'roo-code-cloud/what-is-roo-code-cloud', - 'roo-code-cloud/login', - 'roo-code-cloud/dashboard', + 'roo-code-cloud/connect', + 'roo-code-cloud/analytics', 'roo-code-cloud/task-sharing', + 'roo-code-cloud/task-sync', + 'roo-code-cloud/roomote-control', + 'roo-code-cloud/cloud-agents', + 'roo-code-cloud/billing-subscriptions', ], }, { type: 'category', label: 'Features', - collapsed: false, - collapsible: false, items: [ 'features/api-configuration-profiles', 'features/auto-approving-actions', @@ -66,17 +69,19 @@ const sidebars: SidebarsConfig = { 'features/code-actions', 'features/codebase-indexing', 'features/custom-instructions', - 'features/diagnostics-integration', 'features/custom-modes', + 'features/diagnostics-integration', 'features/fast-edits', 'features/enhance-prompt', 'features/settings-management', 'features/intelligent-context-condensing', 'features/keyboard-shortcuts', - 'features/marketplace', + 'features/message-queueing', 'features/model-temperature', 'features/concurrent-file-reads', 'features/rooignore', + 'features/marketplace', + 'features/slash-commands', 'features/suggested-responses', 'features/task-todo-list', 'features/shell-integration', @@ -103,6 +108,9 @@ const sidebars: SidebarsConfig = { 'features/experimental/experimental-features', 'features/experimental/concurrent-file-edits', 'features/experimental/power-steering', + 'features/experimental/background-editing', + 'features/image-generation', + 'advanced-usage/available-tools/run-slash-command', ], }, 'features/more-features', @@ -129,8 +137,8 @@ const sidebars: SidebarsConfig = { 'advanced-usage/available-tools/list-files', 'advanced-usage/available-tools/new-task', 'advanced-usage/available-tools/read-file', + 'advanced-usage/available-tools/run-slash-command', 'advanced-usage/available-tools/search-files', - 'advanced-usage/available-tools/search-and-replace', 'advanced-usage/available-tools/switch-mode', 'advanced-usage/available-tools/update-todo-list', 'advanced-usage/available-tools/use-mcp-tool', @@ -153,26 +161,40 @@ const sidebars: SidebarsConfig = { label: 'Model Providers', items: [ 'providers/anthropic', + 'providers/baseten', 'providers/claude-code', 'providers/bedrock', + 'providers/cerebras', + 'providers/deepinfra', 'providers/deepseek', + 'providers/doubao', + 'providers/featherless', + 'providers/fireworks', 'providers/chutes', 'providers/gemini', 'providers/glama', 'providers/groq', + 'providers/huggingface', 'providers/human-relay', + 'providers/io-intelligence', 'providers/lmstudio', 'providers/litellm', + 'providers/minimax', 'providers/mistral', 'providers/ollama', 'providers/openai', 'providers/openai-compatible', 'providers/openrouter', + 'providers/qwen-code', 'providers/requesty', + 'providers/roo-code-cloud', + 'providers/sambanova', 'providers/unbound', + 'providers/vercel-ai-gateway', 'providers/vertex', 'providers/vscode-lm', 'providers/xai', + 'providers/zai', ] }, { @@ -187,51 +209,202 @@ const sidebars: SidebarsConfig = { label: 'Contributing (GitHub)', href: 'https://github.com/RooCodeInc/Roo-Code/blob/main/CONTRIBUTING.md', }, + { + type: 'link', + label: 'Roocabulary (GitHub)', + href: 'https://github.com/cannuri/Roocabulary', + }, { type: 'category', - label: 'Community', + label: 'Update Notes', items: [ - 'community/index', + 'update-notes/index', { type: 'category', - label: 'Projects', + label: '3.36', items: [ - 'community/sparc', - 'community/memory-bank', - 'community/tips-and-tricks', - 'community/dynamic-rules', - 'community/roo-commander', - 'community/maestro', - 'community/roocabulary', + { type: 'doc', id: 'update-notes/v3.36.2', label: '3.36.2' }, + { type: 'doc', id: 'update-notes/v3.36.1', label: '3.36.1' }, + { type: 'doc', id: 'update-notes/v3.36.0', label: '3.36.0' }, ], }, { type: 'category', - label: 'Custom Modes Gallery', + label: '3.35', items: [ - 'community/custom-modes/jest-test-engineer', - 'community/custom-modes/research-mode', - 'community/custom-modes/vibe-mode', - 'community/custom-modes/documentation-writer', - 'community/custom-modes/user-story-creator', - 'community/custom-modes/junior-developer-code-reviewer', - 'community/custom-modes/senior-developer-code-reviewer', - 'community/custom-modes/orchestrator', - 'community/custom-modes/advanced-orchestrator', + { type: 'doc', id: 'update-notes/v3.35', label: '3.35 Combined' }, + { type: 'doc', id: 'update-notes/v3.35.5', label: '3.35.5' }, + { type: 'doc', id: 'update-notes/v3.35.4', label: '3.35.4' }, + { type: 'doc', id: 'update-notes/v3.35.3', label: '3.35.3' }, + { type: 'doc', id: 'update-notes/v3.35.2', label: '3.35.2' }, + { type: 'doc', id: 'update-notes/v3.35.1', label: '3.35.1' }, + { type: 'doc', id: 'update-notes/v3.35.0', label: '3.35.0' }, + ], + }, + { + type: 'category', + label: '3.34', + items: [ + { type: 'doc', id: 'update-notes/v3.34', label: '3.34 Combined' }, + { type: 'doc', id: 'update-notes/v3.34.8', label: '3.34.8' }, + { type: 'doc', id: 'update-notes/v3.34.7', label: '3.34.7' }, + { type: 'doc', id: 'update-notes/v3.34.6', label: '3.34.6' }, + { type: 'doc', id: 'update-notes/v3.34.5', label: '3.34.5' }, + { type: 'doc', id: 'update-notes/v3.34.4', label: '3.34.4' }, + { type: 'doc', id: 'update-notes/v3.34.3', label: '3.34.3' }, + { type: 'doc', id: 'update-notes/v3.34.2', label: '3.34.2' }, + { type: 'doc', id: 'update-notes/v3.34.1', label: '3.34.1' }, + { type: 'doc', id: 'update-notes/v3.34.0', label: '3.34.0' }, + ], + }, + { + type: 'category', + label: '3.33', + items: [ + { type: 'doc', id: 'update-notes/v3.33', label: '3.33 Combined' }, + { type: 'doc', id: 'update-notes/v3.33.3', label: '3.33.3' }, + { type: 'doc', id: 'update-notes/v3.33.2', label: '3.33.2' }, + { type: 'doc', id: 'update-notes/v3.33.1', label: '3.33.1' }, + { type: 'doc', id: 'update-notes/v3.33.0', label: '3.33.0' }, + ], + }, + { + type: 'category', + label: '3.32', + items: [ + { type: 'doc', id: 'update-notes/v3.32', label: '3.32 Combined' }, + { type: 'doc', id: 'update-notes/v3.32.1', label: '3.32.1' }, + { type: 'doc', id: 'update-notes/v3.32.0', label: '3.32.0' }, + ], + }, + { + type: 'category', + label: '3.31', + items: [ + { type: 'doc', id: 'update-notes/v3.31', label: '3.31 Combined' }, + { type: 'doc', id: 'update-notes/v3.31.3', label: '3.31.3' }, + { type: 'doc', id: 'update-notes/v3.31.2', label: '3.31.2' }, + { type: 'doc', id: 'update-notes/v3.31.1', label: '3.31.1' }, + { type: 'doc', id: 'update-notes/v3.31.0', label: '3.31.0' }, + ], + }, + { + type: 'category', + label: '3.30', + items: [ + { type: 'doc', id: 'update-notes/v3.30', label: '3.30 Combined' }, + { type: 'doc', id: 'update-notes/v3.30.3', label: '3.30.3' }, + { type: 'doc', id: 'update-notes/v3.30.2', label: '3.30.2' }, + { type: 'doc', id: 'update-notes/v3.30.1', label: '3.30.1' }, + { type: 'doc', id: 'update-notes/v3.30.0', label: '3.30.0' }, + ], + }, + { + type: 'category', + label: '3.29', + items: [ + { type: 'doc', id: 'update-notes/v3.29', label: '3.29 Combined' }, + { type: 'doc', id: 'update-notes/v3.29.5', label: '3.29.5' }, + { type: 'doc', id: 'update-notes/v3.29.4', label: '3.29.4' }, + { type: 'doc', id: 'update-notes/v3.29.3', label: '3.29.3' }, + { type: 'doc', id: 'update-notes/v3.29.2', label: '3.29.2' }, + { type: 'doc', id: 'update-notes/v3.29.1', label: '3.29.1' }, + { type: 'doc', id: 'update-notes/v3.29.0', label: '3.29.0' }, + ], + }, + { + type: 'category', + label: '3.28', + items: [ + { type: 'doc', id: 'update-notes/v3.28', label: '3.28 Combined' }, + { type: 'doc', id: 'update-notes/v3.28.18', label: '3.28.18' }, + { type: 'doc', id: 'update-notes/v3.28.17', label: '3.28.17' }, + { type: 'doc', id: 'update-notes/v3.28.16', label: '3.28.16' }, + { type: 'doc', id: 'update-notes/v3.28.15', label: '3.28.15' }, + { type: 'doc', id: 'update-notes/v3.28.14', label: '3.28.14' }, + { type: 'doc', id: 'update-notes/v3.28.13', label: '3.28.13' }, + { type: 'doc', id: 'update-notes/v3.28.12', label: '3.28.12' }, + { type: 'doc', id: 'update-notes/v3.28.11', label: '3.28.11' }, + { type: 'doc', id: 'update-notes/v3.28.10', label: '3.28.10' }, + { type: 'doc', id: 'update-notes/v3.28.9', label: '3.28.9' }, + { type: 'doc', id: 'update-notes/v3.28.8', label: '3.28.8' }, + { type: 'doc', id: 'update-notes/v3.28.7', label: '3.28.7' }, + { type: 'doc', id: 'update-notes/v3.28.6', label: '3.28.6' }, + { type: 'doc', id: 'update-notes/v3.28.5', label: '3.28.5' }, + { type: 'doc', id: 'update-notes/v3.28.4', label: '3.28.4' }, + { type: 'doc', id: 'update-notes/v3.28.3', label: '3.28.3' }, + { type: 'doc', id: 'update-notes/v3.28.2', label: '3.28.2' }, + { type: 'doc', id: 'update-notes/v3.28.1', label: '3.28.1' }, + { type: 'doc', id: 'update-notes/v3.28.0', label: '3.28.0' }, + ], + }, + { + type: 'category', + label: '3.27', + items: [ + { type: 'doc', id: 'update-notes/v3.27.0', label: '3.27.0' }, + ], + }, + { + type: 'category', + label: '3.26', + items: [ + { type: 'doc', id: 'update-notes/v3.26', label: '3.26 Combined' }, + { type: 'doc', id: 'update-notes/v3.26.7', label: '3.26.7' }, + { type: 'doc', id: 'update-notes/v3.26.6', label: '3.26.6' }, + { type: 'doc', id: 'update-notes/v3.26.5', label: '3.26.5' }, + { type: 'doc', id: 'update-notes/v3.26.4', label: '3.26.4' }, + { type: 'doc', id: 'update-notes/v3.26.3', label: '3.26.3' }, + { type: 'doc', id: 'update-notes/v3.26.2', label: '3.26.2' }, + { type: 'doc', id: 'update-notes/v3.26.1', label: '3.26.1' }, + { type: 'doc', id: 'update-notes/v3.26.0', label: '3.26.0' }, + ], + }, + { + type: 'category', + label: '3.25', + items: [ + { type: 'doc', id: 'update-notes/v3.25', label: '3.25 Combined' }, + { type: 'doc', id: 'update-notes/v3.25.23', label: '3.25.23' }, + { type: 'doc', id: 'update-notes/v3.25.22', label: '3.25.22' }, + { type: 'doc', id: 'update-notes/v3.25.21', label: '3.25.21' }, + { type: 'doc', id: 'update-notes/v3.25.20', label: '3.25.20' }, + { type: 'doc', id: 'update-notes/v3.25.19', label: '3.25.19' }, + { type: 'doc', id: 'update-notes/v3.25.18', label: '3.25.18' }, + { type: 'doc', id: 'update-notes/v3.25.17', label: '3.25.17' }, + { type: 'doc', id: 'update-notes/v3.25.16', label: '3.25.16' }, + { type: 'doc', id: 'update-notes/v3.25.15', label: '3.25.15' }, + { type: 'doc', id: 'update-notes/v3.25.14', label: '3.25.14' }, + { type: 'doc', id: 'update-notes/v3.25.13', label: '3.25.13' }, + { type: 'doc', id: 'update-notes/v3.25.12', label: '3.25.12' }, + { type: 'doc', id: 'update-notes/v3.25.11', label: '3.25.11' }, + { type: 'doc', id: 'update-notes/v3.25.10', label: '3.25.10' }, + { type: 'doc', id: 'update-notes/v3.25.9', label: '3.25.9' }, + { type: 'doc', id: 'update-notes/v3.25.8', label: '3.25.8' }, + { type: 'doc', id: 'update-notes/v3.25.7', label: '3.25.7' }, + { type: 'doc', id: 'update-notes/v3.25.6', label: '3.25.6' }, + { type: 'doc', id: 'update-notes/v3.25.5', label: '3.25.5' }, + { type: 'doc', id: 'update-notes/v3.25.4', label: '3.25.4' }, + { type: 'doc', id: 'update-notes/v3.25.3', label: '3.25.3' }, + { type: 'doc', id: 'update-notes/v3.25.2', label: '3.25.2' }, + { type: 'doc', id: 'update-notes/v3.25.1', label: '3.25.1' }, + { type: 'doc', id: 'update-notes/v3.25.0', label: '3.25.0' }, + ], + }, + { + type: 'category', + label: '3.24', + items: [ + { type: 'doc', id: 'update-notes/v3.24.0', label: '3.24.0' }, ], }, - ], - }, - { - type: 'category', - label: 'Update Notes', - items: [ - 'update-notes/index', { type: 'category', label: '3.23', items: [ { type: 'doc', id: 'update-notes/v3.23', label: '3.23 Combined' }, + { type: 'doc', id: 'update-notes/v3.23.19', label: '3.23.19' }, + { type: 'doc', id: 'update-notes/v3.23.18', label: '3.23.18' }, { type: 'doc', id: 'update-notes/v3.23.17', label: '3.23.17' }, { type: 'doc', id: 'update-notes/v3.23.16', label: '3.23.16' }, { type: 'doc', id: 'update-notes/v3.23.15', label: '3.23.15' }, diff --git a/src/components/AnimatedBackground.tsx b/src/components/AnimatedBackground.tsx deleted file mode 100644 index ff33d5e4..00000000 --- a/src/components/AnimatedBackground.tsx +++ /dev/null @@ -1,300 +0,0 @@ -"use client" - -import { useEffect, useRef } from "react" - -export function AnimatedBackground() { - const canvasRef = useRef(null) - - useEffect(() => { - const canvas = canvasRef.current - if (!canvas) return - - const ctx = canvas.getContext("2d") - if (!ctx) return - - // Grid settings - exact values from roocode.com - const gridSize = 50 - const gridOpacity = 0.15 - - // Initialize gradient points for lighting effects - exact colors and positions - let gradientPoints = [ - { - x: canvas.width * 0.2, - y: canvas.height * 0.3, - radius: canvas.width * 0.4, - color: "rgba(0, 100, 255, 0.15)", - }, - { - x: canvas.width * 0.8, - y: canvas.height * 0.7, - radius: canvas.width * 0.5, - color: "rgba(100, 0, 255, 0.1)", - }, - ] - - // Particle system - exact configuration - const particles: Particle[] = [] - const particleCount = Math.min(50, Math.floor(window.innerWidth / 40)) - - // Set canvas dimensions - const resizeCanvas = () => { - const width = window.innerWidth - const height = window.innerHeight - - canvas.width = width - canvas.height = height - - // Update gradient points when canvas is resized - gradientPoints = [ - { - x: canvas.width * 0.2, - y: canvas.height * 0.3, - radius: canvas.width * 0.4, - color: "rgba(0, 100, 255, 0.15)", - }, - { - x: canvas.width * 0.8, - y: canvas.height * 0.7, - radius: canvas.width * 0.5, - color: "rgba(100, 0, 255, 0.1)", - }, - ] - } - - // Initial resize and setup - resizeCanvas() - - // Add resize listener - window.addEventListener("resize", resizeCanvas) - - // Ensure canvas is properly initialized - setTimeout(() => { - resizeCanvas() - drawGrid() - }, 0) - - // Draw grid with perspective effect - exact implementation - function drawGrid() { - if (!ctx) { - throw new Error("Context is null (not initialized?)") - } - - if (!canvas) { - throw new Error("Canvas is null (not initialized?)") - } - - ctx.clearRect(0, 0, canvas.width, canvas.height) - - // Draw gradient lighting effects - gradientPoints.forEach((point) => { - const gradient = ctx.createRadialGradient(point.x, point.y, 0, point.x, point.y, point.radius) - gradient.addColorStop(0, point.color) - gradient.addColorStop(1, "rgba(0, 0, 0, 0)") - - ctx.fillStyle = gradient - ctx.fillRect(0, 0, canvas.width, canvas.height) - }) - - // Draw grid lines with perspective effect - ctx.strokeStyle = `rgba(50, 50, 70, ${gridOpacity})` - ctx.lineWidth = 0.5 - - // Horizontal lines with perspective - const horizonY = canvas.height * 0.7 // Horizon point - const vanishingPointX = canvas.width * 0.5 // Center vanishing point - - // Vertical lines - for (let x = 0; x <= canvas.width; x += gridSize) { - const normalizedX = x / canvas.width - 0.5 // -0.5 to 0.5 - - ctx.beginPath() - ctx.moveTo(x, 0) - - // Calculate curve based on distance from center - const curveStrength = 50 * Math.abs(normalizedX) - const controlPointY = horizonY - curveStrength - - // Create curved line toward vanishing point - ctx.quadraticCurveTo( - x + (vanishingPointX - x) * 0.3, - controlPointY, - vanishingPointX + (x - vanishingPointX) * 0.2, - horizonY, - ) - - ctx.stroke() - } - - // Horizontal lines - for (let y = 0; y <= horizonY; y += gridSize) { - const normalizedY = y / horizonY // 0 to 1 - const lineWidth = gridSize * (1 + normalizedY * 5) // lines get wider as they get closer - - ctx.beginPath() - ctx.moveTo(vanishingPointX - lineWidth, y) - ctx.lineTo(vanishingPointX + lineWidth, y) - ctx.stroke() - } - - updateParticles() - } - - class Particle { - x: number - y: number - size: number - speedX: number - speedY: number - color: string - opacity: number - - constructor() { - if (!canvas) { - throw new Error("Canvas is null (not initialized?)") - } - - this.x = Math.random() * canvas.width - this.y = Math.random() * (canvas.height * 0.7) // Keep particles above horizon - this.size = Math.random() * 2 + 1 - this.speedX = (Math.random() - 0.5) * 0.8 - this.speedY = (Math.random() - 0.5) * 0.8 - this.color = "rgba(100, 150, 255, " - this.opacity = Math.random() * 0.5 + 0.2 - } - - update() { - if (!canvas) { - throw new Error("Canvas is null (not initialized?)") - } - - this.x += this.speedX - this.y += this.speedY - - // Boundary check - if (this.x > canvas.width) this.x = 0 - else if (this.x < 0) this.x = canvas.width - if (this.y > canvas.height * 0.7) this.y = 0 - else if (this.y < 0) this.y = canvas.height * 0.7 - - // Pulsate opacity - this.opacity += Math.sin(Date.now() * 0.001) * 0.01 - this.opacity = Math.max(0.1, Math.min(0.7, this.opacity)) - } - - draw() { - if (!ctx) { - throw new Error("Context is null (not initialized?)") - } - - ctx.fillStyle = `${this.color}${this.opacity})` - ctx.beginPath() - ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2) - ctx.fill() - } - } - - // Initialize particles - for (let i = 0; i < particleCount; i++) { - particles.push(new Particle()) - } - - // Connect particles with lines - function connectParticles() { - if (!ctx) { - throw new Error("Context is null (not initialized?)") - } - - const maxDistance = 150 - - for (let a = 0; a < particles.length; a++) { - for (let b = a; b < particles.length; b++) { - const dx = particles[a]!.x - particles[b]!.x - const dy = particles[a]!.y - particles[b]!.y - const distance = Math.sqrt(dx * dx + dy * dy) - - if (distance < maxDistance) { - const opacity = (1 - distance / maxDistance) * 0.5 - ctx.strokeStyle = `rgba(100, 150, 255, ${opacity})` - ctx.lineWidth = 0.5 - ctx.beginPath() - ctx.moveTo(particles[a]!.x, particles[a]!.y) - ctx.lineTo(particles[b]!.x, particles[b]!.y) - ctx.stroke() - } - } - } - } - - function updateParticles() { - particles.forEach((particle) => { - particle.update() - particle.draw() - }) - - connectParticles() - } - - // Animation loop - let animationId: number - - // Target position for smooth following - let targetX = canvas.width * 0.2 - let targetY = canvas.height * 0.3 - const moveSpeed = 0.05 // Exact speed from roocode.com - - // Move gradient points with mouse - const handleMouseMove = (e: MouseEvent) => { - targetX = e.clientX - targetY = e.clientY - } - - // Update gradient point position in animation loop - function updateGradientPosition() { - if (!canvas) throw new Error("Canvas is null (not initialized?)") - - // Calculate direction vector - const dx = targetX - gradientPoints[0]!.x - const dy = targetY - gradientPoints[0]!.y - - // Smooth movement using linear interpolation - gradientPoints[0]!.x += dx * moveSpeed - gradientPoints[0]!.y += dy * moveSpeed - - // Adjust radius based on distance to target - const distanceToTarget = Math.sqrt(dx * dx + dy * dy) - gradientPoints[0]!.radius = Math.max( - canvas.width * 0.2, - Math.min(canvas.width * 0.4, canvas.width * 0.3 + distanceToTarget * 0.1), - ) - } - - function animate() { - animationId = requestAnimationFrame(animate) - updateGradientPosition() - drawGrid() - } - - animate() - - window.addEventListener("mousemove", handleMouseMove) - - return () => { - window.removeEventListener("resize", resizeCanvas) - window.removeEventListener("mousemove", handleMouseMove) - cancelAnimationFrame(animationId) - } - }, []) - - return -} \ No newline at end of file diff --git a/src/components/AnnouncementBanner/index.tsx b/src/components/AnnouncementBanner/index.tsx new file mode 100644 index 00000000..67efb294 --- /dev/null +++ b/src/components/AnnouncementBanner/index.tsx @@ -0,0 +1,53 @@ +import React, { useState, useEffect } from 'react'; +import { VscGitPullRequest, VscClose } from 'react-icons/vsc'; +import styles from './styles.module.css'; + +// Change this key whenever you change the banner +// to announce something new +const BANNER_DISMISSED_KEY = 'reviewer-banner-dismissed'; + +export function AnnouncementBanner() { + const [isVisible, setIsVisible] = useState(false); + + useEffect(() => { + // Check if banner was previously dismissed + const isDismissed = localStorage.getItem(BANNER_DISMISSED_KEY); + if (!isDismissed) { + setIsVisible(true); + } + }, []); + + const handleDismiss = () => { + setIsVisible(false); + localStorage.setItem(BANNER_DISMISSED_KEY, 'true'); + }; + + if (!isVisible) { + return null; + } + + return ( +
+
+ + + Get comprehensive, actionable reviews directly in your PRs. + + + Try Roo's PR Reviewer + + +
+
+ ); +} \ No newline at end of file diff --git a/src/components/AnnouncementBanner/styles.module.css b/src/components/AnnouncementBanner/styles.module.css new file mode 100644 index 00000000..7c668292 --- /dev/null +++ b/src/components/AnnouncementBanner/styles.module.css @@ -0,0 +1,84 @@ +.announcementBanner { + position: relative; + width: 100%; + background: linear-gradient(90deg, #4f46e5, #2563eb); + border-bottom: 1px solid rgba(147, 197, 253, 0.5); + box-shadow: 0 4px 12px rgba(37, 99, 235, 0.15); +} + +.bannerContent { + display: flex; + align-items: center; + justify-content: center; + gap: 0.75rem; + padding: 0.75rem 3rem; + color: #ffffff; + position: relative; +} + +.bannerHeadline { + font-weight: 600; + font-size: 0.95rem; +} + +.bannerLink { + color: #ffffff; + font-weight: 600; + font-size: 0.95rem; + text-decoration: underline; + text-decoration-color: rgba(255, 255, 255, 0.7); + text-decoration-thickness: 2px; + transition: text-decoration-color 0.2s ease; +} + +.bannerLink:hover { + color: #ffffff; + text-decoration-color: rgba(255, 255, 255, 0.95); +} + +.dismissButton { + position: absolute; + right: 1rem; + top: 1.5rem; + transform: translateY(-50%); + background: transparent; + border: none; + color: #ffffff; + cursor: pointer; + padding: 0.25rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: background-color 0.2s ease; +} + +.dismissButton:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.dismissButton:focus { + outline: 2px solid rgba(255, 255, 255, 0.5); + outline-offset: 2px; +} + +@media (max-width: 768px) { + .bannerContent { + flex-direction: column; + gap: 0.5rem; + padding: 1rem 3rem 1rem 1rem; + align-items: flex-start; + } + + .bannerHeadline { + font-size: 0.875rem; + } + + .bannerLink { + font-size: 0.875rem; + } + + .dismissButton { + right: 0.5rem; + } +} \ No newline at end of file diff --git a/src/components/CookieConsent/index.tsx b/src/components/CookieConsent/index.tsx new file mode 100644 index 00000000..3c2d6b9f --- /dev/null +++ b/src/components/CookieConsent/index.tsx @@ -0,0 +1,76 @@ +import React, { useState, useEffect } from 'react'; +import ReactCookieConsent from 'react-cookie-consent'; +import { getDomain } from 'tldts'; +import { CONSENT_COOKIE_NAME } from '@roo-code/types'; +import { dispatchConsentEvent } from '../../lib/analytics/consent-manager'; +import styles from './styles.module.css'; + +export function CookieConsent() { + const [cookieDomain, setCookieDomain] = useState(null); + + useEffect(() => { + // Get the appropriate domain using tldts + if (typeof window !== 'undefined') { + if(window.location.hostname === 'localhost') { + setCookieDomain('localhost'); + return; + } else { + setCookieDomain(getDomain(window.location.hostname)); + } + } + }, []); + + const handleAccept = () => { + dispatchConsentEvent(true); + }; + + const handleDecline = () => { + dispatchConsentEvent(false); + }; + + const extraCookieOptions = cookieDomain + ? { + domain: cookieDomain, + } + : {}; + + return ( +
+ +
+ + + + Like most of the internet, we use cookies. Are you OK with that? +
+
+
+ ); +} \ No newline at end of file diff --git a/src/components/CookieConsent/styles.module.css b/src/components/CookieConsent/styles.module.css new file mode 100644 index 00000000..a2aaa912 --- /dev/null +++ b/src/components/CookieConsent/styles.module.css @@ -0,0 +1,130 @@ +.container { + position: fixed; + bottom: 0; + left: 8px; + right: 8px; + z-index: 999; + color: white; + font-weight: 600; + border-radius: 8px 8px 0 0; + padding: 16px; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + gap: 16px; + font-size: 14px; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; +} + +.container { + background: black !important; + color: white; + border-top-color: #222; +} + +/* Dark mode support */ +[data-theme='dark'] .container { + background-color: white !important; + color: black; + border-top-color: #e5e5e5; +} + +@media (min-width: 768px) { + .container { + padding: 16px 32px; + } +} + +.content { + display: flex; + align-items: center; + gap: 8px; +} + +.cookieIcon { + display: none; + flex-shrink: 0; +} + +@media (min-width: 768px) { + .cookieIcon { + display: block; + } +} + +.buttonWrapper { + display: flex; + flex-direction: row-reverse; + align-items: center; + gap: 8px; +} + +.acceptButton { + background-color: white; + color: black; + border: 1px solid #262626; + border-radius: 6px; + padding: 8px 16px; + margin-right: 8px; + font-size: 14px; + font-weight: bold; + cursor: pointer; + transition: opacity 0.2s; +} + +.acceptButton:hover { + opacity: 0.7; +} + +.acceptButton:focus { + outline: none; + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); +} + +[data-theme='dark'] .acceptButton { + background-color: black; + color: white; + border-color: #e5e5e5; +} + +.declineButton { + background-color: black; + color: white; + border: 1px solid #262626; + border-radius: 6px; + padding: 8px 16px; + font-size: 14px; + font-weight: bold; + cursor: pointer; + transition: opacity 0.2s; +} + +.declineButton:hover { + opacity: 0.7; +} + +.declineButton:focus { + outline: none; + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); +} + +[data-theme='dark'] .declineButton { + background-color: white; + color: black; + border-color: #e5e5e5; +} + +/* Ensure the banner is above other content */ +.container { + animation: slideUp 0.3s ease-out; +} + +@keyframes slideUp { + from { + transform: translateY(100%); + } + to { + transform: translateY(0); + } +} \ No newline at end of file diff --git a/src/components/GTMProvider/index.tsx b/src/components/GTMProvider/index.tsx new file mode 100644 index 00000000..c8770cc2 --- /dev/null +++ b/src/components/GTMProvider/index.tsx @@ -0,0 +1,108 @@ +import React, { useEffect } from 'react'; +import { hasConsent, onConsentChange } from '../../lib/analytics/consent-manager'; + +// Google Tag Manager ID - hardcoded for production +const GTM_ID = 'GTM-M2JZHV8N'; + +declare global { + interface Window { + dataLayer?: any[]; + google_tag_manager?: any; + } +} + +export function GTMProvider({ children }: { children: React.ReactNode }) { + useEffect(() => { + // Check initial consent status + const consentGiven = hasConsent(); + + if (consentGiven) { + enableGTM(); + } + + // Listen for consent changes + const cleanup = onConsentChange((granted) => { + if (granted) { + enableGTM(); + } else { + disableGTM(); + } + }); + + return () => { + cleanup(); + // Clean up GTM scripts on unmount + removeGTMScripts(); + }; + }, []); + + const enableGTM = () => { + if (typeof window === 'undefined') return; + + // Check if GTM is already loaded + if (document.getElementById('gtm-script')) { + return; + } + + // Initialize dataLayer + window.dataLayer = window.dataLayer || []; + window.dataLayer.push({ + 'gtm.start': new Date().getTime(), + event: 'gtm.js' + }); + + // Inject GTM script in head + const script = document.createElement('script'); + script.id = 'gtm-script'; + script.async = true; + script.src = `https://www.googletagmanager.com/gtm.js?id=${GTM_ID}`; + + const firstScript = document.getElementsByTagName('script')[0]; + if (firstScript && firstScript.parentNode) { + firstScript.parentNode.insertBefore(script, firstScript); + } else { + document.head.appendChild(script); + } + + // Inject noscript iframe in body + const noscript = document.createElement('noscript'); + noscript.id = 'gtm-noscript'; + const iframe = document.createElement('iframe'); + iframe.src = `https://www.googletagmanager.com/ns.html?id=${GTM_ID}`; + iframe.height = '0'; + iframe.width = '0'; + iframe.style.display = 'none'; + iframe.style.visibility = 'hidden'; + noscript.appendChild(iframe); + + document.body.insertBefore(noscript, document.body.firstChild); + }; + + const disableGTM = () => { + if (typeof window === 'undefined') return; + + // Remove GTM scripts + removeGTMScripts(); + + // Clear dataLayer + if (window.dataLayer) { + window.dataLayer = []; + } + }; + + const removeGTMScripts = () => { + // Remove GTM script + const script = document.getElementById('gtm-script'); + if (script) { + script.remove(); + } + + // Remove noscript + const noscript = document.getElementById('gtm-noscript'); + if (noscript) { + noscript.remove(); + } + }; + + return <>{children}; +} \ No newline at end of file diff --git a/src/components/GitHubInstallButtons/index.tsx b/src/components/GitHubInstallButtons/index.tsx index 4e395a46..fcc62c3f 100644 --- a/src/components/GitHubInstallButtons/index.tsx +++ b/src/components/GitHubInstallButtons/index.tsx @@ -6,6 +6,10 @@ import styles from './styles.module.css'; // Number formatting function function formatNumber(num: number): string { + if (num >= 1000000) { + const truncated = Math.floor((num / 1000000) * 10) / 10; + return truncated.toFixed(1) + "M"; + } const truncated = Math.floor((num / 1000) * 10) / 10; return truncated.toFixed(1) + "k"; } diff --git a/src/components/GitHubInstallButtons/styles.module.css b/src/components/GitHubInstallButtons/styles.module.css index eacc2ad6..64e7c142 100644 --- a/src/components/GitHubInstallButtons/styles.module.css +++ b/src/components/GitHubInstallButtons/styles.module.css @@ -26,26 +26,28 @@ } .installButton { - background: var(--primary, hsl(0 0% 9%)); - color: var(--primary-foreground, hsl(0 0% 98%)); - border-radius: 9999px; + background: hsl(var(--primary, 0 0% 9%)); + color: hsl(var(--primary-foreground, 0 0% 98%)); + border-radius: 0.375rem; padding: 0.375rem 0.75rem; + transition: all 0.2s ease; } .installButton:hover { - background: var(--primary-hover, hsl(0 0% 9% / 0.9)); + background: hsl(var(--primary-hover, 0 0% 9% / 0.9)); text-decoration: none; - color: var(--primary-foreground, hsl(0 0% 98%)); + color: hsl(var(--primary-foreground, 0 0% 98%)); + scale: 1.05; } [data-theme='dark'] .installButton { - background: var(--primary-dark, hsl(0 0% 98%)); - color: var(--primary-foreground-dark, hsl(0 0% 9%)); + background: hsl(var(--primary, 0 0% 98%)); + color: hsl(var(--primary-foreground, 0 0% 9%)); } [data-theme='dark'] .installButton:hover { - background: var(--primary-dark-hover, hsl(0 0% 98% / 0.9)); - color: var(--primary-foreground-dark, hsl(0 0% 9%)); + background: hsl(var(--primary-dark-hover, 0 0% 98% / 0.9)); + color: hsl(var(--primary-foreground, 0 0% 9%)); } .icon { @@ -63,4 +65,4 @@ .container { display: none; } -} \ No newline at end of file +} diff --git a/src/components/IntercomProvider/index.tsx b/src/components/IntercomProvider/index.tsx new file mode 100644 index 00000000..21129004 --- /dev/null +++ b/src/components/IntercomProvider/index.tsx @@ -0,0 +1,96 @@ +import React, { useEffect } from 'react'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import { hasConsent, onConsentChange } from '../../lib/analytics/consent-manager'; + +// Intercom interface - it's a callable function with overloads +interface IntercomInstance { + (command: 'boot', config: Record): void; + (command: 'shutdown'): void; + (command: 'update', config?: Record): void; + (command: 'show'): void; + (command: 'hide'): void; + (command: 'showMessages'): void; + (command: 'showNewMessage', message?: string): void; + (command: 'onHide', callback: () => void): void; + (command: 'onShow', callback: () => void): void; + (command: 'onUnreadCountChange', callback: (unreadCount: number) => void): void; +} + +declare global { + interface Window { + Intercom?: IntercomInstance; + intercomSettings?: Record; + } +} + +export function IntercomProvider({ children }: { children: React.ReactNode }) { + const { siteConfig } = useDocusaurusContext(); + const appId = siteConfig.customFields?.intercomAppId as string | undefined; + + useEffect(() => { + // Only initialize if Intercom App ID is configured + if (!appId) { + return; + } + + // Check initial consent status + const consentGiven = hasConsent(); + + if (consentGiven) { + loadIntercom(appId); + } + + // Listen for consent changes + const cleanup = onConsentChange((granted) => { + if (granted) { + loadIntercom(appId); + } else { + shutdownIntercom(); + } + }); + + return () => { + cleanup(); + shutdownIntercom(); + }; + }, []); + + const loadIntercom = (appId: string) => { + if (typeof window === 'undefined') return; + + // Skip if already loaded + if (window.Intercom) { + window.Intercom('update'); + return; + } + + // Set up Intercom settings + window.intercomSettings = { + app_id: appId, + alignment: 'right', + horizontal_padding: 20, + vertical_padding: 20, + }; + + // Load Intercom script + const script = document.createElement('script'); + script.async = true; + script.src = `https://widget.intercom.io/widget/${appId}`; + + script.onload = () => { + if (window.Intercom) { + window.Intercom('boot', window.intercomSettings || {}); + } + }; + + document.head.appendChild(script); + }; + + const shutdownIntercom = () => { + if (typeof window !== 'undefined' && window.Intercom) { + window.Intercom('shutdown'); + } + }; + + return <>{children}; +} \ No newline at end of file diff --git a/src/components/PostHogProvider/index.tsx b/src/components/PostHogProvider/index.tsx new file mode 100644 index 00000000..221d6e69 --- /dev/null +++ b/src/components/PostHogProvider/index.tsx @@ -0,0 +1,65 @@ +import React, { useEffect } from 'react'; +import { hasConsent, onConsentChange } from '../../lib/analytics/consent-manager'; + +// PostHog interface - define the methods we use +interface PostHogInstance { + opt_in_capturing(): void; + opt_out_capturing(): void; + startSessionRecording(): void; + stopSessionRecording(): void; +} + +declare global { + interface Window { + posthog?: PostHogInstance; + } +} + +export function PostHogProvider({ children }: { children: React.ReactNode }) { + useEffect(() => { + // Check initial consent status + const consentGiven = hasConsent(); + + if (consentGiven) { + enablePostHog(); + } else { + disablePostHog(); + } + + // Listen for consent changes + const cleanup = onConsentChange((granted) => { + if (granted) { + enablePostHog(); + } else { + disablePostHog(); + } + }); + + return cleanup; + }, []); + + const enablePostHog = () => { + if (typeof window !== 'undefined' && window.posthog) { + // Re-initialize PostHog if it was previously disabled + if (typeof window.posthog.opt_in_capturing === 'function') { + window.posthog.opt_in_capturing(); + } + if (typeof window.posthog.startSessionRecording === 'function') { + window.posthog.startSessionRecording(); + } + } + }; + + const disablePostHog = () => { + if (typeof window !== 'undefined' && window.posthog) { + if (typeof window.posthog.opt_out_capturing === 'function') { + window.posthog.opt_out_capturing(); + } + if (typeof window.posthog.stopSessionRecording === 'function') { + window.posthog.stopSessionRecording(); + } + } + }; + + return <>{children}; +} \ No newline at end of file diff --git a/src/components/TeamsBanner/index.tsx b/src/components/TeamsBanner/index.tsx new file mode 100644 index 00000000..4f3a808e --- /dev/null +++ b/src/components/TeamsBanner/index.tsx @@ -0,0 +1,61 @@ +import React, { useState, useEffect } from 'react'; +import styles from './styles.module.css'; + +export function TeamsBanner(): React.ReactElement | null { + const [isVisible, setIsVisible] = useState(false); + + useEffect(() => { + // Check localStorage to see if banner was dismissed + const isDismissed = localStorage.getItem('teamsBannerDismissed'); + if (!isDismissed) { + setIsVisible(true); + } + }, []); + + const handleDismiss = () => { + setIsVisible(false); + localStorage.setItem('teamsBannerDismissed', 'true'); + }; + + if (!isVisible) { + return null; + } + + return ( +
+
+ Ship Faster with Roo Code Teams. + + Get early access now. + +
+ +
+ ); +} + +export default TeamsBanner; \ No newline at end of file diff --git a/src/components/TeamsBanner/styles.module.css b/src/components/TeamsBanner/styles.module.css new file mode 100644 index 00000000..bd96c980 --- /dev/null +++ b/src/components/TeamsBanner/styles.module.css @@ -0,0 +1,85 @@ +.teamsBanner { + position: relative; + display: flex; + align-items: center; + justify-content: center; + padding: 0.85rem 1.1rem; + background: linear-gradient(90deg, #4f46e5, #2563eb); + color: #ffffff; +} + +.teamsBannerContent { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.teamsBannerHeadline { + font-weight: 600; +} + +.teamsBannerLink { + color: #ffffff; + font-weight: 600; + text-decoration: underline; + text-decoration-color: rgba(255, 255, 255, 0.7); + text-decoration-thickness: 2px; +} + +.teamsBannerLink:hover { + color: #ffffff; + text-decoration-color: rgba(255, 255, 255, 0.95); +} + +.teamsBannerDismiss { + position: absolute; + right: 1rem; + background: transparent; + border: none; + color: #ffffff; + cursor: pointer; + padding: 0.25rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: background-color 0.2s ease; +} + +.teamsBannerDismiss:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.teamsBannerDismiss:focus { + outline: 2px solid rgba(255, 255, 255, 0.5); + outline-offset: 2px; +} + +@media (max-width: 768px) { + .teamsBanner { + padding: 0.75rem 1rem; + } + + .teamsBannerContent { + flex-direction: row; + align-items: center; + gap: 0.5rem; + padding-right: 2rem; /* Space for close button */ + font-size: 0.875rem; /* Smaller font size for mobile */ + } + + .teamsBannerHeadline { + font-weight: 600; + white-space: nowrap; + } + + .teamsBannerLink { + white-space: nowrap; + } + + .teamsBannerDismiss { + right: 0.5rem; + top: 50%; + transform: translateY(-50%); + } +} diff --git a/src/constants.ts b/src/constants.ts index a6d0cdff..615715c3 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -10,7 +10,7 @@ export const GITHUB_NEW_ISSUE_URL = `${GITHUB_ISSUES_URL}/new`; // Community links export const DISCORD_URL = 'https://discord.gg/roocode'; export const REDDIT_URL = 'https://www.reddit.com/r/RooCode/'; -export const TWITTER_URL = 'https://x.com/roo_code'; +export const TWITTER_URL = 'https://x.com/roocode'; export const BLUESKY_URL = 'https://bsky.app/profile/roocode.bsky.social'; export const LINKEDIN_URL = 'https://www.linkedin.com/company/roo-code'; export const TIKTOK_URL = 'https://www.tiktok.com/@roo.code'; diff --git a/src/css/custom.css b/src/css/custom.css index cf6cdb53..fba48f40 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -35,7 +35,7 @@ --chart-5: 115 100% 50%; /* GitHub install button colors */ - --primary-hover: hsl(0 0% 9% / 0.9); + --primary-hover: 0 0% 9% / 0.9; --ifm-color-gray-400: #9ca3af; --ifm-color-gray-200: #e5e7eb; @@ -51,6 +51,8 @@ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); --ifm-background-color: hsl(var(--background)); --ifm-font-color-base: hsl(var(--foreground)); + + font-size: 14px; } /* Dark mode - force pure black background */ @@ -77,7 +79,7 @@ --ring: 0 0% 83.1%; /* GitHub install button colors for dark mode */ - --primary-dark-hover: hsl(0 0% 98% / 0.9); + --primary-dark-hover: 0 0% 98% / 0.9; --ifm-color-gray-400: #9ca3af; --ifm-color-gray-200: #e5e7eb; @@ -1465,7 +1467,7 @@ body { .table-of-contents__link:hover, .table-of-contents__link--active, .navbar__link:hover, -.breadcrumbs__link:hover, +a.breadcrumbs__link:hover, .footer__link-item:hover { color: hsl(var(--foreground)) !important; /* 100% on hover/active */ } @@ -1698,20 +1700,16 @@ main[class*="docMainContainer"] { margin: 2rem 0; border-collapse: separate; border-spacing: 0; - border: 1px solid hsl(var(--border) / 0.5); - border-radius: calc(var(--radius) + 4px); overflow: hidden; background: hsl(var(--background) / 0.3); - backdrop-filter: blur(16px); } .theme-doc-markdown th { background: hsl(var(--background) / 0.6); padding: 0.75rem 1rem; text-align: left; - font-weight: 600; + font-weight: 700; color: hsl(var(--foreground)); - border-bottom: 1px solid hsl(var(--border) / 0.5); } .theme-doc-markdown td { @@ -1720,10 +1718,6 @@ main[class*="docMainContainer"] { color: hsl(var(--foreground) / 0.9); /* Match body text brightness */ } -.theme-doc-markdown tr:last-child td { - border-bottom: none; -} - /* Heading anchor links */ .hash-link { opacity: 0; @@ -2035,7 +2029,8 @@ html { /* Breadcrumbs styling */ .theme-doc-breadcrumbs { - margin-bottom: 1rem; + margin-bottom: 2rem; + margin-left: 1.25rem; font-size: 0.875rem; } @@ -2046,9 +2041,10 @@ html { .breadcrumbs__link { color: hsl(var(--muted-foreground)); transition: color 200ms; + cursor: default; } -.breadcrumbs__link:hover { +a.breadcrumbs__link:hover { color: hsl(var(--foreground)); text-decoration: none; } @@ -2332,4 +2328,13 @@ html { /* Ensure consistent spacing for all tutorial video links */ .menu__list-item:has(> a[href^="https://www.youtube.com/watch"]) { margin-bottom: 0 !important; +} + +/* ============================================ + FIX: SEARCH INPUT TINY BUBBLE ON MOBILE + ============================================ */ + +/* Override Docusaurus default that makes search input 2rem when not focused */ +.navbar__search-input:not(:focus) { + min-width: 80px !important; } \ No newline at end of file diff --git a/src/lib/analytics/consent-manager.ts b/src/lib/analytics/consent-manager.ts new file mode 100644 index 00000000..3a8789b8 --- /dev/null +++ b/src/lib/analytics/consent-manager.ts @@ -0,0 +1,61 @@ +import { CONSENT_COOKIE_NAME } from '@roo-code/types'; +import { getCookieConsentValue } from 'react-cookie-consent'; + +// Custom event names for consent tracking +export const CONSENT_GRANTED_EVENT = 'cookieConsentGranted'; +export const CONSENT_DENIED_EVENT = 'cookieConsentDenied'; + +/** + * Dispatches a custom event to notify the application about cookie consent status + * @param granted - Whether the user has granted consent + */ +export function dispatchConsentEvent(granted: boolean): void { + if (typeof window === 'undefined') return; + + const eventName = granted ? CONSENT_GRANTED_EVENT : CONSENT_DENIED_EVENT; + const event = new CustomEvent(eventName, { + detail: { granted }, + bubbles: true, + cancelable: false + }); + + window.dispatchEvent(event); + + // Also dispatch a generic consent event with the status + const genericEvent = new CustomEvent('cookieConsentChanged', { + detail: { granted }, + bubbles: true, + cancelable: false + }); + + window.dispatchEvent(genericEvent); +} + +/** + * Check if user has given consent for analytics cookies + * Uses react-cookie-consent's built-in function + */ +export function hasConsent(): boolean { + if (typeof window === 'undefined') return false; + return getCookieConsentValue(CONSENT_COOKIE_NAME) === 'true'; +} + +/** + * Sets up a listener for consent events + * @param callback - Function to call when consent status changes + * @returns Cleanup function to remove the listener + */ +export function onConsentChange(callback: (granted: boolean) => void): () => void { + if (typeof window === 'undefined') return () => {}; + + const handler = (event: Event) => { + const customEvent = event as CustomEvent; + callback(customEvent.detail.granted); + }; + + window.addEventListener('cookieConsentChanged', handler); + + return () => { + window.removeEventListener('cookieConsentChanged', handler); + }; +} \ No newline at end of file diff --git a/src/theme/DocBreadcrumbs/styles.module.css b/src/theme/DocBreadcrumbs/styles.module.css index 77a4bdfe..e183735a 100644 --- a/src/theme/DocBreadcrumbs/styles.module.css +++ b/src/theme/DocBreadcrumbs/styles.module.css @@ -13,4 +13,5 @@ .breadcrumbsWrapper .breadcrumbs { margin: 0; flex: 1; + cursor: default; } diff --git a/src/theme/DocItem/index.js b/src/theme/DocItem/index.js index 12e46237..37432611 100644 --- a/src/theme/DocItem/index.js +++ b/src/theme/DocItem/index.js @@ -2,9 +2,5 @@ import React from 'react'; import DocItem from '@theme-original/DocItem'; export default function DocItemWrapper(props) { - return ( - <> - - - ); + return ; } \ No newline at end of file diff --git a/src/theme/Layout/index.js b/src/theme/Layout/index.js index c93e5a17..5de7579b 100644 --- a/src/theme/Layout/index.js +++ b/src/theme/Layout/index.js @@ -1,12 +1,21 @@ import React from 'react'; import OriginalLayout from '@theme-original/Layout'; -import { AnimatedBackground } from '../../components/AnimatedBackground'; +import { CookieConsent } from '../../components/CookieConsent'; +import { PostHogProvider } from '../../components/PostHogProvider'; +import { GTMProvider } from '../../components/GTMProvider'; +import { IntercomProvider } from '../../components/IntercomProvider'; +import { AnnouncementBanner } from '../../components/AnnouncementBanner'; export default function Layout(props) { return ( - <> - - - + + + + + + + + + ); } \ No newline at end of file diff --git a/src/theme/Navbar/ColorModeToggle/styles.module.css b/src/theme/Navbar/ColorModeToggle/styles.module.css index 9d8a9de9..144504af 100644 --- a/src/theme/Navbar/ColorModeToggle/styles.module.css +++ b/src/theme/Navbar/ColorModeToggle/styles.module.css @@ -14,22 +14,22 @@ } .themeToggle:hover { - background-color: var(--accent, hsl(0 0% 96.1%)); - color: var(--accent-foreground, hsl(0 0% 9%)); + background-color: hsl(var(--accent, 0 0% 96.1%)); + color: hsl(var(--accent-foreground, 0 0% 9%)); } [data-theme='dark'] .themeToggle:hover { - background-color: var(--accent, hsl(0 0% 14.9%)); - color: var(--accent-foreground, hsl(0 0% 98%)); + background-color: hsl(var(--accent, 0 0% 14.9%)); + color: hsl(var(--accent-foreground, 0 0% 98%)); } .themeToggle:focus-visible { outline: none; - box-shadow: 0 0 0 1px var(--ring, hsl(0 0% 3.9%)); + box-shadow: 0 0 0 1px hsl(var(--ring, 0 0% 3.9%)); } [data-theme='dark'] .themeToggle:focus-visible { - box-shadow: 0 0 0 1px var(--ring, hsl(0 0% 83.1%)); + box-shadow: 0 0 0 1px hsl(var(--ring, 0 0% 83.1%)); } .icon { diff --git a/src/theme/Navbar/MobileSidebar/Layout/index.tsx b/src/theme/Navbar/MobileSidebar/Layout/index.tsx index fa88383d..fb1de167 100644 --- a/src/theme/Navbar/MobileSidebar/Layout/index.tsx +++ b/src/theme/Navbar/MobileSidebar/Layout/index.tsx @@ -8,7 +8,7 @@ import type {Props} from '@theme/Navbar/MobileSidebar/Layout'; // See https://github.com/facebook/react/issues/17157 // See https://github.com/radix-ui/themes/pull/509 function inertProps(inert: boolean) { - const isBeforeReact19 = parseInt(version!.split('.')[0]!, 10) < 19; + const isBeforeReact19 = parseInt(version.split('.')[0], 10) < 19; if (isBeforeReact19) { return {inert: inert ? '' : undefined}; } diff --git a/src/theme/SearchBar/index.tsx b/src/theme/SearchBar/index.tsx new file mode 100644 index 00000000..6efd47e6 --- /dev/null +++ b/src/theme/SearchBar/index.tsx @@ -0,0 +1,393 @@ +/* eslint-env browser */ +/* eslint-disable react-hooks/rules-of-hooks */ +/* Custom SearchBar override that always pushes Release Notes suggestions to the bottom */ +import React, {useCallback, useEffect, useRef, useState} from 'react'; +import clsx from 'clsx'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import useIsBrowser from '@docusaurus/useIsBrowser'; +import {useHistory, useLocation} from '@docusaurus/router'; +import {translate} from '@docusaurus/Translate'; + +// Reuse plugin internals +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import {fetchIndexesByWorker, searchByWorker} from '@easyops-cn/docusaurus-search-local/dist/client/client/theme/searchByWorker'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import {SuggestionTemplate} from '@easyops-cn/docusaurus-search-local/dist/client/client/theme/SearchBar/SuggestionTemplate'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import {EmptyTemplate} from '@easyops-cn/docusaurus-search-local/dist/client/client/theme/SearchBar/EmptyTemplate'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import { + Mark, + searchBarShortcut, + searchBarShortcutHint, + searchBarPosition, + searchContextByPaths, + hideSearchBarWithNoSearchContext, + useAllContextsWithNoSearchContext, +} from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/proxiedGenerated'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import {normalizeContextByPath} from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/normalizeContextByPath'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import {searchResultLimits} from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/proxiedGeneratedConstants'; + +// Local fallback styles to minimize layout drift if plugin CSS path changes. +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import styles from '@easyops-cn/docusaurus-search-local/dist/client/client/theme/SearchBar/SearchBar.module.css'; + +async function fetchAutoCompleteJS() { + const autoCompleteModule = await import('@easyops-cn/autocomplete.js'); + const autoComplete = autoCompleteModule.default; + if (autoComplete.noConflict) { + autoComplete.noConflict(); + } else if (autoCompleteModule.noConflict) { + autoCompleteModule.noConflict(); + } + return autoComplete; +} + +const SEARCH_PARAM_HIGHLIGHT = '_highlight'; + +function deprioritizeReleaseNotes(results: any[]) { + if (!Array.isArray(results)) return results; + const isRN = (u: string) => typeof u === 'string' && u.includes('/update-notes'); + const nonRN: any[] = []; + const rn: any[] = []; + for (const r of results) { + const url = r?.document?.u ?? ''; + (isRN(url) ? rn : nonRN).push(r); + } + return [...nonRN, ...rn]; +} + +export default function SearchBar(): JSX.Element { + const isBrowser = useIsBrowser(); + const { + siteConfig: {baseUrl}, + i18n: {currentLocale}, + } = useDocusaurusContext(); + + const versionUrl = baseUrl; + + const history = useHistory(); + const location = useLocation(); + const searchBarRef = useRef(null); + const indexStateMap = useRef>(new Map()); + + const focusAfterIndexLoaded = useRef(false); + const [loading, setLoading] = useState(false); + const [inputChanged, setInputChanged] = useState(false); + const [inputValue, setInputValue] = useState(''); + + const search = useRef(null); + const prevSearchContext = useRef(''); + const [searchContext, setSearchContext] = useState(''); + const prevVersionUrl = useRef(baseUrl); + + useEffect(() => { + if (!Array.isArray(searchContextByPaths)) { + if (prevVersionUrl.current !== versionUrl) { + indexStateMap.current.delete(''); + prevVersionUrl.current = versionUrl; + } + return; + } + let nextSearchContext = ''; + if (location.pathname.startsWith(versionUrl)) { + const uri = location.pathname.substring(versionUrl.length); + let matchedPath: string | undefined; + for (const _path of searchContextByPaths as any[]) { + const path = typeof _path === 'string' ? _path : _path.path; + if (uri === path || uri.startsWith(`${path}/`)) { + matchedPath = path; + break; + } + } + if (matchedPath) { + nextSearchContext = matchedPath; + } + } + if (prevSearchContext.current !== nextSearchContext) { + indexStateMap.current.delete(nextSearchContext); + prevSearchContext.current = nextSearchContext; + } + setSearchContext(nextSearchContext); + }, [location.pathname, versionUrl]); + + const hidden = + !!hideSearchBarWithNoSearchContext && + Array.isArray(searchContextByPaths) && + searchContext === ''; + + const loadIndex = useCallback(async () => { + if (hidden || indexStateMap.current.get(searchContext)) { + return; + } + indexStateMap.current.set(searchContext, 'loading'); + search.current?.autocomplete.destroy(); + setLoading(true); + const [autoComplete] = await Promise.all([fetchAutoCompleteJS(), fetchIndexesByWorker(versionUrl, searchContext)]); + const searchFooterLinkElement = ({query, isEmpty}: {query: string; isEmpty: boolean}) => { + const a = document.createElement('a'); + const params = new window.URLSearchParams(); + params.set('q', query); + let linkText: string; + if (searchContext) { + const detailedSearchContext = + searchContext && + Array.isArray(searchContextByPaths) && + (searchContextByPaths as any[]).find((item) => + typeof item === 'string' ? item === searchContext : item.path === searchContext, + ); + const translatedSearchContext = detailedSearchContext + ? normalizeContextByPath(detailedSearchContext, currentLocale).label + : searchContext; + if (useAllContextsWithNoSearchContext && isEmpty) { + linkText = translate({ + id: 'theme.SearchBar.seeAllOutsideContext', + message: 'See all results outside "{context}"', + }, {context: translatedSearchContext}); + } else { + linkText = translate({ + id: 'theme.SearchBar.searchInContext', + message: 'See all results within "{context}"', + }, {context: translatedSearchContext}); + } + } else { + linkText = translate({ + id: 'theme.SearchBar.seeAll', + message: 'See all results', + }); + } + if ( + searchContext && + Array.isArray(searchContextByPaths) && + (!useAllContextsWithNoSearchContext || !isEmpty) + ) { + params.set('ctx', searchContext); + } + if (versionUrl !== baseUrl) { + if (!versionUrl.startsWith(baseUrl)) { + throw new Error( + `Version url '${versionUrl}' does not start with base url '${baseUrl}'`, + ); + } + params.set('version', versionUrl.substring(baseUrl.length)); + } + const url = `${baseUrl}search/?${params.toString()}`; + a.href = url; + a.textContent = linkText; + a.addEventListener('click', (e) => { + if (!e.ctrlKey && !e.metaKey) { + e.preventDefault(); + search.current?.autocomplete.close(); + history.push(url); + } + }); + return a; + }; + + search.current = (autoComplete as any)( + searchBarRef.current, + { + hint: false, + autoselect: true, + openOnFocus: true, + cssClasses: { + root: clsx(styles.searchBar, { + [styles.searchBarLeft]: searchBarPosition === 'left', + }), + noPrefix: true, + dropdownMenu: styles.dropdownMenu, + input: styles.input, + hint: styles.hint, + suggestions: styles.suggestions, + suggestion: styles.suggestion, + cursor: styles.cursor, + dataset: styles.dataset, + empty: styles.empty, + }, + }, + [ + { + source: async (input: string, callback: (res: any[]) => void) => { + const expandedLimit = Math.max(50, (searchResultLimits as any) * 5); + const result = await searchByWorker(versionUrl, searchContext, input, expandedLimit); + const adjusted = deprioritizeReleaseNotes(result).slice(0, searchResultLimits as any); + callback(adjusted); + }, + templates: { + suggestion: SuggestionTemplate as any, + empty: EmptyTemplate as any, + footer: ({query, isEmpty}: {query: string; isEmpty: boolean}) => { + if (isEmpty && (!searchContext || !useAllContextsWithNoSearchContext)) { + return; + } + const a = searchFooterLinkElement({query, isEmpty}); + const div = document.createElement('div'); + div.className = styles.hitFooter; + div.appendChild(a); + return div; + }, + }, + }, + ], + ) + .on('autocomplete:selected', function (_event: any, {document: {u, h}, tokens}: any) { + searchBarRef.current?.blur(); + let url = u; + if (Mark && tokens.length > 0) { + const params = new window.URLSearchParams(); + for (const token of tokens) { + params.append(SEARCH_PARAM_HIGHLIGHT, token); + } + url += `?${params.toString()}`; + } + if (h) { + url += h; + } + history.push(url); + }) + .on('autocomplete:closed', () => { + searchBarRef.current?.blur(); + }); + + indexStateMap.current.set(searchContext, 'done'); + setLoading(false); + + if (focusAfterIndexLoaded.current) { + const input = searchBarRef.current!; + if (input.value) { + search.current?.autocomplete.open(); + } + input.focus(); + } + }, [hidden, searchContext, versionUrl, baseUrl, history, currentLocale]); + + useEffect(() => { + if (!Mark) return; + const keywords = isBrowser ? new window.URLSearchParams(location.search).getAll(SEARCH_PARAM_HIGHLIGHT) : []; + setTimeout(() => { + const root = document.querySelector('article'); + if (!root) return; + // @ts-ignore + const mark = new Mark(root); + mark.unmark(); + if (keywords.length !== 0) { + mark.mark(keywords, {exclude: ['.theme-doc-toc-mobile > button']}); + } + setInputValue(keywords.join(' ')); + search.current?.autocomplete.setVal(keywords.join(' ')); + }); + }, [isBrowser, location.search, location.pathname]); + + const [focused, setFocused] = useState(false); + const onInputFocus = useCallback(() => { + focusAfterIndexLoaded.current = true; + loadIndex(); + setFocused(true); + }, [loadIndex]); + const onInputBlur = useCallback(() => { + setFocused(false); + }, []); + const onInputMouseEnter = useCallback(() => { + loadIndex(); + }, [loadIndex]); + const onInputChange = useCallback((event: React.ChangeEvent) => { + setInputValue(event.target.value); + if (event.target.value) { + setInputChanged(true); + } + }, []); + + const isMac = isBrowser + ? /mac/i.test((navigator as any).userAgentData?.platform ?? (navigator as any).platform) + : false; + + useEffect(() => { + const searchBar = searchBarRef.current; + const domValue = searchBar?.value; + if (domValue) { + setInputValue(domValue); + } + if (searchBar && document.activeElement === searchBar) { + focusAfterIndexLoaded.current = true; + loadIndex(); + setFocused(true); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect(() => { + if (!searchBarShortcut) { + return; + } + const handleShortcut = (event: any) => { + if ((isMac ? event.metaKey : event.ctrlKey) && (event.key === 'k' || event.key === 'K')) { + event.preventDefault(); + searchBarRef.current?.focus(); + onInputFocus(); + } + }; + document.addEventListener('keydown', handleShortcut); + return () => { + document.removeEventListener('keydown', handleShortcut); + }; + }, [isMac, onInputFocus]); + + const onClearSearch = useCallback(() => { + const params = new window.URLSearchParams(location.search); + params.delete(SEARCH_PARAM_HIGHLIGHT); + const paramsStr = params.toString(); + const searchUrl = location.pathname + (paramsStr !== '' ? `?${paramsStr}` : '') + location.hash; + if (searchUrl !== location.pathname + location.search + location.hash) { + history.push(searchUrl); + } + setInputValue(''); + search.current?.autocomplete.setVal(''); + }, [location.pathname, location.search, location.hash, history]); + + return ( +