Skip to content

Commit f2711e2

Browse files
authored
Merge branch 'main' into fix/MCP_Server_Auto-Restart_Path_Issue
2 parents bc083d0 + 1c9daf5 commit f2711e2

File tree

335 files changed

+16555
-5858
lines changed

Some content is hidden

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

335 files changed

+16555
-5858
lines changed

.changeset/heavy-eyes-reply.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"roo-cline": patch
3+
---
4+
5+
Add settings migration to support renaming legacy settings files to new format

.changeset/little-parents-shake.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/nine-ways-worry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"roo-cline": patch
3+
---
4+
5+
Add the openAiR1FormatEnabled field to enable this switch in OpenAI compatible mode to support the current QWQ and future additional classes of R1 models.

.github/workflows/changeset-release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
REPO_PATH: ${{ github.repository }}
1111
GIT_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'main' }}
12+
NODE_VERSION: 20.18.1
1213

1314
jobs:
1415
# Job 1: Create version bump PR when changesets are merged to main
@@ -33,7 +34,7 @@ jobs:
3334
- name: Setup Node.js
3435
uses: actions/setup-node@v4
3536
with:
36-
node-version: 20
37+
node-version: ${{ env.NODE_VERSION }}
3738
cache: 'npm'
3839

3940
- name: Install Dependencies

.github/workflows/code-qa.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
types: [opened, reopened, ready_for_review, synchronize]
99
branches: [main]
1010

11+
env:
12+
NODE_VERSION: 20.18.1
13+
1114
jobs:
1215
compile:
1316
runs-on: ubuntu-latest
@@ -17,7 +20,7 @@ jobs:
1720
- name: Setup Node.js
1821
uses: actions/setup-node@v4
1922
with:
20-
node-version: '18'
23+
node-version: ${{ env.NODE_VERSION }}
2124
cache: 'npm'
2225
- name: Install dependencies
2326
run: npm run install:all
@@ -66,7 +69,7 @@ jobs:
6669
- name: Setup Node.js
6770
uses: actions/setup-node@v4
6871
with:
69-
node-version: '18'
72+
node-version: ${{ env.NODE_VERSION }}
7073
cache: 'npm'
7174
- name: Install dependencies
7275
run: npm run install:all
@@ -121,7 +124,7 @@ jobs:
121124
- name: Setup Node.js
122125
uses: actions/setup-node@v4
123126
with:
124-
node-version: '18'
127+
node-version: ${{ env.NODE_VERSION }}
125128
cache: 'npm'
126129
- name: Install dependencies
127130
run: npm run install:all

.github/workflows/marketplace-publish.yml

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66

77
env:
88
GIT_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'main' }}
9+
NODE_VERSION: 20.18.1
910

1011
jobs:
1112
publish-extension:
@@ -21,15 +22,12 @@ jobs:
2122
- uses: actions/checkout@v4
2223
with:
2324
ref: ${{ env.GIT_REF }}
24-
2525
- uses: actions/setup-node@v4
2626
with:
27-
node-version: 18
28-
27+
node-version: ${{ env.NODE_VERSION }}
2928
- run: |
3029
git config user.name "github-actions[bot]"
3130
git config user.email "github-actions[bot]@users.noreply.github.com"
32-
3331
- name: Install Dependencies
3432
run: |
3533
npm install -g vsce ovsx
@@ -46,14 +44,12 @@ jobs:
4644
echo "$package" | grep -q "extension/webview-ui/build/assets/index.js" || exit 1
4745
echo "$package" | grep -q "extension/node_modules/@vscode/codicons/dist/codicon.ttf" || exit 1
4846
echo "$package" | grep -q ".env" || exit 1
49-
5047
- name: Create and Push Git Tag
5148
run: |
5249
current_package_version=$(node -p "require('./package.json').version")
5350
git tag -a "v${current_package_version}" -m "Release v${current_package_version}"
5451
git push origin "v${current_package_version}"
5552
echo "Successfully created and pushed git tag v${current_package_version}"
56-
5753
- name: Publish Extension
5854
env:
5955
VSCE_PAT: ${{ secrets.VSCE_PAT }}
@@ -62,3 +58,28 @@ jobs:
6258
current_package_version=$(node -p "require('./package.json').version")
6359
npm run publish:marketplace
6460
echo "Successfully published version $current_package_version to VS Code Marketplace"
61+
- name: Create GitHub Release
62+
env:
63+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64+
run: |
65+
current_package_version=$(node -p "require('./package.json').version")
66+
67+
# Extract changelog for current version
68+
echo "Extracting changelog for version ${current_package_version}"
69+
changelog_content=$(sed -n "/## \\[${current_package_version}\\]/,/## \\[/p" CHANGELOG.md | sed '$d')
70+
71+
# If changelog extraction failed, use a default message
72+
if [ -z "$changelog_content" ]; then
73+
echo "Warning: No changelog section found for version ${current_package_version}"
74+
changelog_content="Release v${current_package_version}"
75+
else
76+
echo "Found changelog section for version ${current_package_version}"
77+
fi
78+
79+
# Create release with changelog content
80+
gh release create "v${current_package_version}" \
81+
--title "Release v${current_package_version}" \
82+
--notes "$changelog_content" \
83+
--target ${{ env.GIT_REF }} \
84+
bin/roo-cline-${current_package_version}.vsix
85+
echo "Successfully created GitHub Release v${current_package_version}"

