Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ Resolve merge conflicts for a specific pull request by analyzing git history, co
1. **Provide a PR number** (e.g., `#123` or just `123`)

2. The workflow will automatically:
- Fetch PR information (title, description, branches)
- Checkout the PR branch
- Rebase onto the target branch to reveal conflicts
- Analyze and resolve conflicts using git history
- Fetch PR information (title, description, branches)
- Checkout the PR branch
- Rebase onto the target branch to reveal conflicts
- Analyze and resolve conflicts using git history

## Workflow Steps

Expand All @@ -39,6 +39,7 @@ git status --porcelain | grep "^UU"
### 3. Analyze Each Conflict

For each conflicted file:

- Read the conflict markers
- Run `git blame` on conflicting sections
- Fetch commit messages for context
Expand All @@ -47,6 +48,7 @@ For each conflicted file:
### 4. Apply Resolution Strategy

Based on the analysis:

- **Bugfixes** generally take precedence over features
- **Recent changes** are often more relevant (unless older is a security fix)
- **Combine** non-conflicting changes when possible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,35 @@ Perform translation and localization tasks for the Roo Code extension. This comm
## Quick Start

1. **Identify the translation scope:**
- If a specific language code is provided (e.g., `de`, `zh-CN`), focus on that language
- If `all` is specified, translate to all supported languages
- If a string key is provided, locate and translate that specific string
- If a file path is provided, work with that translation file

- If a specific language code is provided (e.g., `de`, `zh-CN`), focus on that language
- If `all` is specified, translate to all supported languages
- If a string key is provided, locate and translate that specific string
- If a file path is provided, work with that translation file

2. **Supported languages:** ca, de, en, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW

3. **Translation locations:**
- Core Extension: `src/i18n/locales/`
- WebView UI: `webview-ui/src/i18n/locales/`
- Core Extension: `src/i18n/locales/`
- WebView UI: `webview-ui/src/i18n/locales/`

## Workflow

1. If adding new strings:
- Add the English string first
- Ask for confirmation before translating to other languages
- Use `apply_diff` for efficient file updates

- Add the English string first
- Ask for confirmation before translating to other languages
- Use `apply_diff` for efficient file updates

2. If updating existing strings:
- Identify all affected language files
- Update English first, then propagate changes

- Identify all affected language files
- Update English first, then propagate changes

3. Validate your changes:
```bash
node scripts/find-missing-translations.js
```
```bash
node scripts/find-missing-translations.js
```

## Key Guidelines

Expand Down
117 changes: 117 additions & 0 deletions .jabber/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
"mcpServers": {
"md_todo_mcp": {
"command": "node",
"args": ["/Users/m.dusmikeev/Documents/Work/cool/md-roo-roo/md-todo-mcp/build/index.js"],
"type": "interactiveApp",
"uiType": "todo-widget",
"requiresUserInteraction": true,
"autoApproveExcluded": true,
"allowedContext": ["agents"],
"isGloballyVisible": true
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_TOKEN_HERE"
},
"disabled": true,
"isGloballyVisible": false
},
"gitlab": {
"command": "node",
"args": ["/Users/m.dusmikeev/Documents/Work/auto/md-gitlab-mcp/build/index.js"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "YOUR_GITLAB_TOKEN_HERE",
"GITLAB_API_URL": "https://gitlab.autodoc.dev/api/v4"
},
"disabled": false,
"isGloballyVisible": false
},
"memory-bank": {
"command": "npx",
"args": ["-y", "@roo/memory-bank-mcp@latest"],
"env": {
"MEMORY_ROOT": "./.roo/memory"
},
"disabled": true,
"isGloballyVisible": true
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"],
"disabled": false,
"isGloballyVisible": true
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"],
"disabled": true,
"isGloballyVisible": false
},
"playwright": {
"command": "npx",
"args": ["-y", "@nguyenvanduocit/playwright-mcp-server"],
"disabled": true,
"isGloballyVisible": false
},
"redis": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-redis"],
"env": {
"REDIS_URL": "redis://127.0.0.1:6379"
},
"disabled": true,
"isGloballyVisible": false
},
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://username:password@localhost:5432/your_db"
],
"disabled": true,
"isGloballyVisible": false
},
"mysql": {
"command": "npx",
"args": ["-y", "@benborla29/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "33306",
"MYSQL_USER": "root",
"MYSQL_PASS": "secret",
"MYSQL_DB": "apro",
"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "true"
},
"disabled": true,
"isGloballyVisible": false
},
"docker": {
"command": "docker",
"args": ["mcp", "gateway", "run"],
"disabled": false,
"isGloballyVisible": false
},
"figma": {
"command": "npx",
"args": ["-y", "@kazuph/figma", "mcp"],
"env": {
"FIGMA_API_KEY": "YOUR_FIGMA_TOKEN_HERE"
},
"disabled": false,
"isGloballyVisible": false
},
"agent_capabilities": {
"command": "npx",
"args": ["-y", "tsx", "/Users/m.dusmikeev/Documents/Work/auto/md-mcp-proxy/src/proxy.ts"],
"env": {},
"disabled": false,
"isGloballyVisible": true
}
}
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,16 @@ Verify the resolution and prepare for commit:

## Git Commands Reference

