Skip to content

Commit b4eed3f

Browse files
committed
Merge branch 'feature/textToSpeech' of https://github.com/heyseth/Roo-Code into feature/textToSpeech
2 parents 1b6b830 + 2223762 commit b4eed3f

File tree

333 files changed

+22137
-4633
lines changed

Some content is hidden

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

333 files changed

+22137
-4633
lines changed

.env.sample

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
# PostHog API Keys for telemetry
2-
POSTHOG_API_KEY=key-goes-here
1+
POSTHOG_API_KEY=key-goes-here

.eslintrc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@
1919
"no-throw-literal": "warn",
2020
"semi": "off"
2121
},
22-
"ignorePatterns": ["out", "dist", "**/*.d.ts"]
22+
"ignorePatterns": ["out", "dist", "**/*.d.ts", "!roo-code.d.ts"]
2323
}

.github/workflows/changeset-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
cache: 'npm'
3838

3939
- name: Install Dependencies
40-
run: npm run install:ci
40+
run: npm run install:all
4141

4242
# Check if there are any new changesets to process
4343
- name: Check for changesets

.github/workflows/code-qa.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
node-version: '18'
2121
cache: 'npm'
2222
- name: Install dependencies
23-
run: npm run install:ci
23+
run: npm run install:all
2424
- name: Compile
2525
run: npm run compile
2626
- name: Check types
@@ -39,7 +39,7 @@ jobs:
3939
node-version: '18'
4040
cache: 'npm'
4141
- name: Install dependencies
42-
run: npm run install:ci
42+
run: npm run install:all
4343
- name: Run knip checks
4444
run: npm run knip
4545

@@ -54,7 +54,7 @@ jobs:
5454
node-version: '18'
5555
cache: 'npm'
5656
- name: Install dependencies
57-
run: npm run install:ci
57+
run: npm run install:all
5858
- name: Run unit tests
5959
run: npx jest --silent
6060

@@ -69,7 +69,7 @@ jobs:
6969
node-version: '18'
7070
cache: 'npm'
7171
- name: Install dependencies
72-
run: npm run install:ci
72+
run: npm run install:all
7373
- name: Run unit tests
7474
working-directory: webview-ui
7575
run: npx jest --silent
@@ -109,10 +109,10 @@ jobs:
109109
node-version: '18'
110110
cache: 'npm'
111111
- name: Install dependencies
112-
run: npm run install:ci
113-
- name: Create env.integration file
112+
run: npm run install:all
113+
- name: Create .env.local file
114114
working-directory: e2e
115-
run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.integration
115+
run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
116116
- name: Run integration tests
117117
working-directory: e2e
118118
run: xvfb-run -a npm run ci

