Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
4905f7b
fix: resolve intermittent reasoning content not displayed for Claude …
hannesrudolph Jun 25, 2025
7b85a6d
fix: allowed commands import/export (#5110)
catrielmuller Jun 25, 2025
95d2bbd
fix: use safeWriteJson for all JSON file writes with race condition f…
KJ7LNW Jun 25, 2025
ebd522b
feat: register importSettings as VSCode command (#5095)
shivamd1810 Jun 25, 2025
23aa54b
Improve pr-reviewer to verify resolved comments by checking code (#5112)
daniel-lxs Jun 25, 2025
8824cd9
fix: resolve claude-code provider image hang (#5100) (#5105)
hannesrudolph Jun 25, 2025
13d4710
Git repo cloud telemetry (#5119)
cte Jun 26, 2025
1557171
fix: disable reasoning budget UI controls for Claude Code provider (#…
hannesrudolph Jun 26, 2025
fd26d76
fix: handle YAML parsing edge cases in CustomModesManager (#5099)
hannesrudolph Jun 26, 2025
0588a48
Fix: Remove temperature parameter for Azure OpenAI reasoning models (…
ExactDoug Jun 26, 2025
34d719e
Improve translation workflow to avoid unnecessary file reads (#5126)
KJ7LNW Jun 26, 2025
05aceca
fix: resolve Claude Code token counting inefficiency and enable cachi…
hannesrudolph Jun 26, 2025
af7913a
v3.22.0 (#5130)
mrubens Jun 26, 2025
079dbd5
Changeset version bump (#5131)
github-actions[bot] Jun 26, 2025
4f02098
Use upstream_inference_cost for OpenRouter BYOK cost calculation and …
chrarnoldus Jun 26, 2025
887b4bf
fix undefined mcp command (#5107)
qdaxb Jun 26, 2025
e311081
Track mode selector opened in telemetry (#5150)
mrubens Jun 26, 2025
de81d72
update maxTokens value for qwen/qwen3-32b model on Groq (#5138)
KanTakahiro Jun 26, 2025
1d71f8d
fix: standardize tooltip delays to 300ms (#5090) (#5098)
hannesrudolph Jun 26, 2025
42766a6
feat: add Gemini CLI provider for free access to Gemini models (#5134…
hannesrudolph Jun 26, 2025
2fceee3
chore: add changeset for v3.22.1 patch release (#5164)
roomote Jun 27, 2025
c37edcb
Changeset version bump (#5166)
github-actions[bot] Jun 27, 2025
49e596b
fix terminal keyboard shortcut error when adding content to context (…
MuriloFP Jun 27, 2025
84f5b33
Code Index (Qdrant) recreate services when change configurations (#5152)
catrielmuller Jun 27, 2025
f1275d7
fix: eliminate XSS vulnerability in CodeBlock component (#5157)
KJ7LNW Jun 27, 2025
fa8f584
Fix checkpoint popover not opening due to StandardTooltip wrapper con…
daniel-lxs Jun 27, 2025
6728120
fix(i18n): correct gemini cli error translation paths (#5194)
daniel-lxs Jun 27, 2025
25bea85
v3.22.2 (#5195)
mrubens Jun 27, 2025
a67291d
Changeset version bump (#5167)
github-actions[bot] Jun 27, 2025
2558a0b
fix: restore JSON backwards compatibility for .roomodes files (#5199)
daniel-lxs Jun 27, 2025
647871f
v3.22.3 (#5201)
mrubens Jun 27, 2025
cf946b2
Changeset version bump (#5196)
github-actions[bot] Jun 27, 2025
fbe3fb1
Add optional mode suggestions to follow-up questions (#5200)
mrubens Jun 27, 2025
afa23fd
fix: resolve E2BIG error by passing large prompts via stdin to Claude…
Fovty Jun 28, 2025
016d32f
fix: move StandardTooltip inside PopoverTrigger in ShareButton (#5203)
daniel-lxs Jun 28, 2025
3a897a4
chore: add changeset for v3.22.4 patch release (#5204)
mrubens Jun 28, 2025
f058bd9
Update contributors list (#5129)
github-actions[bot] Jun 28, 2025
79a8388
Changeset version bump (#5205)
github-actions[bot] Jun 28, 2025
5d2c641
Stop double-capturing cloud telemetry (#5211)
mrubens Jun 28, 2025
3d5657e
Git Repo URL telemetry link fix: only Https (#5202)
liwilliam2021 Jun 28, 2025
b08eedb
Revert "Stop double-capturing cloud telemetry" (#5220)
mrubens Jun 28, 2025
35b0f55
Remove Gemini CLI provider (#5223)
mrubens Jun 29, 2025
ced99de
Add changeset for v3.22.5 patch release (#5224)
mrubens Jun 29, 2025
e831ceb
Try to avoid type error from removing gemini-cli (#5226)
mrubens Jun 29, 2025
32ff741
Bring back more gemini cli types (#5227)
mrubens Jun 29, 2025
687ce40
Changeset version bump (#5225)
github-actions[bot] Jun 29, 2025
5e5c69a
Fixes #5206: Update apply_diff tool documentation to accurately refle…
roomote Jun 30, 2025
0bf1085
fixed profile context condensation threshold (#5230)
PaperBoardOfficial Jun 30, 2025
b8a28df
fix: resolve URL loading timeout issues in @ mentions (#5160)
MuriloFP Jun 30, 2025
00bacc1
feat: Add automatic configuration import on extension startup (#4848)
takakoutso Jun 30, 2025
b33cc55
Fixes #4903: Consistent cancellation error messages for thinking vs s…
roomote Jun 30, 2025
ec2c258
feat: update AWS Bedrock cross-region inference profile mapping, Clos…
KevinZhao Jun 30, 2025
607fab1
feat: add persistent version indicator on chat screen (#5115) (#5128)
hannesrudolph Jun 30, 2025
27e1196
fix: cap API retry exponential backoff at 10 minutes (#5171)
MuriloFP Jun 30, 2025
bfc1333
fix: prevent Qdrant URL field from auto-filling with default value (#…
SannidhyaSah Jun 30, 2025
83027f3
fix: ensure VersionIndicator only shows on welcome screen (#5288)
hannesrudolph Jun 30, 2025
8df7281
feat: change default mode to architect for new installations (#5289)
hannesrudolph Jun 30, 2025
70fb008
feat: adding default headers and testing for litellm fetcher (#5242)
andrewshu2000 Jul 1, 2025
c2992c1
Fix #5294: Prevent Architect mode from providing time estimates (#5295)
roomote Jul 1, 2025
e09d27c
feat: add translation workflow to issue-fixer mode (#5281)
hannesrudolph Jul 1, 2025
ea631ee
feat: add translation orchestration to PR Fixer mode (#5280)
hannesrudolph Jul 1, 2025
dce6501
fix: Exclude cache files from rules compilation (#5283)
MuriloFP Jul 1, 2025
78bd97e
feat: add user-configurable search score threshold slider for semanti…
hannesrudolph Jul 1, 2025
92d1d6b
Auto approve follow up questions (#5296)
liwilliam2021 Jul 1, 2025
c56d7c6
fix: remove context size from environment details (#5165) (#5312)
SannidhyaSah Jul 1, 2025
39986ac
feat(dx): streamline extension installation and documentation (#4284)
devxpain Jul 1, 2025
c5bfc46
Suppress mermaid error rendering (#5308)
mrubens Jul 1, 2025
f377d6c
refactor: update issue-fixer mode to use GitHub CLI instead of MCP (#…
hannesrudolph Jul 1, 2025
3d5615b
Add optional share links to templates (#5318)
mrubens Jul 1, 2025
8caf9c6
feat: Import export modes (#5074)
hannesrudolph Jul 1, 2025
8dc41b4
Cloud: support alternate auth token from environment (#5323)
jr Jul 2, 2025
6f10f2c
Give Mermaid buttons a light background in light mode (#5342)
chrarnoldus Jul 2, 2025
8bf2e9f
Add .vscode/ to the list of write-protected files/directories (#5347)
mrubens Jul 2, 2025
dddc22b
Check for protected files in single apply diff (#5348)
mrubens Jul 2, 2025
821828d
feat: integrate security one-pager into website (#5234)
dleffel Jul 2, 2025
8368ed9
v3.22.6 (#5357)
mrubens Jul 2, 2025
601bee5
Update contributors list (#5213)
github-actions[bot] Jul 2, 2025
b2f6012
Changeset version bump (#5358)
github-actions[bot] Jul 2, 2025
2d7061a
docs: add compact testing guidelines to project rules (#5353)
daniel-lxs Jul 2, 2025
0e3e568
Add issue-fixer-orchestrator mode
hannesrudolph Jul 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 11 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,16 @@ body:
validations:
required: true

- type: textarea
id: roo-code-tasks
attributes:
label: Roo Code Task Links (Optional)
description: |
If you have any publicly shared task links that demonstrate the issue, please paste them here.
This helps maintainers understand the context.
Example: https://app.roocode.com/share/task-id
placeholder: Paste your Roo Code share links here, one per line

- type: textarea
id: steps
attributes:
Expand Down Expand Up @@ -85,4 +95,4 @@ body:
attributes:
label: 📄 Relevant Logs or Errors (Optional)
description: Paste API logs, terminal output, or errors here. Use triple backticks (```) for code formatting.
render: shell
render: shell
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,16 @@ body:
label: Additional context (optional)
description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.

- type: textarea
id: roo-code-tasks
attributes:
label: Roo Code Task Links (Optional)
description: |
If you used Roo Code to explore this feature request or develop solutions, share the public task links here.
This helps maintainers understand the context and any exploration you've done.
Example: https://app.roocode.com/share/task-id
placeholder: Paste your Roo Code share links here, one per line

- type: checkboxes
id: checklist
attributes:
Expand Down
8 changes: 8 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ Before submitting your PR, please ensure:

Closes: # <!-- Replace with the issue number, e.g., Closes: #123 -->

### Roo Code Task Context (Optional)

<!--
If you used Roo Code to help create this PR, you can share public task links here.
This helps reviewers understand your development process and provides additional context.
Example: https://app.roocode.com/share/task-id
-->

### Description

<!--
Expand Down
6 changes: 6 additions & 0 deletions .roo/rules-code/use-safeWriteJson.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# JSON File Writing Must Be Atomic

- You MUST use `safeWriteJson(filePath: string, data: any): Promise<void>` from `src/utils/safeWriteJson.ts` instead of `JSON.stringify` with file-write operations
- `safeWriteJson` will create parent directories if necessary, so do not call `mkdir` prior to `safeWriteJson`
- `safeWriteJson` prevents data corruption via atomic writes with locking and streams the write to minimize memory footprint
- Test files are exempt from this rule
447 changes: 447 additions & 0 deletions .roo/rules-issue-fixer-orchestrator/1_Workflow.xml

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions .roo/rules-issue-fixer-orchestrator/2_best_practices.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<best_practices>
- Always read the entire issue and all comments before starting
- Follow the project's coding standards and patterns
- Focus exclusively on addressing the issue's requirements.
- Make minimal, high-quality changes for bug fixes. The goal is a narrow, targeted fix, not a one-line hack.
- Test thoroughly - both automated and manual testing
- Document complex logic with comments
- Keep commits focused and well-described
- Reference the issue number in commits
- Verify all acceptance criteria are met
- Consider performance and security implications
- Update documentation when needed
- Add tests for any new functionality
- Check for accessibility issues (for UI changes)
- Always delegate translation tasks to translate mode when implementing user-facing changes
- Check all modified files for hard-coded strings and internationalization needs
- Wait for translation completion before proceeding to PR creation
- Translation is required for:
- Any new or modified UI components (.tsx, .jsx files)
- User-facing documentation changes (.md files)
- Error messages and notifications
- Any strings visible to end users
- The translate mode will handle:
- Adding translations to all supported language files
- Ensuring consistency with existing terminology
- Maintaining sync across all language resources
<codebase_exploration_guidelines>
<principle>Always use `codebase_search` FIRST to understand the codebase structure and find all related files before using other tools like `read_file`.</principle>

<for_bug_fixes>
<title>Investigation Checklist for Bug Fixes</title>
<item>Search for the specific error message or broken functionality.</item>
<item>Find all relevant error handling and logging statements.</item>
<item>Locate related test files to understand expected behavior.</item>
<item>Identify all dependencies and import/export patterns for the affected code.</item>
<item>Find similar, working patterns in the codebase to use as a reference.</item>
</for_bug_fixes>

<for_features>
<title>Investigation Checklist for New Features</title>
<item>Search for any similar existing features to use as a blueprint.</item>
<item>Find potential integration points (e.g., API routes, UI component registries).</item>
<item>Locate relevant configuration files that may need to be updated.</item>
<item>Identify common patterns, components, and utilities that should be reused.</item>
</for_features>

<critical_note>
Always read multiple related files together to understand the full context, including coding conventions, testing patterns, and error handling approaches.
</critical_note>
</codebase_exploration_guidelines>
</best_practices>
21 changes: 21 additions & 0 deletions .roo/rules-issue-fixer-orchestrator/3_common_patterns.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<common_patterns>
<bug_fix_pattern>
1. Reproduce the issue
2. Identify root cause
3. Implement minimal fix
4. Add regression test
5. Verify fix works
6. Check for side effects
</bug_fix_pattern>

<feature_implementation_pattern>
1. Understand all requirements
2. Design the solution
3. Implement incrementally
4. Test each component
5. Integrate components
6. Verify acceptance criteria
7. Add comprehensive tests
8. Update documentation
</feature_implementation_pattern>
</common_patterns>
221 changes: 221 additions & 0 deletions .roo/rules-issue-fixer-orchestrator/4_github_cli_usage.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
<github_cli_usage>
<overview>
This mode uses the GitHub CLI (gh) for all GitHub operations.
The mode assumes the user has gh installed and authenticated. If authentication errors occur,
the mode will prompt the user to authenticate.

Users must provide full GitHub issue URLs (e.g., https://github.com/owner/repo/issues/123)
so the mode can extract the repository information dynamically.
</overview>

<url_parsing>
<pattern>https://github.com/[owner]/[repo]/issues/[number]</pattern>
<extraction>
- Owner: The organization or username
- Repo: The repository name
- Number: The issue number
</extraction>
</url_parsing>

<authentication_handling>
<approach>Assume authenticated, handle errors gracefully</approach>
<when>Only check authentication if a gh command fails with auth error</when>
<error_patterns>
- "gh: Not authenticated"
- "HTTP 401"
- "HTTP 403: Resource not accessible"
</error_patterns>
</authentication_handling>

<primary_commands>
<command name="gh_issue_view">
<purpose>Retrieve the issue details at the start</purpose>
<when>Always use first to get the full issue content</when>
<syntax>gh issue view [issue-number] --repo [owner]/[repo] --json number,title,body,state,labels,assignees,milestone,createdAt,updatedAt,closedAt,author</syntax>
<example>
<execute_command>
<command>gh issue view 123 --repo octocat/hello-world --json number,title,body,state,labels,assignees,milestone,createdAt,updatedAt,closedAt,author</command>
</execute_command>
</example>
</command>

<command name="gh_issue_comments">
<purpose>Get additional context and requirements from issue comments</purpose>
<when>Always use after viewing issue to see full discussion</when>
<syntax>gh issue view [issue-number] --repo [owner]/[repo] --comments</syntax>
<example>
<execute_command>
<command>gh issue view 123 --repo octocat/hello-world --comments</command>
</execute_command>
</example>
</command>


<command name="gh_repo_view_commits">
<purpose>Find recent changes to affected files</purpose>
<when>Use during codebase exploration</when>
<syntax>gh api repos/[owner]/[repo]/commits?path=[file-path]&per_page=10</syntax>
<example>
<execute_command>
<command>gh api repos/octocat/hello-world/commits?path=src/api/index.ts&per_page=10 --jq '.[].sha + " " + .[].commit.message'</command>
</execute_command>
</example>
</command>

<command name="gh_search_code">
<purpose>Search for code patterns on GitHub</purpose>
<when>Use to supplement local codebase_search</when>
<syntax>gh search code "[search-query]" --repo [owner]/[repo]</syntax>
<example>
<execute_command>
<command>gh search code "function handleError" --repo octocat/hello-world --limit 10</command>
</execute_command>
</example>
</command>
</primary_commands>

<optional_commands>
<command name="gh_issue_comment">
<purpose>Add progress updates or ask questions on issues</purpose>
<when>Use if clarification needed or to show progress</when>
<syntax>gh issue comment [issue-number] --repo [owner]/[repo] --body "[comment]"</syntax>
<example>
<execute_command>
<command>gh issue comment 123 --repo octocat/hello-world --body "Working on this issue. Found the root cause in the theme detection logic."</command>
</execute_command>
</example>
</command>

<command name="gh_pr_list">
<purpose>Find related or similar PRs</purpose>
<when>Use to understand similar changes</when>
<syntax>gh pr list --repo [owner]/[repo] --search "[search-terms]"</syntax>
<example>
<execute_command>
<command>gh pr list --repo octocat/hello-world --search "dark theme" --limit 10</command>
</execute_command>
</example>
</command>

<command name="gh_pr_diff">
<purpose>View the diff of a pull request</purpose>
<when>Use to understand changes in a PR</when>
<syntax>gh pr diff [pr-number] --repo [owner]/[repo]</syntax>
<example>
<execute_command>
<command>gh pr diff 456 --repo octocat/hello-world</command>
</execute_command>
</example>
</command>
</optional_commands>

<pull_request_commands>
<command name="gh_pr_create">
<purpose>Create a pull request</purpose>
<when>Use in step 11 after user approval</when>
<important>
- Target the repository from the provided URL
- Use "main" as the base branch unless specified otherwise
- Include issue number in PR title
- Use --maintainer-can-modify flag
</important>
<syntax>gh pr create --repo [owner]/[repo] --base main --title "[title]" --body "[body]" --maintainer-can-modify</syntax>
<example>
<execute_command>
<command>gh pr create --repo octocat/hello-world --base main --title "fix: Resolve dark theme button visibility (#123)" --body "## Description

Fixes #123

[Full PR description]" --maintainer-can-modify</command>
</execute_command>
</example>
<note>
If working from a fork, ensure the fork is set as the remote and push the branch there first.
The gh CLI will automatically handle the fork workflow.
</note>
</command>

<command name="gh_repo_fork">
<purpose>Fork the repository if user doesn't have push access</purpose>
<when>Use if user needs to work from a fork</when>
<syntax>gh repo fork [owner]/[repo] --clone</syntax>
<example>
<execute_command>
<command>gh repo fork octocat/hello-world --clone</command>
</execute_command>
</example>
</command>

<command name="gh_pr_checks">
<purpose>Monitor CI/CD checks on a pull request</purpose>
<when>Use after creating PR to ensure checks pass</when>
<syntax>gh pr checks [pr-number] --repo [owner]/[repo] --watch</syntax>
<example>
<execute_command>
<command>gh pr checks 789 --repo octocat/hello-world --watch</command>
</execute_command>
</example>
</command>
</pull_request_commands>

<workflow_helpers>
<command name="gh_api">
<purpose>Access GitHub API directly for advanced operations</purpose>
<when>Use when specific gh commands don't provide needed functionality</when>
<examples>
<!-- Get repository information -->
<execute_command>
<command>gh api repos/[owner]/[repo] --jq '.default_branch'</command>
</execute_command>

<!-- Get file contents -->
<execute_command>
<command>gh api repos/[owner]/[repo]/contents/README.md --jq '.content' | base64 -d</command>
</execute_command>

<!-- Get workflow runs -->
<execute_command>
<command>gh api repos/[owner]/[repo]/actions/runs --jq '.workflow_runs[0:5] | .[] | .id, .status, .conclusion'</command>
</execute_command>
</examples>
</command>

<command name="gh_run_list">
<purpose>Check GitHub Actions workflow status</purpose>
<when>Use to monitor CI/CD pipeline</when>
<syntax>gh run list --repo [owner]/[repo] --limit 5</syntax>
<example>
<execute_command>
<command>gh run list --repo octocat/hello-world --limit 5</command>
</execute_command>
</example>
</command>
</workflow_helpers>

<error_handling>
<scenario name="not_authenticated">
<error>gh: Not authenticated. Run 'gh auth login' to authenticate.</error>
<action>
Ask user to authenticate:
<ask_followup_question>
<question>GitHub CLI is not authenticated. Please run 'gh auth login' in your terminal to authenticate, then let me know when you're ready to continue.</question>
<follow_up>
<suggest>I've authenticated, please continue</suggest>
<suggest>I need help with authentication</suggest>
<suggest>Let's use a different approach</suggest>
</follow_up>
</ask_followup_question>
</action>
</scenario>

<scenario name="no_permissions">
<error>HTTP 403: Resource not accessible by integration</error>
<action>
Check if working from a fork is needed:
<execute_command>
<command>gh repo fork [owner]/[repo] --clone</command>
</execute_command>
</action>
</scenario>
</error_handling>
</github_cli_usage>
Loading
Loading