.husky/pre-commit

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,11 @@ if [ "$branch" = "main" ]; then
55
exit 1
66
fi
77

8-
npx lint-staged
8+
# Detect if running on Windows and use npx.cmd, otherwise use npx
9+
if [ "$OS" = "Windows_NT" ]; then
10+
npx_cmd="npx.cmd"
11+
else
12+
npx_cmd="npx"
13+
fi
14+
15+
"$npx_cmd" lint-staged

.husky/pre-push

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@ if [ "$branch" = "main" ]; then
55
exit 1
66
fi
77

8-
npm run compile
8+
# Detect if running on Windows and use npm.cmd, otherwise use npm
9+
if [ "$OS" = "Windows_NT" ]; then
10+
npm_cmd="npm.cmd"
11+
else
12+
npm_cmd="npm"
13+
fi
14+
15+
"$npm_cmd" run compile
916

1017
# Check for new changesets.
1118
NEW_CHANGESETS=$(find .changeset -name "*.md" ! -name "README.md" | wc -l | tr -d ' ')

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
lts/*
1+
v20.18.1

.roomodes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"slug": "translate",
2323
"name": "Translate",
2424
"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: ca, de, en, es, fr, hi, it, ja, ko, pl, pt-BR, tr, vi, zh-CN, zh-TW\n- The translation files are under webview-ui/src/i18n/locales/",
25+
"customInstructions": "# 1. SUPPORTED LANGUAGES AND LOCATION\n- Localize all strings into the following locale files: ca, de, en, es, fr, hi, it, ja, ko, pl, pt-BR, tr, vi, zh-CN, zh-TW\n- The VSCode extension has two main areas that require localization:\n * Core Extension: src/i18n/locales/ (extension backend)\n * WebView UI: webview-ui/src/i18n/locales/ (user interface)\n\n# 2. VOICE, STYLE AND TONE\n- Always use informal speech (e.g., \"du\" instead of \"Sie\" in German) for all translations\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- 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- Don't translate domain-specific words (especially technical terms like \"Prompt\") that are commonly used in English in the target language\n\n# 3. CORE EXTENSION LOCALIZATION (src/)\n- Located in src/i18n/locales/\n- NOT ALL strings in core source need internationalization - only user-facing messages\n- Internal error messages, debugging logs, and developer-facing messages should remain in English\n- The t() function is used with namespaces like 'core:errors.missingToolParameter'\n- Be careful when modifying interpolation variables; they must remain consistent across all translations\n- Some strings in formatResponse.ts are intentionally not internationalized since they're internal\n- When updating strings in core.json, maintain all existing interpolation variables\n- Check string usages in the codebase before making changes to ensure you're not breaking functionality\n\n# 4. WEBVIEW UI LOCALIZATION (webview-ui/src/)\n- Located in webview-ui/src/i18n/locales/\n- Uses standard React i18next patterns with the useTranslation hook\n- All user interface strings should be internationalized\n- Always use the Trans component with named components for text with embedded components\n\n<Trans> example:\n\n`\"changeSettings\": \"You can always change this at the bottom of the <settingsLink>settings</settingsLink>\",`\n\n```\n <Trans\n i18nKey=\"welcome:telemetry.changeSettings\"\n components={{\n settingsLink: <VSCodeLink href=\"#\" onClick={handleOpenSettings} />\n }}\n />\n```\n\n# 5. 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 (much faster and more reliable)\n- When using apply_diff, carefully identify the exact JSON structure to edit to avoid syntax errors\n- Placeholders (like {{variable}}) must remain exactly identical to the English source to maintain code integration and prevent syntax errors\n\n# 6. WORKFLOW AND APPROACH\n- First add or modify English strings, then ask for confirmation before translating to all other languages\n- Use this process for each localization task:\n 1. Identify where the string appears in the UI/codebase\n 2. Understand the context and purpose of the string\n 3. Update English translation first\n 4. Create appropriate translations for all other supported languages\n 5. Validate your changes with the missing translations script\n- Flag or comment if an English source string is incomplete (\"please see this...\") to avoid truncated or unclear translations\n- For UI elements, distinguish between:\n * Button labels: Use short imperative commands (\"Save\", \"Cancel\")\n * Tooltip text: Can be slightly more descriptive\n- Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction, avoiding language that makes it sound like an instruction from the system to the user\n\n# 7. COMMON PITFALLS TO AVOID\n- Switching between formal and informal addressing styles - always stay informal (\"du\" not \"Sie\")\n- Translating or altering technical terms and brand names that should remain in English\n- Modifying or removing placeholders like {{variable}} - these must remain identical\n- Translating domain-specific terms that are commonly used in English in the target language\n- Changing the meaning or nuance of instructions or error messages\n- Forgetting to maintain consistent terminology throughout the translation\n\n# 8. 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- Address any missing translations identified by the script to ensure complete coverage across all locales\n\n# 9. TRANSLATOR'S CHECKLIST\n- ✓ Used informal tone consistently (\"du\" not \"Sie\")\n- ✓ Preserved all placeholders exactly as in the English source\n- ✓ Maintained consistent terminology with existing translations\n- ✓ Kept technical terms and brand names unchanged where appropriate\n- ✓ Preserved the original perspective (user→system vs system→user)\n- ✓ Adapted the text appropriately for UI context (buttons vs tooltips)",
2626
"groups": [
2727
"read",
2828
"command",

0 commit comments

Comments
 (0)