.github/workflows/marketplace-publish.yml

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ env:
1010
jobs:
1111
publish-extension:
1212
runs-on: ubuntu-latest
13+
permissions:
14+
contents: write # Required for pushing tags.
1315
if: >
1416
( github.event_name == 'pull_request' &&
1517
github.event.pull_request.base.ref == 'main' &&
@@ -23,24 +25,20 @@ jobs:
2325
- uses: actions/setup-node@v4
2426
with:
2527
node-version: 18
28+
2629
- run: |
27-
git config user.name github-actions
28-
git config user.email [email protected]
30+
git config user.name "github-actions[bot]"
31+
git config user.email "github-actions[bot]@users.noreply.github.com"
32+
2933
- name: Install Dependencies
3034
run: |
3135
npm install -g vsce ovsx
32-
npm run install:ci
36+
npm run install:all
3337
- name: Create .env file
34-
run: |
35-
echo "# PostHog API Keys for telemetry" > .env
36-
echo "POSTHOG_API_KEY=${{ secrets.POSTHOG_API_KEY }}" >> .env
37-
- name: Package and Publish Extension
38-
env:
39-
VSCE_PAT: ${{ secrets.VSCE_PAT }}
40-
OVSX_PAT: ${{ secrets.OVSX_PAT }}
38+
run: echo "POSTHOG_API_KEY=${{ secrets.POSTHOG_API_KEY }}" >> .env
39+
- name: Package Extension
4140
run: |
4241
current_package_version=$(node -p "require('./package.json').version")
43-
4442
npm run vsix
4543
package=$(unzip -l bin/roo-cline-${current_package_version}.vsix)
4644
echo "$package"
@@ -49,5 +47,18 @@ jobs:
4947
echo "$package" | grep -q "extension/node_modules/@vscode/codicons/dist/codicon.ttf" || exit 1
5048
echo "$package" | grep -q ".env" || exit 1
5149
50+
- name: Create and Push Git Tag
51+
run: |
52+
current_package_version=$(node -p "require('./package.json').version")
53+
git tag -a "v${current_package_version}" -m "Release v${current_package_version}"
54+
git push origin "v${current_package_version}"
55+
echo "Successfully created and pushed git tag v${current_package_version}"
56+
57+
- name: Publish Extension
58+
env:
59+
VSCE_PAT: ${{ secrets.VSCE_PAT }}
60+
OVSX_PAT: ${{ secrets.OVSX_PAT }}
61+
run: |
62+
current_package_version=$(node -p "require('./package.json').version")
5263
npm run publish:marketplace
5364
echo "Successfully published version $current_package_version to VS Code Marketplace"
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Update Contributors
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch: # Allows manual triggering
8+
9+
jobs:
10+
update-contributors:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write # Needed for pushing changes
14+
pull-requests: write # Needed for creating PRs
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v3
18+
19+
- name: Setup Node.js
20+
uses: actions/setup-node@v3
21+
with:
22+
node-version: '18'
23+
cache: 'npm'
24+
25+
- name: Disable Husky
26+
run: |
27+
echo "HUSKY=0" >> $GITHUB_ENV
28+
git config --global core.hooksPath /dev/null
29+
30+
- name: Install dependencies
31+
run: npm ci
32+
33+
- name: Update contributors and format
34+
run: |
35+
npm run update-contributors
36+
npx prettier --write README.md
37+
if git diff --quiet README.md; then echo "changes=false" >> $GITHUB_OUTPUT; else echo "changes=true" >> $GITHUB_OUTPUT; fi
38+
id: check-changes
39+
env:
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
42+
- name: Create Pull Request
43+
if: steps.check-changes.outputs.changes == 'true'
44+
uses: peter-evans/create-pull-request@v5
45+
with:
46+
token: ${{ secrets.GITHUB_TOKEN }}
47+
add-paths: |
48+
README.md
49+
commit-message: "docs: update contributors list [skip ci]"
50+
committer: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
51+
branch: update-contributors
52+
branch-suffix: timestamp
53+
delete-branch: true
54+
title: "Update contributors list"
55+
body: |
56+
Automated update of contributors list in README.md
57+
58+
This PR was created automatically by a GitHub Action workflow.
59+
base: main

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ docs/_site/
2222

2323
# Dotenv
2424
.env
25-
.env.integration
25+
.env.*
26+
!.env.*.sample
27+
2628

2729
#Local lint config
2830
.eslintrc.local.json

.roomodes

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"customModes": [
3+
{
4+
"slug": "test",
5+
"name": "Test",
6+
"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",
7+
"groups": [
8+
"read",
9+
"browser",
10+
"command",
11+
[
12+
"edit",
13+
{
14+
"fileRegex": "(__tests__/.*|__mocks__/.*|\\.test\\.(ts|tsx|js|jsx)$|/test/.*|jest\\.config\\.(js|ts)$)",
15+
"description": "Test files, mocks, and Jest configuration"
16+
}
17+
]
18+
],
19+
"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"
20+
},
21+
{
22+
"slug": "translate",
23+
"name": "Translate",
24+
"roleDefinition": "You are Roo, a linguistic specialist focused on translating and managing localization files. Your responsibility is to help maintain and update translation files for the application, ensuring consistency and accuracy across all language resources.",
25+
"customInstructions": "When internationalizing and translating content:\n\n# Translation Style and Tone\n- Maintain a direct and concise style that mirrors the tone of the original text\n- Carefully account for colloquialisms and idiomatic expressions in both source and target languages\n- Aim for culturally relevant and meaningful translations rather than literal translations\n- Adapt the formality level to match the original content (whether formal or informal)\n- Preserve the personality and voice of the original content\n- Use natural-sounding language that feels native to speakers of the target language\n- Don't translate the word \"token\" as it means something specific in English that all languages will understand\n\n# Technical Implementation\n- Use namespaces to organize translations logically\n- Handle pluralization using i18next's built-in capabilities\n- Implement proper interpolation for variables using {{variable}} syntax\n- Don't include defaultValue. The `en` translations are the fallback.\n- Always use apply_diff instead of write_to_file when editing existing translation files as it's much faster and more reliable\n- When using apply_diff, make sure to carefully identify the exact JSON structure to edit to avoid syntax errors\n- Always use the Trans component for text with embedded components\n\n# Quality Assurance\n- Maintain consistent terminology across all translations\n- Respect the JSON structure of translation files\n- Watch for placeholders and preserve them in translations\n- Be mindful of text length in UI elements when translating to languages that might require more characters\n- Use context-aware translations when the same string has different meanings\n- Always validate your translation work by running the missing translations script:\n ```\n node scripts/find-missing-translations.js\n ```\n- Before completing any translation task, ensure there are no missing translations by running the script with the target locale(s):\n ```\n node scripts/find-missing-translations.js --locale=<locale-code>\n ```\n- Address any missing translations identified by the script to ensure complete coverage across all locales\n\n# Supported Languages\n- Localize all strings into the following locale files: ar, ca, cs, de, en, es, fr, hi, hu, it, ja, ko, pl, pt, pt-BR, ru, tr, zh-CN, zh-TW",
26+
"groups": [
27+
"read",
28+
"command",
29+
[
30+
"edit",
31+
{
32+
"fileRegex": "(.*\\.(md|ts|tsx|js|jsx)$|.*\\.json$)",
33+
"description": "Source code, translation files, and documentation"
34+
}
35+
]
36+
],
37+
"source": "project"
38+
}
39+
]
40+
}

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
11
# Roo Code Changelog
22