| Command | Purpose |
|---------|---------|
| `gh pr checkout [PR_NUMBER] --force` | Force checkout the PR branch |
| `git fetch origin main` | Get the latest main branch |
| `GIT_EDITOR=true git rebase origin/main` | Rebase current branch onto main (non-interactive) |
| `git blame -L [start],[end] [commit] -- [file]` | Get commit information for specific lines |
| `git show --format="%H%n%an%n%ae%n%ad%n%s%n%b" --no-patch [sha]` | Get commit metadata |
| `git show [sha] -- [file]` | Get the actual changes made in a commit |
| `git ls-files -u` | List unmerged files with stage information |
| `GIT_EDITOR=true git rebase --continue` | Continue rebase after resolving conflicts |
| Command | Purpose |
| ---------------------------------------------------------------- | ------------------------------------------------- |
| `gh pr checkout [PR_NUMBER] --force` | Force checkout the PR branch |
| `git fetch origin main` | Get the latest main branch |
| `GIT_EDITOR=true git rebase origin/main` | Rebase current branch onto main (non-interactive) |
| `git blame -L [start],[end] [commit] -- [file]` | Get commit information for specific lines |
| `git show --format="%H%n%an%n%ae%n%ad%n%s%n%b" --no-patch [sha]` | Get commit metadata |
| `git show [sha] -- [file]` | Get the actual changes made in a commit |
| `git ls-files -u` | List unmerged files with stage information |
| `GIT_EDITOR=true git rebase --continue` | Continue rebase after resolving conflicts |

## Best Practices

Expand All @@ -141,12 +141,12 @@ Look beyond the immediate conflict to understand related changes in tests, docum

## Resolution Heuristics

| Category | Rule | Exception |
|----------|------|-----------|
| Bugfix vs Feature | Bugfixes generally take precedence | When features include the fix |
| Recent vs Old | More recent changes are often more relevant | When older changes are security patches |
| Test Updates | Changes with test updates are likely more complete | - |
| Formatting vs Logic | Logic changes take precedence over formatting | - |
| Category | Rule | Exception |
| ------------------- | -------------------------------------------------- | --------------------------------------- |
| Bugfix vs Feature | Bugfixes generally take precedence | When features include the fix |
| Recent vs Old | More recent changes are often more relevant | When older changes are security patches |
| Test Updates | Changes with test updates are likely more complete | - |
| Formatting vs Logic | Logic changes take precedence over formatting | - |

## Common Pitfalls

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ Localize all strings into the following locale files: ca, de, en, es, fr, hi, id

The VSCode extension has two main areas that require localization:

| Component | Path | Purpose |
|-----------|------|---------|
| **Core Extension** | `src/i18n/locales/` | Extension backend strings |
| **WebView UI** | `webview-ui/src/i18n/locales/` | User interface strings |
| Component | Path | Purpose |
| ------------------ | ------------------------------ | ------------------------- |
| **Core Extension** | `src/i18n/locales/` | Extension backend strings |
| **WebView UI** | `webview-ui/src/i18n/locales/` | User interface strings |

## Brand Voice, Tone, and Word Choice

Expand Down Expand Up @@ -77,17 +77,19 @@ This guidance file is loaded at runtime and should be consulted for the latest b
### Trans Component Example

Translation string:

```json
"changeSettings": "You can always change this at the bottom of the <settingsLink>settings</settingsLink>"
```

React component usage:

```tsx
<Trans
i18nKey="welcome:telemetry.changeSettings"
components={{
settingsLink: <VSCodeLink href="#" onClick={handleOpenSettings} />
}}
i18nKey="welcome:telemetry.changeSettings"
components={{
settingsLink: <VSCodeLink href="#" onClick={handleOpenSettings} />,
}}
/>
```

Expand All @@ -105,19 +107,21 @@ React component usage:

1. First add or modify English strings, then ask for confirmation before translating to all other languages
2. Use this process for each localization task:
1. Identify where the string appears in the UI/codebase
2. Understand the context and purpose of the string
3. Update English translation first
4. Use the `search_files` tool to find JSON keys that are near new keys in English translations but do not yet exist in the other language files for `apply_diff` SEARCH context
5. Create appropriate translations for all other supported languages utilizing the `search_files` result using `apply_diff` without reading every file
6. Do not output the translated text into the chat, just modify the files
7. Validate your changes with the missing translations script

1. Identify where the string appears in the UI/codebase
2. Understand the context and purpose of the string
3. Update English translation first
4. Use the `search_files` tool to find JSON keys that are near new keys in English translations but do not yet exist in the other language files for `apply_diff` SEARCH context
5. Create appropriate translations for all other supported languages utilizing the `search_files` result using `apply_diff` without reading every file
6. Do not output the translated text into the chat, just modify the files
7. Validate your changes with the missing translations script

3. Flag or comment if an English source string is incomplete ("please see this...") to avoid truncated or unclear translations

4. For UI elements, distinguish between:
- Button labels: Use short imperative commands ("Save", "Cancel")
- Tooltip text: Can be slightly more descriptive

- Button labels: Use short imperative commands ("Save", "Cancel")
- Tooltip text: Can be slightly more descriptive

5. Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction

Expand Down
Loading
Loading