3+
## [3.8.6] - 2025-03-13
4+
5+
- Revert SSE MCP support while we debug some config validation issues
6+
7+
## [3.8.5] - 2025-03-12
8+
9+
- Refactor terminal architecture to address critical issues with the current design (thanks @KJ7LNW!)
10+
- MCP over SSE (thanks @aheizi!)
11+
- Support for remote browser connections (thanks @afshawnlotfi!)
12+
- Preserve parent-child relationship when cancelling subtasks (thanks @cannuri!)
13+
- Custom baseUrl for Google AI Studio Gemini (thanks @dqroid!)
14+
- PowerShell-specific command handling (thanks @KJ7LNW!)
15+
- OpenAI-compatible DeepSeek/QwQ reasoning support (thanks @lightrabbit!)
16+
- Anthropic-style prompt caching in the OpenAI-compatible provider (thanks @dleen!)
17+
- Add Deepseek R1 for AWS Bedrock (thanks @ATempsch!)
18+
- Fix MarkdownBlock text color for Dark High Contrast theme (thanks @cannuri!)
19+
- Add gemini-2.0-pro-exp-02-05 model to vertex (thanks @shohei-ihaya!)
20+
- Bring back progress status for multi-diff edits (thanks @qdaxb!)
21+
- Refactor alert dialog styles to use the correct vscode theme (thanks @cannuri!)
22+
- Custom ARNs in AWS Bedrock (thanks @Smartsheet-JB-Brown!)
23+
- Update MCP servers directory path for platform compatibility (thanks @hannesrudolph!)
24+
- Fix browser system prompt inclusion rules (thanks @cannuri!)
25+
- Publish git tags to github from CI (thanks @pdecat!)
26+
- Fixes to OpenAI-style cost calculations (thanks @dtrugman!)
27+
- Fix to allow using an excluded directory as your working directory (thanks @Szpadel!)
28+
- Kotlin language support in list_code_definition_names tool (thanks @kohii!)
29+
- Better handling of diff application errors (thanks @qdaxb!)
30+
- Update Bedrock prices to the latest (thanks @Smartsheet-JB-Brown!)
31+
- Fixes to OpenRouter custom baseUrl support
32+
- Fix usage tracking for SiliconFlow and other providers that include usage on every chunk
33+
- Telemetry for checkpoint save/restore/diff and diff strategies
34+
35+
## [3.8.4] - 2025-03-09
36+
37+
- Roll back multi-diff progress indicator temporarily to fix a double-confirmation in saving edits
38+
- Add an option in the prompts tab to save tokens by disabling the ability to ask Roo to create/edit custom modes for you (thanks @hannesrudolph!)
39+
340
## [3.8.3] - 2025-03-09
441

542
- Fix VS Code LM API model picker truncation issue

CODE_OF_CONDUCT.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
- The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
- Trolling, insulting/derogatory comments, and personal or political attacks
28+
- Public or private harassment
29+
- Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
- Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at [email protected]. All complaints
59+
will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from [Cline's version][cline_coc] of the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[cline_coc]: https://github.com/cline/cline/blob/main/CODE_OF_CONDUCT.md
74+
[homepage]: https://www.contributor-covenant.org
75+
76+
For answers to common questions about this code of conduct, see
77+
https://www.contributor-covenant.org/faq

0 commit comments

Comments
 (0)