Compare commits

...

5944 commits
v2.2.8 ... main

Author SHA1 Message Date
Matt Rubens
b867ec9145
Remove roocode.com web app (#12375)
Some checks failed
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy docs to GitHub Pages / build (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
2026-05-15 14:04:45 -04:00
Matt Rubens
8b94decaef
Redirect roocode.com to roomote.dev (#12374) 2026-05-15 13:55:24 -04:00
Hannes Rudolph
f49f0ce56a
Release v3.54.0 (#12369) 2026-05-15 11:42:49 -06:00
Matt Rubens
d82583c91b
Update README.md 2026-05-15 13:30:03 -04:00
Matt Rubens
6ae816f244
Remove stale roocode.github.io docs references (#12372) 2026-05-15 13:29:02 -04:00
Matt Rubens
f5cad409a1
Update package.json 2026-05-15 13:22:06 -04:00
Matt Rubens
15542fcbbf
Update docs links to GitHub Pages (#12371) 2026-05-15 13:20:20 -04:00
Matt Rubens
d229002cdd
Update README.md 2026-05-15 13:07:01 -04:00
Matt Rubens
06777a513e
Update README.md 2026-05-15 13:06:24 -04:00
Matt Rubens
5641ccd58d
Fix docs GitHub Pages base URL (#12370) 2026-05-15 13:05:47 -04:00
Bruno Bergher
e921f9d21e
Remove contributor and community references (#12347)
Some checks failed
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy docs to GitHub Pages / build (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy roocode.com / check-secrets (push) Has been cancelled
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Deploy roocode.com / deploy (push) Has been cancelled
* Remove contributor and community references

* shutdown notice

* Allow empty web app test suite
2026-05-12 16:33:09 +01:00
Bruno Bergher
28acb6acf2
Add docs app and GitHub Pages deploy (#12344)
* Add docs app and Pages deploy

* Configure knip for docs app
2026-05-12 14:23:21 +01:00
Bruno Bergher
2428199851
Remove corporate extension support links (#12341)
* Remove corporate extension support links

* Remove welcome provider left inset

* Update retired provider sunset message

* Scope Roo retired provider message

* Add final release upgrade announcement

* Localize final release announcement
2026-05-12 14:23:08 +01:00
Matt Rubens
8922418600
Remove Roo Code Cloud and evals (#12328)
Some checks are pending
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
Deploy roocode.com / check-secrets (push) Waiting to run
Deploy roocode.com / deploy (push) Blocked by required conditions
* Remove Roo Code Cloud and evals

* Remove unused onboarding and web helper files

* Update ChatView welcome tests after cloud removal
2026-05-11 22:43:45 -04:00
Matt Rubens
22d845cecb
Remove the MCP marketplace (#12326)
* Remove the MCP marketplace

* Remove unused URL utility
2026-05-11 18:19:08 -04:00
Matt Rubens
ff16c9c297
Remove all telemetry (#12324)
* Remove all telemetry

* Fix webview tests after telemetry removal

* Fix embedder tests after telemetry removal

* Fix tests after telemetry removal
2026-05-11 17:34:58 -04:00
Matt Rubens
3d37e054dd
Remove MDM and organization membership enforcement (#12323) 2026-05-11 15:42:02 -04:00
Bruno Bergher
ad25634905
web: Simplifies the website to be almost strictly about the extension (#12180)
Some checks failed
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy roocode.com / check-secrets (push) Has been cancelled
Deploy roocode.com / deploy (push) Has been cancelled
* Remove pricing/enterprise and Roo Code for pages

* Remove cloud team and router pages

* Refine homepage hero and CTA sections

* nav

* more footer

* Fix knip by removing orphaned web files
2026-04-24 14:56:42 +01:00
github-actions[bot]
96d6e43643
Changeset version bump (#12172)
Some checks are pending
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-23 15:26:28 -06:00
Hannes Rudolph
14922f127e
Release v3.53.0 (#12171)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-23 15:02:08 -06:00
Hannes Rudolph
142f3fb335
feat(openai-codex): add GPT-5.5 model (#12170) 2026-04-23 13:54:33 -06:00
roomote-v0[bot]
c4547d25c5
feat(web): redesign Roomote announcement banner with violet branding (#12161)
Some checks failed
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
Deploy roocode.com / check-secrets (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy roocode.com / deploy (push) Has been cancelled
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-21 11:40:35 -06:00
roomote-v0[bot]
b4f2a242bc
feat(blog): add sunsetting roo code blog post (#12160)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-21 11:40:27 -06:00
Chiranjeevisantosh Madugundi
2bb826039b
feat(chat): add previous checkpoint navigation controls and i18n (#12139)
Some checks are pending
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
2026-04-20 16:12:10 -06:00
Chiranjeevisantosh Madugundi
3e202ebf5b
feat(vertex): add Claude Opus 4.7 support (#12135) 2026-04-20 11:42:10 -06:00
Bruno Bergher
cb83656718
Roomote banner (#12119)
Some checks failed
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy roocode.com / check-secrets (push) Has been cancelled
Deploy roocode.com / deploy (push) Has been cancelled
* Roomote banner

* fix(web): use published @roo-code/types in web-roo-code

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-04-14 18:48:08 -04:00
github-actions[bot]
8b12f21439
Changeset version bump (#12110)
Some checks are pending
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-13 16:57:35 -06:00
Hannes Rudolph
9f251fde70
Release v3.52.1 (#12109) 2026-04-13 16:13:55 -06:00
roomote-v0[bot]
319b5576c7
chore: remove hiring announcement from VS Code extension (#12108)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-13 15:57:28 -06:00
roomote-v0[bot]
7adbfec2a4
feat: add correct JSON schema for .roomodes configuration files (#11791)
Some checks failed
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy roocode.com / check-secrets (push) Has been cancelled
Deploy roocode.com / deploy (push) Has been cancelled
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-08 16:37:14 -06:00
github-actions[bot]
9cfaf38d8a
Changeset version bump (#12085)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-04-08 15:16:12 -06:00
Ronald
92a1be40df
fix: Qwen Bad Request 400 (#12067) (#12083) 2026-04-08 14:34:45 -06:00
Hannes Rudolph
5b93bc7dc3
Release v3.52.0 (#12082) 2026-04-08 14:33:47 -06:00
Enrico Carlesso
5432fa2689
feat: migrate xAI provider to Responses API with reusable transform utils (#11962)
Co-authored-by: Enrico Carlesso <ecarlesso@twitter.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-08 11:38:13 -06:00
Ksandr
eafed9705c
Fix/minimax context window and models (#12069) 2026-04-08 08:44:36 -06:00
Kamil Jopek
c3cae397a1
feat: add Poe as an AI provider (#12015)
Some checks failed
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / check-translations (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
2026-04-05 23:37:29 -04:00
Peter Dave Hello
137d3f4fd8
Add OpenAI GPT-5.4 mini and nano models (#11946) 2026-03-18 22:27:26 -06:00
Enrico Carlesso
08f3a2bb39
feat: add xAI grok-4.20 models and update default (Fixes #11955) (#11956) 2026-03-18 22:25:20 -06:00
github-actions[bot]
44fd975b17
Changeset version bump
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-07 19:36:55 -07:00
roomote-v0[bot]
4ab1d81f55
Release v3.51.1
chore: add changeset for v3.51.1

Co-authored-by: Roo Code <roomote@roocode.com>
2026-03-07 19:17:54 -07:00
roomote-v0[bot]
7ae9c4efd2
feat: add gpt-5.4 to ChatGPT Plus/Pro (Codex) model catalog (#11876) 2026-03-07 19:00:39 -07:00
cscvenkatmadurai
0892455db2
feat(bedrock): add Cohere Embed v4 model and improve credential handling (Fixes #11823) (#11824)
feat(bedrock): add Cohere Embed v4 model and improve credential handling

- Add cohere.embed-v4:0 (1536-dim) to Bedrock embedding model profiles
- Add v4-specific request format (embedding_types: ["float"]) and response
  parsing (embeddings.float[0]) in BedrockEmbedder
- Replace fromEnv() with fromNodeProviderChain() for default credential
  chain when no AWS profile is specified, supporting SSO, IMDS, ECS, and
  other credential sources with built-in memoization
- Add unit tests for Cohere v4 request/response handling, credential
  provider selection, and v3 regression coverage

Fixes #11823
2026-03-05 18:45:17 -07:00
Niklas Volcz
0e56afc764
Add Gemini 3.1 Pro customtools model to Vertex AI provider (#11857) 2026-03-05 15:21:12 -07:00
github-actions[bot]
5eec588653
Changeset version bump (#11731)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-05 15:18:22 -07:00
Hannes Rudolph
58c535319e
Release v3.51.0 (#11870)
chore: add changeset for v3.51.0
2026-03-05 14:58:45 -07:00
Peter Dave Hello
0612739ba1
Add OpenAI GPT-5.3 chat latest and GPT-5.4 model support (#11848) 2026-03-05 14:15:55 -07:00
AJ Juaire
52ce796e42
feat: add ROO_ACTIVE env variable to terminal env settings (#11862) 2026-03-04 17:23:52 -07:00
Chris Estreich
3e237e6061
chore(cli): prepare release v0.1.17 (#11860) 2026-03-04 12:27:57 -08:00
Chris Estreich
0b0b33e6a2
feat(cli): support --create-with-session-id and UUID session validation (#11859)
feat(cli): add create-with-session-id support

rename public task id flag to --create-with-session-id

validate session ids as UUIDs for create/resume and stdin start.taskId

add integration coverage for create+resume loading correct session
2026-03-04 10:32:16 -08:00
Chris Estreich
0db51d8bfa
chore(cli): prepare release v0.1.16 (#11852) 2026-03-03 23:37:56 -08:00
John Richmond
7dc83a522e
Allow selecting a specific shell (#11851)
* Allow selecting a specific shell

Add --terminal-shell CLI flag to specify which shell ExecaTerminalProcess
uses for inline command execution. The shell path is validated at the CLI
layer and passed through the standard settings mechanism (BaseTerminal
static getter/setter), matching how all other CLI terminal settings flow
through the system.

* test(cli): make shell path access test cross-platform
2026-03-03 23:31:34 -08:00
Chris Estreich
9a58f76299
Add CLI integration coverage for stdin stream routing/race invariants (#11846)
Add integration coverage for stdin stream routing and race invariants
2026-03-02 23:11:54 -08:00
Chris Estreich
f9da48f73a
chore(cli): prepare release v0.1.15 (#11845) 2026-03-02 23:05:05 -08:00
Chris Estreich
06afe4206b
Fix CLI follow-up routing after completion asks (#11844)
Fix stdin follow-up routing for completion asks in CLI stream mode
2026-03-02 22:52:39 -08:00
Chris Estreich
02598bc4a5
chore(cli): prepare release v0.1.14 (#11843) 2026-03-02 21:54:26 -08:00
Chris Estreich
d0480360cb
cli: ensure full command output is streamed before done (#11842) 2026-03-02 21:50:18 -08:00
Hannes Rudolph
459f27015d
fix: prevent redundant skill reloading in conversation (#11838) 2026-03-02 16:47:19 -07:00
Hannes Rudolph
d6611f8f69
chore(cli): prepare release v0.1.13 (#11837)
* chore(cli): prepare release v0.1.13

* Update CHANGELOG.md

---------

Co-authored-by: Chris Estreich <cestreich@gmail.com>
2026-03-02 14:50:33 -08:00
Hannes Rudolph
af1e12c76d
feat: expose skills as slash commands with skill fallback execution (#11834)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-03-02 15:10:32 -07:00
Chris Estreich
ce73d05646
Release: v1.115.0 (#11833)
chore: bump version to v1.115.0
2026-03-02 13:35:52 -08:00
Chris Estreich
3c7544c104
chore(cli): prepare release v0.1.12 (#11836) 2026-03-02 13:34:19 -08:00
Chris Estreich
7ea91fa79e
fix(cli): ignore model-provided timeout in CLI runtime (#11835)
In CLI runtime, stdin harnesses expect command lifetime to be governed
solely by commandExecutionTimeout (user setting), not model-provided
background timeouts. Extract resolveAgentTimeoutMs() and return 0 when
ROO_CLI_RUNTIME=1.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 13:25:31 -08:00
Chris Estreich
941e6de743
chore(cli): prepare release v0.1.11 (#11832) 2026-03-02 12:59:23 -08:00
Chris Estreich
95ea01f9a5
feat(cli): support images in stdin stream commands (#11831)
feat(cli): support images in stdin stream start and message commands

Add optional `images` field (array of base64 data URIs) to the `start` and
`message` CLI stdin stream commands, allowing callers to attach images to
prompts. The images are validated, forwarded through the extension host, and
included in queued messages.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 12:57:21 -08:00
Chris Estreich
5a4ab2b13f
Fix upgrade version detection (#11829) 2026-03-02 09:43:40 -08:00
Chris Estreich
b00c260dc0
Release: v1.114.0 (#11822)
chore: bump version to v1.114.0
2026-03-02 00:13:15 -08:00
Chris Estreich
737edbc5ab
chore(cli): prepare release v0.1.10 (#11821) 2026-03-02 00:07:27 -08:00
Chris Estreich
eb2147148e
feat(cli): include exitCode in command tool_result events (#11820)
Propagate the command exit code through the JSON event emitter so CLI
consumers can distinguish between successful and failed command
executions without parsing output text.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 00:03:05 -08:00
Chris Estreich
7118a14188
Fix knip checks (#11819) 2026-03-01 23:21:13 -08:00
Chris Estreich
571cae2368
chore(cli): prepare release v0.1.9 (#11818) 2026-03-01 22:28:49 -08:00
Chris Estreich
e6ad7949d6
Fix stdin-stream cancel race and add integration test suite (#11817)
Add stdin stream integration tests and fix startup cancel race
2026-03-01 22:27:01 -08:00
Chris Estreich
a7cebac2d8
chore(cli): prepare release v0.1.8 (#11816) 2026-03-01 19:59:18 -08:00
Chris Estreich
787f02e526
Increase command execution timeout (#11815) 2026-03-01 19:56:16 -08:00
Chris Estreich
ec979585e8
Fix stdin stream queued messages and command output streaming (#11814)
Fix stdin stream queue handling and command output streaming
2026-03-01 19:53:59 -08:00
Chris Estreich
b75f484663
chore(cli): prepare release v0.1.7 (#11812) 2026-03-01 12:03:56 -08:00
Chris Estreich
52d606bab3
Handle stdin-stream control-flow errors gracefully (#11811) 2026-03-01 12:01:40 -08:00
roomote[bot]
193053110b
fix: remove Netflix logo from homepage (#11787)
fix: remove Netflix logo from homepage company logos

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-27 12:19:25 -08:00
Chris Estreich
54721a3155
Release: v1.113.0 (#11782)
chore: bump version to v1.113.0
2026-02-26 22:26:23 -08:00
Chris Estreich
b55409c0b0
Add cli types (#11781) 2026-02-26 22:06:55 -08:00
Chris Estreich
50c8101754
chore(cli): prepare release v0.1.6 (#11780) 2026-02-26 21:45:27 -08:00
Daniel
a7c8275e85
fix: forward task configuration through stdin-prompt-stream (#11778)
fix: forward task configuration through stdin-prompt-stream protocol

The stdin-prompt-stream `start` command only accepted `prompt` — any
`configuration` passed via the cloud worker's StartNewTask was silently
dropped. This meant custom modes (e.g. `ask-artifacts`), disabled tools,
and other task-level settings never reached the extension when running
via the CLI harness.

Changes:
- Add optional `configuration` field to the `start` stdin command
- Parse and forward it in `runStdinStreamMode`
- Thread it through `ExtensionHost.runTask` → `newTask` webview message
  → `ClineProvider.createTask` (which already calls `setValues`)
- Add `taskConfiguration` field to `WebviewMessage` type

Backward-compatible: older CLIs ignore the extra field; older workers
that don't send `configuration` trigger no change in behavior.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: cte <cestreich@gmail.com>
2026-02-26 21:41:14 -08:00
Chris Estreich
81047a65b6
fix(cli): scope sessions and resume flags to current workspace (#11774)
fix(cli): scope sessions to current workspace
2026-02-26 21:32:23 -08:00
Chris Estreich
2f4ce367c4
CLI: improve stream recovery and add configurable consecutive mistake limit (#11775)
* cli: improve stream error recovery and add mistake-limit flag

* More progress
2026-02-26 21:09:38 -08:00
Chris Estreich
96d77fd2c8
chore(cli): prepare release v0.1.5 (#11772) 2026-02-26 15:48:24 -08:00
Chris Estreich
de0e3632d2
feat(cli): add session resume/history and upgrade command (#11768)
feat(cli): add session history/resume and upgrade command
2026-02-26 13:55:46 -08:00
Chris Estreich
e25b1f2768
chore(cli): prepare release v0.1.4 (#11751) 2026-02-25 22:50:56 -08:00
Chris Estreich
bcdc842eda
Recover from unhandled exceptions in the cli (#11750) 2026-02-25 22:48:58 -08:00
roomote[bot]
4e8cc6eaee
feat: update cloud settings refresh interval to one hour (#11749)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-25 21:05:56 -08:00
Chris Estreich
0aea65d1e6
chore(cli): prepare release v0.1.3 (#11740) 2026-02-25 01:27:33 -08:00
Chris Estreich
efbba9e8d5
Fix cli task resumption (#11739) 2026-02-25 01:24:05 -08:00
Chris Estreich
191053cec5
chore(cli): prepare release v0.1.2 (#11737) 2026-02-24 23:32:12 -08:00
Chris Estreich
70cbc716e8
fix(cli): streaming deltas, task ID propagation, cancel recovery, and misc fixes (#11736)
* fix(cli): streaming deltas, task ID propagation, cancel recovery, and misc fixes

- Stream tool_use ask messages (command, tool, mcp) as structured deltas
  instead of full snapshots in json-event-emitter
- Generate task ID upfront and propagate through runTask/createTask so
  currentTaskId is available in extension state immediately
- Wait for resumable state after cancel before processing follow-up
  messages to prevent race conditions in stdin-stream
- Add ROO_CODE_DISABLE_TELEMETRY=1 env var to disable cloud telemetry
- Provide valid empty JSON Schema for custom tools without parameters
  to fix strict-mode API validation
- Skip paths outside cwd in RooProtectedController to avoid RangeError
- Silently handle abort during exponential backoff retry countdown
- Enable customTools experiment in extension host

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add start() to TaskStub in single-open-invariant test

The ClineProvider.createTask change to call task.start() after
addClineToStack requires the test's TaskStub mock to have this method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:29:50 -08:00
roomote[bot]
6f65a26694
Release v3.50.5 (#11730)
chore: add changeset for v3.50.5

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-24 15:01:53 -07:00
Peter Dave Hello
2541449924
Add OpenAI's GPT-5.3-Codex model support (#11728)
* Add OpenAI's GPT-5.3-Codex model support

Reference:
- https://openai.com/index/introducing-gpt-5-3-codex/
- https://developers.openai.com/api/docs/models/gpt-5.3-codex

* chore: add changeset for GPT-5.3-Codex support

* fix: rename CodeAccordian to CodeAccordion in FileChangesPanel

---------

Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Robot Tom <bot@example.com>
2026-02-24 14:46:27 -07:00
Peter Dave Hello
d0e72b7b3e
Fix spelling/grammar and casing inconsistencies (#11485) 2026-02-24 14:22:22 -07:00
roomote[bot]
b73dc15fda
fix(marketing): restore Linear integration page (#11725)
fix(marketing): restore Linear integration page removed in revert

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-24 08:54:49 -08:00
Chris Estreich
48d7e29ed8
chore(cli): prepare release v0.1.1 (#11723) 2026-02-23 23:15:53 -08:00
Chris Estreich
29caab9d0d
feat: warm Roo models on CLI startup (#11722)
When the CLI is configured with the Roo provider, proactively fetch
and warm the model list during activation so that model information
is available before the first prompt is sent. The warmup has a 10s
timeout and failures are logged only in debug mode so they never
block normal operation.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:13:26 -08:00
github-actions[bot]
aca95ccd04
Changeset version bump (#11672)
* changeset version bump

* Revise CHANGELOG for recent version updates

Updated changelog for versions 3.50.4 to 3.48.0, including new features, fixes, and improvements.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-21 17:25:27 -05:00
roomote[bot]
ab61ee2cd6
Release v3.50.4 (#11671)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-21 17:19:42 -05:00
roomote[bot]
62a7bd7354
feat: add MiniMax M2.5 model (#11458)
* feat: add MiniMax M2.5 model and set as default

* fix: update MiniMax M2.5 contextWindow to 204_800

* Delete .changeset/add-minimax-m25.md

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-20 22:34:18 -05:00
Matt Rubens
2df6e38998
Add pnpm version 10.8.1 to .tool-versions 2026-02-20 22:15:16 -05:00
github-actions[bot]
ae09ee5a64
Changeset version bump (#11642)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-20 12:16:35 -07:00
Hannes Rudolph
6b3097cb31
Revert "ci: trigger code-qa workflow on pull_request_review approval" (#11639)
Revert "ci: trigger code-qa workflow on pull_request_review approval (#11636)"

This reverts commit a55c85a8ec.
2026-02-20 12:00:30 -07:00
roomote[bot]
6bd6dc61a4
Release v3.50.3 (#11638)
chore: add changeset for v3.50.3

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-20 11:34:24 -07:00
Hannes Rudolph
a55c85a8ec
ci: trigger code-qa workflow on pull_request_review approval (#11636) 2026-02-20 11:33:43 -07:00
github-actions[bot]
2991bc9a39
Changeset version bump (#11634)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-20 10:47:38 -07:00
roomote[bot]
93415c7204
fix: correct Vertex AI claude-sonnet-4-6 model ID (#11626)
fix: correct Vertex AI claude-sonnet-4-6 model ID by removing date suffix

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-20 10:46:58 -07:00
pugazhendhi-m
4288b0a72f
feat: restore Unbound as a provider (#11624)
* feat: restore Unbound as a provider

* Adds translations

* fix: add unbound to ClineProvider test expectations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:37:13 -07:00
roomote[bot]
9918e837ba
Release v3.50.2 (#11631)
chore: add changeset for v3.50.2

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-20 09:05:38 -07:00
roomote[bot]
b34678488e
fix: prevent git templates from leaking into shadow checkpoint repos (#8629)
Pass --template="" to git init and strip GIT_TEMPLATE_DIR from the
environment so system/user git hooks and other template files never
get copied into the shadow repository used for checkpoints.

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-20 08:39:10 -07:00
RussellZager
618aa6652b
Inline terminal rendering parity with the VSCode Terminal (#11361)
* fix: render ANSI escape codes in inline terminal output

Fixes #10699

## Problem
The inline terminal output displayed raw ANSI bracket codes ([1m, [32m, etc.)
instead of rendering colors and formatting. This was caused by:
1. Backend: strip-ansi removing the ESC byte but leaving bracket remnants
2. Frontend: CodeBlock/Shiki having no ANSI rendering capability

## Solution
1. Backend: Replace strip-ansi with targeted removal of only VSCode shell
   integration sequences (OSC 633/133), preserving standard ANSI SGR codes
2. Frontend: Add new TerminalOutput component using ansi-to-html library
   that converts ANSI sequences to styled HTML spans
3. Map ANSI colors to VSCode terminal theme CSS variables for consistent
   theming across light/dark themes

## Testing
- Verified XSS prevention (escapeXML: true)
- Verified theme compatibility
- Added unit tests for both backend and frontend changes
- Updated existing tests to expect ANSI codes in output

Bundle size impact: ~3KB gzipped (ansi-to-html library)

Co-authored-by: Zman771 <605281+Zman771@users.noreply.github.com>

* fix: add eslint-disable for intentional ANSI control regex

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Zman771 <605281+Zman771@users.noreply.github.com>
Co-authored-by: Russell Zager <rzager@google.com>
2026-02-20 00:19:56 -07:00
roomote[bot]
27095553ca
fix(bedrock): enable prompt caching for custom ARN and default to ON (#11373)
* fix(bedrock): enable prompt caching for custom ARN and default to ON

- Set supportsPromptCache to true for custom-arn model info in useSelectedModel.ts
- Change awsUsePromptCache default from false to true using nullish coalescing
- Add tests for custom-arn prompt caching support

Closes #10846

* fix(bedrock): align backend awsUsePromptCache default with UI (?? true)

The backend treated undefined awsUsePromptCache as falsy (OFF) while the
UI checkbox defaulted to true via nullish coalescing. This caused the UI
to show prompt caching as ON but the backend to keep it OFF for new users.

Apply the same ?? true default in the backend so both sides agree.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-20 00:06:52 -07:00
github-actions[bot]
3a7a01f2f7
Changeset version bump (#11623)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-19 23:56:40 -07:00
Sazid Al Bayazid
492006d53d
feat: add visual feedback to copy button in task actions (#11403)
* feat: add visual feedback to copy button in task actions

The copy button now shows a checkmark for 2 seconds after copying to provide visual feedback.
Fixes #11401

* fix: change Check icon import name in TaskActions and update test

- Fix Check icon import name from Check to CheckIcon for consistency in TaskActions.tsx
- Add test to verify check icon is shown when showCopyFeedback is true
- Mock useCopyToClipboard hook in TaskActions.spec.tsx to test copy button functionality

This change resolves the import inconsistency and adds a test to ensure the copy button correctly shows a check icon after successful copy.
2026-02-19 23:55:22 -07:00
Chiranjeevisantosh Madugundi
5db2062d0c
feat: show aggregated +/− line counts in FileChangesPanel header (#11618)
* feat: show aggregated +/− line counts in FileChangesPanel header

* feat(FileChangesPanel): show merged diff relative to final file state

* fix(webview): restrict readFileContent to paths inside the workspace

* fix: add workspace-boundary validation to readFileContent to prevent path traversal

* fix(tests): mock isPathOutsideWorkspace in readFileContent spec

* fix(tests): mock isPathOutsideWorkspace in readFileContent spec

* fix: use path.resolve/path.sep in readFileContent test mock for cross-platform compatibility

The isPathOutsideWorkspace mock used hardcoded Unix-style path comparisons
(/mock/workspace with forward slashes), which fails on Windows where
path.resolve() produces paths with drive letters (C:\mock\workspace\...).

Replace manual string normalization with path.resolve() and path.sep so the
mock behaves correctly on both Windows and Unix.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-19 23:22:20 -07:00
roomote[bot]
0d5b932d2e
feat: disable apply_diff and enable edit tool for Vertex and Gemini providers (#11619)
* feat: disable apply_diff and enable edit tool for Vertex and Gemini providers

* feat: disable apply_diff and enable edit tool for Anthropic provider

* feat: disable apply_diff and enable edit tool for Anthropic Vertex provider

* fix: remove out-of-scope Anthropic/Anthropic-Vertex changes

The PR scope is Gemini and Vertex providers only. Reverting the
Anthropic and Anthropic-Vertex tool preference changes that were
not part of the stated scope.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-19 23:02:44 -07:00
Daniel
318bb928e0
feat: add timeout parameter to execute_command tool (#11622)
feat: add `timeout` parameter to `execute_command` tool

Allow the agent to specify a per-command timeout in seconds. When
exceeded, the command continues running in the background (like clicking
"Run in Background") and the output collected so far is returned,
rather than aborting. This is useful for long-running processes like dev
servers or file watchers that may never exit on their own.

The agent timeout runs independently of the user-configured abort
timeout — the user timeout remains active as a safety net even after
the agent moves on.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 23:43:09 -05:00
Ashank Sundaram
ea7da97a40
fix(openai): handle done-only/content-part responses (#11621)
* fix(openai-codex): handle done-only/content-part responses

* fix(openai): align native done-event stream fallbacks with codex

* fix(openai): address stream fallback review feedback
2026-02-19 19:24:26 -07:00
Ashank Sundaram
9a8af61936
feat(openai-codex): add gpt-5.3-codex-spark model metadata (#11620) 2026-02-19 18:41:48 -07:00
roomote[bot]
d00f1a2bb8
feat: remove Roomote Control from extension (#11271)
* feat: remove Roomote Control from extension

Remove all Roomote Control (remote control) functionality:

- Remove BridgeOrchestrator and entire bridge directory from @roo-code/cloud
- Remove remoteControlEnabled, featureRoomoteControlEnabled from extension state
- Remove extensionBridgeEnabled from CloudUserInfo and user settings
- Remove roomoteControlEnabled from organization/user feature schemas
- Remove enableBridge from Task and ClineProvider
- Remove remote control toggle from CloudView UI
- Remove remoteControlEnabled message handler
- Remove extension bridge disconnect on logout/deactivate
- Update CloudTaskButton to show for all logged-in users
- Remove remote control translation strings from all locales
- Update all related tests

CLO-765

* fix: remove dead getOrganizationMetadata and unused socket.io-client dep

* Readmes

* Readmes

* Types

* fix: remove leftover Roomote Control references from locale READMEs and stale BridgeOrchestrator mock

* Removes cloudtaskbutton

* fix: remove orphaned qrcode packages and dead openInCloud translation keys

* pnpmlock

* Revert these

* Revert these

* Revert these

* Remove socket.io

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: cte <cestreich@gmail.com>
2026-02-19 16:33:39 -08:00
rossdonald
159bf2e9f1
fix: make settings search results same width as search input (#11617)
Changed the settings search results to be the same width as the search input. This ensures the results dropdown does not overflow outside of the parent panel.
2026-02-19 15:19:20 -07:00
github-actions[bot]
d8cfbfdb05
Changeset version bump (#11610)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-19 13:18:17 -07:00
roomote[bot]
8743020f4e
Release v3.50.0 (#11609)
* chore: add changeset for v3.50.0

* chore: add v3.50.0 announcement translations for all locales

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-19 13:04:18 -07:00
Peter Dave Hello
b64334b2bd
Add Gemini 3.1 Pro support and set Gemini default model (#11608)
Add Gemini 3.1 model entries for Gemini and Vertex providers.

Include the Gemini custom-tools endpoint model id in Gemini provider.
Update geminiDefaultModelId to gemini-3.1-pro-preview.

References:
- https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview
- https://ai.google.dev/gemini-api/docs/pricing
- https://ai.google.dev/gemini-api/docs/thinking
- https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-pro
- https://cloud.google.com/vertex-ai/generative-ai/pricing
- https://cloud.google.com/blog/products/ai-machine-learning/gemini-3-1-pro-on-gemini-cli-gemini-enterprise-and-vertex-ai
- https://deepmind.google/models/model-cards/gemini-3-1-pro/
- https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro/
2026-02-19 12:16:22 -07:00
roomote[bot]
aff46b14e2
chore: remove integration tests (#11598)
* chore: remove integration test files

* chore: remove integration test job from CI workflow

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-19 01:16:40 -07:00
Chris Estreich
00c35e691f
chore(cli): prepare release v0.1.0 (#11599) 2026-02-19 00:06:22 -08:00
Chris Estreich
ffec9ac1ec
feat(cli): NDJSON stdin protocol, list subcommands, modularize run.ts (#11597)
* feat(cli): add NDJSON stdin protocol, list subcommands, and modularize run.ts

Overhaul the stdin prompt stream from raw text lines to a structured NDJSON
command protocol (start/message/cancel/ping/shutdown) with requestId
correlation, ack/done/error lifecycle events, and queue telemetry. Add list
subcommands (commands, modes, models) for programmatic discovery. Extract
stdin stream logic from run.ts into stdin-stream.ts and add shared isRecord
guard utility. Includes unit tests for all new modules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(core): fix Task.ts bug affecting CLI operation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 00:04:34 -08:00
github-actions[bot]
c974443379
Changeset version bump (#11596)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-19 00:48:19 -07:00
roomote[bot]
5f87f83d97
Release v3.49.0 (#11595)
* chore: add changeset for v3.49.0

* i18n: translate v3.49.0 announcement strings to all supported languages

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-19 00:30:08 -07:00
roomote[bot]
b598efb422
feat: add per-task file-based history store for cross-instance safety (#11490)
* feat: add per-task file-based history store for cross-instance safety

Implement TaskHistoryStore service that stores each task's HistoryItem
as an individual JSON file in its existing task directory. This prevents
silent data loss when multiple VS Code windows write to the shared
globalState taskHistory array concurrently.

Key changes:
- New TaskHistoryStore class with per-task file writes via safeWriteJson
- Index file (_index.json) for fast startup reads
- Reconciliation logic to detect and fix drift between instances
- fs.watch for cross-instance reactivity
- Debounced index writes (2s window) for streaming performance
- Migration from globalState on first startup
- Write-through to globalState during transition period
- Fallback lookups from globalState for backward compatibility

Files created:
- src/core/task-persistence/TaskHistoryStore.ts
- src/core/task-persistence/__tests__/TaskHistoryStore.spec.ts
- src/core/task-persistence/__tests__/TaskHistoryStore.crossInstance.spec.ts

Files modified:
- src/shared/globalFileNames.ts (added historyItem, historyIndex)
- src/core/task-persistence/index.ts (export TaskHistoryStore)
- src/core/webview/ClineProvider.ts (integrate store, remove write lock)
- Test files updated for new store-based approach

* fix: address review feedback - reconcile lock, init promise, write-through serialization

- reconcile() now runs through withLock() to prevent interleaving with
  upsert/delete at async boundaries
- Added initialized promise so callers can await store readiness before
  reading (getStateToPostToWebview now awaits it)
- Write-through to globalState now happens inside the store lock via
  onWrite callback, preventing concurrent call races on the transition
  period fallback
- Removed separate updateGlobalState("taskHistory") calls from
  ClineProvider since the onWrite callback handles it serialized

* fix: add TaskHistoryStore to task-persistence mock in Task.persistence.spec.ts

The test mocks task-persistence with an explicit factory that was
missing the new TaskHistoryStore export, causing all 9 tests to fail
with "No TaskHistoryStore export is defined on the mock".

* perf: debounce globalState write-through to avoid full-array writes on every mutation

Instead of writing the entire HistoryItem[] array to globalState on
every upsert/delete (expensive with 5000+ tasks), the write-through
is now debounced with a 5-second window. Per-task file writes remain
immediate (~200 bytes each). The globalState is flushed on dispose
to ensure no data loss on shutdown.

This makes the hot path during streaming (token count updates) write
only the per-task file, not the full array.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-19 00:01:31 -07:00
Hannes Rudolph
f864270547
fix(chat): redesign rehydration scroll lifecycle (#11483)
* fix(chat): stabilize rehydration scroll-to-bottom convergence

* fix(chat): preserve user escape hatch during initial settle

* refactor(chat): reduce scroll fix PR scope and remove debug plumbing

* fix(chat): redesign rehydration scroll lifecycle

* refactor(chat): extract scroll lifecycle into useScrollLifecycle hook

- Extract ~400 lines of scroll lifecycle logic from ChatView.tsx into
  a dedicated useScrollLifecycle hook, reducing ChatView scroll-related
  refs from ~17 to 0 and making the logic testable in isolation.

- Reduce INITIAL_LOAD_SETTLE_HARD_CAP_MS from 10s to 5s. If rehydration
  takes longer, there is likely a rendering performance issue worth
  investigating separately.

- Document the scrollToIndex reversal: PR #6780 removed scrollToIndex
  due to jitter from stale numeric indices. The "LAST" constant used
  here resolves at call time, avoiding that issue.

- All 6 existing scroll regression tests pass unchanged.

* fix(chat): harden scroll lifecycle pointer intent and settle phase fallback

* test(chat): stabilize ChatView scroll debug repro flake

* refactor(chat): simplify hydration scroll lifecycle

* fix(chat): start existing task at latest message bottom

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-18 23:51:12 -07:00
James Mtendamema
67ea856fd0
feat: add per-workspace indexing opt-in and stop/cancel control (#11456)
* feat: add per-workspace indexing opt-in and stop/cancel control

- Add codeIndexWorkspaceEnabled flag in workspaceState (default: false)
- Thread AbortController/AbortSignal through orchestrator → scanner
- Add Stop Indexing button and Stopping state to UI
- Fix handleSettingsChange() to abort active scan when disabling toggle
- Add translations for all 18 locales

* fix: correct abort handling in indexing scanner and orchestrator

- Re-throw AbortError in scanner's file processing catch block to prevent
  abort signals from being silently swallowed as file errors
- Reorder stopWatcher() before setSystemState() in orchestrator abort
  catch path to ensure watcher cleanup before state transition
- Update scanner test to assert AbortError propagation on mid-scan abort

* fix: optimize workspace check ordering, translate new i18n keys, fix abort handling

- Move workspace-enabled check before _recreateServices() in initialize()
  to avoid creating Qdrant/embedder connections for disabled workspaces
- Translate new i18n keys (indexingStopped, indexingStoppedPartial, stopping,
  stopIndexingButton, stoppingButton, workspaceToggleLabel,
  workspaceDisabledMessage) in all 17 non-English locales
- Re-throw AbortError in scanner catch block to prevent silent swallowing
- Reorder stopWatcher() before setSystemState() in orchestrator abort path
- Update scanner test to assert AbortError propagation on mid-scan abort
- Fix recoverFromError test for workspace-enabled check ordering

* fix: per-folder enablement key, abort-safe dispose and back-pressure, translate i18n

Addresses 0xMink review feedback:
- Store workspace enablement keyed by folder path to support multi-root
  workspaces (codeIndexWorkspaceEnabled:<path> instead of single boolean)
- Add test proving folder A enabled does not enable folder B
- dispose() now calls stopIndexing() to abort orphaned scans on folder removal
- Scanner back-pressure loop checks abort signal to avoid spin-waiting
- Move workspace-enabled check before _recreateServices() in initialize()
- Translate new i18n keys in all 17 non-English locales
- Fix abort handling in orchestrator and scanner catch blocks

* fix: flush debounced cache writes on abort to preserve indexing progress

* feat: add global auto-enable default for backward-compatible workspace indexing

* fix: stop/start indexer when auto-enable default changes effective state

* fix: URI-keyed enablement, throw AbortError in back-pressure, stopWatcher on early-return

* fix: iterate all managers when auto-enable default changes in multi-root workspaces

---------

Co-authored-by: James Mtendamema <jmtendamema@geologicai.com>
2026-02-18 23:09:17 -07:00
Chiranjeevisantosh Madugundi
d7359ff228
Add file changes panel per conversation (#11494)
* Add file changes panel per conversation

Closes #11493

* Add unit tests for file changes and consolidate specs in src/__tests__

Closes #11493

* fix(chat): only show approved file diffs in conversation panel
2026-02-18 23:08:45 -07:00
John Richmond
00075684fd
Release: v1.112.0 (#11589)
chore: bump version to v1.112.0
2026-02-18 16:01:44 -08:00
github-actions[bot]
b91b20536e
Changeset version bump (#11586)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-18 16:36:38 -07:00
roomote[bot]
d9b42f57fb
fix: bump @roo-code/types metadata version to 1.111.0 after revert regression (#11588)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-18 15:44:02 -07:00
roomote[bot]
2d21e80add
Release v3.48.1 (#11584)
chore: add changeset for v3.48.1

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-18 13:30:09 -07:00
Peter Dave Hello
7bc966ee00
Fix Bedrock Claude Sonnet 4.6 model ID, cc #11509 (#11569)
Replace the incorrect Sonnet 4.6 Bedrock ID with the AWS-supported
model ID in the model registry and Bedrock capability lists.

Remove references to the deprecated dated ID and update Bedrock
tests to validate the corrected Sonnet 4.6 identifier.
2026-02-18 12:23:13 -07:00
roomote[bot]
d575295883
feat: add DeleteQueuedMessage IPC command (#11464)
* feat: add DeleteQueuedMessage IPC command for queue removal

* Delete .changeset/delete-queued-message-ipc.md

* fix: add try/catch to DeleteQueuedMessage IPC handler and early return in deleteQueuedMessage

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-18 10:42:48 -07:00
Daniel
bfbfaf6d46
fix: await MCP server initialization before returning McpHub instance (#11518)
* fix: await MCP server initialization before returning McpHub instance

MCP tools were unavailable on the first task turn when started via IPC
because McpHub's constructor fired initializeGlobalMcpServers() and
initializeProjectMcpServers() without awaiting them. getInstance()
returned a hub with servers still in "connecting" state.

Store the combined initialization promise and expose waitUntilReady(),
then await it in McpServerManager.getInstance() so the hub is only
returned after all servers have connected or timed out.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: assign McpHub instance only after waitUntilReady() resolves

Closes race condition where concurrent callers of getInstance() could
receive a hub that has not finished initialization. The hub is now
created in a local variable and only assigned to this.instance after
waitUntilReady() completes.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-17 17:32:15 -07:00
github-actions[bot]
44df43063f
Changeset version bump (#11513)
* changeset version bump

* fix: update changelog-config to support multi-line entries and restore full v3.48.0 CHANGELOG

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-17 14:25:31 -07:00
Peter Dave Hello
1b699d9040
fix: simplify 1M context locale copy for Claude 4 models (#11514)
Update 1M context locale copy for Claude 4 models

Refresh 1M context beta descriptions so locale text matches
current model support in Anthropic, Bedrock, and Vertex.

Use a shorter model scope string to keep UI copy readable and
easier to maintain while staying accurate.
2026-02-17 14:01:02 -07:00
Chris Estreich
be2b414785
chore(cli): prepare release v0.0.55 (#11516) 2026-02-17 12:58:20 -08:00
Chris Estreich
17d534e3ff
In cli stdin stream mode we should not create new tasks (#11515) 2026-02-17 12:56:53 -08:00
Hannes Rudolph
24958f3a3d
Release v3.48.0 (#11511)
chore: add changeset for v3.48.0
2026-02-17 13:26:35 -07:00
Peter Dave Hello
90e2451ad1
Add Anthropic Claude Sonnet 4.6 support across providers (#11509)
* Add Anthropic Claude Sonnet 4.6 support across providers

Add model definitions and capability flags for Anthropic, Bedrock,
Vertex, OpenRouter, and Vercel AI Gateway.

Update Anthropic handler and UI model selection logic to support Claude
Sonnet 4.6 1M context behavior and tier pricing.

Add focused tests for provider handlers, fetchers, and selected-model
hooks.

Keep Bedrock UI tier pricing parity as-is because this is a
pre-existing issue for Opus 4.6 and will be handled separately.

Reference:
- https://www.anthropic.com/news/claude-sonnet-4-6
- https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison

* Delete .changeset/soft-carpets-hunt.md

---------

Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-17 12:28:18 -07:00
roomote[bot]
dc243e4cf9
feat(web): add blog section with initial posts (#11127)
* feat(web): add blog section with 4 initial posts

Implements MKT-66 through MKT-74:

Content Layer (MKT-67):
- Markdown files in src/content/blog with Zod-validated frontmatter
- Pacific Time scheduling evaluated at request-time (no deploy needed)
- gray-matter for parsing, react-markdown + remark-gfm for rendering

Blog Pages (MKT-68, MKT-69):
- Index page at /blog with dynamic SSR
- Post page at /blog/[slug] with dynamic SSR
- Breadcrumb navigation and prev/next post navigation

SEO (MKT-70):
- Full OpenGraph and Twitter card metadata
- Schema.org JSON-LD (Article, BreadcrumbList, CollectionPage)
- Canonical URLs pointing to roocode.com/blog

Analytics (MKT-74):
- PostHog blog_post_viewed and blog_index_viewed events
- Referrer tracking for attribution

Navigation (MKT-72):
- Updated nav-bar and footer to link to internal /blog
- Blog link in Resources dropdown

Sitemap (MKT-71):
- Dynamic blog paths with PT scheduling check

Initial Posts:
- PRDs Are Becoming Artifacts of the Past (Jan 12)
- Code Review Got Faster, Not Easier (Jan 19)
- Vibe Coders Build and Rebuild (Jan 26)
- Async Agents Change the Speed vs Quality Calculus (Feb 2)

* fix(test): update HistoryPreview tests to match refactored component

The HistoryPreview component was refactored to use useGroupedTasks and
TaskGroupItem instead of rendering TaskItem directly. This updates the
test file to properly mock the new dependencies:
- Mock useGroupedTasks hook to provide grouped task data
- Mock TaskGroupItem instead of TaskItem
- Update assertions to test for task groups instead of individual tasks

* feat(blog): add Vercel-inspired patterns and Tone of Voice alignment

- Add reading time display to blog posts
- Create BlogPostCTA component with 4 variants (default, extension, cloud, enterprise)
- Add zebra striping to tables in blog posts
- Add CTA to blog landing and paginated pages
- Remove 'Posted' prefix from dates
- Update blog description: 'How teams use agents to iterate, review, and ship PRs with proof'
- Add BlogPostList and BlogPagination components
- Add 100+ new blog posts from content pipeline

* feat(blog): add source badges for podcast content (Office Hours, After Hours, Roo Cast)

- Add BlogSource type to types.ts
- Export BlogSource from blog index
- Add SourceBadge component to BlogPostList with colored badges
- Each podcast has distinct color: blue (Office Hours), purple (After Hours), emerald (Roo Cast)

* feat(blog): add source field to all blog posts (Roo Cast, Office Hours, After Hours)

- Add add-blog-sources.ts script to build title→source mapping
- Updated 122 blog posts with correct podcast sources
- Sources: Roo Cast (52), Office Hours (62), After Hours (8)

* feat(blog): add source badges with consistent styling

- Add source field to Zod validation schema
- Source badges use same styling as tag badges (rounded, greyscale)
- Badges display on /blog landing page for Office Hours, After Hours, Roo Cast

* feat(blog): improve schema.org structured data for SEO

- Change @type from Article to BlogPosting (more specific)
- Add image property using OG image URL
- Add wordCount for AEO optimization

* feat(blog): timestamped YouTube quotes + attribution polish

* chore(blog): update 'Series A team' to 'Series A - C team' and fix 'Tovin' to 'Tovan'

- Changed 22 instances of 'Series A team' to 'Series A - C team' across 20 blog posts
- Changed 12 instances of 'Tovin' to 'Tovan' across 4 blog posts

This broadens the messaging to better represent teams that Roo Code serves (Series A through C).

* ci: retry CI after timeout

* blog: featured posts + copy edits

* blog: remove draft posts from web content

* fix(blog): loop HTML tag stripping to prevent incomplete sanitization

The single-pass .replace(/<[^>]+>/g, "") in calculateReadingTime() was
flagged by CodeQL as vulnerable to incomplete multi-character sanitization.
Input like "<scr<script>ipt>" would still contain "<script" after one pass.

Added a stripHtmlTags() helper that loops the replacement until stable,
plus a final pass to remove any remaining angle brackets.

* fix(blog): replace iterative HTML tag stripping with single-pass angle bracket removal

The CodeQL scanner flagged the iterative stripHtmlTags function for
incomplete multi-character sanitization. The regex /<[^>]+>/g only
matches complete tags, so partial fragments like <script (without a
closing >) could survive intermediate loop iterations.

Since this function is only used for word counting in
calculateReadingTime, replace the multi-step approach with a simple
single-pass removal of all < and > characters. This eliminates the
incomplete sanitization pattern entirely.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Michael Preuss <michael@roocode.com>
2026-02-16 20:37:54 -05:00
SannidhyaSah
3e24e21c3d
fix: preserve condensation summary during task resume (#11487) (#11488)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2026-02-16 10:21:52 -07:00
rossdonald
77ed60a173
fix: add follow_up param validation in AskFollowupQuestionTool (#11484)
Added strict validation for the `follow_up` parameter to
check for presence and type (Array). Added test cases
covering missing, null, and invalid type scenarios.
Refactored parameter error handling into a helper method to reduce
duplication.
2026-02-16 10:14:37 -07:00
Hannes Rudolph
6ef149d567
docs: remove reapplication-plan.md (#11481) 2026-02-15 11:23:23 -07:00
Chris Estreich
aaee5a2c02
chore(cli): prepare release v0.0.54 (#11477) 2026-02-14 23:40:07 -08:00
Chris Estreich
27a78833c8
Add stdin stream mode for the cli (#11476)
* Add stdin stream mode for the cli

* fix: clear jsonEmitter state between tasks in stdin-prompt-stream mode

* fix: use consistent user role for prompt echo partials in stream-json mode

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-14 23:36:20 -08:00
Hannes Rudolph
04ffb64bb7
Reapply Batches 3-4: Skills, browser removal, provider removals (6 major-conflict cherry-picks) (#11475) 2026-02-14 22:06:24 -07:00
Hannes Rudolph
bcb8c81916
Reapply Batch 2: 9 minor-conflict non-AI-SDK cherry-picks (#11474)
* fix: correct Bedrock model ID for Claude Opus 4.6 (#11232)

Remove the :0 suffix from the Claude Opus 4.6 model ID to match
the correct AWS Bedrock model identifier.

The model ID was "anthropic.claude-opus-4-6-v1:0" but should be
"anthropic.claude-opus-4-6-v1" per AWS Bedrock documentation.

Fixes #11231

Co-authored-by: Roo Code <roomote@roocode.com>

* fix: guard against empty-string baseURL in provider constructors (#11233)

When the 'custom base URL' checkbox is unchecked in the UI, the setting
is set to '' (empty string). Providers that passed this directly to their
SDK constructors caused 'Failed to parse URL' errors because the SDK
treated '' as a valid but broken base URL override.

- gemini.ts: use || undefined (was passing raw option)
- openai-native.ts: use || undefined (was passing raw option)
- openai.ts: change ?? to || for fallback default
- deepseek.ts: change ?? to || for fallback default
- moonshot.ts: change ?? to || for fallback default

Adds test coverage for Gemini and OpenAI Native constructors verifying
empty-string baseURL is coerced to undefined.

* fix: make defaultTemperature required in getModelParams to prevent silent temperature overrides (#11218)

* fix: DeepSeek temperature defaulting to 0 instead of 0.3

Pass defaultTemperature: DEEP_SEEK_DEFAULT_TEMPERATURE to getModelParams() in
DeepSeekHandler.getModel() to ensure the correct default temperature (0.3)
is used when no user configuration is provided.

Closes #11194

* refactor: make defaultTemperature required in getModelParams

Make the defaultTemperature parameter required in getModelParams() instead
of defaulting to 0. This prevents providers with their own non-zero default
temperature (like DeepSeek's 0.3) from being silently overridden by the
implicit 0 default.

Every provider now explicitly declares its temperature default, making the
temperature resolution chain clear:
  user setting → model default → provider default

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

* feat: batch consecutive tool calls in chat UI with shared utility (#11245)

* feat: group consecutive list_files tool calls into single UI block

Consolidate consecutive listFilesTopLevel/listFilesRecursive ask messages
into a single 'Roo wants to view multiple directories' block, matching the
existing read_file batching pattern.

* chore: add missing translation keys for all locales

* refactor: consolidate duplicate listFiles batch-handling blocks in ChatRow

Merge the separate listFilesTopLevel and listFilesRecursive case blocks
into a single combined case with shared batch-detection logic, selecting
the icon and translation key based on the tool type. This removes the
duplicated isBatchDirRequest check and BatchListFilesPermission render.

* feat: batch consecutive file-edit tool calls into single UI block

Add edit-file batching in ChatView groupedMessages that consolidates
consecutive editedExistingFile, appliedDiff, newFileCreated,
insertContent, and searchAndReplace asks into a single BatchDiffApproval
block. Move batchDiffs detection in ChatRow above the switch statement
so it applies to any file-edit tool type.

* refactor: extract batchConsecutive utility, fix batch UI issues

- Extract generic batchConsecutive() utility from 3 identical while-loops
- Fix React key collisions in BatchListFilesPermission, BatchFilePermission, BatchDiffApproval
- Normalize language prop to "shellsession" (was "shell-session" for top-level)
- Remove unused _batchedMessages property from synthetic messages
- Remove dead didViewMultipleDirectories i18n key from all 18 locale files
- Add batch button text for listFilesTopLevel/listFilesRecursive
- Add batchConsecutive utility tests (6 cases)

* fix: audit improvements for batch tool-call UI

- Make batchConsecutive() generic instead of ClineMessage-specific
- Add batch-aware button text for edit-file batches ("Save All"/"Deny All")
- Add dedicated list-batch/edit-batch i18n keys (stop reusing read-batch)
- Add JSON.parse defense-in-depth in all three synthesizers
- Fix mixed list_files batch icon to default to FolderTree
- Add 6 missing test cases (all-match, immutability, spy, single-dir)

* chore: minor type cleanup (out-of-scope housekeeping)

- Trim unused recursive/isOutsideWorkspace from DirPermissionItem interface
- Remove 4 pre-existing `as any` casts in ChatView.tsx:
  - window cast → precise inline type
  - checkpoint bracket access → removed unnecessary casts
  - condensing message → `as ClineMessage`
  - debounce cancel → `.clear()` (correct API)
- Update BatchListFilesPermission test data to match trimmed interface

* i18n: add list-batch and edit-batch translations for all locales

* feat: add IPC query handlers for commands, modes, and models (#11279)

Add GetCommands, GetModes, and GetModels to the IPC protocol so external
clients can fetch slash commands, available modes, and Roo provider models
without going through the internal webview message channel.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add lock toggle to pin API config across all modes in workspace (#11295)

* feat: add lock toggle to pin API config across all modes in workspace

Add a lock/unlock toggle inside the API config selector popover (next to
the settings gear) that, when enabled, applies the selected API
configuration to all modes in the current workspace.

- Add lockApiConfigAcrossModes to ExtensionState and WebviewMessage types
- Store setting in workspaceState (per-workspace, not global)
- When locked, activateProviderProfile sets config for all modes
- Lock icon in ApiConfigSelector popover bottom bar next to gear
- Full i18n: English + 17 locale translations (all mention workspace scope)
- 9 new tests: 2 ClineProvider, 2 handler, 5 UI (77 total pass)

* refactor: replace write-fan-out with read-time override for lock API config

The original lock implementation used setModeConfig() fan-out to write the
locked config to ALL modes globally. Since the lock flag lives in workspace-
scoped workspaceState but modeApiConfigs are in global secrets, this caused
cross-workspace data destruction.

Replaced with read-time guards:
- handleModeSwitch: early return when lock is on (skip per-mode config load)
- createTaskWithHistoryItem: skip mode-based config restoration under lock
- activateProviderProfile: removed fan-out block
- lockApiConfigAcrossModes handler: simplified to flag + state post only
- Fixed pre-existing workspaceState mock gap in ClineProvider.spec.ts and
  ClineProvider.sticky-profile.spec.ts

* fix: validate Gemini thinkingLevel against model capabilities and handle empty streams (#11303)

* fix: validate Gemini thinkingLevel against model capabilities and handle empty streams

getGeminiReasoning() now validates the selected effort against the model's
supportsReasoningEffort array before sending it as thinkingLevel. When a
stale settings value (e.g. 'medium' from a different model) is not in the
supported set, it falls back to the model's default reasoningEffort.

GeminiHandler.createMessage() now tracks whether any text content was
yielded during streaming and handles NoOutputGeneratedError gracefully
instead of surfacing the cryptic 'No output generated' error.

* fix: guard thinkingLevel fallback against 'none' effort and add i18n TODO

The array validation fallback in getGeminiReasoning() now only triggers
when the selected effort IS a valid Gemini thinking level but not in
the model's supported set. Values like 'none' (explicit no-reasoning
signal) are no longer overridden by the model default.

Also adds a TODO for moving the empty-stream message to i18n.

* fix: track tool_call_start in hasContent to avoid false empty-stream warning

Tool-only responses (no text) are valid content. Without this,
agentic tool-call responses would incorrectly trigger the empty
response warning message.

* chore(cli): prepare release v0.0.53 (#11425)

* feat: add GLM-5 model support to Z.ai provider (#11440)

* chore: regenerate pnpm-lock.yaml

* fix: resolve type errors and remove AI SDK test contamination

* docs: update progress.txt with rebuilt Batch 2 status

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:40:07 -07:00
Hannes Rudolph
b2b77809ff
Reapply Batch 1: 22 clean non-AI-SDK cherry-picks (#11473)
* fix: add image content support to MCP tool responses (#10874)

Co-authored-by: Roo Code <roomote@roocode.com>

* fix: transform tool blocks to text before condensing (EXT-624) (#10975)

* refactor(read_file): Codex-inspired read_file refactor EXT-617 (#10981)

* feat: allow import settings in initial welcome screen (#10994)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* fix(code-index): remove deprecated text-embedding-004 and migrate to gemini-embedding-001 (#11038)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>

* chore: treat extension .env as optional (#11116)

* fix: sanitize tool_use_id in tool_result blocks to match API history (#11131)

Tool IDs from providers like Gemini/OpenRouter contain special characters
(e.g., 'functions.read_file:0') that are sanitized when saving tool_use
blocks to API history. However, tool_result blocks were using the original
unsanitized IDs, causing ToolResultIdMismatchError.

This fix ensures tool_result blocks use sanitizeToolUseId() to match the
sanitized tool_use IDs in conversation history.

Fixes EXT-711

* fix: queue messages during command execution instead of losing them (#11140)

* IPC fixes for task cancellation and queued messages (#11162)

* feat: add support for AGENTS.local.md personal override files (#11183)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* fix(cli): resolve race condition causing provider switch during mode changes (#11205)

When using slash commands with `mode:` frontmatter (e.g., `/cli-release`
with `mode: code`), the CLI would fail with "Could not resolve
authentication method" from the Anthropic SDK, even when using a
non-Anthropic provider like `--provider roo`.

Root cause: In `markWebviewReady()`, the `webviewDidLaunch` message was
sent before `updateSettings`, creating a race condition. The
`webviewDidLaunch` handler's "first-time init" sync would read
`getState()` before CLI-provided settings were applied to the context
proxy. Since `getState()` defaults `apiProvider` to "anthropic" when
unset, this default was saved to the provider profile. When a slash
command triggered `handleModeSwitch()`, it found this corrupted profile
with `apiProvider: "anthropic"` (but no API key) and activated it,
overwriting the CLI's working roo provider configuration.

Fix:
1. Reorder `markWebviewReady()` to send `updateSettings` before
   `webviewDidLaunch`, ensuring the context proxy has CLI-provided
   values when the initialization handler runs.
2. Guard the first-time init sync with `checkExistKey(apiConfiguration)`
   to prevent saving a profile with only the default "anthropic"
   fallback and no actual API keys configured.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* chore: remove dead toolFormat code from getEnvironmentDetails (#11207)

Remove the toolFormat constant and <tool_format> line from environment
details output. Native tool calling is now the only supported protocol,
making this code unnecessary.

Fixes #11206

Co-authored-by: Roo Code <roomote@roocode.com>

* feat: extract translation and merge resolver modes into reusable skills (#11215)

* feat: extract translation and merge resolver modes into reusable skills

- Add roo-translation skill with comprehensive i18n guidelines
- Add roo-conflict-resolution skill for intelligent merge conflict resolution
- Add /roo-translate slash command as shortcut for translation skill
- Add /roo-resolve-conflicts slash command as shortcut for conflict resolution skill

The existing translate and merge-resolver modes are preserved. These new skills
and commands provide reusable access to the same functionality.

Closes CLO-722

* feat: add guidances directory with translator guidance file

- Add .roo/guidances/roo-translator.md for brand voice, tone, and word choice guidance
- Update roo-translation skill to reference the guidance file

The guidance file serves as a placeholder for translation style guidelines
that will be interpolated at runtime.

* fix: rename guidances directory to guidance (singular)

* fix: remove language-specific section from translator guidance

The guidance file should focus on brand voice, tone, and word choice only.

* fix: remove language-specific guidelines section from skill file

* Update .roo/skills/roo-translation/SKILL.md

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: add Claude Opus 4.6 support across all providers (#11224)

* feat: add Claude Opus 4.6 support across all providers

Add Claude Opus 4.6 (claude-opus-4-6) model definitions and 1M context
support across Anthropic, Bedrock, Vertex AI, OpenRouter, and Vercel AI
Gateway providers.

- Anthropic: 128K max output, /5 pricing, 1M context tiers
- Bedrock: anthropic.claude-opus-4-6-v1:0 with 1M context + global inference
- Vertex: claude-opus-4-6 with 1M context tiers
- OpenRouter: prompt caching + reasoning budget sets
- Vercel AI Gateway: Opus 4.5 and 4.6 added to capability sets
- UI: 1M context checkbox for Opus 4.6 on all providers
- i18n: Updated 1M context descriptions across 18 locales

Also adds Opus 4.5 to Vercel AI Gateway (previously missing) and
OpenRouter maxTokens overrides for Opus 4.5/4.6.

Closes #11223

* fix: apply tier pricing when 1M context is enabled on Bedrock

When awsBedrock1MContext is enabled for tiered models like Opus 4.6,
also apply the 1M tier pricing (inputPrice, outputPrice, cache prices)
instead of only updating contextWindow. This ensures cost calculations
and UI display use the correct >200K rates.

* feat: add gpt-5.3-codex model to OpenAI Codex provider (#11225)

feat: add gpt-5.3-codex model and make it default for OpenAI Codex provider

Co-authored-by: Roo Code <roomote@roocode.com>

* fix: prevent parent task state loss during orchestrator delegation (#11281)

* fix: make removeClineFromStack() delegation-aware to prevent orphaned parent tasks (#11302)

* fix: make removeClineFromStack() delegation-aware to prevent orphaned parent tasks

When a delegated child task is removed via removeClineFromStack() (e.g., Clear
Task, navigate to history, start new task), the parent task was left orphaned
in "delegated" status with a stale awaitingChildId. This made the parent
unresumable without manual history repair.

This fix captures parentTaskId and childTaskId before abort/dispose, then
repairs the parent metadata (status -> active, clear awaitingChildId) when
the popped task is a delegated child and awaitingChildId matches.

Parent lookup + updateTaskHistory are wrapped in try/catch so failures are
non-fatal (logged but do not block the pop).

Closes #11301

* fix: add skipDelegationRepair opt-out to removeClineFromStack() for nested delegation

---------

Co-authored-by: Roo Code <roomote@roocode.com>

* fix(reliability): prevent webview postMessage crashes and make dispose idempotent (#11313)

* fix(reliability): prevent webview postMessage crashes and make dispose idempotent

Closes: #11311

1. postMessageToWebview() now catches rejections from
   webview.postMessage() so that messages sent after the webview is
   disposed do not surface as unhandled promise rejections.

2. dispose() is guarded by a _disposed flag so that repeated calls
   (e.g. during rapid extension deactivation) are no-ops.

3. CloudService mock in ClineProvider.spec.ts updated to include
   off() — a pre-existing gap exposed by the new dispose test.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add early _disposed check in postMessageToWebview

Skip the postMessage call entirely when the provider is already disposed,
avoiding unnecessary try/catch execution. Added test coverage for this path.

* chore: trigger CI

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

* fix: resolve race condition in new_task delegation that loses parent task history (#11331)

* fix: resolve race condition in new_task delegation that loses parent task history

When delegateParentAndOpenChild creates a child task via createTask(), the
Task constructor fires startTask() as a fire-and-forget async call. The child
immediately begins its task loop and eventually calls saveClineMessages() →
updateTaskHistory(), which reads globalState, modifies it, and writes back.

Meanwhile, delegateParentAndOpenChild persists the parent's delegation
metadata (status: 'delegated', delegatedToId, awaitingChildId, childIds) via
a separate updateTaskHistory() call AFTER createTask() returns.

These two concurrent read-modify-write operations on globalState race: the
last writer wins, overwriting the other's changes. When the child's write
lands last, the parent's delegation fields are lost, making the parent task
unresumable when the child finishes.

Fix: create the child task with startTask: false, persist the parent's
delegation metadata first, then manually call child.start(). This ensures
the parent metadata is safely in globalState before the child begins writing.

* docs: clarify Task.start() only handles new tasks, not history resume

* fix: serialize taskHistory writes and fix delegation status overwrite race (#11335)

Add a promise-chain mutex (withTaskHistoryLock) to serialize all
read-modify-write operations on taskHistory, preventing concurrent
interleaving from silently dropping entries.

Reorder reopenParentFromDelegation to close the child instance
before marking it completed, so the abort path's stale 'active'
status write no longer overwrites the 'completed' state.

Covered by new tests: RPD-04/05/06, UTH-02/04, and a full mutex
concurrency suite.

* Fix task resumption in the API module (#11369)

* chore: clean up repo-facing mode rules (#11410)

* fix: add maxReadFileLine to ExtensionState type for webview compatibility

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: 0xMink <dennis@dennismink.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-14 13:47:12 -07:00
Daniel
d52b6834e3
Add back post-revert bug fixes and features (Step 2) (#11463)
* fix: cancel backend auto-approval timeout when auto-approve is toggled off mid-countdown (#11439)

Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>

* fix: prevent chat history loss during cloud/settings navigation (#11371) (#11372)

Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>

* fix: preserve pasted images in chatbox during chat activity (#11375)

Co-authored-by: Roo Code <roomote@roocode.com>

* fix: resolve chat scroll anchoring and task-switch scroll race condit… (#11385)

* fix: avoid zsh process-substitution false positives in assignments (#11365)

* fix(editor): make tab close best-effort in DiffViewProvider.open (#11363)

* fix(checkpoints): canonicalize core.worktree comparison to prevent Windows path mismatch failures (#11346)

* fix: prevent double notification sound playback (#11283)

* fix: prevent false unsaved changes prompt with OpenAI Compatible headers (#8230) (#11334)

fix: prevent false unsaved changes prompt with OpenAI Compatible headers

Mark automatic header syncs in ApiOptions and OpenAICompatible as
non-user actions (isUserAction: false) and enhance SettingsView change
detection to skip automatic syncs with semantically equal values.

Root cause: two components (ApiOptions and OpenAICompatible) manage
openAiHeaders state and automatically sync it back on mount/remount.
These syncs were treated as user changes, triggering a false dirty state.

Co-authored-by: Robert McIntyre <robertjmcintyre@users.noreply.github.com>

* fix: remove noisy console.warn logs from NativeToolCallParser (#11264)

Remove two console.warn messages that fire excessively when loading tasks
from history:
- 'Attempting to finalize unknown tool call' in finalizeStreamingToolCall()
- 'Received chunk for unknown tool call' in processStreamingChunk()

The defensive null-return behavior is preserved; only the log output is removed.

* refactor: remove footgun prompting (file-based system prompt override) (#11387)

* refactor: delete orphaned per-provider caching transform files (#11388)

* feat: add disabledTools setting to globally disable native tools (#11277)

* feat: add disabledTools setting to globally disable native tools

Add a disabledTools field to GlobalSettings that allows disabling specific
native tools by name. This enables cloud agents to be configured with
restricted tool access.

Schema:
- Add disabledTools: z.array(toolNamesSchema).optional() to globalSettingsSchema
- Add disabledTools to organizationDefaultSettingsSchema.pick()
- Add disabledTools to ExtensionState Pick type

Prompt generation (tool filtering):
- Add disabledTools to BuildToolsOptions interface
- Pass disabledTools through filterSettings to filterNativeToolsForMode()
- Remove disabled tools from allowedToolNames set in filterNativeToolsForMode()

Execution-time validation (safety net):
- Extract disabledTools from state in presentAssistantMessage
- Convert disabledTools to toolRequirements format for validateToolUse()

Wiring:
- Add disabledTools to ClineProvider getState() and getStateToPostToWebview()
- Pass disabledTools to all buildNativeToolsArrayWithRestrictions() call sites

EXT-778

* fix: check toolRequirements before ALWAYS_AVAILABLE_TOOLS

Moves the toolRequirements check before the ALWAYS_AVAILABLE_TOOLS
early-return in isToolAllowedForMode(). This ensures disabledTools
can block always-available tools (switch_mode, new_task, etc.) at
execution time, making the validation layer consistent with the
filtering layer.

* feat: add support for .agents/skills directory (#11181)

* feat: add support for .agents/skills directory

This change adds support for discovering skills from the .agents/skills
directory, following the Agent Skills convention for sharing skills
across different AI coding tools.

Priority order (later entries override earlier ones):
1. Global ~/.agents/skills (shared across AI coding tools, lowest priority)
2. Project .agents/skills
3. Global ~/.roo/skills (Roo-specific)
4. Project .roo/skills (highest priority)

Changes:
- Add getGlobalAgentsDirectory() and getProjectAgentsDirectoryForCwd()
  functions to roo-config
- Update SkillsManager.getSkillsDirectories() to include .agents/skills
- Update SkillsManager.setupFileWatchers() to watch .agents/skills
- Add tests for new functionality

* fix: clarify skill priority comment to match actual behavior

* fix: clarify skill priority comment to explain Map.set replacement mechanism

---------

Co-authored-by: Roo Code <roomote@roocode.com>

* feat(history): render nested subtasks as recursive tree (#11299)

* feat(history): render nested subtasks as recursive tree

* fix(lockfile): resolve missing ai-sdk provider entry

* fix: address review feedback — dedupe countAll, increase SubtaskRow max-h

- HistoryView: replace local countAll with imported countAllSubtasks from types.ts
- SubtaskRow: increase nested children max-h from 500px to 2000px to match TaskGroupItem

* perf(refactor): consolidate getState calls in resolveWebviewView (#11320)

* perf(refactor): consolidate getState calls in resolveWebviewView

Replace three separate this.getState().then() calls with a single
await this.getState() and destructuring. This avoids running the
full getState() method (CloudService calls, ContextProxy reads, etc.)
three times during webview view resolution.

* fix: keep getState consolidation non-blocking to avoid delaying webview render

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

* fix: harden command auto-approval against inline JS false positives (#11382)

* feat: rename search_and_replace tool to edit and unify edit-family UI (#11296)

* Revert "refactor: delete orphaned per-provider caching transform files (#11388)"

This reverts commit 13a45b0361.

* chore: regenerate built-in-skills.ts with updated formatting

* fix: add missing maxReadFileLine property to test baseState

The ExtensionState type now requires maxReadFileLine property (added in commit 63e3f769a).
Update the test to include this property with the default value of -1 (unlimited reading).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: add pnpm serve command for code-server development (#10964)

Co-authored-by: Roo Code <roomote@roocode.com>

* chore: remove Feature Request from issue template options (#11141)

Co-authored-by: Roo Code <roomote@roocode.com>

* refactor(docs-extractor): simplify mode to focus on raw fact extraction (#11129)

* Add cli support for linux (#11167)

* fix: replace heredocs with echo statements in cli-release workflow (#11168)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* Drop MacOS-13 cli support (#11169)

* fix(cli): correct example in install script (#11170)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add Kimi K2.5 model to Fireworks provider (#11177)

* feat(cli): improve dev experience and roo provider API key support (#11203)

- Allow --api-key and ROO_API_KEY env var for the roo provider instead of
  requiring cloud auth token
- Switch dev/start scripts to use tsx for running directly from source
  without building first
- Fix path resolution (version.ts, extension.ts, extension-host.ts) to
  work from both source and bundled locations
- Disable debug log file (~/.roo/cli-debug.log) unless --debug is passed
- Update README with complete env var table and dev workflow docs

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* Roo Code CLI v0.0.50 (#11204)

* Roo Code CLI v0.0.50

* docs(cli): add --exit-on-error to changelog

---------

Co-authored-by: Roo Code <roomote@roocode.com>

* feat(cli): update default model from Opus 4.5 to Opus 4.6 (#11273)

Co-authored-by: Roo Code <roomote@roocode.com>

* feat(web): replace Roomote Control with Linear Integration in cloud features grid (#11280)

Co-authored-by: Roo Code <roomote@roocode.com>

* Add linux-arm64 for the roo cli (#11314)

* chore: clean up repo-facing mode rules (#11410)

* Make CLI auto-approve by default with require-approval opt-in (#11424)

Co-authored-by: Roo Code <roomote@roocode.com>

* Add new code owners to CODEOWNERS file

* Update next.js (#11108)

* feat(web): Replace bespoke navigation menu with shadcn navigation menu (#11117)

Co-authored-by: Roo Code <roomote@roocode.com>

---------

Co-authored-by: SannidhyaSah <sah_sannidhya@outlook.com>
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: 0xMink <dennis@dennismink.com>
Co-authored-by: Robert McIntyre <robertjmcintyre@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2026-02-13 18:40:28 -05:00
roomote[bot]
594ed62f96
fix: restore @hannesrudolph and @daniel-lxs as default code owners (#11469)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-13 15:32:05 -07:00
Daniel
6cfa82f571
Revert to pre-AI-SDK state (January 29, 2026) (#11462)
Revert to pre-AI-SDK state (commit 67e568f6b)

This commit reverts the codebase to the state before AI SDK migration work began.

Target commit: 67e568f6b - refactor: replace fetch_instructions with skill tool and built-in skills (#10913)
Date: January 29, 2026

This removes approximately 152 commits of AI SDK migration work.
A follow-up PR will add back bug fixes and features that are unrelated to AI SDK.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 16:45:18 -05:00
roomote[bot]
5507f5ab64
feat: extract translation and merge resolver modes into reusable skills (#11215)
* feat: extract translation and merge resolver modes into reusable skills

- Add roo-translation skill with comprehensive i18n guidelines
- Add roo-conflict-resolution skill for intelligent merge conflict resolution
- Add /roo-translate slash command as shortcut for translation skill
- Add /roo-resolve-conflicts slash command as shortcut for conflict resolution skill

The existing translate and merge-resolver modes are preserved. These new skills
and commands provide reusable access to the same functionality.

Closes CLO-722

* feat: add guidances directory with translator guidance file

- Add .roo/guidances/roo-translator.md for brand voice, tone, and word choice guidance
- Update roo-translation skill to reference the guidance file

The guidance file serves as a placeholder for translation style guidelines
that will be interpolated at runtime.

* fix: rename guidances directory to guidance (singular)

* fix: remove language-specific section from translator guidance

The guidance file should focus on brand voice, tone, and word choice only.

* fix: remove language-specific guidelines section from skill file

* Update .roo/skills/roo-translation/SKILL.md

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-02-13 09:28:20 -08:00
Hannes Rudolph
b4d9f92b4d
Revert "Fix provider 400s: strip reasoning_details from messages, $ref from tool schemas" (#11453) 2026-02-12 19:51:21 -07:00
Hannes Rudolph
3965cd9743
fix: stabilize token/cache accounting across providers and routed Roo metadata (#11448) 2026-02-12 16:10:43 -07:00
Hannes Rudolph
b7857bcd6a
fix: harden delegation lifecycle against race conditions with per-task metadata, mutual-exclusion guards, and multi-layer failure recovery (#11379)
* fix: race conditions in subtask delegation system

Comprehensive fix for race conditions and error handling gaps in the subtask
delegation system. Addresses multiple failure modes that could leave parent
tasks permanently stuck in 'delegated' status, causing nested subtasks to hang.

Key fixes:
- Remove initialStatus from taskMetadata rebuild (eliminates status overwrites)
- Persist delegation metadata to per-task files (resolves globalState eviction)
- Add delegationInProgress mutex guard (prevents concurrent delegation ops)
- TOCTOU race fixes with fresh re-reads before writes
- Abort-aware pWaitFor predicate (prevents false 60s timeout on user input)
- Remove silent .catch(() => {}) — all errors now logged unless task is aborting
- Single-attempt delegation with parent repair on failure (no retry band-aids)
- Cancel debouncedEmitTokenUsage in dispose() (prevents zombie callbacks)
- new_task isolation truncation for parallel tool calls

* fix: write all 6 delegation fields in every saveDelegationMeta call site

* fix: align delegation tests with single-attempt implementation (no retry)
2026-02-12 13:06:25 -05:00
0xMink
9e46d3e10c
Fix provider 400s: strip reasoning_details from messages, $ref from tool schemas (#11431)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-12 12:00:52 -05:00
SannidhyaSah
6c9ff49dd8
fix: cancel backend auto-approval timeout when auto-approve is toggled off mid-countdown (#11439)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2026-02-12 10:38:11 -05:00
roomote[bot]
cdf481c8f9
feat: add GLM-5 model support to Z.ai provider (#11440) 2026-02-12 09:14:52 -05:00
Hannes Rudolph
897c372d2d
refactor: unify cache control with centralized breakpoints and universal provider options (#11426) 2026-02-12 00:21:25 -07:00
Hannes Rudolph
fa9dff4a06
refactor: remove browser use functionality entirely (#11392) 2026-02-11 18:11:21 -07:00
Chris Estreich
f54f224a26
chore(cli): prepare release v0.0.53 (#11425) 2026-02-11 16:43:12 -08:00
Chris Estreich
6c8b9dfa26
Make CLI auto-approve by default with require-approval opt-in (#11424)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-11 16:12:05 -08:00
Chris Estreich
bd4cd07e88
Release: v1.111.0 (#11421) 2026-02-11 15:55:31 -08:00
Chris Estreich
77b76a891f
Handle cancel/resume abort races without crashing (#11422) 2026-02-11 15:55:08 -08:00
Daniel
b51af98278
fix: make delegation reopen flow Roo v2-native (#11418) 2026-02-11 16:38:57 -05:00
Hannes Rudolph
b759b92f01
refactor: remove built-in skills and built-in skills mechanism (#11414) 2026-02-11 14:32:57 -07:00
Hannes Rudolph
d2c52c9e09
chore: clean up repo-facing mode rules (#11410) 2026-02-11 12:15:55 -07:00
Daniel
e6f0e79c38
feat: implement ModelMessage storage layer with AI SDK response messages (#11409)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-11 13:58:39 -05:00
Matt Rubens
dcb33c47ad
Revert "feat: wire RooMessage storage into Task.ts and all providers" (#11394) 2026-02-10 23:57:42 -05:00
Daniel
a7ba3b5af5
feat: wire RooMessage storage into Task.ts and all providers (#11386) 2026-02-10 21:25:48 -07:00
Hannes Rudolph
4e659b459d
refactor: remove footgun prompting (file-based system prompt override) (#11387) 2026-02-10 18:32:01 -07:00
Hannes Rudolph
5800363903
refactor: delete orphaned per-provider caching transform files (#11388) 2026-02-10 17:39:45 -07:00
Hannes Rudolph
8a69e9e04d
feat: rename search_and_replace tool to edit and unify edit-family UI (#11296) 2026-02-10 17:32:35 -07:00
Hannes Rudolph
097f648349
fix: resolve chat scroll anchoring and task-switch scroll race condit… (#11385) 2026-02-10 16:40:13 -07:00
Hannes Rudolph
8d57da8bc8
roofactor: Migrate Roo provider to AI SDK (#11383) 2026-02-10 16:16:32 -07:00
Hannes Rudolph
08a96af22c
fix: harden command auto-approval against inline JS false positives (#11382) 2026-02-10 14:44:10 -07:00
Daniel
50e5d98f5b
feat: RooMessage type system and storage layer for ModelMessage migration (#11380)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-10 16:41:35 -05:00
Danger Mouse
4438fdadc6
Second Quick Fix for Azure Foundry (#11374) 2026-02-10 10:39:55 -07:00
roomote[bot]
b971fe1a63
fix: preserve pasted images in chatbox during chat activity (#11375)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-10 12:37:41 -05:00
Daniel
cdd1a4dabf
refactor: migrate NativeOllamaHandler to AI SDK (#11355) 2026-02-10 10:36:28 -07:00
Hannes Rudolph
4272a69726
refactor: unify Gemini/Vertex error handling via handleAiSdkError() (#11364) 2026-02-10 11:19:37 -05:00
SannidhyaSah
ff89965f59
fix: prevent chat history loss during cloud/settings navigation (#11371) (#11372)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2026-02-10 10:41:53 -05:00
Hannes Rudolph
d4cf3211e7
fix: avoid zsh process-substitution false positives in assignments (#11365) 2026-02-10 10:01:48 -05:00
0xMink
7df1a18ccb
fix(editor): make tab close best-effort in DiffViewProvider.open (#11363) 2026-02-10 09:52:30 -05:00
0xMink
c1a8767adc
fix(checkpoints): canonicalize core.worktree comparison to prevent Windows path mismatch failures (#11346) 2026-02-10 09:51:38 -05:00
Chris Estreich
b02924530c
Fix task resumption in the API module (#11369) 2026-02-10 00:28:17 -08:00
Daniel
5773af8ddd
feat: Refactor OpenRouter provider to use Vercel AI SDK (#10778)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-09 20:50:33 -07:00
Hannes Rudolph
2f9849071d
fix: surface actual API error messages instead of generic NoOutputGeneratedError (#11359) 2026-02-09 19:47:04 -07:00
Hannes Rudolph
938e6994a2
refactor: migrate Qwen Code provider to AI SDK (#11356)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-09 18:45:27 -07:00
Hannes Rudolph
b6bf829ad9
feat: migrate MiniMax provider to AI SDK (#11357) 2026-02-09 18:33:22 -07:00
Hannes Rudolph
b7d6e4933d
refactor: migrate OpenAI Codex to AI SDK and use Responses API instructions field (#11352) 2026-02-09 16:50:40 -07:00
Daniel
34a278e9a2
feat: migrate VercelAiGatewayHandler to AI SDK (#11353) 2026-02-09 18:50:21 -05:00
Daniel
a4914c438c
feat: migrate OpenAiHandler to AI SDK (#11351)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-09 18:49:34 -05:00
Daniel
7a38b99232
feat: migrate Requesty provider to AI SDK (@requesty/ai-sdk) (#11350) 2026-02-09 16:29:32 -07:00
Hannes Rudolph
f51e91ac76
fix: prevent double notification sound playback (#11283) 2026-02-09 16:17:36 -07:00
Hannes Rudolph
7da429da19
Revert "feat: add task header highlight for visual status indication" (#11349)
Revert "feat: add task header highlight for visual status indication (#11305)"

This reverts commit 5313cb503a.
2026-02-09 15:29:10 -07:00
Daniel
c74acf36ef
feat: migrate LiteLLM provider to AI SDK (@ai-sdk/openai-compatible) (#11348)
* feat: migrate LiteLLM provider to AI SDK (@ai-sdk/openai-compatible)

- Replace raw OpenAI SDK (RouterProvider) with Vercel AI SDK's
  createOpenAICompatible via OpenAICompatibleHandler base class
- Retain dynamic model fetching from LiteLLM server via /v1/model/info
- Use centralized getModelMaxOutputTokens() to cap output tokens at 20%
  of context window, preventing overflow errors
- Remove LiteLLM-specific workarounds (Gemini thought signature injection,
  prompt cache control headers) now handled by the proxy or AI SDK
- Rewrite tests to mock AI SDK (streamText, generateText) instead of
  raw OpenAI SDK

* fix: call fetchModel() in completePrompt() before execution

Addresses review feedback - completePrompt() now fetches models
before executing to ensure correct model info for token limits,
matching the behavior of createMessage().
2026-02-09 15:20:42 -07:00
roomote[bot]
70775f0ec1
fix: make removeClineFromStack() delegation-aware to prevent orphaned parent tasks (#11302)
* fix: make removeClineFromStack() delegation-aware to prevent orphaned parent tasks

When a delegated child task is removed via removeClineFromStack() (e.g., Clear
Task, navigate to history, start new task), the parent task was left orphaned
in "delegated" status with a stale awaitingChildId. This made the parent
unresumable without manual history repair.

This fix captures parentTaskId and childTaskId before abort/dispose, then
repairs the parent metadata (status -> active, clear awaitingChildId) when
the popped task is a delegated child and awaitingChildId matches.

Parent lookup + updateTaskHistory are wrapped in try/catch so failures are
non-fatal (logged but do not block the pop).

Closes #11301

* fix: add skipDelegationRepair opt-out to removeClineFromStack() for nested delegation

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-09 16:54:13 -05:00
Daniel
bb86eb8651
refactor: migrate LM Studio provider to Vercel AI SDK (#11347)
* refactor: migrate LM Studio provider to Vercel AI SDK

Migrate LmStudioHandler from raw OpenAI SDK to Vercel AI SDK via
OpenAICompatibleHandler base class.

Changes:
- Extend OpenAICompatibleHandler instead of BaseProvider
- Use createOpenAICompatible from @ai-sdk/openai-compatible
- Use streamText/generateText from ai package
- Add extractReasoningMiddleware for <think> tag extraction parity
- Pass draft_model via providerOptions for speculative decoding
- Remove unused getLmStudioModels function (active version in fetchers/)
- Update all tests to mock AI SDK instead of OpenAI SDK

* fix: wrap completePrompt with handleAiSdkError for consistent error handling

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-09 16:47:49 -05:00
Daniel
24039c78b5
refactor: migrate AnthropicVertexHandler to AI SDK (#11345)
Replace @anthropic-ai/vertex-sdk with @ai-sdk/google-vertex/anthropic,
using streamText/generateText from the Vercel AI SDK for consistent
provider behavior.

Changes:
- Use createVertexAnthropic from @ai-sdk/google-vertex/anthropic
- Use streamText/generateText instead of direct Anthropic API calls
- Add AI SDK transform utilities for message/tool conversion
- Handle cache control via AI SDK providerOptions
- Handle thinking/reasoning via providerOptions.anthropic.thinking
- Add thought signature and redacted thinking block tracking
- Set isAiSdkProvider() to return true
- Remove unused deps: @anthropic-ai/vertex-sdk, google-auth-library
- Rewrite tests to mock AI SDK instead of @anthropic-ai/vertex-sdk
2026-02-09 16:11:42 -05:00
Danger Mouse
571be71005
Pr 11144 (#11315)
* Latest main branch snapshot from API

* feat: add dedicated Azure OpenAI provider using @ai-sdk/azure package

* feat: add Azure provider UI component and translations

* feat: add Azure provider translations for all locales

* chore: add missing Azure placeholder translations

* Delete .changeset/azure-ai-sdk-migration.md

* fix: add Azure provider validation for onboarding workflow

- Add azureApiKey to SECRET_STATE_KEYS for proper configuration detection
- Add Azure validation case in validateModelsAndKeysProvided
- Add validation translations for azureResourceName and azureDeploymentName across all 18 locales

This fixes the issue where the Finish button does nothing when setting up Azure provider in the onboarding workflow.

* feat(azure): add model metadata, model picker, rename to Azure AI Foundry

- Add static model metadata for 29 Azure models (from models.dev)
  with Roo-specific flags (reasoning, tools, verbosity) matching
  openAiNativeModels
- Add model picker dropdown to Azure provider settings for model
  capability detection (context window, max tokens, pricing)
- Rename provider label from 'Azure OpenAI' to 'Azure AI Foundry'
  across all 18 locales
- Make API key optional (supports Azure managed identity / Entra ID)
- Update default API version from 2024-08-01-preview to 2025-04-01-preview
- Fix maxOutputTokens validation (filter invalid values <= 0)
- Handler separates deployment name (API calls) from model ID
  (capability lookup) with azureDefaultModelInfo (gpt-4o) fallback
- Remove unhelpful 'Get Azure AI Foundry Access' button
- Prevent stale model IDs from other providers carrying over
- Suppress validation errors on fresh provider selection

* fix(azure): add missing isAiSdkProvider() override for reasoning block preservation

* Azure Fixes for Hannes

* Quick Fix for Respones API Only (for Hannes)

* fix: use explicit azureOpenAiDefaultApiVersion fallback when apiVersion is empty

Addresses review feedback: the UI placeholder shows '2025-04-01-preview' via
azureOpenAiDefaultApiVersion, so the handler should use the same constant as
fallback instead of silently deferring to the SDK's internal default.

* fix: remove stale Cerebras references (retired provider)

* fix: add missing retiredProviderMessage translations for all locales

* fix: do not map promptCacheMissTokens to cacheWriteTokens for Azure

Azure uses OpenAI-compatible caching which does not report cache write
tokens separately. promptCacheMissTokens represents tokens NOT found in
cache (processed from scratch), not tokens written to cache. This aligns
the Azure handler with the OpenAI native handler behavior.

---------

Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-09 14:11:12 -07:00
Daniel
b8ef352808
feat: migrate OpenAI Native provider to @ai-sdk/openai (#11330)
* feat: migrate OpenAI Native provider to @ai-sdk/openai

Replace the raw OpenAI SDK (openai) usage in OpenAiNativeHandler with
@ai-sdk/openai and AI SDK's streamText/generateText, following the same
pattern used by other migrated providers (Groq, xAI, Fireworks, etc.).

Key changes:
- Use createOpenAI from @ai-sdk/openai with provider.responses() for
  the Responses API
- Use streamText/generateText from ai for streaming and completions
- Pass OpenAI-specific features via providerOptions.openai (store,
  reasoningEffort, reasoningSummary, textVerbosity, serviceTier,
  promptCacheRetention, parallelToolCalls, include)
- Capture responseId, serviceTier, and encrypted reasoning content
  from providerMetadata after streaming
- Preserve getEncryptedContent() and getResponseId() for Task.ts
- Preserve service tier pricing adjustment in cost calculation
- Mark as isAiSdkProvider: true
- Eliminate ~1100 lines of manual SSE parsing, raw fetch fallback,
  and event handling code
- Rewrite all 3 test files to use AI SDK mocking pattern

* fix: remove non-existent cacheWriteTokens from providerMetadata

The OpenAI Responses API does not report cache write tokens separately.
Remove the reference to providerMetadata?.openai?.cacheWriteTokens which
does not exist in the @ai-sdk/openai provider metadata schema.

* fix: filter standalone encrypted reasoning items from messages

Task.ts buildCleanConversationHistory injects standalone reasoning items
with { type: 'reasoning', encrypted_content: '...' } into the messages
array. These have no 'role' property and would be silently dropped by
convertToAiSdkMessages. Filter them explicitly to prevent confusion.

Note: Encrypted reasoning content round-tripping for stateless continuity
is a known limitation of the AI SDK migration. The @ai-sdk/openai
provider does not support injecting raw Responses API reasoning items.
Plain-text reasoning round-tripping works correctly via isAiSdkProvider().

* fix: restore reasoning round-trip for OpenAI Responses API via AI SDK

- Strip plain-text reasoning blocks from assistant messages before
  convertToAiSdkMessages() to eliminate 'Non-OpenAI reasoning parts'
  warnings from @ai-sdk/openai Responses provider

- Re-inject encrypted reasoning items as AI SDK reasoning parts with
  providerOptions.openai.itemId and reasoningEncryptedContent, restoring
  reasoning continuity that was silently broken after the migration

- Restructure createMessage() into a 5-step pipeline:
  collect → filter → strip → convert → inject

- Add 21 new tests for both plain-text stripping and encrypted
  reasoning injection

---------

Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-09 13:27:58 -07:00
Daniel
7c58f29975
fix: resolve race condition in new_task delegation that loses parent task history (#11331)
* fix: resolve race condition in new_task delegation that loses parent task history

When delegateParentAndOpenChild creates a child task via createTask(), the
Task constructor fires startTask() as a fire-and-forget async call. The child
immediately begins its task loop and eventually calls saveClineMessages() →
updateTaskHistory(), which reads globalState, modifies it, and writes back.

Meanwhile, delegateParentAndOpenChild persists the parent's delegation
metadata (status: 'delegated', delegatedToId, awaitingChildId, childIds) via
a separate updateTaskHistory() call AFTER createTask() returns.

These two concurrent read-modify-write operations on globalState race: the
last writer wins, overwriting the other's changes. When the child's write
lands last, the parent's delegation fields are lost, making the parent task
unresumable when the child finishes.

Fix: create the child task with startTask: false, persist the parent's
delegation metadata first, then manually call child.start(). This ensures
the parent metadata is safely in globalState before the child begins writing.

* docs: clarify Task.start() only handles new tasks, not history resume
2026-02-09 13:13:04 -07:00
0xMink
62a0106ce0
fix(reliability): prevent webview postMessage crashes and make dispose idempotent (#11313)
* fix(reliability): prevent webview postMessage crashes and make dispose idempotent

Closes: #11311

1. postMessageToWebview() now catches rejections from
   webview.postMessage() so that messages sent after the webview is
   disposed do not surface as unhandled promise rejections.

2. dispose() is guarded by a _disposed flag so that repeated calls
   (e.g. during rapid extension deactivation) are no-ops.

3. CloudService mock in ClineProvider.spec.ts updated to include
   off() — a pre-existing gap exposed by the new dispose test.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add early _disposed check in postMessageToWebview

Skip the postMessage call entirely when the provider is already disposed,
avoiding unnecessary try/catch execution. Added test coverage for this path.

* chore: trigger CI

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-09 13:03:24 -05:00
Hannes Rudolph
115d6c5fce
fix: serialize taskHistory writes and fix delegation status overwrite race (#11335)
Add a promise-chain mutex (withTaskHistoryLock) to serialize all
read-modify-write operations on taskHistory, preventing concurrent
interleaving from silently dropping entries.

Reorder reopenParentFromDelegation to close the child instance
before marking it completed, so the abort path's stale 'active'
status write no longer overwrites the 'completed' state.

Covered by new tests: RPD-04/05/06, UTH-02/04, and a full mutex
concurrency suite.
2026-02-09 10:59:46 -07:00
Daniel
2b72a585dc
fix: prevent false unsaved changes prompt with OpenAI Compatible headers (#8230) (#11334)
fix: prevent false unsaved changes prompt with OpenAI Compatible headers

Mark automatic header syncs in ApiOptions and OpenAICompatible as
non-user actions (isUserAction: false) and enhance SettingsView change
detection to skip automatic syncs with semantically equal values.

Root cause: two components (ApiOptions and OpenAICompatible) manage
openAiHeaders state and automatically sync it back on mount/remount.
These syncs were treated as user changes, triggering a false dirty state.

Co-authored-by: Robert McIntyre <robertjmcintyre@users.noreply.github.com>
2026-02-09 12:40:36 -05:00
Daniel
1e0fc89fa1
refactor: migrate Anthropic provider to @ai-sdk/anthropic (#11287)
* refactor: migrate Anthropic provider to @ai-sdk/anthropic

Replace the raw @anthropic-ai/sdk implementation with @ai-sdk/anthropic
(Vercel AI SDK) for consistency with other providers (Bedrock, DeepSeek,
Mistral, etc.).

Changes:
- Replace Anthropic() client with createAnthropic() from @ai-sdk/anthropic
- Replace manual stream parsing with streamText() + processAiSdkStreamPart()
- Replace client.messages.create() with generateText() for completePrompt()
- Use convertToAiSdkMessages() and convertToolsForAiSdk() for format conversion
- Handle prompt caching via AI SDK providerOptions (cacheControl on messages)
- Handle extended thinking via providerOptions.anthropic.thinking
- Add getThoughtSignature() and getRedactedThinkingBlocks() for thinking
  signature round-tripping (matching Bedrock pattern, improves on original
  which had a TODO for this)
- Add isAiSdkProvider() returning true
- Update tests to mock @ai-sdk/anthropic and ai instead of raw SDK

* fix: address PR review - remove apiKey fallback and use system+systemProviderOptions pattern
2026-02-09 11:51:27 -05:00
Hannes Rudolph
ef2fec9a23
refactor: remove 9 low-usage providers and add retired-provider UX (#11297)
* refactor: remove 9 low-usage providers (Phase 0)

Remove Cerebras, Chutes, DeepInfra, Doubao, Featherless, Groq,
Hugging Face, IO Intelligence, and Unbound providers from the codebase.

Each provider removal includes: handler, tests, model definitions,
type schemas, UI settings components, fetchers, i18n references,
and all wiring in shared registration/config files.

- Delete 42 provider-specific files (handlers, tests, fetchers, UI components)
- Remove @ai-sdk/cerebras and @ai-sdk/groq npm dependencies
- Clean provider references from 68 shared files across src/, packages/types/,
  webview-ui/, and apps/cli/
- Remove ~490 dead i18n translation keys across 36 locale files
- Add docs/ai-sdk-migration-guide.md with updated migration status
- All TypeScript checks pass, 6505 tests pass with 0 failures

* feat: show retired-provider message for removed provider profiles

Preserve API profiles that reference removed providers instead of
silently stripping their apiProvider. When a user selects a profile
configured for a retired provider, the settings UI now shows an
empathetic message explaining the removal instead of the provider
configuration form.

- Add retiredProviderNames array and isRetiredProvider() helper to
  packages/types/src/provider-settings.ts
- Update ProviderSettingsManager sanitization to preserve retired
  providers (only strip truly unknown values)
- Update ContextProxy sanitization to preserve retired providers
- Render retired-provider message in ApiOptions.tsx when selected
  provider is in the retired list
- Add tests for sanitization, ContextProxy, and UI behavior

* feat: add retired-provider warning banner in chat view

* Revert "feat: add retired-provider warning banner in chat view"

This reverts commit dd593e1056.

* feat: show retired-provider message as inline chat response

* fix: show retired provider warning on home screen

Move WarningRow outside {task && ...} conditional so it renders
regardless of task state. Preserve user input on retired provider
intercept so text isn't lost when switching providers.

- Move showRetiredProviderWarning WarningRow to unconditional render
  area near ProfileViolationWarning
- Remove setInputValue/setSelectedImages clearing from retired
  provider early return in handleSendMessage
- Delete unused RetiredProviderWarning.tsx (dead code)

* fix: address PR review — passthrough retired-provider fields and i18n strings

- Use passthrough() in saveConfig() and load() so legacy provider-specific
  fields (e.g. groqApiKey, deepInfraModelId) are preserved instead of
  silently stripped by strict Zod parse()
- Move hardcoded English strings in ApiOptions.tsx and ChatView.tsx to
  i18n translation keys (settings:providers.retiredProviderMessage,
  chat:retiredProvider.{title,message,openSettings})
- Update tests to assert legacy provider-specific fields survive
  save and load round-trips

* i18n: add retired-provider translations for all 17 locales

Translate providers.retiredProviderMessage (settings) and
retiredProvider.{title,message,openSettings} (chat) into ca, de, es,
fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW.

* test: update ApiOptions retired-provider test to expect i18n key
2026-02-09 09:40:59 -07:00
Hannes Rudolph
7afa43635f
feat: batch consecutive tool calls in chat UI with shared utility (#11245)
* feat: group consecutive list_files tool calls into single UI block

Consolidate consecutive listFilesTopLevel/listFilesRecursive ask messages
into a single 'Roo wants to view multiple directories' block, matching the
existing read_file batching pattern.

* chore: add missing translation keys for all locales

* refactor: consolidate duplicate listFiles batch-handling blocks in ChatRow

Merge the separate listFilesTopLevel and listFilesRecursive case blocks
into a single combined case with shared batch-detection logic, selecting
the icon and translation key based on the tool type. This removes the
duplicated isBatchDirRequest check and BatchListFilesPermission render.

* feat: batch consecutive file-edit tool calls into single UI block

Add edit-file batching in ChatView groupedMessages that consolidates
consecutive editedExistingFile, appliedDiff, newFileCreated,
insertContent, and searchAndReplace asks into a single BatchDiffApproval
block. Move batchDiffs detection in ChatRow above the switch statement
so it applies to any file-edit tool type.

* refactor: extract batchConsecutive utility, fix batch UI issues

- Extract generic batchConsecutive() utility from 3 identical while-loops
- Fix React key collisions in BatchListFilesPermission, BatchFilePermission, BatchDiffApproval
- Normalize language prop to "shellsession" (was "shell-session" for top-level)
- Remove unused _batchedMessages property from synthetic messages
- Remove dead didViewMultipleDirectories i18n key from all 18 locale files
- Add batch button text for listFilesTopLevel/listFilesRecursive
- Add batchConsecutive utility tests (6 cases)

* fix: audit improvements for batch tool-call UI

- Make batchConsecutive() generic instead of ClineMessage-specific
- Add batch-aware button text for edit-file batches ("Save All"/"Deny All")
- Add dedicated list-batch/edit-batch i18n keys (stop reusing read-batch)
- Add JSON.parse defense-in-depth in all three synthesizers
- Fix mixed list_files batch icon to default to FolderTree
- Add 6 missing test cases (all-match, immutability, spy, single-dir)

* chore: minor type cleanup (out-of-scope housekeeping)

- Trim unused recursive/isOutsideWorkspace from DirPermissionItem interface
- Remove 4 pre-existing `as any` casts in ChatView.tsx:
  - window cast → precise inline type
  - checkpoint bracket access → removed unnecessary casts
  - condensing message → `as ClineMessage`
  - debounce cancel → `.clear()` (correct API)
- Update BatchListFilesPermission test data to match trimmed interface

* i18n: add list-batch and edit-batch translations for all locales
2026-02-09 11:28:04 -05:00
Hannes Rudolph
5313cb503a
feat: add task header highlight for visual status indication (#11305)
* feat: add task header highlight setting for visual status indication

Add a 'Task Header Highlight' toggle under Settings > UI that colors the
task header based on its current state:
- Green (--vscode-charts-green) when task completes (completion_result)
- Yellow (--vscode-charts-yellow) when user attention is needed (follow-up
  questions, tool approvals, etc.)

The highlight is skipped for subtasks and partial/streaming messages,
matching the same defensive logic used by sound notifications.

CSS classes with !important and --vscode-foreground variable overrides
ensure all child text, icons, SVGs, and the context progress bar use
appropriate contrasting colors.

Includes tests (37 passing) and translations for all 18 locales.

* fix: address review feedback - accessibility contrast and deduplicated logic

- Replace theme-dependent --vscode-charts-green/yellow backgrounds with
  hardcoded colors (#15803d, #ca8a04) that guarantee WCAG AA 4.5:1 contrast
- Extract shared lastRelevantMessage useMemo to deduplicate findLastIndex
  filtering between isTaskComplete and highlightClass
2026-02-09 11:08:41 -05:00
0xMink
2789baba96
perf(refactor): consolidate getState calls in resolveWebviewView (#11320)
* perf(refactor): consolidate getState calls in resolveWebviewView

Replace three separate this.getState().then() calls with a single
await this.getState() and destructuring. This avoids running the
full getState() method (CloudService calls, ContextProxy reads, etc.)
three times during webview view resolution.

* fix: keep getState consolidation non-blocking to avoid delaying webview render

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-09 10:11:38 -05:00
Chris Estreich
99a2e3b1ed
chore(cli): prepare release v0.0.52 (#11324)
* chore(cli): prepare release v0.0.52

* Update CHANGELOG for build cleanup and Linux support

Removed unused dependency from build configuration and added Linux support.
2026-02-08 21:04:59 -08:00
Chris Estreich
4bc3d62d1f
Add linux-arm64 for the roo cli (#11314) 2026-02-08 20:20:37 -08:00
Hannes Rudolph
12cddc9697
fix: validate Gemini thinkingLevel against model capabilities and handle empty streams (#11303)
* fix: validate Gemini thinkingLevel against model capabilities and handle empty streams

getGeminiReasoning() now validates the selected effort against the model's
supportsReasoningEffort array before sending it as thinkingLevel. When a
stale settings value (e.g. 'medium' from a different model) is not in the
supported set, it falls back to the model's default reasoningEffort.

GeminiHandler.createMessage() now tracks whether any text content was
yielded during streaming and handles NoOutputGeneratedError gracefully
instead of surfacing the cryptic 'No output generated' error.

* fix: guard thinkingLevel fallback against 'none' effort and add i18n TODO

The array validation fallback in getGeminiReasoning() now only triggers
when the selected effort IS a valid Gemini thinking level but not in
the model's supported set. Values like 'none' (explicit no-reasoning
signal) are no longer overridden by the model default.

Also adds a TODO for moving the empty-stream message to i18n.

* fix: track tool_call_start in hasContent to avoid false empty-stream warning

Tool-only responses (no text) are valid content. Without this,
agentic tool-call responses would incorrectly trigger the empty
response warning message.
2026-02-07 22:25:36 -07:00
Hannes Rudolph
7db4bfef5a
feat(history): render nested subtasks as recursive tree (#11299)
* feat(history): render nested subtasks as recursive tree

* fix(lockfile): resolve missing ai-sdk provider entry

* fix: address review feedback — dedupe countAll, increase SubtaskRow max-h

- HistoryView: replace local countAll with imported countAllSubtasks from types.ts
- SubtaskRow: increase nested children max-h from 500px to 2000px to match TaskGroupItem
2026-02-07 21:39:45 -07:00
Hannes Rudolph
5d17f56db7
feat: add lock toggle to pin API config across all modes in workspace (#11295)
* feat: add lock toggle to pin API config across all modes in workspace

Add a lock/unlock toggle inside the API config selector popover (next to
the settings gear) that, when enabled, applies the selected API
configuration to all modes in the current workspace.

- Add lockApiConfigAcrossModes to ExtensionState and WebviewMessage types
- Store setting in workspaceState (per-workspace, not global)
- When locked, activateProviderProfile sets config for all modes
- Lock icon in ApiConfigSelector popover bottom bar next to gear
- Full i18n: English + 17 locale translations (all mention workspace scope)
- 9 new tests: 2 ClineProvider, 2 handler, 5 UI (77 total pass)

* refactor: replace write-fan-out with read-time override for lock API config

The original lock implementation used setModeConfig() fan-out to write the
locked config to ALL modes globally. Since the lock flag lives in workspace-
scoped workspaceState but modeApiConfigs are in global secrets, this caused
cross-workspace data destruction.

Replaced with read-time guards:
- handleModeSwitch: early return when lock is on (skip per-mode config load)
- createTaskWithHistoryItem: skip mode-based config restoration under lock
- activateProviderProfile: removed fan-out block
- lockApiConfigAcrossModes handler: simplified to flag + state post only
- Fixed pre-existing workspaceState mock gap in ClineProvider.spec.ts and
  ClineProvider.sticky-profile.spec.ts
2026-02-07 20:31:22 -07:00
Hannes Rudolph
6826e20da2
fix: prevent parent task state loss during orchestrator delegation (#11281) 2026-02-07 15:24:54 -07:00
Daniel
f179ba1b9e
refactor: migrate zai provider to AI SDK (#11263)
* refactor: migrate zai provider to AI SDK using zhipu-ai-provider

* Update src/api/providers/zai.ts

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* fix: remove unused zai-format.ts (knip)

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-02-07 10:27:11 -07:00
Hannes Rudolph
97c10387ee
chore: update AI SDK packages to latest versions (#11286) 2026-02-07 08:16:38 -07:00
Matt Rubens
7fc42d70ea
Add new code owners to CODEOWNERS file 2026-02-07 00:53:27 -05:00
roomote[bot]
4d87a004a5
fix: add stub-baseten-native esbuild plugin to nightly build config (#11285)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-06 23:11:08 -05:00
John Richmond
d7714e4e07
chore: bump version to v1.110.0 (#11278) 2026-02-06 17:52:48 -08:00
Daniel
43a3073545
refactor: migrate baseten provider to AI SDK (#11261)
* refactor: migrate baseten provider to AI SDK

* refactor(baseten): migrate to native @ai-sdk/baseten package

Replace OpenAICompatibleHandler with dedicated @ai-sdk/baseten package,
following the same pattern used by other native AI SDK providers (groq,
deepseek, etc.). This uses createBaseten() for provider initialization
and extends BaseProvider directly instead of the generic OpenAI-compatible
handler.
2026-02-06 20:02:17 -05:00
roomote[bot]
f279537892
feat(web): replace Roomote Control with Linear Integration in cloud features grid (#11280)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-06 16:55:50 -08:00
Chris Estreich
9b39d2242a
feat: add IPC query handlers for commands, modes, and models (#11279)
Add GetCommands, GetModes, and GetModels to the IPC protocol so external
clients can fetch slash commands, available modes, and Roo provider models
without going through the internal webview message channel.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:29:49 -08:00
Daniel
6d2459c7e8
feat: add disabledTools setting to globally disable native tools (#11277)
* feat: add disabledTools setting to globally disable native tools

Add a disabledTools field to GlobalSettings that allows disabling specific
native tools by name. This enables cloud agents to be configured with
restricted tool access.

Schema:
- Add disabledTools: z.array(toolNamesSchema).optional() to globalSettingsSchema
- Add disabledTools to organizationDefaultSettingsSchema.pick()
- Add disabledTools to ExtensionState Pick type

Prompt generation (tool filtering):
- Add disabledTools to BuildToolsOptions interface
- Pass disabledTools through filterSettings to filterNativeToolsForMode()
- Remove disabled tools from allowedToolNames set in filterNativeToolsForMode()

Execution-time validation (safety net):
- Extract disabledTools from state in presentAssistantMessage
- Convert disabledTools to toolRequirements format for validateToolUse()

Wiring:
- Add disabledTools to ClineProvider getState() and getStateToPostToWebview()
- Pass disabledTools to all buildNativeToolsArrayWithRestrictions() call sites

EXT-778

* fix: check toolRequirements before ALWAYS_AVAILABLE_TOOLS

Moves the toolRequirements check before the ALWAYS_AVAILABLE_TOOLS
early-return in isToolAllowedForMode(). This ensures disabledTools
can block always-available tools (switch_mode, new_task, etc.) at
execution time, making the validation layer consistent with the
filtering layer.
2026-02-06 15:51:18 -08:00
Hannes Rudolph
ca7e3b6161
feat: migrate Bedrock provider to AI SDK (#11243)
* feat: migrate Bedrock provider to AI SDK

Replace the raw AWS SDK (@aws-sdk/client-bedrock-runtime) Bedrock handler
with the Vercel AI SDK (@ai-sdk/amazon-bedrock). Reduces provider from
1,633 lines to 575 lines (65% reduction).

Key changes:
- Use streamText()/generateText() instead of ConverseStreamCommand/ConverseCommand
- Use createAmazonBedrock() with native auth (access key, secret, session,
  profile via credentialProvider, API key, VPC endpoint as baseURL)
- Reasoning config via providerOptions.bedrock.reasoningConfig
- Anthropic beta headers via providerOptions.bedrock.anthropicBeta
- Thinking signature captured from providerMetadata.bedrock.signature
  on reasoning-delta stream events
- Thinking signature round-tripped via providerOptions.bedrock.signature
  on reasoning parts in convertToAiSdkMessages()
- Redacted thinking captured from providerMetadata.bedrock.redactedData
- isAiSdkProvider() returns true for reasoning block preservation
- Keep: getModel, ARN parsing, cross-region inference, cost calculation,
  service tier pricing, 1M context beta

Tests: 83 tests skipped (mock old AWS SDK internals, need rewrite for
AI SDK mocking). 106 tests pass. 0 tests fail.

* fix: address review feedback for Bedrock AI SDK migration

- Wire usePromptCache into AI SDK via providerOptions.bedrock.cachePoint
  on system prompt and last two user messages
- Remove debug logger.info that fires on every stream event with
  providerMetadata
- Tighten isThrottlingError to match 'rate limit' instead of broad
  'rate'/'limit' substrings that false-positive on context length errors
- Use shared handleAiSdkError utility for consistent error handling
  with status code preservation for retry logic

* fix: bedrock AI SDK migration - fix usage metrics, rewrite tests, remove dead code

- Fix reasoningTokens always 0 (usage.details?.reasoningTokens → usage.reasoningTokens)
- Fix cacheReadInputTokens always 0 (read from usage.inputTokenDetails instead of providerMetadata)
- Fix invokedModelId not extracted for prompt router cost calculation
- Rewrite all 6 skipped bedrock test suites for AI SDK mocking pattern (140 tests pass)
- Remove dead code: bedrock-converse-format.ts, cache-strategy/ (6 files, ~2700 lines)

* chore: remove dead @anthropic-ai/bedrock-sdk dep and stale AWS SDK mocks

* chore: update pnpm-lock.yaml after removing @anthropic-ai/bedrock-sdk

* fix: compute cache point indices from original Anthropic messages before AI SDK conversion

The previous approach naively targeted the last 2 user messages in the
post-conversion AI SDK array, but convertToAiSdkMessages() splits user
messages containing tool_results into separate tool + user messages,
causing cache points to land on the wrong messages (tiny text fragments
instead of the intended meaty user turns).

Now we identify the last 2 user messages in the original Anthropic
message array (matching the Anthropic provider's caching strategy) and
build a parallel-walk mapping to apply cachePoint to the correct
corresponding AI SDK message.

* perf: optimize prompt caching with 3-point message strategy + anchor for 20-block window

Previous approach only cached the last 2 user messages (using 2 of 4
available cache checkpoints for messages). This left significant cache
savings on the table for longer conversations.

New strategy uses up to 3 message cache points (+ 1 system = 4 total):
- Last user message: write to cache for next request
- Second-to-last user message: read from cache for current request
- Anchor message at ~1/3 position: ensures the 20-block lookback window
  from the second-to-last breakpoint hits a stable cache entry, covering
  all assistant/tool messages in the middle of the conversation

Also extracted the parallel-walk mapping logic into a reusable
applyCachePointsToAiSdkMessages() helper method.

Industry benchmarks show 70-95% token cache rates are achievable;
this change should significantly improve our 39% baseline for longer
multi-turn conversations.

* chore: remove stale bedrock-sdk external, fix arnInfo property name, remove unused exports

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-06 18:39:17 -05:00
roomote[bot]
0e5407aa76
fix: make defaultTemperature required in getModelParams to prevent silent temperature overrides (#11218)
* fix: DeepSeek temperature defaulting to 0 instead of 0.3

Pass defaultTemperature: DEEP_SEEK_DEFAULT_TEMPERATURE to getModelParams() in
DeepSeekHandler.getModel() to ensure the correct default temperature (0.3)
is used when no user configuration is provided.

Closes #11194

* refactor: make defaultTemperature required in getModelParams

Make the defaultTemperature parameter required in getModelParams() instead
of defaulting to 0. This prevents providers with their own non-zero default
temperature (like DeepSeek's 0.3) from being silently overridden by the
implicit 0 default.

Every provider now explicitly declares its temperature default, making the
temperature resolution chain clear:
  user setting → model default → provider default

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-06 18:38:31 -05:00
Daniel
00b1a7ed4d
refactor: migrate chutes provider to AI SDK (#11267) 2026-02-06 18:37:36 -05:00
Daniel
36a986db1d
refactor: migrate featherless provider to AI SDK (#11265)
* refactor: migrate featherless provider to AI SDK

* fix: merge consecutive same-role messages in featherless R1 path

convertToAiSdkMessages does not merge consecutive same-role messages
like convertToR1Format did. When the system prompt is prepended as a
user message and the conversation already starts with a user message,
DeepSeek R1 can reject the request.

Add mergeConsecutiveSameRoleMessages helper that collapses adjacent
Anthropic messages sharing the same role before AI SDK conversion.
Includes a test that verifies no two successive messages share a role.
2026-02-06 18:36:50 -05:00
Daniel
a3a9048741
refactor: migrate io-intelligence provider to AI SDK (#11262)
Migrates the IO Intelligence provider from legacy BaseOpenAiCompatibleProvider
(direct openai SDK) to OpenAICompatibleHandler (Vercel AI SDK).

- Extends OpenAICompatibleHandler instead of BaseOpenAiCompatibleProvider
- Uses getModelParams for model parameter resolution
- Updates tests to mock ai module's streamText/generateText
2026-02-06 18:35:41 -05:00
Chris Estreich
a9e9c0207e
chore(cli): prepare release v0.0.51 (#11274) 2026-02-06 13:50:50 -08:00
roomote[bot]
06b25185e2
feat(cli): update default model from Opus 4.5 to Opus 4.6 (#11273)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-06 13:27:35 -08:00
Daniel
8ef61bd32b
fix: remove noisy console.warn logs from NativeToolCallParser (#11264)
Remove two console.warn messages that fire excessively when loading tasks
from history:
- 'Attempting to finalize unknown tool call' in finalizeStreamingToolCall()
- 'Received chunk for unknown tool call' in processStreamingChunk()

The defensive null-return behavior is preserved; only the log output is removed.
2026-02-06 11:18:46 -08:00
github-actions[bot]
78e64115e8
Changeset version bump (#11258)
* changeset version bump

* Update CHANGELOG for version 3.47.3

Updated version number and removed redundant patch changes for 3.47.3.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-06 11:39:26 -05:00
Matt Rubens
1cdb5f4ce3
Release v3.47.3 (#11257)
chore: add changeset for v3.47.3
2026-02-06 11:34:57 -05:00
Matt Rubens
dd6e32eb18
Revert "refactor(task): append environment details into existing blocks" (#11256)
Revert "refactor(task): append environment details into existing blocks (#11198)"

This reverts commit b0dc6ae918.
2026-02-06 11:22:38 -05:00
Matt Rubens
5fd156de7b
Revert "chore: remove unused stripAppendedEnvironmentDetails and helpers" (#11255)
Revert "chore: remove unused stripAppendedEnvironmentDetails and helpers (#11…"

This reverts commit 2d5e633781.
2026-02-06 11:22:06 -05:00
roomote[bot]
2053de7b40
feat: remove Enable URL context and Enable Grounding with Google search checkboxes (#11253)
Remove the "Enable URL context" and "Enable Grounding with Google search"
checkboxes from Gemini and Vertex provider settings, along with:

- enableUrlContext and enableGrounding fields from provider settings schemas
- URL context and Google Search tool injection in completePrompt methods
- Associated translation keys from all 18 locale files
- Related test cases updated to reflect the removal
- simplifySettings prop removed from Gemini and Vertex components
  (it was only used for the removed checkboxes in those components)

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-06 09:43:54 -05:00
github-actions[bot]
5b0897beb9
Changeset version bump (#11240)
* changeset version bump

* Update CHANGELOG for version 3.47.2

Updated version number and added patch changes for 3.47.2.

* Update CHANGELOG for version 3.47.1

Updated changelog for version 3.47.1 with fixes and cleanup.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-05 18:01:39 -08:00
Matt Rubens
5f9c243d64
Release: v1.109.0 (#11241)
chore: bump version to v1.109.0
2026-02-05 18:00:16 -08:00
Matt Rubens
dfb4e39306
Release v3.47.2 (#11239)
chore: add changeset for v3.47.2
2026-02-05 17:56:28 -08:00
Hannes Rudolph
87f6d908c6
fix: capture and round-trip thinking signature for Bedrock Claude (#11238)
* fix: capture and round-trip thinking signature for Bedrock Claude models

Bedrock handler streams reasoning text from Claude's extended thinking but
never captures the cryptographic signature. This causes 400 errors on
multi-turn conversations with tool use: 'Expected thinking or
redacted_thinking, but found tool_use'.

Changes:
- bedrock.ts: Capture reasoningContent.signature from Converse API stream
  deltas, implement getThoughtSignature() so Task.ts stores it as a proper
  thinking content block
- bedrock-converse-format.ts: Convert thinking blocks to Bedrock's
  reasoningContent format with signature, skip reasoning/redacted_thinking/
  thoughtSignature blocks that aren't valid for the API

* fix: add redacted_thinking round-trip, fix interface types, add tests

Address PR review feedback:
- Update ContentBlockDeltaEvent interface to include signature and
  redactedContent fields (removes type assertions)
- Add 6 tests for thinking/reasoning block conversions in
  bedrock-converse-format.ts

Also add redacted_thinking round-trip support:
- bedrock.ts: Capture redactedContent from stream deltas, base64 encode,
  expose via getRedactedThinkingBlocks()
- Task.ts: Insert redacted_thinking blocks after thinking block in
  assistant messages
- bedrock-converse-format.ts: Convert redacted_thinking blocks back to
  reasoningContent.redactedContent (base64 → Uint8Array)
2026-02-05 17:53:00 -08:00
Hannes Rudolph
6a32b2e6fe
fix: restore Gemini thought signature round-tripping after AI SDK migration (#11237)
PR #11180 migrated Gemini/Vertex providers to the AI SDK and deleted
gemini-format.ts which contained the working thought signature round-trip
logic (originally added in PR #10590). This broke all Gemini 3 tool use
with a 400 error: 'Function call is missing a thought_signature'.

Changes:
- Gemini/Vertex handlers: capture thoughtSignature from providerMetadata
  on tool-call stream events, expose via getThoughtSignature()
- convertToAiSdkMessages(): extract thoughtSignature content blocks from
  history, attach as providerOptions on first tool-call part (per Gemini 3
  parallel call rules)
- Add 3 tests verifying thought signature round-trip behavior
2026-02-05 18:17:13 -07:00
roomote[bot]
a266834ee2
feat: add support for .agents/skills directory (#11181)
* feat: add support for .agents/skills directory

This change adds support for discovering skills from the .agents/skills
directory, following the Agent Skills convention for sharing skills
across different AI coding tools.

Priority order (later entries override earlier ones):
1. Global ~/.agents/skills (shared across AI coding tools, lowest priority)
2. Project .agents/skills
3. Global ~/.roo/skills (Roo-specific)
4. Project .roo/skills (highest priority)

Changes:
- Add getGlobalAgentsDirectory() and getProjectAgentsDirectoryForCwd()
  functions to roo-config
- Update SkillsManager.getSkillsDirectories() to include .agents/skills
- Update SkillsManager.setupFileWatchers() to watch .agents/skills
- Add tests for new functionality

* fix: clarify skill priority comment to match actual behavior

* fix: clarify skill priority comment to explain Map.set replacement mechanism

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-05 16:40:06 -08:00
github-actions[bot]
590fef711c
Changeset version bump (#11236)
* changeset version bump

* Update CHANGELOG for version 3.47.1

Updated changelog for version 3.47.1 with patch changes.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2026-02-05 16:17:47 -08:00
John Richmond
08f3b5ac17
Release v3.47.1 (#11234)
chore: add changeset for v3.47.1
2026-02-05 15:47:26 -08:00
Hannes Rudolph
23d34154d0
fix: guard against empty-string baseURL in provider constructors (#11233)
When the 'custom base URL' checkbox is unchecked in the UI, the setting
is set to '' (empty string). Providers that passed this directly to their
SDK constructors caused 'Failed to parse URL' errors because the SDK
treated '' as a valid but broken base URL override.

- gemini.ts: use || undefined (was passing raw option)
- openai-native.ts: use || undefined (was passing raw option)
- openai.ts: change ?? to || for fallback default
- deepseek.ts: change ?? to || for fallback default
- moonshot.ts: change ?? to || for fallback default

Adds test coverage for Gemini and OpenAI Native constructors verifying
empty-string baseURL is coerced to undefined.
2026-02-05 15:30:59 -08:00
roomote[bot]
8c6d1ef15d
fix: correct Bedrock model ID for Claude Opus 4.6 (#11232)
Remove the :0 suffix from the Claude Opus 4.6 model ID to match
the correct AWS Bedrock model identifier.

The model ID was "anthropic.claude-opus-4-6-v1:0" but should be
"anthropic.claude-opus-4-6-v1" per AWS Bedrock documentation.

Fixes #11231

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-05 15:08:31 -08:00
Hannes Rudolph
2d5e633781
chore: remove unused stripAppendedEnvironmentDetails and helpers (#11226)
Remove three functions from appendEnvironmentDetails.ts that were
defined and tested but never imported or called in production code:

- stripAppendedEnvironmentDetails (exported, 0 call sites)
- stripEnvDetailsFromText (private helper)
- stripEnvDetailsFromToolResult (private helper)

Also removes the corresponding describe block (7 tests) from the
spec file. The remaining 19 tests pass.
2026-02-05 13:18:11 -08:00
Matt Rubens
5c5686d98b
Update CHANGELOG for Claude Opus 4.6 support
Updated the changelog to reflect additional contributors for Claude Opus 4.6 support.
2026-02-05 12:55:59 -08:00
github-actions[bot]
c23e2717a4
Changeset version bump (#11229)
* changeset version bump

* Update CHANGELOG for version 3.47.0 release

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-05 12:54:40 -08:00
Matt Rubens
846d66880a
Release v3.47.0 (#11227)
chore: add changeset for v3.47.0
2026-02-05 12:50:52 -08:00
Hannes Rudolph
b0dc6ae918
refactor(task): append environment details into existing blocks (#11198)
* refactor(task): append environment details into existing blocks

Add appendEnvironmentDetails() helper that merges environment details
into the last text block or tool_result instead of adding a standalone
trailing text block.

This avoids message shapes that can break interleaved-thinking models
like DeepSeek reasoner, which expect specific message structures.

Changes:
- Add appendEnvironmentDetails() and removeEnvironmentDetailsBlocks() helpers
- Update Task.resumeAfterDelegation() to use the helper
- Update Task.recursivelyMakeClineRequests() to use the helper
- Add comprehensive unit tests (26 test cases)

* fix: use named import for Anthropic SDK to match codebase convention
2026-02-05 12:33:00 -08:00
roomote[bot]
d5b7fdcfa7
feat: add gpt-5.3-codex model to OpenAI Codex provider (#11225)
feat: add gpt-5.3-codex model and make it default for OpenAI Codex provider

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-05 12:28:45 -08:00
roomote[bot]
f73b103b87
chore: remove dead toolFormat code from getEnvironmentDetails (#11207)
Remove the toolFormat constant and <tool_format> line from environment
details output. Native tool calling is now the only supported protocol,
making this code unnecessary.

Fixes #11206

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-05 12:28:34 -08:00
Hannes Rudolph
47bba1c2f7
feat: add Claude Opus 4.6 support across all providers (#11224)
* feat: add Claude Opus 4.6 support across all providers

Add Claude Opus 4.6 (claude-opus-4-6) model definitions and 1M context
support across Anthropic, Bedrock, Vertex AI, OpenRouter, and Vercel AI
Gateway providers.

- Anthropic: 128K max output, /5 pricing, 1M context tiers
- Bedrock: anthropic.claude-opus-4-6-v1:0 with 1M context + global inference
- Vertex: claude-opus-4-6 with 1M context tiers
- OpenRouter: prompt caching + reasoning budget sets
- Vercel AI Gateway: Opus 4.5 and 4.6 added to capability sets
- UI: 1M context checkbox for Opus 4.6 on all providers
- i18n: Updated 1M context descriptions across 18 locales

Also adds Opus 4.5 to Vercel AI Gateway (previously missing) and
OpenRouter maxTokens overrides for Opus 4.5/4.6.

Closes #11223

* fix: apply tier pricing when 1M context is enabled on Bedrock

When awsBedrock1MContext is enabled for tiered models like Opus 4.6,
also apply the 1M tier pricing (inputPrice, outputPrice, cache prices)
instead of only updating contextWindow. This ensures cost calculations
and UI display use the correct >200K rates.
2026-02-05 13:18:40 -07:00
Hannes Rudolph
1b75d59a68
fix(ai-sdk): preserve reasoning parts in message conversion (#11217)
* fix(ai-sdk): preserve reasoning parts in message conversion

* fix(ai-sdk): convert message-level reasoning_content to reasoning part

* fix(task): remove invalid openai-compatible from reasoning allowlist

* feat: add isAiSdkProvider() method for dynamic AI SDK provider detection

- Add isAiSdkProvider() method to ApiHandler interface
- Default implementation in BaseProvider returns false
- Override to return true in 11 AI SDK providers:
  deepseek, fireworks, mistral, groq, xai, cerebras,
  sambanova, huggingface, gemini, vertex, openai-compatible
- Update Task.ts to use dynamic detection instead of hardcoded Set
- Add method to FakeAIHandler and update test mocks

* fix: handle reasoning parts in flattenAiSdkMessagesToStringContent

- Strip reasoning parts when flattening messages for string-only models
- Allow flattening when message contains only text and reasoning parts
- Add tests for reasoning part handling in string-only model contexts

This addresses the review feedback about ensuring flattenAiSdkMessagesToStringContent
works correctly when reasoning parts are present (e.g., SambaNova DeepSeek).

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-05 10:48:21 -07:00
Matt Rubens
934f34ea87
Revert "fix(ai-sdk): preserve reasoning parts in message conversion" (#11216)
Revert "fix(ai-sdk): preserve reasoning parts in message conversion (#11196)"

This reverts commit 227b9796d3.
2026-02-05 07:40:36 -08:00
Hannes Rudolph
227b9796d3
fix(ai-sdk): preserve reasoning parts in message conversion (#11196)
* fix(ai-sdk): preserve reasoning parts in message conversion

* fix(ai-sdk): convert message-level reasoning_content to reasoning part

* fix(task): remove invalid openai-compatible from reasoning allowlist
2026-02-04 22:00:11 -08:00
Chris Estreich
aa49871a5d
fix(cli): resolve race condition causing provider switch during mode changes (#11205)
When using slash commands with `mode:` frontmatter (e.g., `/cli-release`
with `mode: code`), the CLI would fail with "Could not resolve
authentication method" from the Anthropic SDK, even when using a
non-Anthropic provider like `--provider roo`.

Root cause: In `markWebviewReady()`, the `webviewDidLaunch` message was
sent before `updateSettings`, creating a race condition. The
`webviewDidLaunch` handler's "first-time init" sync would read
`getState()` before CLI-provided settings were applied to the context
proxy. Since `getState()` defaults `apiProvider` to "anthropic" when
unset, this default was saved to the provider profile. When a slash
command triggered `handleModeSwitch()`, it found this corrupted profile
with `apiProvider: "anthropic"` (but no API key) and activated it,
overwriting the CLI's working roo provider configuration.

Fix:
1. Reorder `markWebviewReady()` to send `updateSettings` before
   `webviewDidLaunch`, ensuring the context proxy has CLI-provided
   values when the initialization handler runs.
2. Guard the first-time init sync with `checkExistKey(apiConfiguration)`
   to prevent saving a profile with only the default "anthropic"
   fallback and no actual API keys configured.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 18:26:41 -08:00
Chris Estreich
6214f4c162
Roo Code CLI v0.0.50 (#11204)
* Roo Code CLI v0.0.50

* docs(cli): add --exit-on-error to changelog

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-04 18:14:15 -08:00
Hannes Rudolph
dcba685097
refactor(docs-extractor): simplify mode to focus on raw fact extraction (#11129) 2026-02-04 17:14:31 -08:00
Daniel
afe51e0fe8
feat: migrate Gemini and Vertex providers to AI SDK (#11180)
* feat: migrate Gemini and Vertex providers to AI SDK

- Migrate GeminiHandler from @google/genai to @ai-sdk/google
- Create standalone VertexHandler using @ai-sdk/google-vertex
- Use shared AI SDK utilities (streamText, generateText, convertToAiSdkMessages)
- Support thinkingConfig via providerOptions.google.thinkingConfig
- Support Google Search and URL Context grounding tools
- Preserve cost calculation with tiered pricing
- Remove gemini-format.ts (AI SDK handles message conversion)

EXT-643

* fix: remove unused import and implement allowedFunctionNames tool filtering

- Remove unused handleAiSdkError import from gemini.ts
- Implement tool filtering based on allowedFunctionNames in both
  GeminiHandler and VertexHandler createMessage methods
- Filter tools before converting to AI SDK format to restrict
  model access to only allowed functions
2026-02-04 17:31:48 -07:00
Chris Estreich
6e56619417
feat(cli): improve dev experience and roo provider API key support (#11203)
- Allow --api-key and ROO_API_KEY env var for the roo provider instead of
  requiring cloud auth token
- Switch dev/start scripts to use tsx for running directly from source
  without building first
- Fix path resolution (version.ts, extension.ts, extension-host.ts) to
  work from both source and bundled locations
- Disable debug log file (~/.roo/cli-debug.log) unless --debug is passed
- Update README with complete env var table and dev workflow docs

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 16:17:29 -08:00
roomote[bot]
1da2b1c457
feat: add support for AGENTS.local.md personal override files (#11183)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-02-04 12:53:13 -08:00
Daniel
7f6272afb9
feat: add Kimi K2.5 model to Fireworks provider (#11177) 2026-02-03 14:15:31 -05:00
Bruno Bergher
54ea34e2c1
ux: improve Skills and Slash Commands settings UI with multi-mode support (#11157)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-03 12:11:58 -05:00
roomote[bot]
460cff4c3b
feat: migrate HuggingFace provider to AI SDK (#11156)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-03 11:59:26 -05:00
github-actions[bot]
658034323b
Changeset version bump (#11176)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-02-03 11:57:43 -05:00
Matt Rubens
957600ab8c
chore: add changeset for v3.46.2 (#11175) 2026-02-03 11:46:34 -05:00
Chris Estreich
4647d0f3c5
fix(cli): correct example in install script (#11170)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 23:04:41 -08:00
Chris Estreich
1c7ccb7b3d
Drop MacOS-13 cli support (#11169) 2026-02-02 22:33:56 -08:00
Chris Estreich
304b1c213c
fix: replace heredocs with echo statements in cli-release workflow (#11168)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 22:02:57 -08:00
Chris Estreich
4592133624
Add cli support for linux (#11167) 2026-02-02 21:00:52 -08:00
roomote[bot]
e90e6178e3
feat: migrate xAI provider to use dedicated @ai-sdk/xai package (#11158)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-02 23:56:07 -05:00
roomote[bot]
67fb150727
feat: use custom Base URL for OpenRouter model list fetch (#11154)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-02 23:03:47 -05:00
roomote[bot]
c5874fc764
feat: migrate SambaNova provider to AI SDK (#11153)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-02-02 23:02:32 -05:00
Daniel
b4b8cef859
fix: transform tool blocks to text before condensing (EXT-624) (#10975) 2026-02-02 22:31:09 -05:00
roomote[bot]
1e790b0d39
fix(code-index): remove deprecated text-embedding-004 and migrate to gemini-embedding-001 (#11038)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-02-02 22:30:07 -05:00
Chris Estreich
cfb6041648
chore: bump version to v1.107.0 (#11164) 2026-02-02 11:16:27 -08:00
Chris Estreich
e5fa5e8e46
IPC fixes for task cancellation and queued messages (#11162) 2026-02-02 11:13:56 -08:00
Daniel
b020f6be43
feat(api): migrate Mistral provider to AI SDK (#11089)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-02-02 10:45:51 -05:00
Matt Rubens
ede1d29299
fix: queue messages during command execution instead of losing them (#11140) 2026-01-31 12:47:28 -05:00
roomote[bot]
8cf82cd3a9
chore: remove Feature Request from issue template options (#11141)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-31 11:30:54 -05:00
roomote[bot]
e46fae7ad7
fix: add image content support to MCP tool responses (#10874)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-31 07:22:59 -05:00
github-actions[bot]
f97a5c2212
Changeset version bump (#11136)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-31 00:37:38 -05:00
Matt Rubens
db0bcbec89
chore: add changeset for v3.46.1 (#11135) 2026-01-31 00:33:09 -05:00
SannidhyaSah
16fbabf2a4
feat: add mode dropdown to change skill mode dynamically (#10513) (#11102)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2026-01-31 00:22:49 -05:00
Daniel
3400499917
fix: sanitize tool_use_id in tool_result blocks to match API history (#11131)
Tool IDs from providers like Gemini/OpenRouter contain special characters
(e.g., 'functions.read_file:0') that are sanitized when saving tool_use
blocks to API history. However, tool_result blocks were using the original
unsanitized IDs, causing ToolResultIdMismatchError.

This fix ensures tool_result blocks use sanitizeToolUseId() to match the
sanitized tool_use IDs in conversation history.

Fixes EXT-711
2026-01-30 23:15:25 -05:00
roomote[bot]
fa93109b76
feat: allow import settings in initial welcome screen (#10994)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-30 20:55:13 -05:00
Hannes Rudolph
20d1f1f282
chore: treat extension .env as optional (#11116) 2026-01-30 16:15:50 -07:00
github-actions[bot]
946ae80561
Changeset version bump (#11122)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-30 15:26:38 -05:00
Matt Rubens
5945d02800
Release v3.46.0 (#11121) 2026-01-30 15:17:58 -05:00
Daniel
b5ae557834
feat(api): migrate Fireworks provider to AI SDK (#11118) 2026-01-30 14:52:49 -05:00
roomote[bot]
0cd257af89
feat(web): Replace bespoke navigation menu with shadcn navigation menu (#11117)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-30 09:38:46 -08:00
Matt Rubens
d8f65b655d
feat: add pnpm serve command for code-server development (#10964)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-30 10:02:43 -05:00
Daniel
e771a4936b
feat: migrate Groq provider to @ai-sdk/groq (#11088) 2026-01-30 09:45:21 -05:00
Chris Estreich
fd46e31134
Update next.js (#11108) 2026-01-30 02:08:45 -08:00
Hannes Rudolph
cc86049f10
refactor(read_file): Codex-inspired read_file refactor EXT-617 (#10981) 2026-01-29 15:16:32 -07:00
Daniel
0f43cc9814
feat: migrate Cerebras provider to AI SDK (#11086) 2026-01-29 17:07:59 -05:00
Daniel
4b1d78fe0a
feat: migrate DeepSeek to @ai-sdk/deepseek + fix AI SDK tool streaming (#11079) 2026-01-29 15:56:51 -05:00
Hannes Rudolph
f848795775
refactor: replace fetch_instructions with skill tool and built-in skills (#11084)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-29 12:47:36 -07:00
Hannes Rudolph
0c53f1937a
Revert "refactor: replace fetch_instructions with skill tool and built-in skills" (#11083) 2026-01-29 11:46:58 -07:00
Hannes Rudolph
67e568f6bb
refactor: replace fetch_instructions with skill tool and built-in skills (#10913) 2026-01-29 07:48:08 -07:00
Matt Rubens
40b2bdc4d0
Revert "feat(vscode-lm): add image support for VS Code LM API provider" (#11068) 2026-01-29 01:41:20 -05:00
roomote[bot]
49aac7ea00
feat(vscode-lm): add image support for VS Code LM API provider (#11065)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-29 01:34:09 -05:00
Alik Aslanyan
31bed9cebe
Add React Compiler integration to webview-ui (#9565) 2026-01-29 01:32:27 -05:00
Daniel
8d38e60187
feat: Add OpenAI-compatible base provider and migrate Moonshot to AI SDK (#11063) 2026-01-29 01:29:33 -05:00
Daniel
ed35b09aad
Enable parallel tool calls by default (#11031) 2026-01-29 01:29:15 -05:00
SannidhyaSah
010aba24b7
feat: add skills management UI to settings panel (#10513) (#10844)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-29 01:25:36 -05:00
roomote[bot]
c983e26280
feat(marketing): add Linear integration page (#11028)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Michael Preuss <michael@roocode.com>
2026-01-28 16:06:08 -08:00
Hannes Rudolph
d7fa963b13
docs: clarify read_command_output search param should be omitted when not filtering (#11056) 2026-01-28 13:30:01 -07:00
roomote[bot]
8640fd1472
fix: calculate header percentage based on available input space (#11054)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-28 15:29:34 -05:00
Daniel
fe722dad23
feat: add AI SDK dependencies and message conversion utilities (#11047) 2026-01-28 14:05:53 -05:00
Daniel
f5004ac40a
fix: prevent time-travel bug in parallel tool calling (#11046) 2026-01-28 13:25:02 -05:00
Hannes Rudolph
e7965d9b45
feat: lossless terminal output with on-demand retrieval (#10944) 2026-01-27 22:12:19 -07:00
roomote[bot]
a44842f16f
fix: include reserved output tokens in task header percentage calculation (#11034)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-27 23:37:48 -05:00
github-actions[bot]
c6d0306550
Changeset version bump (#11037)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 23:05:16 -05:00
Matt Rubens
7632807021
Release v3.45.0 (#11036) 2026-01-27 22:59:23 -05:00
Hannes Rudolph
d748de6fae
feat(condense v2.1): add smart code folding (#10942)
* feat(condense): add smart code folding with tree-sitter signatures

At context condensation time, use tree-sitter to generate folded code
signatures (function definitions, class declarations) for files read
during the conversation. Each file is included as its own <system-reminder>
block in the condensed summary, preserving structural awareness without
consuming excessive tokens.

- Add getFilesReadByRoo() method to FileContextTracker
- Create generateFoldedFileContext() using tree-sitter parsing
- Update summarizeConversation() to accept array of file sections
- Each file gets its own content block in the summary message
- Add comprehensive test coverage (12 tests)

* fix: skip tree-sitter error strings in folded file context

- Add isTreeSitterErrorString helper to detect error messages
- Skip files that return error strings instead of embedding them
- Add test for error string handling

* refactor: move generateFoldedFileContext() inside summarizeConversation()

- Update summarizeConversation() to accept filesReadByRoo, cwd, rooIgnoreController instead of pre-generated sections
- Move folded file context generation inside summarizeConversation() (lines 319-339)
- Update ContextManagementOptions type and manageContext() to pass new parameters
- Remove generateFoldedFileContext from Task.ts imports - folding now handled internally
- Update all tests to use new parameter signature
- Reduces Task.ts complexity by moving folding logic to summarization module

* fix: prioritize most recently read files in folded context

Files are now sorted by roo_read_date descending before folded context
generation, so if the character budget runs out, the most relevant
(recently read) files are included and older files are skipped.

* refactor: improve code quality in condense module

- Convert summarizeConversation to use options object instead of 11 positional params
- Extract duplicated getFilesReadByRoo error handling into helper method
- Remove unnecessary re-export of generateFoldedFileContext
- Update all test files to use new options object pattern

* fix: address roomote feedback - batch error logging and early budget exit

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-27 18:47:24 -05:00
github-actions[bot]
7607c684e9
Changeset version bump (#11027)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 15:52:37 -05:00
Matt Rubens
e9043723d3
Release v3.44.2 (#11025) 2026-01-27 15:43:20 -05:00
Daniel
17d3456e96
fix: remove duplicate tool_call emission from Responses API providers (#11008) 2026-01-27 13:33:15 -05:00
Daniel
b9cf163b87
fix: use relative paths in isPathInIgnoredDirectory to fix worktree indexing (#11009) 2026-01-27 12:43:47 -05:00
roomote[bot]
d6d00dedec
Fix local model validation error for Ollama models (#10893)
fix: prevent false validation error for local Ollama models

The validation logic was checking against an empty router models object
that was initialized but never populated for Ollama. This caused false
validation errors even when models existed locally.

Now only validates against router models if they actually contain data,
preventing the false error when using local Ollama models.

Fixes ROO-581

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-27 16:50:05 +00:00
Matt Rubens
dc5e765e9c
Revert "Revert "Enable parallel tool calling with new_task isolation safeguards"" (#11006) 2026-01-27 10:31:03 -05:00
github-actions[bot]
2078537201
Changeset version bump (#11005)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 10:28:20 -05:00
Matt Rubens
7b54a733e7
Release v3.44.1 (#11003) 2026-01-27 10:22:03 -05:00
Matt Rubens
5b3626f1a6
Revert "Enable parallel tool calling with new_task isolation safeguards" (#11004) 2026-01-27 10:20:12 -05:00
Seb Duerr
6e08ae4bfd
Add temperature=0.9 and top_p=0.95 to zai-glm-4.7 model (#10945)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 09:57:21 -05:00
MP
5100d15830
Add quality checks to marketing site deployment workflows (#10959)
Co-authored-by: cte <cestreich@gmail.com>
2026-01-27 00:56:30 -08:00
Daniel
2584504b9b
Enable parallel tool calling with new_task isolation safeguards (#10979)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-27 00:26:49 -05:00
Daniel
f5d32e771a
Fix LiteLLM tool ID validation errors for Bedrock proxy (#10990) 2026-01-26 23:54:48 -05:00
github-actions[bot]
3edf71e29a
Changeset version bump (#10989)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-26 23:26:46 -05:00
Matt Rubens
826e6da416
chore: add changeset for v3.44.0 (#10987) 2026-01-26 23:19:13 -05:00
roomote[bot]
2391a0f065
fix: use --force by default when deleting worktrees (#10986)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-26 23:10:23 -05:00
Hannes Rudolph
2f92cb7a8d
fix: prevent nested condensing from including previously-condensed content (#10985) 2026-01-26 22:34:04 -05:00
Daniel
dd245cc40c
fix: VS Code LM token counting returns 0 outside requests, breaking context condensing (EXT-620) (#10983)
- Modified VsCodeLmHandler.internalCountTokens() to create temporary cancellation tokens when needed
- Token counting now works both during and outside of active requests
- Added 4 new tests to verify the fix and prevent regression
- Resolves issue where VS Code LM API users experienced context overflow errors
2026-01-26 19:43:10 -05:00
Daniel
27708f3038
feat: new_task tool creates checkpoint the same way write_to_file does (#10982) 2026-01-26 17:21:49 -07:00
Hannes Rudolph
bd29766406
fix: record truncation event when condensation fails but truncation succeeds (#10984) 2026-01-26 17:19:27 -07:00
Hannes Rudolph
7534e19c60
chore: remove POWER_STEERING experiment remnants (#10980) 2026-01-26 15:26:47 -07:00
Peter Dave Hello
953c7773c0
Update and improve zh-TW Traditional Chinese locale and docs (#10953) 2026-01-25 07:07:23 -05:00
roomote[bot]
b472c15220
fix: restore opaque background to settings section headers (#10951)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-25 01:49:27 -05:00
roomote[bot]
c28478eda7
feat: add wildcard support for MCP alwaysAllow configuration (#10948)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 22:42:47 -05:00
Bruno Bergher
c56f0f43c7
ux: improve worktree selector and creation UX (#10940)
* Delete modal

* Restructured

* Much more prominent

* UI

* i18n

* Fixes i18n

* Remove mergeresultmodel

* i18n

* tests

* knip

* code review
2026-01-24 22:06:37 +00:00
roomote[bot]
c7910a99c7
fix(types): remove unsupported Fireworks model tool fields (#10937)
fix(types): remove unsupported tool capability fields from Fireworks model metadata

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 07:39:09 -05:00
Bruno Bergher
5848db66be
ux: Improve subtask visibility and navigation in history and chat views (#10864)
* Taskheader

* Subtask messages

* View subtask

* subtasks in history items

* i18n

* Table

* Lighter visuals

* bug

* fix: Align tests with implementation behavior

* refactor: extract CircularProgress component from TaskHeader

- Created reusable CircularProgress component for displaying percentage as a ring
- Moved inline SVG calculation from TaskHeader.tsx to dedicated component
- Added comprehensive tests for CircularProgress component (14 tests)
- Component supports customizable size, strokeWidth, and className
- Includes proper accessibility attributes (progressbar role, aria-valuenow)

* chore: update StandardTooltip default delay to 600ms

As mentioned in the PR description, increased the tooltip delay to 600ms
for less intrusive tooltips. The delay is still configurable via the
delay prop for components that need a different value.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 07:21:25 -05:00
Thanh Nguyen
3b703b8b53
feat: update Fireworks provider with new models (#10679)
Fixes #10674

Added new models:
- MiniMax M2.1 (minimax-m2p1)
- DeepSeek V3.2 (deepseek-v3p2)
- GLM-4.7 (glm-4p7)
- Llama 3.3 70B Instruct (llama-v3p3-70b-instruct)
- Llama 4 Maverick Instruct (llama4-maverick-instruct-basic)
- Llama 4 Scout Instruct (llama4-scout-instruct-basic)

All models include correct pricing, context windows, and capabilities.
2026-01-24 07:07:48 -05:00
Daniel
84f7409f3c
feat: remove MCP SERVERS section from system prompt (#10895)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 01:16:26 -05:00
Daniel
f9a3a178db
fix: truncate AWS Bedrock toolUseId to 64 characters (#10902) 2026-01-24 00:49:33 -05:00
Daniel
3877d02498
Replace hyphen encoding with fuzzy matching for MCP tool names (#10775) 2026-01-24 00:49:13 -05:00
github-actions[bot]
83f123f270
Changeset version bump (#10934)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-23 23:57:16 -05:00
Matt Rubens
4bff2ab191
chore: add changeset for v3.43.0 (#10933) 2026-01-23 23:47:44 -05:00
Hannes Rudolph
b042866ee1
fix: auto-migrate v1 condensing prompt and handle invalid providers on import (#10931) 2026-01-23 22:32:04 -05:00
Michaelzag
4e67357ab5
fix: use json-stream-stringify for pretty-printing MCP config files (#9864)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 19:19:35 -08:00
rossdonald
dd561142e9
Skip thoughtSignature blocks during markdown export #10199 (#10932) 2026-01-23 19:18:58 -08:00
roomote[bot]
f09718c5f4
Fix duplicate model display for OpenAI Codex provider (#10930)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 19:18:22 -08:00
Hannes Rudolph
a08bd766ff
refactor: remove legacy XML tool calling code (getToolDescription) (#10929)
- Remove getToolDescription() method from MultiSearchReplaceDiffStrategy
- Remove getToolDescription() from DiffStrategy interface
- Remove unused ToolDescription type from shared/tools.ts
- Remove unused eslint-disable directive
- Update test mocks to remove getToolDescription references
- Remove getToolDescription tests from multi-search-replace.spec.ts

Native tools are now defined in src/core/prompts/tools/native-tools/ using
the OpenAI function format. The removed code was dead since XML-style tool
calling was replaced with native tool calling.
2026-01-23 19:13:55 -05:00
Daniel
339f5aad48
fix: convert orphaned tool_results to text blocks after condensing (#10927)
* fix: convert orphaned tool_results to text blocks after condensing

When condensing occurs after assistant sends tool_uses but before user responds,
the tool_use blocks get condensed away. User messages containing tool_results that
reference condensed tool_use_ids become orphaned and get filtered out by
getEffectiveApiHistory, causing user feedback to be lost.

This fix enhances the existing check in addToApiConversationHistory to detect when
the previous effective message is not an assistant and converts any tool_result
blocks to text blocks, preventing them from being filtered as orphans.

The conversion happens at the latest possible moment (message insertion) because:
- Tool results are created before we know if condensing will occur
- We need actual effective history state to make the decision
- This is the last checkpoint before orphan filtering happens

* Only include environment details in summary for automatic condensing

For automatic condensing (during attemptApiRequest), environment details
are included in the summary because the API request is already in progress
and the next user message won't have fresh environment details injected.

For manual condensing (via condenseContext button), environment details
are NOT included because fresh details will be injected on the very next
turn via getEnvironmentDetails() in recursivelyMakeClineRequests().

This uses the existing isAutomaticTrigger flag to differentiate behavior.

---------

Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-23 19:04:36 -05:00
Hannes Rudolph
526488e5b6
chore: remove MULTI_FILE_APPLY_DIFF experiment (#10925)
* chore: remove MULTI_FILE_APPLY_DIFF experiment

Remove the 'Enable concurrent file edits' experimental feature that
allowed editing multiple files in a single apply_diff call.

- Remove multiFileApplyDiff from experiment types and config
- Delete MultiFileSearchReplaceDiffStrategy class and tests
- Delete MultiApplyDiffTool wrapper and tests
- Remove experiment-specific code paths in Task.ts, generateSystemPrompt.ts, and presentAssistantMessage.ts
- Remove special handling in ExperimentalSettings.tsx
- Remove translations from all 18 locale files

The existing MultiSearchReplaceDiffStrategy continues to handle
multiple SEARCH/REPLACE blocks within a single file.

* fix: remove unused EXPERIMENT_IDS/experiments import from Task.ts

Addresses review feedback: removes the unused imports from
src/core/task/Task.ts that were left over after removing the
MULTI_FILE_APPLY_DIFF experiment routing code.
2026-01-23 18:39:24 -05:00
Hannes Rudolph
f7434dec72
chore: remove POWER_STEERING experimental feature (#10926)
- Remove powerSteering from experimentIds array and schema in packages/types
- Remove POWER_STEERING from EXPERIMENT_IDS and experimentConfigsMap
- Remove power steering conditional block from getEnvironmentDetails
- Remove POWER_STEERING entry from all 18 locale settings.json files
- Update related test files to remove power steering references
2026-01-23 18:07:58 -05:00
Daniel
2d2ed15bfb
Remove Merge button from worktrees (#10924)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 16:55:46 -05:00
Hannes Rudolph
85f42dca83
chore: remove diffEnabled and fuzzyMatchThreshold settings (#10298) 2026-01-23 16:39:08 -05:00
roomote[bot]
1daac839ec
docs: fix CLI README to use correct command syntax (#10923)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 13:24:48 -08:00
Hannes Rudolph
0ff826d21d
feat(condense): improve condensation with environment details, accurate token counts, and lazy evaluation (#10920) 2026-01-23 13:52:47 -07:00
Hannes Rudolph
cf5d42e1e1
Intelligent Context Condensation v2 (#10873) 2026-01-23 12:33:35 -07:00
Hannes Rudolph
d1e74cb3e3
feat: add pnpm install:vsix:nightly command (#10912) 2026-01-23 10:35:32 -07:00
roomote[bot]
763734a193
fix: correct Gemini 3 pricing for Flash and Pro models (#10487)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 10:35:23 -07:00
Erdem
6e009971d9
feat: Update Z.AI models with new variants and pricing (#10860)
Co-authored-by: erdemgoksel <erdemgoksel@MAU-BILISIM42>
2026-01-23 08:12:03 -07:00
Hannes Rudolph
1f7be769ee
feat: Move condense prompt editor to Context Management tab (#10909) 2026-01-23 00:20:59 -05:00
github-actions[bot]
f7bf7a4840
Changeset version bump (#10911)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-22 23:56:42 -05:00
Matt Rubens
f38bac9fe6
Release v3.42.0 (#10910) 2026-01-22 23:52:33 -05:00
Hannes Rudolph
6eb3d5dd0a
chore(prompts): clarify linked SKILL.md file handling (#10907) 2026-01-22 22:32:25 -05:00
Daniel
3ab1d08159
Fix EXT-553: Remove percentage-based progress tracking for worktree file copying (#10905)
* Fix EXT-553: Remove percentage-based progress tracking for worktree file copying

- Removed totalBytes from CopyProgress interface
- Removed Math.min() clamping that caused stuck-at-100% issue
- Changed UI from progress bar to spinner with activity indicator
- Shows 'item — X MB copied' instead of percentage
- Updated all 18 locale files
- Uses native cp with polling (no new dependencies)

* fix: translate copyingProgress text in all 17 non-English locale files

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 21:17:16 -05:00
Hannes Rudolph
9d65772d24
fix(condense): remove custom condensing model option (#10901)
* fix(condense): remove custom condensing model option

Remove the ability to specify a different model/API configuration for
condensing conversations. Modern conversations include provider-specific
data (tool calls, reasoning blocks, thought signatures) that only the
originating model can properly understand and summarize.

Changes:
- Remove condensingApiHandler parameter from summarizeConversation()
- Remove condensingApiConfigId from context management and Task
- Remove API config dropdown for CONDENSE in settings UI
- Update telemetry to remove usedCustomApiHandler parameter
- Update related tests

Users can still customize the CONDENSE prompt text; only model selection
is removed.

* fix: remove condensingApiConfigId from types and test fixtures

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 20:06:04 -05:00
Daniel
f98dc1389e
feat: hide worktree feature from menus (#10899) 2026-01-22 17:35:21 -05:00
Hannes Rudolph
be0e8c2665
chore: clean up XML legacy code and native-only comments (#10900) 2026-01-22 15:56:11 -05:00
roomote[bot]
f6006c998d
Fix: Enforce file restrictions for all editing tools (#10896)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 14:17:42 -05:00
MP
5c1c16c16e
fix: rename bot to 'Roomote' and fix spacing in Slack demo (#10898) 2026-01-22 14:10:57 -05:00
Chris Estreich
13e090ef81
fix: prevent task abortion when resuming via IPC/bridge (#10892) 2026-01-22 02:31:51 -08:00
Matt Rubens
94459adba1
Open the worktreeinclude file after creating it (#10891)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-22 03:22:45 -05:00
roomote[bot]
73b1b38eb1
Fix padding on Roo Code Cloud upsell (#10889)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 03:00:26 -05:00
Hannes Rudolph
1feefb6f43
fix(openai): prevent double emission of text/reasoning in native and codex handlers (#10888) 2026-01-22 01:22:29 -05:00
roomote[bot]
21bd7609a9
feat: add HubSpot tracking with consent-based loading (#10885)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-21 22:54:07 -05:00
Daniel
971885d8e7
feat: add size-based progress tracking for worktree file copying (#10871) 2026-01-21 22:53:12 -05:00
MP
d87abe8efc
feat(web): redesign Slack page Featured Workflow section with YouTube… (#10880)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-21 22:47:42 -05:00
Matt Rubens
2305888746
Fix marketing site preview logic (#10886) 2026-01-21 21:58:21 -05:00
Hannes Rudolph
5e0bb5af26
refactor: unify export path logic and default to Downloads (#10882) 2026-01-21 21:34:48 -05:00
Hannes Rudolph
3f332d8e2b
refactor: migrate context condensing prompt to customSupportPrompts and cleanup legacy code (#10881) 2026-01-21 21:33:46 -05:00
Daniel
7f854c0dd7
feat: remove Claude Code provider (#10883) 2026-01-21 21:32:56 -05:00
roomote[bot]
5bd26eb1d9
fix: Handle mode selector empty state on workspace switch (#9674)
* fix: handle mode selector empty state on workspace switch

When switching between VS Code workspaces, if the current mode from
workspace A is not available in workspace B, the mode selector would
show an empty string. This fix adds fallback logic to automatically
switch to the default "code" mode when the current mode is not found
in the available modes list.

Changes:
- Import defaultModeSlug from @roo/modes
- Add fallback logic in selectedMode useMemo to detect when current
  mode is not available and automatically switch to default mode
- Add tests to verify the fallback behavior works correctly
- Export defaultModeSlug in test mock for consistent behavior

* fix: prevent infinite loop by moving fallback notification to useEffect

* fix: prevent infinite loop by using ref to track notified invalid mode

* refactor: clean up comments in ModeSelector fallback logic

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-21 20:47:51 -05:00
MP
bef796de87
Copy: update /slack page messaging (#10869)
copy: update /slack page messaging

- Update trial CTA to 'Start a free 14 day Team trial'
- Replace 'humans' with 'your team' in value props subtitle
- Shorten value prop titles for consistent one-line display
- Improve Thread-aware and Open to all descriptions
2026-01-21 18:30:57 -05:00
Hannes Rudolph
fa92ec4586
fix: resolve race condition in context condensing prompt input (#10876) 2026-01-21 15:11:39 -07:00
MP
9ab279ae42
Pr 10853 (#10854)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-21 00:15:17 -05:00
Hannes Rudolph
8de9337e63
chore: remove XML tool calling support (#10841)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-20 20:25:08 -05:00
Hannes Rudolph
e356d058e9
feat: standardize model selectors across all providers (#10294)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-20 16:22:49 -07:00
roomote[bot]
a060915d18
feat: add Kimi K2 thinking model to VertexAI provider (#9269)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-20 13:41:04 -08:00
roomote[bot]
c7ce8aae81
feat: enable prompt caching for Cerebras zai-glm-4.7 model (#10670)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-20 13:40:39 -08:00
Chris Estreich
04256be956
Git worktree management (#10458)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-20 13:39:24 -08:00
roomote[bot]
ead1658441
Fix broken link on pricing page (#10847)
* fix: update broken pricing link to /models page

* Update apps/web-roo-code/src/app/pricing/page.tsx

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
2026-01-20 18:03:51 +00:00
Hannes Rudolph
06039400cd
perf(webview): avoid resending taskHistory in state updates (#10842)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-19 21:22:32 -07:00
Hannes Rudolph
1a1827d806
feat(openai-codex): add ChatGPT subscription usage limits dashboard (#10813) 2026-01-19 11:55:40 -07:00
roomote[bot]
0f08867656
refactor: unify user content tags to <user_message> (#10723)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-18 22:04:00 -05:00
Chris Estreich
ea62173792
fix(cli): fix quiet mode tests by capturing console before host creation (#10827) 2026-01-18 10:07:49 -08:00
Chris Estreich
4093bff3ae
fix(cli): set integrationTest to true in ExtensionHost constructor (#10826) 2026-01-18 09:32:10 -08:00
Chris Estreich
fdf32bd55e
chore(cli): prepare release v0.0.49 (#10825) 2026-01-18 09:23:16 -08:00
Chris Estreich
6cc2a4c30e
Support different cli output formats: text, json, streaming json (#10812)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-18 09:19:08 -08:00
roomote[bot]
a148862a06
feat: warn users when too many MCP tools are enabled (#10772)
* feat: warn users when too many MCP tools are enabled

- Add WarningRow component for displaying generic warnings with icon, title, message, and optional docs link
- Add TooManyToolsWarning component that shows when users have more than 40 MCP tools enabled
- Add MAX_MCP_TOOLS_THRESHOLD constant (40)
- Add i18n translations for the warning message
- Integrate warning into ChatView to display after task header
- Add comprehensive tests for both components

Closes ROO-542

* Moves constant to the right place

* Move it to the backend

* i18n

* Add actionlink that takes you to MCP settings in this case

* Add to MCP settings too

* Bump max tools up to 60 since github itself has 50+

* DRY

* Fix test

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-18 09:22:09 -05:00
github-actions[bot]
719e6cb35b
Changeset version bump (#10823)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-18 08:05:06 -05:00
Seb Duerr
1e104e1eb0
Removal of glm4 6 (#10815)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-18 08:02:19 -05:00
Matt Rubens
695ba468ff
chore: add changeset for v3.41.3 (#10822) 2026-01-18 08:01:31 -05:00
roomote[bot]
802b40a790
Fix thinking block word-breaking to prevent horizontal scroll (#10806)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-17 12:15:27 -05:00
Chris Estreich
6608ed618a
chore(cli): prepare release v0.0.48 (#10800) 2026-01-16 23:29:54 -08:00
Chris Estreich
98d35f7cfc
Use a redirect instead of a fetch for cli auth (#10799) 2026-01-16 23:26:04 -08:00
Chris Estreich
f6c77c1643
Release cli v0.0.47 (#10798) 2026-01-16 23:02:17 -08:00
Chris Estreich
8fa2c1d598
Claude-like cli flags, auth fixes (#10797)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 22:54:24 -08:00
Chris Estreich
87a5afa629
Revert "feat(e2e): Enable E2E tests - 39 passing tests" (#10794)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-16 17:22:43 -08:00
Chris Estreich
f58b908293
Roo Code Router fixes for the cli (#10789)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-16 17:16:44 -08:00
github-actions[bot]
c1f7099698
Changeset version bump (#10790)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-16 18:03:24 -05:00
Matt Rubens
cad0320315
Release v3.41.2 (#10788) 2026-01-16 17:58:04 -05:00
Daniel
95be704ebf
fix(litellm): detect Gemini models with space-separated names for thought signature injection (#10787) 2026-01-16 17:43:51 -05:00
roomote[bot]
c40c882561
fix: add openai-codex to providers that don't require API key (#10786)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 17:13:50 -05:00
Hannes Rudolph
9533f0be3c
fix(openai-codex): reset invalid model selection (#10777) 2026-01-16 14:55:01 -07:00
Bruno Bergher
9bf7173725
feat: add button to open markdown in VSCode preview (#10773)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 10:56:19 -05:00
github-actions[bot]
8b9f02aa0d
Changeset version bump (#10768)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-16 00:48:45 -05:00
Matt Rubens
7e3fcd7212
Release v3.41.1 (#10767) 2026-01-16 00:44:43 -05:00
Daniel
ddac338fdd
fix: Gemini thought signature validation errors (#10694)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-15 23:25:42 -05:00
Daniel
e34d93e2cb
fix: truncate call_id to 64 chars for OpenAI Responses API (#10763) 2026-01-15 23:09:54 -05:00
Daniel
bbb6a6e4b4
fix: prevent duplicate tool_use IDs causing API 400 errors (#10760) 2026-01-15 23:08:21 -05:00
Daniel
df42655fc9
fix: flatten top-level anyOf/oneOf/allOf in MCP tool schemas (#10726) 2026-01-15 23:05:00 -05:00
Daniel
3a884ee01e
fix: filter out empty text blocks from user messages for Gemini compatibility (#10728) 2026-01-15 23:03:16 -05:00
Daniel
bbf3196837
fix: filter Ollama models without native tool support (#10735) 2026-01-15 23:01:25 -05:00
roomote[bot]
245e0f66c6
feat: add settings tab titles to search index (#10761)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-15 22:59:40 -05:00
T
f48ea389df
Feat/issue 5376 aggregate subtask costs (#10757) 2026-01-15 16:44:55 -05:00
Hannes Rudolph
f2b16d400d
fix: handle missing tool identity in OpenAI Native streams (#10719) 2026-01-15 11:42:34 -07:00
Matt Rubens
4ee494b08c
Release: v1.106.0 (#10749) 2026-01-15 01:44:14 -05:00
roomote[bot]
724571c7bd
feat: clarify Slack and Linear are Cloud Team only features (#10748)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-15 01:16:30 -05:00
github-actions[bot]
5183be22a4
Changeset version bump (#10747)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-15 00:44:59 -05:00
Matt Rubens
afc588b8d3
Release v3.41.0 (#10746) 2026-01-15 00:39:13 -05:00
Archimedes
dba76f51e7
fix(e2e): add alwaysAllow config for MCP time server tools (#10733) 2026-01-14 23:50:17 -05:00
Daniel
d7b7e17a21
fix(litellm): inject dummy thought signatures on ALL tool calls for Gemini (#10743) 2026-01-14 23:49:22 -05:00
Hannes Rudolph
4ebbca08b0
feat: add OpenAI Codex provider with OAuth subscription authentication (#10736)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-14 23:48:51 -05:00
Hannes Rudolph
739b91ec40
Clear terminal output buffers to prevent memory leaks (#7666) 2026-01-14 21:24:14 -07:00
Archimedes
dbf206f06b
feat(e2e): Enable E2E tests - 39 passing tests (#10720)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-14 12:15:54 -08:00
Hannes Rudolph
b04597faa6
feat(providers): add gpt-5.2-codex model to openai-native provider (#10731) 2026-01-14 13:02:56 -07:00
Matt Rubens
4b17f985b4
Release: v1.105.0 (#10722) 2026-01-14 10:01:05 -05:00
github-actions[bot]
d689de34f8
Changeset version bump (#10714)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-14 00:00:52 -05:00
Matt Rubens
8fdd96be3c
Release v3.40.1 (#10713) 2026-01-13 23:55:39 -05:00
Hannes Rudolph
9b1c8500d9
feat(gemini): add allowedFunctionNames support to prevent mode switch errors (#10708)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-13 23:49:57 -05:00
github-actions[bot]
d74bad9121
Changeset version bump (#10706)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-13 18:35:32 -05:00
Matt Rubens
fdc6104031
chore: add changeset for v3.40.0 (#10705) 2026-01-13 18:24:15 -05:00
Daniel
440924ad62
fix: clear approval buttons when API request starts (ROO-526) (#10702) 2026-01-13 18:15:04 -05:00
Bruno Bergher
83037104c6
ux: improve stop button visibility and streamline error handling (#10696)
* Restores the send button in the message edit mode

* Makes the stop button more prominent
2026-01-13 18:14:08 +00:00
Bruno Bergher
749026a44b
ux: Further improve error display (#10692)
* Ensures error details are shown for all errors (except diff, which has its own case)

* More details

* litellm is a proxy
2026-01-13 15:43:51 +00:00
Daniel
78821a3951
fix: use placeholder for empty tool result content to fix Gemini API validation (#10672) 2026-01-13 01:39:25 -05:00
Daniel
2d4dba0286
fix: omit parallel_tool_calls when not explicitly enabled (COM-406) (#10671) 2026-01-13 01:37:41 -05:00
Bruno Bergher
a12163d762
ux: Standard stop button 🟥 (#10639)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-13 01:25:17 -05:00
Daniel
b514996208
fix(path): return empty string from getReadablePath when path is empty - ROO-437 (#10638) 2026-01-12 18:49:37 -05:00
Daniel
621d9500de
fix: sanitize tool_use IDs to match API validation pattern (#10649) 2026-01-12 18:04:58 -05:00
Patrick Decat
a682908a25
fix: encode hyphens in MCP tool names before sanitization (#10644) 2026-01-12 17:06:40 -05:00
Daniel
f439496147
fix: correct Gemini 3 thought signature injection format via OpenRouter (#10640) 2026-01-12 17:05:00 -05:00
Archimedes
55b732485b
perf: optimize message block cloning in presentAssistantMessage (#10616) 2026-01-12 10:22:50 -08:00
Daniel
4c2d1f0c68
feat: display edit_file errors in UI after consecutive failures (#10581) 2026-01-12 10:35:43 -05:00
Bruno Bergher
e23e1ecc94
ux: UI improvements to search settings (#10633)
* UI changs

* Update webview-ui/src/components/marketplace/MarketplaceView.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* i18n

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-12 06:59:49 -05:00
Matt Rubens
632b86cfbe
Basic settings search (#10619)
* Prototype of a simpler searchable settings

* Fix tests

* UI improvements

* Input tweaks

* Update webview-ui/src/components/settings/SettingsSearch.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* fix: remove duplicate Escape key handler dead code

* Cleanup

* Fix tests

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-11 14:57:41 -05:00
github-actions[bot]
611bb70166
Changeset version bump (#10609)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-10 13:35:16 -05:00
Matt Rubens
f1bbd29bda
Update router name in types (#10610) 2026-01-10 13:34:25 -05:00
Matt Rubens
9c91fb3304
chore: add changeset for v3.39.3 (#10608) 2026-01-10 13:20:44 -05:00
Matt Rubens
352616a6de
Update Roo Code Router service name (#10607) 2026-01-10 13:14:42 -05:00
Matt Rubens
fa5fe75b3b
Update router name in types (#10605) 2026-01-10 12:52:41 -05:00
Matt Rubens
f99d116ec7
chore: bump version to v1.102.0 (#10604) 2026-01-10 11:41:09 -05:00
roomote[bot]
75d895845e
Rename Roo Code Cloud Provider to Roo Code Router (#10560)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-10 11:32:21 -05:00
Chris Estreich
a33117a83f
Some cleanup in ExtensionHost (#10600)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-10 02:29:33 -08:00
Chris Estreich
fc21101a99
More file organization for the cli (#10599) 2026-01-09 23:22:51 -08:00
Chris Estreich
e8ed344b0f
Allow the cli release script to install locally for testing (#10597) 2026-01-09 20:40:46 -08:00
Chris Estreich
ea9717d7ba
Add a TUI (#10480)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2026-01-09 19:19:58 -08:00
github-actions[bot]
1e62b5ddf1
Changeset version bump (#10596)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-09 21:49:20 -05:00
Matt Rubens
658da2c029
Release v3.39.2 (#10595) 2026-01-09 21:29:03 -05:00
Hannes Rudolph
5a82c334ae
chore: disable edit_file tool for Gemini/Vertex (#10594) 2026-01-09 21:24:15 -05:00
roomote[bot]
d97e540ac6
fix(cerebras): ensure all tools have consistent strict mode values (#10589)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-09 18:50:16 -07:00
Hannes Rudolph
84789445cd
chore(gemini): stop overriding tool allow/deny lists (#10592) 2026-01-09 18:47:35 -07:00
Hannes Rudolph
e39abbffa1
fix: make edit_file matching more resilient (#10585) 2026-01-09 20:32:13 -05:00
Hannes Rudolph
168cfcaba5
fix: round-trip Gemini thought signatures for tool calls (#10590) 2026-01-09 20:03:58 -05:00
Hannes Rudolph
108f78db6c
feat: add debug setting to settings page (#10580)
* feat: add debug mode toggle to settings

* Update About component with debug mode description

* i18n: add debug mode strings to settings locales

* Update debug mode description in all locales

* fix: post state to webview after debugSetting update

This addresses the review feedback that the debugSetting handler was not
posting updated state back to the webview, which could cause the UI to
stay stale until another state refresh occurred.

* fix: clarify debug mode description to specify task header location

Updated debugMode.description across all 18 locales to clarify that
debug buttons appear in the task header, per review feedback.

* fix: remove redundant postStateToWebview call after debug setting update

* Update src/core/webview/webviewMessageHandler.ts

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-09 18:06:02 -05:00
Chris Estreich
237fa89b7e
Add some slash commands that are useful for cli development (#10586) 2026-01-09 13:12:22 -08:00
Chris Estreich
a4eb15b5a8
Add some functionality to @roo-code/core for the cli (#10584) 2026-01-09 13:05:15 -08:00
Chris Estreich
3171ffc809
Move more types to @roo-code/types (for the cli) (#10583) 2026-01-09 11:59:06 -08:00
Daniel
907b94bc40
fix(openai): remove convertToSimpleMessages to fix tool calling for OpenAI-compatible providers (#10575) 2026-01-09 12:03:46 -05:00
Daniel
b7bd859473
feat: improve error messaging for stream termination errors from provider (#10548) 2026-01-09 10:03:12 -05:00
Daniel
7b771a209e
fix: merge approval feedback into tool result instead of pushing duplicate (ROO-410) (#10519) 2026-01-09 10:01:52 -05:00
Daniel
ade10e275f
fix(vscode-lm): order text parts before tool calls in assistant messages (#10573) 2026-01-09 10:01:26 -05:00
Matt Rubens
2ff08b5e5c
Update Terms of Service (effective January 9, 2026) (#10568)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-09 02:03:58 -05:00
Daniel
9ac449919e
fix: ensure assistant message content is never undefined for Gemini compatibility (#10559) 2026-01-08 20:32:30 -05:00
Matt Rubens
caa37792ca
chore(cli): change default model to anthropic/claude-opus-4.5 (#10544) 2026-01-08 18:01:15 -05:00
github-actions[bot]
eb7d8f4f2c
Changeset version bump (#10558)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-08 17:49:25 -05:00
Matt Rubens
58b04417b7
Release v3.39.1 (#10557) 2026-01-08 17:45:49 -05:00
Daniel
ef4b95060b
fix: stabilize file paths during native tool call streaming (#10555) 2026-01-08 17:38:58 -05:00
Daniel
e3c0cd64dc
fix: disable Gemini thought signature persistence to prevent corrupted signature errors (#10554) 2026-01-08 17:36:45 -05:00
Daniel
1d9f7f2aa6
fix: change minItems from 2 to 1 for Anthropic API compatibility (#10551) 2026-01-08 15:30:24 -05:00
Matt Rubens
93bccfe9a0
Update changelog for version 3.39.0 release 2026-01-08 12:11:22 -05:00
github-actions[bot]
2cd4c2e2d5
Changeset version bump (#10546)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-08 09:54:01 -05:00
Matt Rubens
9ddbc9b00d
fix: add @roo-code/cli to changeset ignore list (#10545) 2026-01-08 09:39:21 -05:00
roomote[bot]
a10b450380
feat: Change "Get Started" button label to "Create Roo Account" (#10543)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-08 09:29:44 -05:00
Matt Rubens
f84beade7a
Release v3.39.0 (#10537) 2026-01-08 01:52:53 -05:00
Danny Ricciotti
b2941d54df
🐛 Fix glitchy kangaroo bounce animation on welcome screen (#10035)
The kangaroo logo on the welcome screen had a visual glitch where it would instantly jump to the top position when hovering, instead of smoothly starting the bounce from its resting position.

Changes:
- Added custom smooth-bounce keyframe animation in index.css that explicitly starts from translateY(0)
- Updated RooHero component to use hover state tracking with the new animation
- Removed Tailwind's animate-bounce class which was causing the glitch

The animation now smoothly bounces from the resting position without any jarring visual jumps.
2026-01-07 22:34:17 -05:00
Seb Duerr
710e7dd358
feat(types): add zai-glm-4.7 to Cerebras models (#10500)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-07 19:29:54 -07:00
roomote[bot]
1573edf295
fix: make command chaining examples shell-aware for Windows compatibility (#10434)
* fix: make command chaining examples shell-aware for Windows compatibility

Addresses Issue #10352 where Roo Code generates Unix-style command
chaining (&&) even on Windows systems using PowerShell or cmd.exe.

Changes:
- Add getCommandChainOperator() to detect the user shell and return
  the appropriate command chaining syntax:
  - Unix shells (bash, zsh, etc.): &&
  - PowerShell: ;
  - cmd.exe: &
- Update getRulesSection() to use shell-specific chaining in examples
- Add informative note for non-Unix shells about different syntaxes
- Add comprehensive tests for shell detection and command chaining

* feat: add Unix utility guidance for Windows shells

Addresses feedback from issue #10352 about sed and other Unix-specific
utilities being suggested on Windows. The system prompt now includes
guidance for PowerShell and cmd.exe users to use native alternatives:

PowerShell:
- Select-String instead of grep
- Get-Content instead of cat
- Remove-Item instead of rm
- Copy-Item instead of cp
- Move-Item instead of mv
- -replace operator or [regex] instead of sed

cmd.exe:
- type instead of cat
- del instead of rm
- copy instead of cp
- move instead of mv
- find/findstr instead of grep

* Apply suggestion from @roomote[bot]

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* fix: use && for cmd.exe to preserve conditional execution semantics

- Update getCommandChainOperator() to return && for cmd.exe (already done)
- Update getCommandChainNote() to document && instead of & for cmd.exe
- Update JSDoc to reflect cmd.exe uses && for conditional execution
- Update tests to expect && for cmd.exe

cmd.exe supports && for conditional execution (run next command only if
previous succeeds), which provides the same semantics as Unix shells.

* fix: update PowerShell note to use && for cmd.exe reference

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-07 20:57:08 -05:00
roomote[bot]
ca0c9010d5
fix: use task stored API config as fallback for rate limit (#10266)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 17:21:08 -07:00
roomote[bot]
75525817ec
feat: filter @ mention file search results using .rooignore (#10174)
* feat: filter @ mention file search results using .rooignore

- Modify searchFiles case in webviewMessageHandler.ts to filter results using RooIgnoreController
- Use existing RooIgnoreController from current task if available, otherwise create a temporary one
- Respect showRooIgnoredFiles setting to allow users to toggle this behavior
- Add comprehensive test coverage for the new filtering behavior

Fixes #10169

* fix: dispose temporary RooIgnoreController to prevent resource leak

Addresses Rooviewer feedback: the temporary RooIgnoreController created
when no task exists was never disposed, causing file watchers to accumulate.

Changes:
- Track temporary controller separately with tempController variable
- Wrap filtering logic in try/finally block
- Call dispose() in finally block to ensure cleanup
- Add test cases to verify dispose is called for temp controllers
- Verify task's controller is NOT disposed (only temp ones)

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-07 18:37:32 -05:00
roomote[bot]
e3b90fb182
feat: add xhigh reasoning effort to OpenAI compatible endpoints (#10061)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 14:32:30 -07:00
roomote[bot]
d7d3f4099b
fix: handle PowerShell ENOENT error in os-name on Windows (#9897)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 13:07:25 -05:00
Hannes Rudolph
43f7ce025f
feat: add support for image file @mentions (#10189)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 11:44:04 -05:00
roomote[bot]
e287a82144
fix: remove legacy Claude 2 series models from Bedrock provider (#10501)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 11:30:37 -05:00
Hannes Rudolph
9700eab792
feat: implement sticky provider profile for task-level API config persistence (#10018) 2026-01-07 09:03:44 -07:00
roomote[bot]
7bbdcdf5d0
feat: rename YOLO to BRRR (#10507)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 10:03:37 -05:00
Hannes Rudolph
41c5ff6076
feat(web-evals): remember last Roo model selection + add evals skill (#10470)
* feat(web-evals): remember last Roo model selection

* fix(web-evals): reset model selections on provider switch and fix lint warning

- Add useEffect to reset model selections when switching between providers
  This prevents OpenRouter model IDs from persisting when switching to Roo,
  which was causing Roo's stored selection to be overwritten with wrong IDs

- Remove unused 'executionMethod' from onSubmit dependency array to fix
  react-hooks/exhaustive-deps warning

* fix(web-evals): add missing executionMethod to test cases

* fix(web-evals): harden localStorage + keep provider selections
2026-01-07 08:00:34 -07:00
Matt Rubens
2d22804d4a
Tweak the style of the follow up suggestion modes (#9260) 2026-01-07 00:35:28 -05:00
roomote[bot]
7f2978abad
fix: add missing description fields for debugProxy configuration (#10505)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-06 20:46:53 -05:00
roomote[bot]
781ed1e178
feat: add Kimi K2 thinking model to Fireworks AI provider (#9202)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-06 20:31:56 -05:00
Daniel
741b2680b5
fix: prevent duplicate tool_result blocks causing API errors (#10497) 2026-01-06 18:27:27 -05:00
Hannes Rudolph
503f40241d
feat(proxy): add debug-mode proxy routing (#10467) 2026-01-06 13:17:50 -07:00
Chris Estreich
861139ca24
Add a cli installer (#10474)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2026-01-06 03:27:44 -08:00
Daniel
6b13d1d84e
fix: add additionalProperties: false to MCP tool schemas for OpenAI Responses API (#10472) 2026-01-06 00:26:17 -05:00
Daniel
6f0948137f
fix: preserve tool_use blocks for all tool_results in kept messages during condensation (#10471) 2026-01-06 00:22:33 -05:00
Chris Estreich
424bce6078
Add an option to use our cli for evals (#10456)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-05 11:33:19 -08:00
Chris Estreich
b11d53adf4
VSCode shim + basic cli (#10452)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-05 10:24:05 -08:00
roomote[bot]
f2276bebc4
fix: add explicit deduplication for duplicate tool_result blocks (#10466)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-05 11:24:07 -05:00
roomote[bot]
cbc0ae4726
feat: add image support documentation to read_file native tool description (#10442)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-05 09:43:28 -05:00
github-actions[bot]
d23824dba5
Changeset version bump (#10451)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-03 19:23:17 -05:00
Matt Rubens
b4302c708f
chore: add changeset for v3.38.3 (#10450) 2026-01-03 19:19:37 -05:00
roomote[bot]
c307dc7756
fix: add maxConcurrentFileReads limit to native read_file tool schema (#10449)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-03 19:08:37 -05:00
Matt Rubens
1459f0113b
Release: v1.99.0 (#10447) 2026-01-03 15:12:51 -05:00
Matt Rubens
08c3431fc5
feat: recursively load .roo/rules and AGENTS.md from subdirectories (#10446)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-03 15:05:48 -05:00
roomote[bot]
586cf47fb2
fix: add type check for lastMessage.text in TTS useEffect (#10431)
fix: add type check for lastMessage.text before calling startsWith

Fixes #10430

The TTS useEffect was calling .startsWith() on lastMessage.text after only
checking if it was truthy. If text was a non-string truthy value (array,
object, or number), this would crash with "Q.text.startsWith is not a function".

Changed the truthy check to an explicit type check: typeof lastMessage.text === "string"

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-01 15:11:15 -08:00
Hannes Rudolph
3074ccc278
fix(claude-code): stop frequent sign-ins by hardening OAuth refresh (#10410)
* fix(claude-code): prevent sign-outs on oauth refresh

* test(claude-code): restore fetch after mocking

* refactor(claude-code): replace while(true) with bounded for loop for clarity

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-01 07:52:01 -08:00
github-actions[bot]
2068531801
Changeset version bump (#10417)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-31 00:21:30 -08:00
Matt Rubens
1179662674
Release v3.38.2 (#10416) 2025-12-31 00:17:23 -08:00
Matt Rubens
dea33f978c
fix: prevent write_to_file from creating files at truncated paths (#10415)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-31 00:12:24 -08:00
Hannes Rudolph
ca1bc18a21
Fix rate limit wait display (#10389)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-30 21:56:32 -08:00
Hannes Rudolph
c37aa02b21
chore: remove human-relay provider (#10388)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-30 15:38:46 -07:00
Hannes Rudolph
ed13921732
feat(skills): align with Agent Skills spec (#10409) 2025-12-30 15:35:12 -07:00
John Richmond
6d8fa39319
Release: v1.96.0 (#10395)
chore: bump version to v1.96.0
2025-12-29 20:58:43 -08:00
SannidhyaSah
0e9a765662
docs: Replace Todo Lists video with Context Management video (#10375)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2025-12-29 20:34:06 -08:00
Seb Duerr
19b7dac719
fix: update Cerebras maxTokens to 16384 (#10387) 2025-12-29 19:56:59 -08:00
github-actions[bot]
c193f59819
Changeset version bump (#10385)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-29 15:51:38 -08:00
Matt Rubens
958705a71c
chore: add changeset for v3.38.1 (#10384) 2025-12-29 15:47:01 -08:00
Daniel
ca8fd5c867
fix: flush pending tool results before condensing context (#10379) 2025-12-29 15:43:02 -08:00
Hannes Rudolph
6ba793137d
Revert "feat: enable mergeToolResultText for all OpenAI-compatible providers (#10299)" (#10381) 2025-12-29 16:07:24 -07:00
roomote[bot]
e851b9355e
fix: correct GitHub repository URL in marketing page (#10377)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-29 10:11:28 -08:00
John Richmond
a42387e0af
Handle custom tool use similarly to MCP tools for ipc schema purposes (#10364) 2025-12-29 08:58:41 -08:00
roomote[bot]
a18c9b7a56
Improve error message when read_file is used on directory (#10371)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-28 21:57:41 -08:00
roomote[bot]
add06a2e7b
docs: clarify path to Security Settings in privacy policy (#10367)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-28 18:19:03 +01:00
roomote[bot]
7980cd39f6
fix: enforce maxConcurrentFileReads limit in read_file tool (#10363)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-27 15:47:07 -08:00
github-actions[bot]
ba1dd3c723
Changeset version bump (#10362)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-27 12:25:42 -08:00
Matt Rubens
5c5ddd37e8
Release v3.38.0 (#10361) 2025-12-27 12:19:48 -08:00
Matt Rubens
25f76ce25e
Revert "fix: capture extended thinking signatures for tool use continuations" (#10360) 2025-12-27 11:44:46 -08:00
Matt Rubens
c61dd7ad31
Remove the mergeToolResultText in the Roo provider for now (#10359) 2025-12-27 11:28:29 -08:00
roomote[bot]
13370a2ad1
feat: add optional mode field to slash command front matter (#10344)
* feat: add optional mode field to slash command front matter

- Add mode field to Command interface
- Update command parsing to extract mode from frontmatter
- Modify RunSlashCommandTool to automatically switch mode when specified
- Add comprehensive tests for mode field parsing and switching
- Update existing tests to include mode field

* Make it work for manual slash commands too

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-26 17:17:54 -08:00
Daniel
2eebf3c2c4
fix: capture extended thinking signatures for tool use continuations (#10351) 2025-12-26 17:11:03 -05:00
Chris Estreich
0d50ed649f
Add support for npm packages and .env files to custom tools (#10336)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-26 09:43:35 -08:00
Matt Rubens
343d5e9dcb
Add support for skills (#10335)
* Add support for skills

* fix: use type-only import for ClineProvider and relative paths in skills section

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-25 20:28:41 -08:00
roomote[bot]
a510223a09
feat: remove simpleReadFileTool completely (#10254)
- Delete simpleReadFileTool.ts file
- Delete simple-read-file.ts prompt description file
- Delete single-file-read-models.ts types file
- Remove imports and usage from presentAssistantMessage.ts
- Remove imports and usage from prompts/tools/index.ts
- Remove export from packages/types/src/index.ts

This removes all traces of the legacy single-file read tool implementation that was used for specific models. All models now use the standard read_file tool.

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-25 09:57:46 -08:00
roomote[bot]
a07d28c7e6
feat: remove OpenRouter Transforms feature (#10341)
- Remove openRouterUseMiddleOutTransform checkbox from settings UI
- Remove openRouterUseMiddleOutTransform from TypeScript types
- Remove transforms parameter logic from OpenRouter handler
- Remove setting from EVALS_SETTINGS
- Remove translation keys from all locale files (18 locales)

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-25 09:53:48 -08:00
github-actions[bot]
1e71015e54
Changeset version bump (#10317)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-23 15:13:13 -08:00
Matt Rubens
5c7939becd
chore: add changeset for v3.37.1 (#10316) 2025-12-23 15:09:27 -08:00
Bruno Bergher
57cafa535a
ux: Provider-centric signup (#10306)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-23 14:59:29 -08:00
Hannes Rudolph
6afc59b928
fix(openai): send native tool definitions by default (#10314)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-23 15:57:18 -07:00
Hannes Rudolph
dfa7c357c2
fix(task): drain queued messages while waiting for ask (#10315) 2025-12-23 15:40:41 -07:00
Hannes Rudolph
53e1ff0058
fix: preserve reasoning_details shape to prevent malformed responses (#10313) 2025-12-23 14:58:35 -07:00
Hannes Rudolph
ded6486a46
feat: enable mergeToolResultText for all OpenAI-compatible providers (#10299) 2025-12-23 14:19:33 -07:00
Hannes Rudolph
9b99890c35
feat(prompts): strengthen native tool-use guidance (#10311) 2025-12-23 14:13:40 -07:00
John Richmond
40812dcb64
Release: v1.95.0 (#10309)
chore: bump version to v1.95.0
2025-12-23 10:21:55 -08:00
Hannes Rudolph
0f3df0e932
feat: add grace retry for empty assistant messages (#10297)
Implements grace retry error handling for 'no assistant messages' API
errors, following the same pattern as PR #10196 for 'no tools used'.

- Add consecutiveNoAssistantMessagesCount counter to Task.ts
- First failure: silent retry (grace retry)
- After 2+ consecutive failures: show MODEL_NO_ASSISTANT_MESSAGES error
- Add UI handling in ChatRow.tsx with ErrorRow component
- Add localized strings to all 18 locale files
- Add comprehensive tests for the grace retry behavior
2025-12-23 07:02:40 -08:00
Hannes Rudolph
71f312b488
feat: enable mergeToolResultText for Roo Code Cloud provider (#10301) 2025-12-23 00:57:55 -07:00
github-actions[bot]
30090de2e9
Changeset version bump (#10296)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-22 21:06:54 -08:00
Matt Rubens
dd44f8fb8c
Release v3.37.0 (#10295)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-22 21:03:15 -08:00
Hannes Rudolph
89e9261367
fix: preserve reasoning_content in condense summary for DeepSeek-reasoner (#10292) 2025-12-22 21:25:17 -07:00
Hannes Rudolph
a8ac2ced02
fix: emit tool_call_end events in BaseOpenAiCompatibleProvider (#10293) 2025-12-22 21:25:07 -07:00
Hannes Rudolph
eeaf33ce4e
refactor(zai): merge environment_details into tool result instead of system message (#10289) 2025-12-22 20:20:29 -07:00
Hannes Rudolph
f21ec127b1
fix: add CRLF line ending normalization to search_replace and search_and_replace tools (#10288)
- Normalize file content to LF after reading to ensure consistent matching
- Normalize search/replace strings to handle CRLF from model output
- Add comprehensive CRLF normalization tests for both tools
- Consistent with existing edit_file tool behavior
2025-12-22 19:19:24 -08:00
Hannes Rudolph
e7c1851a8b
feat(minimax): move environment_details to system message for thinking models (#10284) 2025-12-22 19:59:42 -07:00
Hannes Rudolph
bd78a63844
feat(evals): add message log deduper utility (#10286) 2025-12-22 19:42:38 -07:00
Hannes Rudolph
44a7ba5072
fix: improve reasoning_details accumulation and serialization (#10285) 2025-12-22 19:33:02 -07:00
Hannes Rudolph
518a4402a7
feat(zai): add GLM-4.7 model with thinking mode support (#10282)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 18:01:16 -08:00
Daniel
d00d9edec5
feat: deprecate XML tool protocol selection, force native for new tasks (#10281)
- Disable tool protocol selector UI in ApiOptions.tsx
- Force native protocol for all new tasks in resolveToolProtocol()
- Keep locked protocol support for resumed tasks that used XML
- Remove models without supportsNativeTools: true from providers:
  - baseten.ts: removed 6 models
  - bedrock.ts: removed 2 embedding models
  - featherless.ts: removed 3 models, updated default
  - groq.ts: removed 5 models
  - sambanova.ts: removed 2 models
  - vertex.ts: removed 7 models
  - vercel-ai-gateway.ts: added supportsNativeTools: true
- Update tests to expect native format output
2025-12-22 17:49:50 -08:00
Daniel
9b06a98b85
fix: emit tool_call_end events in OpenAI handler when streaming ends (#10280) 2025-12-22 17:00:58 -05:00
Hannes Rudolph
f462eeb80c
fix(chutes): add graceful fallback for model parsing (#10279)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-22 12:59:13 -07:00
Daniel
7fae76ec86
fix: move array-specific properties into anyOf variant in normalizeToolSchema (#10276)
* fix: move array-specific properties into anyOf variant in normalizeToolSchema

Fixes read_file tool schema rejection with GPT-5-mini which requires
items property to be inside the { type: 'array' } variant when using
anyOf for nullable arrays.

Resolves ROO-262

* refactor: extract array-specific properties constant and helper function
2025-12-22 11:01:43 -08:00
Daniel
6b141fbb25
fix: disable strict mode for MCP tools to preserve optional parameters (#10220)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 13:21:31 -05:00
Daniel
529e0d7a94
fix: enable Requesty refresh models with credentials (#10273) 2025-12-22 12:43:42 -05:00
roomote[bot]
e3cd031f17
feat: remove parallel_tool_calls parameter from litellm provider (#10274)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 09:11:47 -08:00
roomote[bot]
a148b0b7f3
feat: add Cloud Team page with comprehensive team features (#10267)
* feat: add Cloud Team page with features and pricing integration

* Copy tweaks

* Visual tweaks

* Content adjustments

* Update apps/web-roo-code/src/app/cloud/team/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-22 16:52:00 +00:00
Hannes Rudolph
08eed65aff
fix(evals): add missing packages/core to Dockerfile.runner (#10272) 2025-12-22 08:42:49 -08:00
Chris Estreich
2bb375534c
Add custom tool definitions to @roo-code/types (#10233)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-21 15:15:42 -08:00
Chris Estreich
3beeac6f58
Remove the "test" custom tools (#10255)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-21 14:19:25 -08:00
Chris Estreich
5ae4d4d635
Custom tool calling (#10083) 2025-12-21 12:43:06 -08:00
github-actions[bot]
78dc34498b
Changeset version bump (#10225)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-19 22:58:47 -05:00
Matt Rubens
d2814da574
Release v3.36.16 (#10224) 2025-12-19 22:54:57 -05:00
Hannes Rudolph
5c798a9877
fix: normalize tool schemas for VS Code LM API to fix error 400 (#10221) 2025-12-19 17:36:59 -07:00
github-actions[bot]
f7adc4b1cf
Changeset version bump (#10219)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-19 12:41:05 -08:00
Chris Estreich
ccbb25d62b
Release v3.36.15 (#10218) 2025-12-19 12:34:19 -08:00
Daniel
bade9326c6
fix: enable native tool calls for Requesty provider (ROO-235) (#10211) 2025-12-19 12:28:26 -08:00
Daniel
aabee0fb0b
fix: force additionalProperties false for strict mode compatibility (#10210) 2025-12-19 12:18:38 -08:00
Hannes Rudolph
397328cb53
feat: merge native tool defaults for openai-compatible provider (#10213) 2025-12-19 12:18:10 -08:00
Bruno Bergher
bb358fb8f9
ux: add downloadable error diagnostics from chat errors (#10188)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-19 11:50:40 -08:00
Bruno Bergher
6e2b85214e
ux: improve API error handling and visibility (#10204)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-12-19 11:38:56 -08:00
Hannes Rudolph
61903f9588
feat(providers): add native tool calling support to LM Studio and Qwen-Code (#10208) 2025-12-19 12:50:09 -05:00
Hannes Rudolph
3f1f8be2d1
feat(vertex): add 1M context window beta support for Claude Sonnet 4 (#10209) 2025-12-19 12:24:45 -05:00
Patrick Decat
2dec78ccb4
fix: refresh models button not flushing cache properly (#9870) 2025-12-19 12:03:50 -05:00
github-actions[bot]
3c05cae722
Changeset version bump (#10201)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 18:52:16 -08:00
Chris Estreich
4b9d9b7c09
Release v3.36.14 (#10200) 2025-12-18 17:48:44 -08:00
Daniel
c3a4d14b6b
fix: strip unsupported JSON Schema format values for OpenAI compatibility (#10198) 2025-12-18 16:57:06 -08:00
Hannes Rudolph
9c03476a0f
feat(vertex): add native tool calling for Claude models on Vertex AI (#10197)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-12-18 16:09:55 -08:00
Hannes Rudolph
e2d1599f9c
feat: improve 'no tools used' error handling with grace retry (#10196)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-18 15:29:01 -07:00
github-actions[bot]
b37b231dfc
Changeset version bump (#10195)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 13:11:30 -08:00
Chris Estreich
7789b40000
Release v3.36.13 (#10194) 2025-12-18 13:07:38 -08:00
Daniel
3a2ad6b0e1
feat(telemetry): add PostHog exception tracking for consecutive mistake errors (#10193) 2025-12-18 12:59:37 -08:00
Daniel
3e0d9c65e8
feat: lock task tool protocol for consistent task resumption (#10192)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-18 11:54:26 -08:00
Hannes Rudolph
8251170b84
feat: Replace edit_file tool alias with edit_file tool (#9983) 2025-12-18 12:48:30 -07:00
Daniel
157a097032
feat(vscode-lm): add native tool support (#10191) 2025-12-18 11:25:54 -08:00
Chris Estreich
e84e3346dd
Release: v1.93.0 (#10190) 2025-12-18 10:30:31 -08:00
Daniel
d92d729219
fix(litellm): merge default model info with router models for NTC support (#10187)
* feat(types): add defaultToolProtocol: native to providers

- Added supportsNativeTools: true and defaultToolProtocol: native to all chutes models
- Added defaultToolProtocol: native to moonshot models (already had supportsNativeTools)
- Added defaultToolProtocol: native to litellm default model (already had supportsNativeTools)
- Added defaultToolProtocol: native to minimax models (already had supportsNativeTools)

This enables native tool calling by default for these providers, reducing
the number of users falling back to XML tool protocol unnecessarily.

* fix(litellm): merge only native tool defaults with router models

Only merges supportsNativeTools and defaultToolProtocol from litellmDefaultModelInfo,
not prices or other model-specific info that could be incorrect for different models.
2025-12-18 11:46:45 -05:00
Matt Rubens
3cb2c1de66
Revert "Revert "feat: change defaultToolProtocol default from xml to native"" (#10186)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-18 10:31:33 -05:00
github-actions[bot]
d3768690be
Changeset version bump (#10182)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-18 01:15:07 -08:00
Chris Estreich
17b1680e38
Release v3.36.12 (#10181) 2025-12-18 01:08:19 -08:00
Hannes Rudolph
06c5c7f980
feat: update OpenAI and Gemini tool preferences (#10170) 2025-12-17 19:46:33 -08:00
roomote[bot]
f899de1f53
fix: add userAgentAppId to Bedrock embedder for code indexing (#10166)
Adds userAgentAppId configuration to the BedrockRuntimeClient in the
code indexing embedder, matching the implementation pattern already
used in the main Bedrock API provider.

This enables proper user agent identification in CloudTrail AWS requests
when using Bedrock for code indexing embeddings.

Fixes #10165

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 20:20:36 -05:00
Daniel
45dbe4d028
feat(telemetry): extract error messages from JSON payloads for better PostHog grouping (#10163) 2025-12-17 13:59:17 -08:00
github-actions[bot]
495664c261
Changeset version bump (#10162)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-17 13:28:34 -08:00
Chris Estreich
09552fa49b
Release v3.36.11 (#10161) 2025-12-17 13:08:25 -08:00
Daniel
2a2411d37c
fix: enable native tools by default for OpenAI compatible provider (#10159) 2025-12-17 13:02:45 -08:00
Daniel
aa3b4ae9cc
fix: normalize MCP tool schemas for Bedrock and OpenAI strict mode (#10148) 2025-12-17 13:01:48 -08:00
Hannes Rudolph
0b86796b8f
[feat] Claude Code Provider Native Tool Calling (#10077)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-17 12:57:27 -08:00
roomote[bot]
9e9d77934c
feat: enable native tool calling by default for Z.ai models (#10158)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 12:26:17 -08:00
roomote[bot]
eac0d62cfc
fix: support AWS GovCloud and China region ARNs in Bedrock provider (#10157)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 14:50:11 -05:00
Daniel
affa5f2019
fix(ROO-202): refresh Roo models cache with session token on auth state change (#10156) 2025-12-17 14:23:24 -05:00
Daniel
ed631dccc3
fix: remove dots and colons from MCP tool names for Bedrock compatibility (#10152) 2025-12-17 08:47:52 -08:00
Daniel
4693b9eb06
fix(bedrock): convert tool_result to XML text when native tools disabled (#10155) 2025-12-17 08:46:34 -08:00
github-actions[bot]
752a95087e
Changeset version bump (#10154)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-17 11:23:17 -05:00
Matt Rubens
275ccf6729
Release v3.36.10 (#10153) 2025-12-17 11:19:03 -05:00
Hannes Rudolph
cc3bc35091
feat: add gemini-3-flash-preview model (#10151) 2025-12-17 11:07:56 -05:00
Hannes Rudolph
970deead5b
fix(deepseek): preserve reasoning_content during tool call sequences (#10141)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-17 11:05:55 -05:00
John Richmond
2863b1c3f1
Update next.js to ~15.2.8 (#10140) 2025-12-16 21:28:51 -08:00
Hannes Rudolph
d274812332
feat(deepseek): implement interleaved thinking mode for deepseek-reasoner (#9969) 2025-12-16 15:13:43 -08:00
Hannes Rudolph
f414ba41a6
fix: correct token counting for context truncation display (#9961) 2025-12-16 16:12:02 -07:00
github-actions[bot]
efef269a67
Changeset version bump (#10137)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-16 13:16:10 -08:00
Chris Estreich
6270c4b156
Release v3.36.9 (#10138) 2025-12-16 13:05:57 -08:00
github-actions[bot]
b4c6758546
Changeset version bump (#10120)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-16 12:44:20 -08:00
Hannes Rudolph
84c5d2fd61
feat(evals): improve evals UI with tool groups and duration fix (#10133)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-16 12:43:39 -08:00
Daniel
c7cdf8398e
fix: validate tool_result IDs in delegation resume flow (#10135) 2025-12-16 12:42:58 -08:00
roomote[bot]
caf6142201
feat: add full error details to streaming failure dialog (#10131)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-12-16 10:34:16 -08:00
Daniel
a7b192adca
fix: normalize tool call IDs for cross-provider compatibility via OpenRouter (#10102) 2025-12-16 09:34:35 -08:00
Daniel
93bc8c4f1d
fix: add additionalProperties: false to nested MCP tool schemas (#10109) 2025-12-16 09:22:16 -08:00
Chris Estreich
596783d365
Release v3.36.8 (#10119) 2025-12-15 21:55:37 -08:00
Daniel
a9a15b37fd
feat: enable native tools by default for multiple providers (#10059) 2025-12-15 21:37:00 -08:00
Daniel
6619d46377
feat(anthropic): enable native tools by default and add telemetry tracking (#10021) 2025-12-15 21:32:44 -08:00
Hannes Rudolph
69307ba62e
fix: prevent race condition from deleting wrong API messages (#10113)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-12-15 21:23:05 -08:00
roomote[bot]
ef3c88c47e
feat: remove strict ARN validation for Bedrock custom ARN users (#10110)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-15 23:25:41 -05:00
Matt Rubens
a6caa551d0
Remove the description from bedrock service tiers (#10118) 2025-12-15 23:05:05 -05:00
Matt Rubens
be894a6fc6
Release: v1.92.0 (#10116) 2025-12-15 22:03:49 -05:00
Matt Rubens
3502f41e75
Add config to control public sharing (#10105)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-15 21:58:15 -05:00
John Richmond
bf81fa7237
feat(read-file): implement incremental token-budgeted file reading (#10052) 2025-12-15 14:41:42 -08:00
Bruno Bergher
1ff5d1deb6
web: Fixes link to provider pricing page (#10107) 2025-12-15 13:28:25 -08:00
roomote[bot]
5929e2686f
feat: add metadata to error details dialog (#10050)
* feat: add metadata to error details dialog

- Prepends extension version, provider, model, and repository info to error details
- Helps users provide better bug reports with context
- Uses useExtensionState and useSelectedModel hooks for data

* Tweaks

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
2025-12-15 19:05:43 +00:00
Daniel
1f3ab2b493
fix: prevent duplicate MCP tools error by deduplicating servers at source (#10096) 2025-12-15 14:02:04 -05:00
github-actions[bot]
1d4fc52485
Changeset version bump (#10092)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-15 09:47:42 -05:00
Matt Rubens
12d9fadf47
chore: add changeset for v3.36.7 (#10091) 2025-12-15 09:43:37 -05:00
Chris Estreich
c7139167ce
Move isToolAllowedForMode out of shared directory (#10089) 2025-12-15 02:18:08 -08:00
Hannes Rudolph
325410955c
feat(web-evals): improve run logs and formatters (#10081) 2025-12-14 17:36:00 -08:00
John Richmond
a80a74aa02
Capture more of OpenRouter's provider specific error details (#10073)
* Capture more of OpenRouter's provider specific error details

* Actually match the openrouter structure
2025-12-14 13:28:32 -08:00
roomote[bot]
9f3122fe28
feat: add AWS Bedrock service tier support (#9955)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-14 15:26:44 -05:00
roomote[bot]
1be8a99b89
feat: Add Amazon Nova 2 Lite model to Bedrock provider (#9830)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-14 15:26:18 -05:00
Hannes Rudolph
e4b9568dc9
feat(openrouter): add improvements to openrouter provider (#10082) 2025-12-14 12:29:34 -07:00
Hannes Rudolph
0fbbe66496
feat: remove auto-approve toggles for to-do and retry actions (#10062) 2025-12-13 19:26:06 -07:00
Hannes Rudolph
a3b258ad62
fix: use JavaScript-based hover for checkpoint menu visibility (#10056) 2025-12-12 14:06:16 -08:00
github-actions[bot]
4771de1ebc
Changeset version bump (#10058)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-12 14:04:24 -08:00
Chris Estreich
0742335478
Release v3.36.6 (#10057) 2025-12-12 13:52:54 -08:00
Daniel
3521270888
feat: sanitize MCP server/tool names for API compatibility (#10054) 2025-12-12 13:46:50 -08:00
John Richmond
f60c14e716
Release: v1.91.0 (#10055)
chore: bump version to v1.91.0
2025-12-12 13:07:32 -08:00
roomote[bot]
8da4d3d8d8
feat: add WorkspaceTaskVisibility type for organization cloud settings (#10020)
* feat: add WorkspaceTaskVisibility type and workspaceTaskVisibility property to OrganizationCloudSettings

* refactor: create workspaceTaskVisibilitySchema and derive WorkspaceTaskVisibility type from it

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-12 12:45:28 -08:00
Daniel
0f8fac9eb5
fix: show tool protocol dropdown for LiteLLM provider (#10053) 2025-12-12 11:33:23 -08:00
Daniel
ba7c5535ba
feat: add tool alias support for model-specific tool customization (#9989)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-12-12 11:05:21 -08:00
Daniel
23a214c519
fix: extract raw error message from OpenRouter metadata (#10039)
OpenRouter wraps upstream provider errors in a generic message but includes
the actual error in metadata.raw. This change:

- Adds OpenRouterErrorResponse interface for proper typing
- Creates handleStreamingError() helper for DRY error handling
- Extracts metadata.raw for actionable error messages in PostHog
- Includes nested error structure so getErrorMessage() can extract raw message

Before: PostHog receives '400 Provider returned error' (generic)
After: PostHog receives 'Model xyz not found' (actionable)

This enables proper error tracking and debugging via PostHog telemetry.
2025-12-12 10:42:36 -08:00
roomote[bot]
d976a9b296
fix: cancel auto-approval timeout when user starts typing (#9937)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-12 10:25:14 -05:00
Bruno Bergher
495b5c6c6e
ux: improve auto-approve timer visibility in follow-up suggestions (#10048)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-12 09:51:00 -05:00
github-actions[bot]
f97b5155ac
Changeset version bump (#10038)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-11 15:09:55 -07:00
Chris Estreich
4dabd52767
Release v3.36.5 (#10037) 2025-12-11 13:44:39 -08:00
Chris Estreich
5072ff1408
Revert the 3.6.5 release (we halted it) (#10036) 2025-12-11 13:26:15 -08:00
Chris Estreich
7766b91360
Revert "fix: merge settings and versionedSettings for Roo provider models" (#10034) 2025-12-11 13:19:37 -08:00
Hannes Rudolph
c513df5ade
fix: merge settings and versionedSettings for Roo provider models (#10030) 2025-12-11 13:14:12 -08:00
github-actions[bot]
21c2d93ba9
Changeset version bump (#10032)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-11 13:08:38 -08:00
Chris Estreich
526e1954ba
Release v3.36.5 (#10029) 2025-12-11 13:02:56 -08:00
Daniel
8a68b04c27
fix: filter orphaned tool_results when more results than tool_uses (#10027) 2025-12-11 12:48:40 -08:00
Hannes Rudolph
51dbccf2e6
feat: add gpt-5.2 model to openai-native provider (#10024) 2025-12-11 13:16:31 -07:00
Daniel
87317091ee
fix: add missing tool_result blocks to prevent API errors (#10015) 2025-12-11 12:02:06 -08:00
Hannes Rudolph
47320dca62
fix: handle empty Gemini responses and reasoning loops (#10007) 2025-12-11 08:55:47 -08:00
roomote[bot]
f9cfc66803
fix: add general API endpoints for Z.ai provider (#9894)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-11 07:38:26 -08:00
Chris Estreich
a1d3a43aa5
Update roomotes.yml (#10008) 2025-12-10 20:43:28 -08:00
Hannes Rudolph
6a30d9488e
chore: remove list_code_definition_names tool (#10005)
Co-authored-by: cte <cestreich@gmail.com>
2025-12-10 20:32:06 -08:00
Hannes Rudolph
0cbaed7e7b
feat: add toggle for Enter key behavior in chat input (#10002) 2025-12-10 20:31:43 -08:00
Hannes Rudolph
483e70c47b
fix: apply versioned settings on nightly builds (#9997) 2025-12-10 14:28:13 -08:00
Chris Estreich
2a70a2ec0e
@roo-code/types v1.90.0 (#9998) 2025-12-10 14:14:38 -08:00
Hannes Rudolph
f05dd59a2b
Remove Glama provider (#9801) 2025-12-10 14:08:29 -08:00
Daniel
1cf6ae6c93
feat(telemetry): add app version to exception captures and filter 402 errors (#9996)
Co-authored-by: cte <cestreich@gmail.com>
2025-12-10 14:06:51 -08:00
github-actions[bot]
380a57823c
Changeset version bump (#9995)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-12-10 11:46:28 -08:00
Chris Estreich
2cd772cb7f
Release v3.36.4 (#9994) 2025-12-10 11:38:54 -08:00
Daniel
fda020a418
fix: filter out 429 rate limit errors from API error telemetry (#9987)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-12-10 11:32:00 -08:00
Daniel
5a4315f58f
fix: prevent premature rawChunkTracker clearing for MCP tools (#9993) 2025-12-10 10:53:25 -08:00
roomote[bot]
e092e77901
Fix: Correct TODO list display order in chat view (ROO-107) (#9991)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-10 10:43:03 -08:00
roomote[bot]
ab18bf3e50
feat: add error details modal with on-demand display (#9985)
* feat: add error details modal with on-demand display

- Add errorDetails prop to ErrorRow component
- Show Info icon on hover in error header when errorDetails is provided
- Display detailed error message in modal dialog on Info icon click
- Add Copy to Clipboard button in error details modal
- Update generic error case to show localized message with details on demand
- Add i18n translations for error details UI

* UI Tweaks

* Properly handles error details

* i18n

* Lighter visual treatment for errors

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
2025-12-10 16:41:17 +00:00
Chris Estreich
36ef6034e0
Add missing release notes for v3.36.3 (#9979) 2025-12-09 22:43:11 -08:00
Chris Estreich
03912d8399
Delete changeset files (#9977) 2025-12-09 22:29:33 -08:00
Hannes Rudolph
048e7f3502
feat(gemini): add minimal and medium reasoning effort levels (#9973)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-12-09 21:50:14 -08:00
Chris Estreich
0cf5b28569
v3.36.3 (#9972) 2025-12-09 21:16:27 -08:00
Hannes Rudolph
df5fdefea3
fix: respect explicit supportsReasoningEffort array values (#9970) 2025-12-09 20:59:13 -08:00
Daniel
f472a8298e
fix: validate and fix tool_result IDs before API requests (#9952)
Co-authored-by: cte <cestreich@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-12-09 20:37:37 -08:00
Daniel
24eb6ae984
feat: add API error telemetry to OpenRouter provider (#9953)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-09 16:30:29 -08:00
Hannes Rudolph
29d6f6d281
fix: always show tool protocol selector for openai-compatible (#9966) 2025-12-09 16:22:58 -08:00
Matt Rubens
ada7411cd3
Tweaks to baseten model definitions (#9866) 2025-12-09 16:17:52 -08:00
Matt Rubens
721b02e58c
Add a way to save screenshots from the browser tool (#9963)
* Add a way to save screenshots from the browser tool

* fix: use cross-platform paths in BrowserSession screenshot tests

* fix: validate screenshot paths to prevent filesystem escape

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-09 16:12:36 -08:00
Hannes Rudolph
1898848d95
feat(deepseek): update DeepSeek models to V3.2 with new pricing (#9962)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-09 15:46:04 -08:00
Hannes Rudolph
4608c979e0
fix: return undefined instead of 0 for disabled API timeout (#9960) 2025-12-09 15:32:26 -07:00
Matt Rubens
0068d1fee3
Revert "feat: change defaultToolProtocol default from xml to native" (#9956) 2025-12-09 13:09:28 -08:00
Hannes Rudolph
83787a76ef
feat(roo): add versioned settings support with minPluginVersion gating (#9934) 2025-12-09 12:54:15 -08:00
Hannes Rudolph
f89a6bef30
fix: display actual API error message instead of generic text on retry (#9954) 2025-12-09 12:53:20 -08:00
Hannes Rudolph
e142906e7d
feat: add announcement support CTA and social icons (#9945) 2025-12-09 11:09:15 -08:00
Bruno Bergher
8a98f140dc
feat: Make Architect save to /plans and gitignore it (#9944)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-09 06:51:43 -08:00
Hannes Rudolph
c103a4a639
feat: streaming tool stats + token usage throttling (#9926)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-08 19:40:12 -08:00
roomote[bot]
54a52655ac
feat: forbid time estimates in architect mode (#9931)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-08 19:06:07 -08:00
Matt Rubens
5bde2e52de
Remove defaultTemperature from Roo provider configuration (#9932)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-08 18:31:49 -08:00
Daniel
2efebf5da9
fix: add finish_reason processing to xai.ts provider (#9929) 2025-12-08 18:03:40 -08:00
Dennise Bartlett
3356267aa0
Add timeout to OpenAI Compatible Provider Client (#9898) 2025-12-08 17:36:53 -08:00
Hannes Rudolph
de00ab10e2
refactor: consolidate ThinkingBudget components and fix disable handling (#9930) 2025-12-08 17:23:49 -08:00
Matt Rubens
93a43e427e
Try to make OpenAI errors more useful (#9639) 2025-12-08 17:21:29 -08:00
roomote[bot]
375c103bd3
fix: exclude apply_diff from native tools when diffEnabled is false (#9920)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-08 17:20:44 -08:00
Daniel
ee48b3a1ae
fix: suppress 'ask promise was ignored' error in handleError (#9914) 2025-12-08 17:19:45 -08:00
Daniel
88a0bed27f
fix: process finish_reason to emit tool_call_end events (#9927) 2025-12-08 13:27:55 -08:00
Hannes Rudolph
754b701cc8
feat: configure tool preferences for xAI models (#9923) 2025-12-08 11:33:55 -08:00
Chris Estreich
6f602fc88e
Improve cloud job error logging for RCC provider errors (#9924) 2025-12-08 11:15:34 -08:00
Hannes Rudolph
fba8508b10
feat: add search_replace native tool for single-replacement operations (#9918)
Adds a new search_replace tool that performs a single search and replace
operation on a file, requiring the old_string to uniquely identify the
target text with 3-5 lines of context.

Parameters:
- file_path: Path to file (relative or absolute)
- old_string: Text to find (must be unique in file)
- new_string: Replacement text (must differ from old_string)
2025-12-08 10:45:55 -08:00
Andrew Ginns
efbf427631
feat: add xhigh reasoning effort for gpt-5.1-codex-max (#9900)
* feat: add xhigh reasoning effort for gpt-5.1-codex-max

* fix: Address openai-native.spec.ts test failure

* chore: Localisation of 'Extra high'

* chore: revert unrelated CustomModesManager refactoring

---------

Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-12-08 10:17:25 -08:00
Hannes Rudolph
1370cb04f7
fix: use foreground color for context-management icons (#9912) 2025-12-08 08:17:47 -07:00
roomote[bot]
bea7626a9d
fix: add Kimi, MiniMax, and Qwen model configurations for Bedrock (#9905)
* fix: add Kimi, MiniMax, and Qwen model configurations for Bedrock

- Add moonshot.kimi-k2-thinking with 32K max tokens and 256K context
- Add minimax.minimax-m2 with 16K max tokens and 230K context
- Add qwen.qwen3-next-80b-a3b with 8K max tokens and 262K context
- Add qwen.qwen3-coder-480b-a35b-v1:0 with 8K max tokens and 262K context

All models configured with native tool support and appropriate pricing.

Fixes #9902

* fix: add preserveReasoning flag and update Kimi K2 context window

- Added preserveReasoning: true to moonshot.kimi-k2-thinking model
- Added preserveReasoning: true to minimax.minimax-m2 model
- Updated Kimi K2 context window from 256_000 to 262_144

These changes ensure:
1. Reasoning traces are properly preserved for both models
2. Roo correctly recognizes task completion
3. Tool calls within reasoning traces are handled appropriately
4. Context window matches AWS Console specification

* fix: update MiniMax M2 context window to 196_608 for Bedrock

Based on AWS CLI testing, the actual context window limit for MiniMax M2
on Bedrock is 196,608 tokens, not 230,000 as initially configured.

* Update packages/types/src/providers/bedrock.ts

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-08 10:16:43 -05:00
Matt Rubens
1f7e1ee630
Make eval runs deleteable (#9909) 2025-12-07 23:30:28 -05:00
Hannes Rudolph
8aa13467d3
Refactor: Unified context-management architecture with improved UX (#9795)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-07 17:43:48 -05:00
roomote[bot]
946fd0390f
feat: change defaultToolProtocol default from xml to native (#9892)
* feat: change defaultToolProtocol to default to native instead of xml

* fix: add missing getMcpHub mock to Subtask Rate Limiting tests

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-06 11:51:16 -05:00
Matt Rubens
2eae32104e
Default to using native tools when supported on openrouter (#9878) 2025-12-05 23:01:33 -05:00
Matt Rubens
4a5cbcba86
Stop making count_tokens requests (#9884) 2025-12-05 22:53:35 -05:00
Daniel
dd92453276
refactor: decouple tools from system prompt (#9784) 2025-12-05 16:26:47 -05:00
Hannes Rudolph
9d5eca92aa
Update xAI models catalog (#9872) 2025-12-05 16:21:59 -05:00
Hannes Rudolph
9f4dcfc0e6
fix: sanitize removed/invalid API providers to prevent infinite loop (#9869) 2025-12-05 16:03:19 -05:00
Bruno Bergher
d285d01853
web: Product pages (#9865)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-05 14:01:41 -05:00
Alex Ker
642a187030
(update): Add DeepSeek V3-2 Support for Baseten Provider (#9861)
Co-authored-by: AlexKer <AlexKer@users.noreply.github.com>
2025-12-05 12:11:08 -05:00
Chris Estreich
5c501600cd
Better error logs for parseToolCall exceptions (#9857) 2025-12-04 23:06:58 -08:00
github-actions[bot]
65c750d1be
Changeset version bump (#9856)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-05 01:07:34 -05:00
Matt Rubens
1b151c0c26
Release v3.36.2 (#9855) 2025-12-05 01:03:48 -05:00
Chris Estreich
6bdefb8de3
Fix chutes model fetching (#9854) 2025-12-05 00:57:06 -05:00
Hannes Rudolph
e633c62e70
chore: restrict gpt-5 tool set to apply_patch (#9853) 2025-12-05 00:35:45 -05:00
Hannes Rudolph
a3de2935b3
feat: add dynamic settings support for Roo models from API (#9852) 2025-12-04 23:57:00 -05:00
github-actions[bot]
247bf017e0
Changeset version bump (#9840)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-04 22:44:20 -05:00
Matt Rubens
39a549f056
Release v3.36.1 (#9851) 2025-12-04 22:39:24 -05:00
Matt Rubens
3e3fa327e9
Delete .changeset/symlink-commands.md 2025-12-04 22:38:58 -05:00
Hannes Rudolph
bea7d81510
feat: add gpt-5.1-codex-max model to OpenAI provider (#9848) 2025-12-04 22:30:07 -05:00
Daniel
9f111e174b
fix: handle unknown/invalid native tool calls to prevent extension freeze (#9834) 2025-12-04 22:21:09 -05:00
Matt Rubens
79458600aa
Revert "Exclude the ID from Roo reasoning details" (#9850) 2025-12-04 22:16:01 -05:00
Hannes Rudolph
c10d1d9ffc
feat(web-evals): add multi-model launch and UI improvements (#9845)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-04 20:48:38 -05:00
Hannes Rudolph
630c8bce90
FIX + feat: add MessageManager layer for centralized history coordination (#9842) 2025-12-04 20:48:31 -05:00
Hannes Rudolph
a1d392f5cc
fix: prevent cascading truncation loop by only truncating visible messages (#9844) 2025-12-04 20:41:49 -05:00
Matt Rubens
581256dec0
Exclude the ID from Roo reasoning details (#9847) 2025-12-04 20:40:27 -05:00
Matt Rubens
b9e2fd16b7
Revert "fix: sanitize reasoning_details IDs to remove invalid characters" (#9846) 2025-12-04 20:16:58 -05:00
John Richmond
c719117fb4
Be safer about large file reads (#9843)
validateFileTokenBudget wasn't being called considering
the output budget.
2025-12-04 13:35:26 -08:00
Hannes Rudolph
8433eafb05
feat(evals-ui): Add filtering, bulk delete, tool consolidation, and run notes (#9837) 2025-12-04 14:28:37 -07:00
Daniel
ae655c5d29
fix: sanitize reasoning_details IDs to remove invalid characters (#9839) 2025-12-04 15:53:10 -05:00
Matt Rubens
63f6fecb1a
feat: add symlink support for slash commands in .roo/commands folder (#9838)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-04 15:41:10 -05:00
Hannes Rudolph
61aabe715c
ChatView: smoother stick-to-bottom during streaming (#8999) 2025-12-04 14:38:17 -05:00
Chris Estreich
ffff38be2c
Always enabled reasoning for models that require it (#9836) 2025-12-04 10:52:47 -08:00
Bruno Bergher
29385e01d7
fix: Overly round follow-up question suggestions (#9829)
Not that rounded
2025-12-04 16:31:04 +00:00
Matt Rubens
3178113402
Ignore input to the execa terminal process (#9827) 2025-12-04 10:55:58 -05:00
Bruno Bergher
0ed5f3ccd4
web: New Pricing Page (#9821)
* Removes Pro, restructures pricing page

* Solves provider/credits

* Update apps/web-roo-code/src/app/pricing/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Updates agent landing pages to not mention a trial that doesn't exist

* Updates agent-specific landing pages to reflect new home and trial

* Indicate the agent landing page the user came from

* Clean up the carousel

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-04 15:40:07 +00:00
Bruno Bergher
0eddc97d13
ux: improved error messages and documentation links (#9777)
* Minor ui tweaks

* Basic setup for richer API request errors

* Better errors messages and contact link

* i18n

* Update webview-ui/src/i18n/locales/en/chat.json

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Update webview-ui/src/i18n/locales/en/chat.json

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Empty better than null

* Update webview-ui/src/i18n/locales/nl/chat.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* i18n

* Start retryAttempt at 1

* Reverse retryAttempt number, just ommit it from the message

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-04 15:25:23 +00:00
github-actions[bot]
7df268ce48
Changeset version bump (#9828)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-04 09:22:15 -05:00
Matt Rubens
a698875315
Release v3.36.0 (#9814) 2025-12-04 09:17:33 -05:00
Seb Duerr
94c997c9d6
Fix/cerebras conservative max tokens (#9804)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-04 00:43:22 -05:00
Matt Rubens
573cfc31fd
Default to native tools for all models in the Roo provider (#9811)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-04 00:40:53 -05:00
Matt Rubens
d065b881e3
Fix the download count on the homepage (#9807) 2025-12-03 23:46:00 -05:00
John Richmond
72a6805b4b
Update next.js (#9799) 2025-12-03 20:17:28 -08:00
Hannes Rudolph
837ce3f334
chore: hide parallel tool calls experiment and disable feature (#9798) 2025-12-03 17:07:13 -07:00
roomote[bot]
ec551b1ae0
feat: add reasoning_details support to Roo provider (#9796)
- Add currentReasoningDetails accumulator to track reasoning details
- Add getReasoningDetails() method to expose accumulated details
- Handle reasoning_details array format in streaming responses
- Accumulate reasoning details by type-index key
- Support reasoning.text, reasoning.summary, and reasoning.encrypted types
- Maintain backward compatibility with legacy reasoning format
- Follows same pattern as OpenRouter provider

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 18:47:21 -05:00
Daniel
ce229012a3
refactor: remove insert_content tool (#9751)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 16:33:22 -05:00
Chris Estreich
1879200964
Fix Vercel AI Gateway model fetching (#9791)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 11:46:15 -08:00
roomote[bot]
86edc01cb1
fix: remove omission detection logic to fix false positives (#9787)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 13:20:22 -05:00
Hannes Rudolph
23605bed93
fix: restore context when rewinding after condense (#8295) (#9665) 2025-12-03 11:40:39 -05:00
Matt Rubens
a4f4f35b46
Use search_and_replace for minimax (#9780) 2025-12-03 11:37:56 -05:00
github-actions[bot]
48dc4d98e3
Changeset version bump (#9783)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-03 11:27:41 -05:00
Matt Rubens
40a8e0cc11
Release v3.35.5 (#9781) 2025-12-03 11:23:39 -05:00
Matt Rubens
822343ccdf
Update model key for minimax in MODEL_DEFAULTS (#9778)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-03 10:58:46 -05:00
roomote[bot]
18117f0723
ux: Updates to CloudView (#9776)
* refactor: remove TabHeader and onDone callback from CloudView

- Removed TabHeader component from CloudView as it is no longer needed
- Removed onDone prop from CloudView component definition and usage
- Updated all test files to reflect the removal of onDone prop
- Kept Button import that was accidentally removed initially

* Updates upsell copy to reflect today's product

* Update webview-ui/src/components/cloud/CloudView.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update webview-ui/src/i18n/locales/ko/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update webview-ui/src/i18n/locales/zh-CN/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Test fixes

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-03 13:36:33 +00:00
SannidhyaSah
873a763ea7
feat: Add provider routing selection for OpenRouter embeddings (#9144) (#9693)
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2025-12-02 22:59:55 -05:00
Chris Estreich
648e009b8d
Update the evals keygen command (#9754) 2025-12-02 19:44:11 -08:00
Matt Rubens
5b94eec473
Convert the Roo provider tools for OpenAI (#9769) 2025-12-02 22:34:23 -05:00
github-actions[bot]
74d1ed7276
Changeset version bump (#9764)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-02 19:49:48 -05:00
Matt Rubens
fbc0f80961
chore: add changeset for v3.35.4 (#9763) 2025-12-02 19:45:22 -05:00
Daniel
aa40988e11
fix: handle malformed native tool calls to prevent hanging (#9758)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-02 19:40:43 -05:00
roomote[bot]
9a1d7a673b
fix: remove reasoning toggles for GLM-4.5 and GLM-4.6 on z.ai provider (#9752)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-02 14:20:48 -05:00
Hannes Rudolph
be69ef901e
Refactor: Remove line_count parameter from write_to_file tool (#9667) 2025-12-02 13:39:37 -05:00
github-actions[bot]
c91a19fbe7
Changeset version bump (#9745)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-02 10:37:38 -05:00
Matt Rubens
562a799c5b
chore: add changeset for v3.35.3 (#9743) 2025-12-02 10:30:50 -05:00
Matt Rubens
aa507ad990
Add vendor confidentiality section to the system prompt for stealth models (#9742)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-02 10:23:54 -05:00
Bruno Bergher
9975a41be4
web: Homepage changes (#9675)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-02 10:10:45 -05:00
Matt Rubens
152af1474e
Switch to new welcome view (#9741) 2025-12-02 10:02:12 -05:00
github-actions[bot]
906c6f0de4
Changeset version bump (#9738)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-02 00:37:34 -05:00
Matt Rubens
954a6cbb43
chore: add changeset for v3.35.2 (#9737) 2025-12-02 00:34:18 -05:00
Matt Rubens
6f0addfab7
Assume all LiteLLM models support native tools (#9736) 2025-12-02 00:22:48 -05:00
Matt Rubens
700fe42669
Look for a tag in the Roo provider to default the model to native tool calling (#9735) 2025-12-02 00:12:57 -05:00
Matt Rubens
d2b274a9af
Allow models to contain default temperature (#9734) 2025-12-01 23:29:42 -05:00
Chris Estreich
b2b4f6411f
Pass app version to provider (#9730) 2025-12-01 16:04:33 -08:00
github-actions[bot]
ba7340f460
Changeset version bump (#9729)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-01 18:31:54 -05:00
Matt Rubens
e7043e5cea
chore: add changeset for v3.35.1 (#9728) 2025-12-01 18:27:12 -05:00
Chris Estreich
3f4f7c0c41
Better IPC error logging (#9727) 2025-12-01 15:02:34 -08:00
Daniel
edd7cc0986
fix: flush pending tool results before task delegation (#9726)
When tools are called in parallel (e.g., update_todo_list + new_task),
the tool results accumulate in userMessageContent but aren't saved to
API history until all tools complete. When new_task triggers delegation,
the parent is disposed before these pending results are saved, causing
400 errors when the parent resumes (missing tool_result for tool_use).

This fix:
- Adds flushPendingToolResultsToHistory() method in Task.ts that saves
  pending userMessageContent to API history
- Calls this method in delegateParentAndOpenChild() before disposing the
  parent task
- Safe for both native/XML protocols and sequential/parallel execution
  (returns early if there's nothing to flush)
2025-12-01 17:32:54 -05:00
Chris Estreich
9b18014b4b
chore: bump version to v1.89.0 (#9718) 2025-12-01 14:25:48 -08:00
github-actions[bot]
35d4634b80
Changeset version bump (#9725)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-01 16:51:25 -05:00
Matt Rubens
bfb3386785
chore: add changeset for v3.35.0 (#9724) 2025-12-01 16:44:24 -05:00
roomote[bot]
9dac7e7b63
fix: prevent navigation buttons from wrapping on smaller screens (#9721)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 16:39:28 -05:00
Daniel
ad28e12818
feat: add native tool support for LiteLLM provider (#9719) 2025-12-01 16:35:08 -05:00
Matt Rubens
be7659461a
Support tool calling in native ollama provider (#9696)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 15:28:01 -05:00
Matt Rubens
faa6c40ac1
Bedrock native tool calling (#9698) 2025-12-01 15:26:34 -05:00
Matt Rubens
8244f70d7b
Default grok code fast to native tools (#9717) 2025-12-01 15:07:05 -05:00
Matt Rubens
b5acebccf5
Add native tool support for vercel ai gateway (#9697)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 14:52:05 -05:00
Matt Rubens
eb120543e1
Add native tools support to Unbound (#9699)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 14:50:01 -05:00
Matt Rubens
0a2d1a41e4
Add NTC support for Cerebras (#9692) 2025-12-01 14:49:53 -05:00
Daniel
34c524f78e
feat(chutes): detect native tool support from API supported_features (#9715)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-01 12:57:26 -05:00
Silentflower
bf3e4d8f1f
fix: preserve tool_use blocks in summary for parallel tool calls (#9714)
Co-authored-by: huajiwuyan <huajiwuyan@gmail.com>
2025-12-01 11:17:45 -05:00
Matt Rubens
af7470908d
Remove TabContent wrapper from Modes and MCP (#9712) 2025-12-01 11:06:21 -05:00
Matt Rubens
48d3e4d2e8
Release: v1.88.0 (#9713) 2025-12-01 10:47:24 -05:00
Matt Rubens
75903052ae
Update a couple provider labels (#9711)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 10:44:12 -05:00
Bruno Bergher
49aad8576e
ux: Toolbar cleanup and settings consolidation (#9710)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 09:43:15 -05:00
Bruno Bergher
f26d5a479f
ux: Improvements to the new, RCC Provider centric onboarding flow (#9709)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-01 09:39:39 -05:00
Matt Rubens
4591e960ed
Add native tool calling for deepinfra (#9691) 2025-11-29 20:05:21 -05:00
Matt Rubens
ae29777062
Add Grok 4 Fast and Grok 4.1 Fast, plus xAI native tool calling (#9690)
* Add Grok 4 Fast and Grok 4.1 Fast

* Add native tool calling support
2025-11-29 19:41:42 -05:00
Hannes Rudolph
d2017c80cf
Add web-evals updates and kill run functionality (#9681)
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-29 13:08:56 -07:00
Hannes Rudolph
f9eb6d9cf3
feat: add debug buttons to view API and UI history (#9684)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-28 23:18:15 -05:00
Hannes Rudolph
933534896a
feat: add apply_patch native tool (#9663)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-28 23:07:03 -05:00
roomote[bot]
c688a6466e
fix: display install count in millions instead of thousands (#9677)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-28 20:36:34 -05:00
Daniel
127ecf6ddd
feat: enable native tool calls for Vertex Gemini models (#9678)
Add supportsNativeTools: true to all Gemini-based models in the Vertex
provider. The VertexHandler extends GeminiHandler which already has full
native tool handling logic implemented.

Models updated:
- gemini-3-pro-preview
- gemini-2.5-flash-preview-05-20:thinking
- gemini-2.5-flash-preview-05-20
- gemini-2.5-flash
- gemini-2.5-flash-preview-04-17:thinking
- gemini-2.5-flash-preview-04-17
- gemini-2.5-pro-preview-03-25
- gemini-2.5-pro-preview-05-06
- gemini-2.5-pro-preview-06-05
- gemini-2.5-pro
- gemini-2.5-pro-exp-03-25
- gemini-2.0-pro-exp-02-05
- gemini-2.0-flash-001
- gemini-2.0-flash-lite-001
- gemini-2.0-flash-thinking-exp-01-21
- gemini-1.5-flash-002
- gemini-1.5-pro-002
- gemini-2.5-flash-lite-preview-06-17
2025-11-28 13:48:55 -05:00
Daniel
59ee1c9d04
feat: add native tools support for OpenAI-compatible providers (#9676)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-28 11:59:32 -05:00
Daniel
5d020991bd
feat(groq): enable native tool support for models that support function calling (#9673)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-28 11:02:34 -05:00
Matt Rubens
53d1f43cc1
Include tool format in environment details (#9661) 2025-11-28 10:50:00 -05:00
Daniel
bd2c50142c
feat: add native tool support to Requesty provider (#9672)
- Import resolveToolProtocol and TOOL_PROTOCOL from @roo-code/types
- Add tools and tool_choice to completion params when native protocol is enabled
- Handle tool_call_partial chunks in streaming response
- Add comprehensive tests for native tool support
2025-11-28 10:38:58 -05:00
Daniel
b111d125c0
feat: enable native tool support for DeepSeek and Doubao models (#9671)
Add supportsNativeTools: true to DeepSeek and Doubao model definitions,
enabling native OpenAI-compatible tool calling for these providers.

Both providers already extend OpenAiHandler which has built-in support
for native tools, so this change is all that's needed to enable the feature.
2025-11-28 10:38:03 -05:00
Hannes Rudolph
e682c039de
feat: add search_and_replace tool for batch text replacements (#9549)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-27 21:19:10 -07:00
Hannes Rudolph
9b5f6392df
Metadata‑driven subtasks (no UI changes): automatic parent resume and single‑open safety (#9090) 2025-11-27 21:18:42 -07:00
Hannes Rudolph
3f0a6971ca
feat(web-evals): add task log viewing, export failed logs, and new run options (#9637)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-11-27 21:15:31 -07:00
Daniel
5a6dd58fcb
feat: add model-specific tool customization via excludedTools and includedTools (#9641)
* feat: add model-specific tool customization via excludedTools and includedTools

- Add excludedTools and includedTools to ModelInfo schema
- Implement applyModelToolCustomization helper to filter tools based on model config
- Integrate model tool filtering into filterNativeToolsForMode for native protocol
- Add comprehensive tests for tool customization functionality
- Wire up modelInfo through buildNativeToolsArray and Task.ts

This allows providers to override which native tools are available on a per-model basis via MODEL_DEFAULTS, enabling better control over tool selection for models with specific needs.

* feat: add customTools for opt-in only tools

- Add customTools array to ToolGroupConfig for defining opt-in only tools
- Update getToolsForMode() to exclude customTools from default tool set
- Modify applyModelToolCustomization() to include customTools only via includedTools
- Add tests for customTools functionality
- Add comprehensive documentation with usage examples

customTools allows defining tools that are NOT available by default,
even when a mode includes their group. These tools are only available
when explicitly included via a model's includedTools configuration.

This enables:
- Gradual rollout of experimental tools
- Model-specific specialized capabilities
- Safe experimentation without affecting default tool sets

* Add assertions for customTools tests per review feedback

* test: add tests for including customTools via includedTools

* Update src/core/prompts/tools/__tests__/filter-tools-for-mode.spec.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-27 13:45:32 -05:00
github-actions[bot]
b149e69823
Changeset version bump (#9658)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-27 13:02:36 -05:00
Matt Rubens
b8f2da10c2
chore: add changeset for v3.34.8 (#9657) 2025-11-27 12:58:36 -05:00
Daniel
d2d311e501
fix: race condition in new_task tool for native protocol (#9655)
The pendingNewTaskToolCallId was being set AFTER startSubtask() returned.
However, startSubtask() contains a 500ms delay during which the subtask
could complete. If the subtask completed during this window, completeSubtask()
would be called before pendingNewTaskToolCallId was set, causing it to
fall through to the XML protocol path and add a text message instead of
a proper tool_result block, breaking the API conversation structure.

This fix moves the pendingNewTaskToolCallId assignment to happen BEFORE
calling startSubtask(), ensuring the ID is set before the subtask starts.
If the subtask creation fails, the pending ID is cleared.
2025-11-27 12:30:55 -05:00
github-actions[bot]
400d0cd183
Changeset version bump (#9654)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-27 10:57:38 -05:00
Matt Rubens
1e34d3ded6
chore: add changeset for v3.34.7 (#9651) 2025-11-27 10:54:19 -05:00
Matt Rubens
520d4fb0be
Add 'taking you to cloud' screen after provider welcome (#9652) 2025-11-27 10:44:12 -05:00
Matt Rubens
5b64aa95f6
Support native tools in the anthropic provider (#9644)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-27 00:42:54 -05:00
Matt Rubens
254bd23c90
Moonshot native tool call support (#9646) 2025-11-27 00:08:36 -05:00
Matt Rubens
fb94eb3814
Enable native tool calling for z.ai (#9645) 2025-11-27 00:08:09 -05:00
Hannes Rudolph
f5ce56c696
fix(claude-code): disable native tools and temperature support (#9643) 2025-11-26 23:56:24 -05:00
Matt Rubens
b31e755739
Fix openrouter tool calls (#9642) 2025-11-26 22:29:49 -05:00
Daniel
4cdec7db8d
fix: create parent directories early in write_to_file to prevent ENOENT errors (#9640) 2025-11-26 19:53:10 -05:00
Daniel
867a5c79f9
fix: OpenRouter GPT-5 strict schema validation for read_file tool (#9633) 2025-11-26 19:37:36 -05:00
github-actions[bot]
ba09228015
Changeset version bump (#9632)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-26 18:10:00 -05:00
Matt Rubens
c1707422d4
Release v3.34.6 (#9631) 2025-11-26 18:05:34 -05:00
Matt Rubens
339a869ea9
Add fine grained tool streaming for OpenRouter Anthropic (#9629) 2025-11-26 18:02:16 -05:00
Hannes Rudolph
fb9c57e1d9
fix: filter non-Anthropic content blocks before sending to Vertex API (#9618) 2025-11-26 17:47:04 -05:00
Daniel
87d646316e
fix: convert line_ranges strings to lineRanges objects in native tool calls (#9627) 2025-11-26 17:34:54 -05:00
Daniel
b1765361dd
fix: defer new_task tool_result until subtask completes for native protocol (#9628) 2025-11-26 17:25:04 -05:00
roomote[bot]
7e17982c40
feat(bedrock): allow global inference selection when cross-region is enabled (#9616)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-26 17:13:19 -05:00
Hannes Rudolph
3208f6f6dc
feat: wire MULTIPLE_NATIVE_TOOL_CALLS experiment to OpenAI parallel_tool_calls (#9621) 2025-11-26 17:12:54 -05:00
Hannes Rudolph
240bc0b6b1
feat(mistral): add native tool calling support (#9625) 2025-11-26 17:12:04 -05:00
roomote[bot]
16f36896e2
fix: update default settings for inline terminal and codebase indexing (#9622)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-26 17:10:27 -05:00
Daniel
f3889195d7
fix: prevent model cache from persisting empty API responses (#9623) 2025-11-26 16:59:24 -05:00
Daniel
3cd3357808
fix: exclude access_mcp_resource tool when MCP has no resources (#9615) 2025-11-26 15:18:15 -05:00
Daniel
a8a44510d5
fix: restore content undefined check in WriteToFileTool.handlePartial() (#9614) 2025-11-26 11:16:47 -05:00
George Goranov
56c630ca92
Feature/bedrock embeddings support (#9475)
* feat: add AWS Bedrock support for codebase indexing

- Add bedrock as a new EmbedderProvider type
- Add AWS Bedrock embedding model profiles (titan-embed-text models)
- Create BedrockEmbedder class with support for Titan and Cohere models
- Add Bedrock configuration support to config manager and interfaces
- Update service factory to create BedrockEmbedder instances
- Add comprehensive tests for BedrockEmbedder
- Add localization strings for Bedrock support

Closes #8658

* fix: add missing bedrockOptions to loadConfiguration return type

* Fix various issues that the original PR missed.

* Remove debug logs

* Rename AWS Bedrock -> Amazon Bedrock

* Remove some 'as any's

* Revert README changes

* Add translations

* More translations

* Remove leftover code from a debugging session.

* fix: add bedrock to codebaseIndexModelsSchema and update brace-expansion override

- Add bedrock provider to codebaseIndexModelsSchema type definition to fix empty model dropdown in UI
- Update pnpm override for brace-expansion from '>=2.0.2' to '^2.0.2' to resolve ESM/CommonJS compatibility issues

* Improvements to AWS Bedrock embeddings support

- Enhanced bedrock.ts embedder implementation
- Added comprehensive test coverage in bedrock.spec.ts
- Updated config-manager.ts for better Bedrock configuration handling
- Improved service-factory.ts integration
- Updated embeddingModels.ts with Bedrock models
- Enhanced CodeIndexPopover.tsx UI for Bedrock options
- Added auto-populate test for CodeIndexPopover
- Updated pnpm-lock.yaml dependencies

* Restore openrouter config

* Remove debug log

* Fix config-manager.spec.ts unit test.

* Add translations for "optional"

* Revert unnecessary change related to open ia embedder

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
2025-11-26 08:58:58 -05:00
github-actions[bot]
3806b3d27d
Changeset version bump (#9604)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-26 00:51:15 -05:00
Matt Rubens
8a2d28fc55
chore: add changeset for v3.34.5 (#9603) 2025-11-26 00:46:00 -05:00
Hannes Rudolph
4442397507
feat(web-evals): enhance dashboard with dynamic tool columns and UX improvements (#9592)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-26 00:15:29 -05:00
Matt Rubens
3c989d3591
Revert "Add support for Roo Code Cloud as an embeddings provider" (#9602) 2025-11-26 00:08:39 -05:00
Matt Rubens
71e761e21b
Make single file read only apply to xml tools (#9600) 2025-11-26 00:08:00 -05:00
Matt Rubens
0fe55b9403
fix: update API handler when toolProtocol changes (#9599) 2025-11-25 23:54:12 -05:00
roomote[bot]
099ea6dc6a
feat: add Bedrock Opus 4.5 to global inference model list (#9595)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-25 22:22:56 -05:00
Daniel
05f35735f0
feat: enable multiple native tool calls per turn with failure guardrails (#9273) 2025-11-25 20:21:13 -05:00
Daniel
f173c9c2dc
feat: set native tools as default for minimax-m2 and claude-haiku-4.5 (#9586) 2025-11-25 16:24:02 -05:00
github-actions[bot]
37d2f59b2e
Changeset version bump (#9591)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-25 15:27:48 -05:00
Matt Rubens
a177cd8720
chore: add changeset for v3.34.4 (#9590) 2025-11-25 15:23:40 -05:00
Matt Rubens
0ba830bece
Add BFL models to openrouter (#9589) 2025-11-25 15:15:40 -05:00
Matt Rubens
c18b262d12
Make it clear that BFL Flux 2 is free (#9588) 2025-11-25 15:04:43 -05:00
Matt Rubens
e4847ed8d9
Add support for images api (#9587) 2025-11-25 14:18:14 -05:00
Daniel
311940b085
fix: preserve tool_use blocks in summary message during condensing with native tools (#9582) 2025-11-25 13:17:26 -05:00
Daniel
774b492eff
fix: preserve dynamic MCP tool names in native mode API history (#9559) 2025-11-25 13:16:34 -05:00
github-actions[bot]
86cdbff0a5
Changeset version bump (#9579)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-25 10:24:00 -05:00
Matt Rubens
a66cd8a841
chore: add changeset for v3.34.3 (#9578) 2025-11-25 10:19:29 -05:00
roomote[bot]
ed91271e76
feat: add Claude Opus 4.5 model to Bedrock provider (#9572)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-25 09:29:51 -05:00
roomote[bot]
9437103427
feat: Add contact links to About Roo Code settings page (#9570)
* feat: add contact links to About settings page

* Tweaks

* i18n

* Update webview-ui/src/components/settings/__tests__/About.spec.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-11-25 08:54:12 -05:00
roomote[bot]
2945b30191
fix: enable caching for Opus 4.5 model (#9568)
Added claude-opus-4-5-20251101 to the cache control switch statements
to enable prompt caching, matching the behavior of other Claude models.

Fixes #9567

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-25 07:15:58 -05:00
Daniel
8949c2f6fe
Fix ask_followup_question streaming issue and add missing tool cases (#9561) 2025-11-25 00:11:16 -05:00
Matt Rubens
02425143d2
Add Opus 4.5 to Claude Code provider (#9560) 2025-11-25 00:06:57 -05:00
Daniel
0327f12751
feat: implement streaming for native tool calls (#9542) 2025-11-24 23:12:39 -05:00
Chris Estreich
cad6145241
Switch from asdf to mise-en-place in bare-metal evals setup script (#9548) 2025-11-24 15:39:47 -08:00
Matt Rubens
fb4f23537a
Add support for Roo Code Cloud as an embeddings provider (#9543) 2025-11-24 17:21:30 -05:00
github-actions[bot]
1e13533633
Changeset version bump (#9546)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-24 17:16:55 -05:00
Matt Rubens
68183c2658
Release v3.34.2 (#9545) 2025-11-24 17:13:17 -05:00
Daniel
a81c4216c7
feat: add claude-opus-4.5 to Anthropic and Vertex providers (#9541) 2025-11-24 16:06:00 -05:00
Daniel
c1ce48a416
feat: add claude-opus-4.5 to OpenRouter prompt caching and reasoning budget models (#9540) 2025-11-24 15:53:35 -05:00
Daniel
5336246f4d
fix: gracefully skip unsupported content blocks in Gemini transformer (#9537)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-24 15:14:21 -05:00
Matt Rubens
a8b366f3dd
Add Roo Code Cloud as an imagegen provider (#9528) 2025-11-24 15:11:35 -05:00
Daniel
a20d047417
fix: flush LiteLLM cache when credentials change on refresh (#9536) 2025-11-24 12:09:50 -05:00
Daniel
3ac5bec3fc
fix: ensure XML parser state matches tool protocol on config update (#9535) 2025-11-24 10:01:29 -05:00
Seb Duerr
becdb1ac1c
feat: update Cerebras models (#9527)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-24 00:57:40 -05:00
Daniel
b531075626
fix: support reasoning_details format for Gemini 3 models (#9506) 2025-11-24 00:47:25 -05:00
github-actions[bot]
d96f939dca
Changeset version bump (#9523)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-23 13:36:31 -05:00
Matt Rubens
c2d7f04c9d
3.34.1 (#9522) 2025-11-23 13:22:19 -05:00
Matt Rubens
1558df65b5
Track cloud synced messages (#9518) 2025-11-23 13:17:26 -05:00
Matt Rubens
98b06d84be
Remove double todo list (#9517) 2025-11-23 12:54:14 -05:00
Matt Rubens
cdc72750e4
Show the prompt for image gen (#9505) 2025-11-22 11:04:42 -05:00
Chris Estreich
2ca9eac9e0
Enable the Roo Code Cloud provider in evals (#9492) 2025-11-22 00:06:03 -08:00
github-actions[bot]
529c686804
Changeset version bump (#9496)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-21 23:05:41 -05:00
Matt Rubens
bc0daab6b1
chore: add changeset and announcement for v3.34.0 (#9495) 2025-11-21 23:02:15 -05:00
Matt Rubens
e31743c7e7
Revert "Revert "Wait to experiment until state is hydrated"" (#9494) 2025-11-21 22:06:32 -05:00
Daniel
513eebc9a9
Enhance native tool descriptions with examples and clarifications (#9486) 2025-11-21 21:59:54 -05:00
Hannes Rudolph
204c71c62f
Update webview-ui Vite config (#9493) 2025-11-21 18:46:35 -07:00
Matt Rubens
af021623cd
Try to fix build (#9490) 2025-11-21 19:15:54 -05:00
Matt Rubens
01971fa54e
Revert "Wait to experiment until state is hydrated" (#9491) 2025-11-21 19:13:32 -05:00
Matt Rubens
8d1602c1c7
Change baseten default model to glm for now (#9489) 2025-11-21 18:42:40 -05:00
Matt Rubens
e5648e8d14
Wait to experiment until state is hydrated (#9488) 2025-11-21 18:40:50 -05:00
Matt Rubens
16f8d30a7b
Pin the Roo provider to the top of the list (#9485) 2025-11-21 18:35:39 -05:00
Daniel
f6d3fdfff6
fix: copy model-level capabilities to OpenRouter endpoint models (#9483) 2025-11-21 16:05:26 -07:00
Alex Ker
fa764ba7f1
(feat): Add Baseten Provider (#9461)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: AlexKer <AlexKer@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-21 17:49:15 -05:00
Matt Rubens
7edc86bb52
Test a provider-oriented welcome screen (#9484)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-11-21 17:37:30 -05:00
Daniel
1dd223d240
fix: Make cancel button immediately responsive during streaming (#9448) 2025-11-21 17:34:17 -05:00
Daniel
842a4af17c
fix: implement model cache refresh to prevent stale disk cache (#9478) 2025-11-21 17:32:52 -05:00
Daniel
999ea686ab
fix: resolve apply_diff performance regression from PR #9456 (#9474) 2025-11-21 17:31:47 -05:00
Hannes Rudolph
ee93530076
Browser Use 2.0 (#8941)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-21 17:26:15 -05:00
Matt Rubens
8472bbb43b
Improvements to base openai compatible (#9462)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-21 16:42:19 -05:00
Daniel
a65e7807b1
fix: add fallback to yield tool calls regardless of finish_reason (#9476) 2025-11-21 16:04:38 -05:00
Matt Rubens
852e293610
Release: v1.87.0 (#9477) 2025-11-21 12:15:01 -05:00
github-actions[bot]
038f830bf6
Changeset version bump (#9460)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-20 23:23:10 -05:00
Matt Rubens
7977782d87
chore: add changeset for v3.33.3 (#9459) 2025-11-20 23:18:37 -05:00
Daniel
a49e81f37c
fix: improve search and replace symbol parsing (#9456) 2025-11-20 23:05:14 -05:00
Daniel
905181810e
feat: implement Minimax as Anthropic-compatible provider (#9455) 2025-11-20 22:53:00 -05:00
Daniel
3da6f81fac
fix: improve markdown formatting and add reasoning support (#9458) 2025-11-20 22:52:35 -05:00
Daniel
08027ad4fa
fix: send tool_result blocks for skipped tools in native protocol (#9457) 2025-11-20 22:52:27 -05:00
Daniel
5c5a893b50
Fix preserveReasoning flag to control API reasoning inclusion (#9453)
* feat: store reasoning in conversation history for all providers

* refactor: address review feedback

- Move comments inside else block
- Combine reasoning checks into single if block
- Make comments more concise

* refactor: make comments more concise

* Fix preserveReasoning flag to control API reasoning inclusion

Changes:
1. Removed hardcoded <think> tag logic in streaming
   - Previously hardcoded reasoning into assistant message text
   - Now passes reasoning to addToApiConversationHistory as parameter

2. Updated buildCleanConversationHistory to respect preserveReasoning flag
   - When preserveReasoning: true → reasoning block included in API requests
   - When preserveReasoning: false/undefined → reasoning stripped from API
   - Reasoning stored in history for all cases

3. Added temporary debug logs to base-openai-compatible-provider.ts
   - Shows preserveReasoning flag value
   - Logs reasoning blocks in incoming messages
   - Logs <think> tags in converted messages sent to API

* Fix: Use api.getModel() directly instead of cachedStreamingModel

Addresses review comment: cachedStreamingModel is set during streaming but
buildCleanConversationHistory is called before streaming starts. Using the
cached value could cause stale model info when switching models between requests.

Now directly uses this.api.getModel().info.preserveReasoning to ensure we
always check the current model's flag, not a potentially stale cached value.

* Clean up comments in Task.ts

Removed outdated comment regarding model's preserveReasoning flag.

* fix: remove unnecessary reasoningBlock variable in task reasoning logic
2025-11-20 20:31:49 -05:00
Daniel
7715158d51
Store reasoning in conversation history for all providers (#9451) 2025-11-20 19:59:53 -05:00
roomote[bot]
d389771d75
chore: update tar-fs to 3.1.1 via pnpm override (#9450)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-20 15:16:30 -08:00
John Richmond
341863f8cd
Update glob to ^11.1.0 (#9449) 2025-11-20 14:45:02 -08:00
Daniel
97cdc41937
fix: prevent duplicate environment_details when resuming cancelled tasks (#9442)
- Filter out complete environment_details blocks before appending fresh ones
- Check for both opening and closing tags to ensure we're matching complete blocks
- Prevents stale environment data from being kept during task resume
- Add tests to verify deduplication logic and edge cases
2025-11-20 17:03:02 -05:00
roomote[bot]
1589cc1849
feat: add Google Gemini 3 Pro Image Preview to image generation models (#9440)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-20 14:19:37 -05:00
Hannes Rudolph
f7d6daedff
Fix OpenAI Native parallel tool calls for native protocol (#9433)
Fixes an issue where using the OpenAI Native provider together with Native Tool Calling could cause OpenAI’s Responses API to fail with errors like:
2025-11-20 09:38:33 -07:00
Matt Rubens
1201b0fd8d
Revert "Fix Marketplace crash by removing wildcard activation event" (#9432) 2025-11-20 10:49:41 -05:00
Hannes Rudolph
6a98ffb817
Fix Marketplace crash by removing wildcard activation event (#9423) 2025-11-20 10:29:07 -05:00
Daniel
0851769450
Improve read_file tool description with examples (#9422)
* Improve read_file tool description with examples

- Add explicit JSON structure documentation
- Include three concrete examples (single file, with line ranges, multiple files)
- Clarify that 'path' is required and 'line_ranges' is optional
- Better explain line range format (1-based inclusive)

This addresses agent confusion by providing clear examples similar to the XML tool definition.

* Make read_file tool dynamic based on partialReadsEnabled setting

- Convert read_file from static export to createReadFileTool() factory function
- Add getNativeTools() function that accepts partialReadsEnabled parameter
- Create buildNativeToolsArray() helper to encapsulate tool building logic
- Update Task.ts to build native tools dynamically using maxReadFileLine setting
- When partialReadsEnabled is false, line_ranges parameter is excluded from schema
- Examples and descriptions adjust based on whether line ranges are supported

This matches the behavior of the XML tool definition which dynamically adjusts
its documentation based on settings, reducing confusion for agents.
2025-11-20 07:21:48 -05:00
github-actions[bot]
4ae0fc5f02
Changeset version bump (#9421)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-20 00:00:36 -05:00
Matt Rubens
783b6b1bd0
Release v3.33.2 (#9420) 2025-11-19 23:56:08 -05:00
Matt Rubens
575b09f834
Show zero price for free models (#9419) 2025-11-19 23:18:38 -05:00
Daniel
5260123689
perf: reduce excessive getModel() calls & implement disk cache fallback (#9410) 2025-11-19 23:13:39 -05:00
John Richmond
f1bf4360fc
Add a RCC credit balance display (#9386)
* Add a RCC credit balance display

* Replace the provider docs with the balance when logged in

* PR feedback

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-19 21:36:19 -05:00
Hannes Rudolph
e618d881d6
feat: enable native tool calling for gemini provider (#9343)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-19 16:14:24 -05:00
roomote[bot]
ee19904b29
feat: migrate PostHog client to ph.roocode.com (#9402)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-19 14:44:22 -05:00
Daniel
61fc39176d
fix: preserve user images in native tool call results (#9401) 2025-11-19 14:39:17 -05:00
github-actions[bot]
18c4d1ac41
Changeset version bump (#9384)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-19 00:04:54 -05:00
Matt Rubens
ce5479a4ca
Release v3.33.1 (#9383) 2025-11-19 00:00:32 -05:00
Hannes Rudolph
840f421673
Fix Gemini thought signature validation and token counting errors (#9380)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-18 23:30:10 -05:00
Daniel
89068c4ff9
fix: Include nativeArgs in tool repetition detection (#9377)
* fix: Include nativeArgs in tool repetition detection

Fixes false positive 'stuck in a loop' error for native protocol tools
like read_file that store parameters in nativeArgs instead of params.

Previously, the ToolRepetitionDetector only compared the params object,
which was empty for native protocol tools. This caused all read_file
calls to appear identical, triggering false loop detection even when
reading different files.

Changes:
- Updated serializeToolUse() to include nativeArgs in comparison
- Added comprehensive tests for native protocol scenarios
- Maintains backward compatibility with XML protocol tools

Closes: Issue reported in Discord about read_file loop detection

* Try to use safe-stable-stringify in the tool repetition detector

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-18 21:20:29 -05:00
roomote[bot]
7c079453dc
feat: add toolProtocol property to PostHog tool usage telemetry (#9374)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-18 20:29:58 -05:00
Daniel
271d01bada
fix: Update tools to return structured JSON for native protocol (#9373) 2025-11-18 20:01:15 -05:00
Hannes Rudolph
55e9c880d0
fix: gemini maxOutputTokens and reasoning config (#9375)
* fix: gemini maxOutputTokens and reasoning config

* test: tighten gemini reasoning typings
2025-11-18 19:52:50 -05:00
Daniel
0d72471956
fix: ensure no XML parsing when protocol is native (#9371)
* fix: ensure no XML parsing when protocol is native

* refactor: remove redundant non-null assertions
2025-11-18 18:30:57 -05:00
Matt Rubens
bc6fad1f9d
Add native tool calling support to OpenAI-compatible (#9369)
* Add native tool calling support to OpenAI-compatible

* Fix OpenAI strict mode schema validation by adding converter methods to BaseProvider

- Add convertToolsForOpenAI() and convertToolSchemaForOpenAI() methods to BaseProvider
- These methods ensure all properties are in required array and convert nullable types
- Remove line_ranges from required array in read_file tool (converter handles it)
- Update OpenAiHandler and BaseOpenAiCompatibleProvider to use helper methods
- Eliminates code duplication across multiple tool usage sites
- Fixes: OpenAI completion error: 400 Invalid schema for function 'read_file'

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-18 18:20:51 -05:00
Daniel
b0c254cf5a
fix: exclude XML tool examples from MODES section when native protocol enabled (#9367) 2025-11-18 15:48:37 -05:00
Chris Estreich
045c2d6b3b
Retry eval tasks if API instability detected (#9365) 2025-11-18 11:45:54 -08:00
Daniel
1fa12f6aa6
fix: resolve native tool protocol race condition causing 400 errors (#9363) 2025-11-18 13:43:10 -05:00
github-actions[bot]
67b6a8bb76
Changeset version bump (#9362)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-18 12:31:51 -05:00
Matt Rubens
bb31b04dba
chore: add changeset and announcement for v3.33.0 (#9360) 2025-11-18 12:26:41 -05:00
Matt Rubens
f455493af0
Remove the Roo model defaults (#9340) 2025-11-18 12:14:38 -05:00
Daniel
4bfd0709e4
fix: pass tool protocol parameter to lineCountTruncationError (#9358) 2025-11-18 11:29:19 -05:00
Hannes Rudolph
9538d82333
Add Gemini 3 Pro Preview model (#9357) 2025-11-18 11:29:10 -05:00
Hannes Rudolph
f8d6e12aa7
feat: enable native tool calling for openai-native provider (#9348)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-18 11:01:04 -05:00
Daniel
f5d3ac0e23
fix: sync parser state with profile/model changes (#9355) 2025-11-18 09:44:16 -05:00
Hannes Rudolph
f7c2e8d164
Improve Google Gemini defaults, temperature, and cost reporting (#9327) 2025-11-17 23:38:38 -07:00
roomote[bot]
aa2a17fce3
feat: update cloud agent CTA to point to setup page (#9338)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-18 01:29:32 -05:00
roomote[bot]
78ea1f1466
fix: use VSCode theme color for outline button borders (#9336)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
2025-11-18 01:28:56 -05:00
Matt Rubens
c4f1ce5f91
Fix the type of the list files recursive parameter (#9337) 2025-11-18 01:00:37 -05:00
Matt Rubens
dbaaef756e
Remove experimental setting for native tool calls (#9333) 2025-11-17 23:37:36 -05:00
Daniel
c5b18c1581
feat: add tool protocol selector to advanced settings (#9324)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-17 22:53:58 -05:00
Daniel
e742511d90
fix: prevent infinite loop when attempt_completion succeeds (#9325) 2025-11-17 18:24:48 -05:00
Matt Rubens
3091506942
Release: v1.86.0 (#9323) 2025-11-17 15:25:18 -05:00
Matt Rubens
51352824b5
Add max git status files to evals settings (#9322) 2025-11-17 15:24:15 -05:00
Hannes Rudolph
cbd26dfeb9
feat: Move Import/Export to Modes view toolbar (#8686) Cleanup of Mode Edit view (#9077) 2025-11-17 14:19:03 -05:00
Daniel
3631a02c8b
feat: add git status to environment details (#9310) 2025-11-17 14:10:32 -05:00
Daniel
fc19e7620b
fix: preserve tool blocks for native protocol in conversation history (#9319) 2025-11-17 14:07:17 -05:00
roomote[bot]
0e51a1ab9b
fix: Replace broken badgen.net badges with shields.io (#9318)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-17 14:03:28 -05:00
Matt Rubens
3e0bd0ea55
Move the native tool call toggle to experimental settings (#9297)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-17 09:41:30 -05:00
Bruno Bergher
7a06902dd8
web: Roo Code Cloud Provider pricing page and changes elsewhere (#9195)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-16 00:25:37 -05:00
Daniel
744f4bd4c8
feat: implement dynamic tool protocol resolution with proper precedence hierarchy (#9286)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-15 14:35:04 -05:00
Matt Rubens
4e316e0de8
Fix duplicate import (#9281) 2025-11-15 09:08:48 -05:00
Daniel
bc99f41a51
fix: prevent duplicate tool_result blocks in native tool protocol (#9248) 2025-11-14 23:04:02 -05:00
Daniel
375351616d
fix: format tool responses for native protocol (#9270)
* fix: format tool responses for native protocol

- Add toolResultFormatting utilities for protocol detection
- ReadFileTool now builds both XML and native formats
- Native format returns clean, readable text without XML tags
- Legacy conversation history conversion is protocol-aware
- All tests passing (55 total)

* refactor: use isNativeProtocol from @roo-code/types

Remove duplicate implementation and import from types package instead
2025-11-14 22:43:56 -05:00
Daniel
0a305310e5
refactor: centralize toolProtocol configuration checks (#9279)
* refactor: centralize toolProtocol configuration checks

- Created src/utils/toolProtocol.ts with getToolProtocolFromSettings() utility
- Replaced all direct vscode.workspace.getConfiguration() calls with centralized utility
- Updated 6 files to use the new utility function
- All tests pass and TypeScript compilation succeeds

* refactor: use isNativeProtocol function from types package
2025-11-14 20:24:40 -05:00
github-actions[bot]
64b1b62f5f
Changeset version bump (#9280)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-14 20:07:17 -05:00
Matt Rubens
924d815929
Release v3.32.1 (#9278) 2025-11-14 20:03:43 -05:00
Daniel
b2f204f123
Disable XML parser for native tool protocol (#9277) 2025-11-14 19:53:22 -05:00
Daniel
44b96f9d10
feat(openai-native): add abort controller for request cancellation (#9276) 2025-11-14 19:38:30 -05:00
Daniel
93c6d97017
Fix duplicate tool blocks causing 'tool has already been used' error (#9275) 2025-11-14 19:37:40 -05:00
Daniel
1b196461f3
fix: prevent duplicate tool_result blocks in native protocol mode for read_file (#9272)
When read_file encountered errors (e.g., file not found), it would call
handleError() which internally calls pushToolResult(), then continue to
call pushToolResult() again with the final XML. In native protocol mode,
this created two tool_result blocks with the same tool_call_id, causing
400 errors on subsequent API calls.

This fix replaces handleError() with task.say() for error notifications.
The agent still receives error details through the XML in the single
final pushToolResult() call.

This change works for both protocols:
- Native: Only one tool_result per tool_call_id (fixes duplicate issue)
- XML: Only one text block with complete XML (cleaner than before)

Agent visibility preserved: Errors are included in the XML response
sent to the agent via pushToolResult().

Tests: All 44 tests passing. Updated test to verify say() is called.
2025-11-14 17:47:39 -05:00
Hannes Rudolph
4a9ff8f4ef
[FIX] Fix OpenAI Native handling of encrypted reasoning blocks to prevent error when condensing (#9263) 2025-11-14 12:54:15 -05:00
github-actions[bot]
da461182ae
Changeset version bump (#9265)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-14 01:40:26 -05:00
Matt Rubens
37337fd958
Release v3.32.0 (#9264) 2025-11-14 01:36:13 -05:00
Matt Rubens
ee64f44d2b
Revert "refactor(task): switch to <feedback> wrapper to prevent focus drift after context-management event (condense/truncate)" (#9261) 2025-11-14 00:43:45 -05:00
Hannes Rudolph
161345c6fa
revert out of scope changes from #9252 (#9258) 2025-11-14 00:19:09 -05:00
Hannes Rudolph
31f7372897
feat(openai): OpenAI Responses: model-driven prompt caching and generic reasoning options refactor (#9259) 2025-11-14 00:13:49 -05:00
Daniel
d139eff9fc
fix: prevent consecutive user messages on streaming retry (#9249) 2025-11-13 22:31:26 -05:00
Daniel
38e3529c1e
fix: make line_ranges optional in read_file tool schema (#9254)
The OpenAI tool schema required both 'path' and 'line_ranges' in FileEntry,
but the TypeScript type definition marks lineRanges as optional. This caused
the AI to fail when trying to read files without specifying line_ranges.

Changes:
- Updated read_file tool schema to only require 'path' parameter
- line_ranges remains available but optional, matching TypeScript types
- Aligns with implementation which treats lineRanges as optional throughout

Fixes issue where read_file tool kept failing with missing parameters.
2025-11-13 21:56:51 -05:00
Hannes Rudolph
01cb12f167
Add GPT-5.1 models and clean up reasoning effort logic (#9252)
* Reasoning effort: capability-driven; add disable/none/minimal; remove GPT-5 minimal special-casing; document UI semantics; remove temporary logs

* Remove Unused supportsReasoningNone

* Roo reasoning: omit field on 'disable'; UI: do not flip enableReasoningEffort when selecting 'disable'

* Update packages/types/src/model.ts

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Update webview-ui/src/components/settings/SimpleThinkingBudget.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-11-13 20:54:41 -05:00
Hannes Rudolph
c49f9ab846
Fix broken share button (#9253)
fix(webview-ui): make Share button popover work by forwarding ref in LucideIconButton

- Convert LucideIconButton to forwardRef so Radix PopoverTrigger(asChild) receives a focusable element
- Enables Share popover and shareCurrentTask flow
- Verified with ShareButton/TaskActions Vitest suites
2025-11-13 20:51:27 -05:00
Daniel
258830967a
fix: Filter native tools by mode restrictions (#9246)
* fix: filter native tools by mode restrictions

Native tools are now filtered based on mode restrictions before being sent to the API, matching the behavior of XML tools. Previously, all native tools were sent to the API regardless of mode, causing the model to attempt using disallowed tools.

Changes:
- Created filterNativeToolsForMode() and filterMcpToolsForMode() utility functions
- Extracted filtering logic from Task.ts into dedicated module
- Applied same filtering approach used for XML tools in system prompt
- Added comprehensive test coverage (10 tests)

Impact:
- Model only sees tools allowed by current mode
- No more failed tool attempts due to mode restrictions
- Consistent behavior between XML and Native protocols
- Better UX with appropriate tool suggestions per mode

* refactor: eliminate repetitive tool checking using group-based approach

- Add getAvailableToolsInGroup() helper to check tools by group instead of individually
- Refactor filterNativeToolsForMode() to reuse getToolsForMode() instead of duplicating logic
- Simplify capabilities.ts by using group-based checks (60% reduction)
- Refactor rules.ts to use group helper (56% reduction)
- Remove debug console.log statements
- Update tests and snapshots

Benefits:
- Eliminates code duplication
- Leverages existing TOOL_GROUPS structure
- More maintainable - new tools in groups work automatically
- All tests passing (26/26)

* fix: add fallback to default mode when mode config not found

Ensures the agent always has functional tools even if:
- A custom mode is deleted while tasks still reference it
- Mode configuration becomes corrupted
- An invalid mode slug is provided

Without this fallback, the agent would have zero tools (not even
ask_followup_question or attempt_completion), completely breaking it.
2025-11-13 20:50:57 -05:00
Hannes Rudolph
aaab2bf4d4
refactor(task): switch to <feedback> wrapper to prevent focus drift after context-management event (condense/truncate) (#9237)
* refactor(task): wrap initial user message in <feedback> instead of <task> to prevent focus drift after context-management

Rationale: After a successful context-management event, framing the next user block as feedback reduces model focus drift. Mentions parsing already supports <feedback>, and tool flows (attemptCompletion, responses) are aligned. No change to loop/persistence.

* refactor(mentions): drop <task> parsing; standardize on <feedback>; update tests
2025-11-13 20:02:57 -05:00
Matt Rubens
ad1e9a82f9
Add enum support to configuration schema (#9247) 2025-11-13 17:06:25 -05:00
Hannes Rudolph
8d14e90d8a
docs: include PR numbers in release guide (#9236) 2025-11-13 15:25:08 -05:00
Daniel
5069ce92a0
fix: change tool_choice from required to auto for native protocol (#9242) 2025-11-13 15:16:15 -05:00
Daniel
237c324fcd
fix: resolve 400 error with native tools on OpenRouter (#9238) 2025-11-13 15:10:38 -05:00
Matt Rubens
d270ea1983
Consistently use Package.name for better support of the nightly app (#9240) 2025-11-13 15:07:14 -05:00
Daniel
5e6e601b0a
Add native tool call support (#9159)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-13 12:48:35 -05:00
github-actions[bot]
2b26cf3011
Changeset version bump (#9233)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-13 09:51:25 -05:00
Matt Rubens
7fedd7a8f0
Release v3.31.3 (#9232) 2025-11-13 09:46:49 -05:00
roomote[bot]
ee9b255176
docs: remove Contributors section from README files (#9198)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-13 09:40:47 -05:00
Hannes Rudolph
7730c6f862
OpenAI Native: gate encrypted_content include; remove gpt-5-chat-latest verbosity flag (fixes #9225) (#9231)
openai-native: include reasoning.encrypted_content only when reasoningEffort is set; prevent Responses API error on non-reasoning models. types: remove supportsVerbosity from gpt-5-chat-latest to avoid invalid verbosity error. Fixes #9225
2025-11-13 09:29:31 -05:00
Hannes Rudolph
4e6cdad052
Fix: Roo Anthropic input token normalization (avoid double-count) (#9224) 2025-11-13 01:46:11 -05:00
Hannes Rudolph
bb6cac4980
rename: sliding-window -> context-management; truncateConversationIfNeeded -> manageContext (#9206) 2025-11-12 22:16:25 -05:00
github-actions[bot]
bbad2dcfdb
Changeset version bump (#9217)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-12 22:09:53 -05:00
Matt Rubens
dc1cee66bd
chore: add changeset for v3.31.2 (#9216) 2025-11-12 22:03:27 -05:00
Hannes Rudolph
0fdbd392e8
Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API) (#9203)
* Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API)

Summary
We moved continuity off OpenAI servers and now maintain conversation state locally by persisting and replaying encrypted reasoning items. Requests are stateless (store=false) while retaining the performance/caching benefits of the Responses API.

Why
This aligns with how Roo manages context and simplifies our Responses API implementation while keeping all the benefits of continuity, caching, and latency improvements.

What changed
- All OpenAI models now use the Responses API; system instructions are passed via the top-level instructions field; requests include store=false and include=["reasoning.encrypted_content"].
- We persist encrypted reasoning items (type: "reasoning", encrypted_content, optional id) into API history and replay them on subsequent turns.
- Reasoning summaries default to summary: "auto" when supported; text.verbosity only when supported.
- Atomic persistence via safeWriteJson.

Removed
- previous_response_id flows, suppressPreviousResponseId/skipPrevResponseIdOnce, persistGpt5Metadata(), and GPT‑5 response ID metadata in UI messages.

Kept
- taskId and mode metadata for cross-provider features.

Result
- ZDR-friendly, stateless continuity with equal or better performance and a simpler codepath.

* fix(webview): remove unused metadata prop from ReasoningBlock render

* Responses API: retain response id for troubleshooting (not continuity)

Continuity is stateless via encrypted reasoning items that we persist and replay. We now capture the top-level response id in OpenAiNativeHandler and persist the assistant message id into api_conversation_history.json solely for debugging/correlation with provider logs; it is not used for continuity or control flow.

Also: silence request-body debug logging to avoid leaking prompts.

* remove DEPRECATED tests

* chore: remove unused Task types file to satisfy knip CI

* fix(task): properly type cleanConversationHistory and createMessage args in Task to address Dan's review
2025-11-12 19:50:24 -05:00
Hannes Rudolph
387d1ba50f
fix: migrate Issue Fixer to REST + ProjectsV2 (#9207)
* fix(issue-fixer): migrate to REST for issue/comments and add ProjectsV2; remove Projects Classic mentions

* Update .roo/rules-issue-fixer/4_github_cli_usage.xml

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Update .roo/rules-issue-fixer/4_github_cli_usage.xml

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-11-12 19:46:26 -05:00
Hannes Rudolph
8902facf49
fix: Apply updated API profile settings when provider/model unchanged (#9208) (#9210)
fix: apply updated API profile settings when provider/model unchanged (#9208)
2025-11-12 19:45:51 -05:00
Chris Estreich
62d8cc0d66
Batch settings updates from the webview to the extension host (#9165)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-12 12:29:06 -08:00
Daniel
e70c1754bd
fix: replace rate-limited badges with badgen.net (#9200) 2025-11-12 13:54:25 -05:00
Daniel
7323bba658
fix: include mcpServers in getState() for auto-approval (#9199) 2025-11-12 13:03:54 -05:00
github-actions[bot]
69d4efc335
Changeset version bump (#9154)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-11 20:32:50 -05:00
Bruno Bergher
dc37f6ae76
Add custom Button component with variant system (#9150)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-11 20:14:54 -05:00
Hannes Rudolph
2c917243d1
fix: Model switch re-applies selected profile (sync task.apiConfiguration) (#9179) (#9181) 2025-11-11 20:11:16 -05:00
Chris Estreich
6e6341346e
Move auto-approval from ChatView to Task (#9157) 2025-11-10 17:01:50 -08:00
roomote[bot]
23856a5874
feat: sync reviewer landing page copy - variant B to variant A (#9158)
- Updated variant A content to match variant B messaging
- Both variants now show the same improved copy focused on catching meaningful bugs
- Emphasizes depth over token-saving and repository-aware analysis

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-10 18:23:24 -05:00
roomote[bot]
b2143912cf
feat: sync reviewer landing page copy - variant B to variant A (#9158)
- Updated variant A content to match variant B messaging
- Both variants now show the same improved copy focused on catching meaningful bugs
- Emphasizes depth over token-saving and repository-aware analysis

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-10 18:17:44 -05:00
Daniel
cb9abcf955
Add native tool definitions (#9156) 2025-11-10 17:31:05 -05:00
Daniel
e8ac3bf359
Gate XML out when native tool protocol is ON (#9107) 2025-11-10 14:59:15 -05:00
Matt Rubens
fefec6ce0f
Release: v1.85.0 (#9155) 2025-11-10 12:52:06 -05:00
Matt Rubens
2943b83ae9
chore: add changeset for v3.31.1 (#9153) 2025-11-10 11:52:10 -05:00
Daniel
4cd5c9022e
fix: prevent command_output ask from blocking in cloud/headless environments (#9152) 2025-11-10 11:47:26 -05:00
Matt Rubens
b09d0a7640
IPC command for sending messages to the current task (#9149) 2025-11-10 11:44:04 -05:00
roomote[bot]
62636add14
feat: add Google Tag Manager to marketing website (#9148)
* feat: add Google Tag Manager to marketing website using Next.js Script component

* refactor: remove Google Ads implementation in favor of Tag Manager

* fix: wrap GTM script in consent-checking client component for GDPR compliance

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-10 01:51:53 -08:00
roomote[bot]
4da9c3adb1
fix: improve mobile responsiveness of hero section on /reviewer page (#9138)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-08 17:47:06 -05:00
github-actions[bot]
e98f4b9057
Changeset version bump (#9112)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-07 23:30:28 -05:00
Matt Rubens
f93aafefe1
Release v3.31.0 (#9111) 2025-11-07 23:14:51 -05:00
Daniel
78fc2126d3
fix: prevent context condensing on settings save when provider/model unchanged (#9108)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-07 22:58:02 -05:00
Bruno Bergher
fff5cf804f
ux: Improvements to to-do lists and task headers (#9096)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-07 17:26:20 -05:00
Daniel
fc2147ab4f
fix: prevent crash when streaming chunks have null choices array (#9105) 2025-11-07 13:18:38 -05:00
Bruno Bergher
ca64953061
ux: Less Caffeine (#9104)
Prevents stress on Roo's hip bones
2025-11-07 18:09:34 +00:00
Daniel
247b06186f
feat: Add comprehensive error logging to Roo Cloud provider (#9098)
feat: add comprehensive error logging to Roo Cloud provider

- Add detailed error logging in handleOpenAIError() to capture error details before transformation
- Enhanced getRooModels() to log HTTP response details on failed requests
- Added error context logging to RooHandler streaming and model loading
- All existing tests passing (48 total)
2025-11-07 08:53:10 -08:00
roomote[bot]
2abdad6d55
fix: respect custom OpenRouter URL for all API operations (#8951)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-07 10:35:12 -05:00
github-actions[bot]
47415fa19a
Changeset version bump (#9094)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-06 23:18:40 -05:00
Matt Rubens
6e3e8a96ef
chore: add changeset for v3.30.3 (#9092) 2025-11-06 23:15:10 -05:00
renovate[bot]
49e57ed0fa
chore(deps): update dependency @changesets/cli to v2.29.7 (#8490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 16:46:09 -05:00
roomote[bot]
4eebcf0d98
fix: prevent notification sound on attempt_completion with queued messages (#8540)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-06 16:44:52 -05:00
Daniel
b17760bf57
feat: auto-switch to imported mode with architect fallback (#9003)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Seth Miller <sethmillerp@gmail.com>
Co-authored-by: heyseth <sethmillerp@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-06 16:40:27 -05:00
Daniel
37ac53ed4a
fix: prevent shell injection in pre-push hook environment loading (#9059) 2025-11-06 16:40:03 -05:00
roomote[bot]
1ba0150f7a
fix: use system role for OpenAI Compatible provider when streaming is disabled (#8216)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-06 16:39:20 -05:00
roomote[bot]
eedc2649ff
Clarify: setting 0 disables Error & Repetition Limit (#8965)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-06 16:25:12 -05:00
Hannes Rudolph
0fd7023ea7
feat(chat): Improve diff appearance in main chat view (#8932)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-06 16:18:01 -05:00
Daniel
d631aa643c
fix(task): auto-retry on empty assistant response (#9076) (#9083) 2025-11-06 16:15:31 -05:00
roomote[bot]
bf048492fb
feat: add MiniMax-M2-Stable model and enable prompt caching (#9072)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-11-06 12:34:53 -08:00
Bruno Bergher
7bb7b75a0f
ux: Home screen visuals (#9057)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-06 12:34:33 -08:00
Daniel
63b4a785c1
feat: add kimi-k2-thinking model to moonshot provider (#9079) 2025-11-06 12:14:57 -05:00
github-actions[bot]
7320d79c08
Changeset version bump (#9066)
* changeset version bump

* Revise CHANGELOG for version 3.30.2

Updated changelog for version 3.30.2 with new features and fixes.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-05 23:12:44 -05:00
Matt Rubens
7e3b599b1a
Release v3.30.2 (#9065)
chore: add changeset for v3.30.2
2025-11-05 23:08:55 -05:00
Hannes Rudolph
65230f1f5c
feat: Global Inference for Bedrock models (#8750) (#8940)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 15:56:19 -05:00
Bruno Bergher
39448f4010
web: Agent Landing Page A/B testing toolkit (#9018)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 15:40:04 -05:00
roomote[bot]
413ab1a95c
feat: add Qwen3 embedding models (0.6B and 4B) to OpenRouter support (#9060)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 15:35:25 -05:00
AJ Juaire
c6a02bb8da
Fix Bedrock user agent to report full SDK details (#9043) 2025-11-05 14:08:58 -05:00
Daniel
d4aeca4205
Fix dynamic provider model validation to prevent cross-contamination (#9054) 2025-11-05 14:07:52 -05:00
Daniel
3eee340aa3
feat: add conditional test running to pre-push hook (#9055) 2025-11-05 12:06:22 -05:00
dleffel
e86acef844
chore: simplify Google Analytics to standard implementation (#9044)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 11:24:32 -05:00
roomote[bot]
6965e5c791
fix: update Opus 4.1 max tokens from 8K to 32K (#9046)
Aligns claude-opus-4-1-20250805 max token limit with claude-opus-4-20250514,
both models now supporting 32K output tokens (overridable to 8K when
enableReasoningEffort is false).

Fixes #9045

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 00:24:46 -05:00
Seb Duerr
ae9f3fe984
Update cerebras.ts (#9024) 2025-11-04 22:43:44 -05:00
Seth Miller
097bc699ba
fix(checkpoints): resolve incorrect commit location when GIT_DIR set in Dev Containers (#8811) 2025-11-04 22:10:07 -05:00
Hannes Rudolph
ea339738e5
Set Claude Sonnet 4.5 as default for key providers (#8922) 2025-11-04 22:07:24 -05:00
roomote[bot]
200a7c8aa9
fix: keep pinned models fixed at top of scrollable list (#8813)
* fix: keep pinned models fixed at top of scrollable list

- Separated pinned and unpinned configs into different containers
- Pinned configs now stay fixed at the top
- Only unpinned configs are scrollable
- Added tests to verify the fixed behavior

Fixes #8812

* fix: resolve sticky header visual artifact in ApiConfigSelector

- Changed sticky header background from bg-vscode-editorWidget-background to bg-vscode-dropdown-background to match popover container
- Moved separator logic into sticky container as conditional bottom border to prevent scroll artifacts
- Updated tests to match new separator structure
- All 21 tests passing

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-04 22:01:06 -05:00
Daniel
f1caf3f36e
feat: add file path tooltips with centralized PathTooltip component (#9030)
- Add PathTooltip component that wraps StandardTooltip with proper styling
- Use maxWidth='min(300px,100vw)' via inline style to override defaults
- Apply '[text-wrap:wrap]' class to override text-balance behavior
- Add formatPathTooltip helper for consistent path content formatting
- Update CodeAccordian, ChatRow, and BatchFilePermission to use PathTooltip
- Centralizes tooltip behavior and reduces duplication

Supersedes PR #8797.
2025-11-04 21:59:19 -05:00
Daniel
e25b4e62d1
fix: eliminate UI flicker during task cancellation (#9037)
* fix: eliminate UI flicker during task cancellation

- Modify ClineProvider.createTaskWithHistoryItem() to detect when rehydrating current task
- Implement in-place task replacement to avoid empty stack state that causes UI flicker
- Add comprehensive unit tests for flicker-free cancel behavior
- Maintain backward compatibility and proper event listener cleanup

Fixes the jarring navigation to home view when cancelling tasks

* fix: ensure proper garbage collection of old task during flicker-free rehydration

- Call abortTask(true) on old task before replacement to stop processes and mark as abandoned
- This ensures proper cleanup and prevents memory leaks during task cancellation
- Add test verification for abortTask cleanup
2025-11-04 21:40:39 -05:00
github-actions[bot]
54745fc234
Changeset version bump (#9034)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-04 15:39:04 -05:00
Matt Rubens
035c67c83c
chore: add changeset for v3.30.1 (#9033) 2025-11-04 15:33:54 -05:00
Matt Rubens
77971a5e8f
Revert "fix: prevent UI flicker and enable resumption after task cancellation" (#9032) 2025-11-04 15:29:14 -05:00
Daniel
f717863a32
fix: correct OpenRouter Mistral model dimension from 3072 to 1536 (#9028) 2025-11-04 12:29:04 -05:00
github-actions[bot]
8e4b145681
Changeset version bump (#9005)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-11-03 16:27:21 -08:00
Matt Rubens
65bb672d23
chore: add changeset for v3.30.0 (#9006) 2025-11-03 16:09:23 -08:00
Chris Estreich
8a6bdf9092
v3.29.6 (#9004) 2025-11-03 15:34:37 -08:00
roomote[bot]
d59b815e98
feat(web): add /pr-fixer page and Cloud Agents footer (#8996)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
2025-11-03 15:50:46 -05:00
SannidhyaSah
7add32e203
docs: Update readme to link the new Custom Modes video (#9000)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
2025-11-03 15:48:15 -05:00
Daniel
58edc71672
fix: prevent UI flicker and enable resumption after task cancellation (#8986) 2025-11-03 15:40:39 -05:00
Hannes Rudolph
5c738de7ce
fix: update terminal settings documentation link (#8997) 2025-11-03 13:17:16 -05:00
Daniel
ce88b0272a
feat: add preserveReasoning flag to include reasoning in API history (#8934) 2025-11-03 10:38:39 -05:00
Hannes Rudolph
f7856ef5cc
Terminal settings: Cleanup terminal settings tab and change default terminal to inline (#8342)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-03 10:38:09 -05:00
roomote[bot]
5fb36d9c85
feat: implement Google Consent Mode v2 with cookieless pings (#8987)
* feat: implement Google Consent Mode v2 with cookieless pings

- Add consent defaults before gtag.js loads (required for Consent Mode v2)
- Enable cookieless pings with url_passthrough for Google Ads
- Implement consent update logic for all consent categories
- Support both granted and denied consent states
- Maintain backward compatibility with existing consent manager

* fix: remove shouldLoad from useEffect dependency array to prevent re-initialization loop

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-02 20:59:09 -08:00
Matt Rubens
5b753f5855
Don't output newline-only reasoning (#8990)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-02 23:17:59 -05:00
Matt Rubens
613255c09a
Handle <think> tags in the base OpenAI-compatible provider (#8989) 2025-11-02 22:22:49 -05:00
Matt Rubens
8d98b303b3
Union a hard-coded list of chutes models with the dynamic list (#8988) 2025-11-02 21:47:43 -05:00
roomote[bot]
d863010673
feat: add MiniMax M2 model to Fireworks.ai provider (#8962)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-02 21:43:58 -05:00
roomote[bot]
8dc8452123
feat: add GLM-4.6 model to Fireworks provider (#8754)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-02 21:41:24 -05:00
David Markey
34f45f1b28
feat: add OpenRouter embedding provider support (#8973)
* feat: add OpenRouter embedding provider support

Implement comprehensive OpenRouter embedding provider support for codebase indexing with the following features:

- New OpenRouterEmbedder class with full API compatibility
- Support for OpenRouter's OpenAI-compatible embedding endpoint
- Rate limiting and retry logic with exponential backoff
- Base64 embedding handling to bypass OpenAI package limitations
- Global rate limit state management across embedder instances
- Configuration updates for API key storage and provider selection
- UI integration for OpenRouter provider settings
- Comprehensive test suite with mocking
- Model dimension support for OpenRouter's embedding models

This adds OpenRouter as the 7th supported embedding provider alongside OpenAI, Ollama, OpenAI-compatible, Gemini, Mistral, and Vercel AI Gateway.

* Add translation key

* Fix mutex double release bug

* Add translations

* Add more translations

* Fix failing tests

* code-index(openrouter): fix HTTP-Referer header to RooCodeInc/Roo-Code; i18n: add and wire OpenRouter Code Index strings; test: assert default headers in embedder

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-02 19:12:28 -05:00
roomote[bot]
d0e519de3f
feat: convert Chutes to dynamic/router provider (#8980)
* feat: convert Chutes to dynamic/router provider

- Add chutes to dynamicProviders array in provider-settings
- Add chutes entry to dynamicProviderExtras in api.ts
- Create fetcher function for Chutes models API
- Convert ChutesHandler to extend RouterProvider
- Update tests to work with dynamic provider setup
- Export chutesDefaultModelInfo for RouterProvider constructor

* fix: address security and code quality issues from review

- Fix potential API key leakage in error logging
- Add temperature support check before setting temperature
- Improve code consistency with RouterProvider patterns

* fix: add chutes to routerModels initialization

- Fix TypeScript error in webviewMessageHandler
- Ensure chutes is included in RouterName Record type

* Fixes

* Support reasoning

* Fix tests

* Remove reasoning checkbox

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-02 16:28:33 -05:00
Thibault Jaigu
ca10cba3c4
fix: create new Requesty profile during OAuth (#8699)
Co-authored-by: John Costa <john@requesty.ai>
2025-11-02 01:07:16 -04:00
Daniel
25c6f46e71
fix: prevent message loss during queue drain race condition (#8955) 2025-11-02 01:05:45 -04:00
Daniel
31de103e7d
feat: optimize router model fetching with single-provider filtering (#8956) 2025-11-02 01:04:34 -04:00
Matt Rubens
388d40524d
Capture the reasoning content in base-openai-compatible for GLM 4.6 (#8976) 2025-11-02 01:00:33 -04:00
github-actions[bot]
d7ea6d679e
Changeset version bump (#8968)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-01 15:36:42 -04:00
Matt Rubens
d28d40d0a7
chore: add changeset for v3.29.5 (#8967) 2025-11-01 15:33:06 -04:00
roomote[bot]
89d67efc6d
fix: add keyword index for type field to fix Qdrant codebase_search error (#8964)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-01 13:20:56 -04:00
Bruno Bergher
eb68c65296
web: Attempt at compliant, cookie-less anonymous tracking for the website (#8957) 2025-10-31 15:19:35 -04:00
Matt Rubens
416fa5727e
Fix cost and token tracking between provider styles (#8954) 2025-10-31 15:14:29 -04:00
github-actions[bot]
4a096e1cb9
Changeset version bump (#8907)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-30 23:22:28 -04:00
Matt Rubens
6e4e22f2cb
Release v3.29.5 (#8942) 2025-10-30 23:15:28 -04:00
roomote[bot]
81d5f63b72
fix: remove search_and_replace tool from codebase (#8892)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-10-30 22:51:29 -04:00
Daniel
c66fed9611
feat: improve @ file search for large projects (#8805)
* feat: improve @ file search for large projects

- Increase default file limit from 5,000 to 10,000 (configurable up to 500,000)
- Respect VSCode search settings (useIgnoreFiles, useGlobalIgnoreFiles, useParentIgnoreFiles)
- Add 'maximumIndexedFilesForFileSearch' configuration setting
- Add tests for new functionality

Conservative default of 10k keeps memory usage low while still providing 2x
improvement. Users with large projects can opt-in to higher limits (up to 500k).

This is a simplified alternative to PR #5723 that solves the same problem
without the complexity of caching. Ripgrep is already fast enough for
10k+ files, and the benefit of caching doesn't justify 2,200+ lines of
additional code and maintenance burden.

Fixes #5721

* fix: add missing translations for maximumIndexedFilesForFileSearch setting

* test: improve file-search tests to verify configuration behavior
2025-10-30 22:16:42 -04:00
roomote[bot]
bb640bfee7
feat: rename MCP Errors tab to Logs for mixed-level messages (#8894)
- Update McpView.tsx to use "logs" tab ID instead of "errors"
- Rename translation key from tabs.errors to tabs.logs in all locales
- Change empty state message from "No errors found" to "No logs yet"

This better reflects that the tab shows all server messages (info, warnings, errors), not just errors.

Fixes #8893

Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-30 22:12:34 -04:00
roomote[bot]
b284eddf40
fix: prevent infinite loop when canceling during auto-retry (#8902)
* fix: prevent infinite loop when canceling during auto-retry

- Add abort check after backoffAndAnnounce in first-chunk retry logic
- Add abort check after backoffAndAnnounce in mid-stream retry logic
- Properly handle task abortion to break retry loops

Fixes #8901

* docs: add critical comments explaining abort checks

- Document the importance of abort checks after backoff
- Explain how these checks prevent infinite loops
- Add context for future maintainability

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-30 19:12:30 -04:00
Dicha Zelianivan Arkana
f583be3c30
fix(context): truncate type definition to match max read line (#8509)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-30 16:55:55 -04:00
Daniel
9dfa496659
fix: make code index initialization non-blocking at activation (#8933) 2025-10-30 16:01:40 -04:00
Seth Miller
f9d6fe7985
Fix: Enhanced codebase index recovery and reuse ('Start Indexing' button now reuses existing Qdrant index) (#8588)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-30 15:59:51 -04:00
roomote[bot]
626471d103
feat: add We're hiring link to announcement modal (#8931)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-30 11:47:55 -04:00
John Richmond
59ab1f3f3c
roo provider: update session token on every request (#8923)
* roo provider: update session token on every request

* Cleanup: remove unused imports

* Also refresh token before completePrompt()
2025-10-29 22:35:51 -07:00
Daniel
ed45d1c081
feat: add zai-glm-4.6 model to Cerebras and set gpt-oss-120b as default (#8920)
* feat: add zai-glm-4.6 model and update gpt-oss-120b for Cerebras

- Add zai-glm-4.6 with 128K context window and 40K max tokens
- Set zai-glm-4.6 as default Cerebras model
- Update gpt-oss-120b to 128K context and 40K max tokens

* feat: add zai-glm-4.6 model to Cerebras provider

- Add zai-glm-4.6 with 128K context window and 40K max tokens
- Set zai-glm-4.6 as default Cerebras model
- Model provides ~2000 tokens/s for general-purpose tasks

* add [SOON TO BE DEPRECATED] warning for Q3C

* chore: set gpt-oss-120b as default Cerebras model

* Fix cerebras test: update expected default model to gpt-oss-120b

* Apply suggestion from @mrubens

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

---------

Co-authored-by: kevint-cerebras <kevin.taylor@cerebras.net>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-29 17:22:16 -04:00
Daniel
bd5807bac1
fix: Gate auth-driven Roo model refresh to active provider only (#8915) 2025-10-29 16:23:39 -04:00
Matt Rubens
ff0c65af10
Release v3.29.4 (#8906) 2025-10-29 10:00:02 -04:00
Maosghoul
414345ce7d
Feat: Add Minimax Provider (fixes #8818) (#8820)
Co-authored-by: xiaose <xiaose@minmaxi.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-29 09:51:51 -04:00
Seth Miller
f839d4c27b
fix: prevent MCP server restart when toggling tool permissions (#8633)
* fix: prevent MCP server restart when toggling tool permissions

Add isProgrammaticUpdate flag to distinguish between programmatic config
updates and user-initiated file changes. Skip file watcher processing
during programmatic updates to prevent unnecessary server restarts.

* fix(mcp): prevent server reconnection when toggling disabled state

Fixed bug where MCP servers would reconnect instead of staying disabled when toggled off. The issue was that toggleServerDisabled() used stale in-memory config instead of reading the fresh config from disk after writing the disabled flag.

Changes:
Added readServerConfigFromFile() helper to read and validate server config from disk
Updated disable path to read fresh config before calling connectToServer()
Updated enable path to read fresh config before calling connectToServer()
This ensures the disabled: true flag is properly read, causing connectToServer() to create a disabled placeholder connection instead of actually connecting the server.

+ refactor(mcp): use safeWriteJson for atomic config writes

Replace JSON.stringify + fs.writeFile with safeWriteJson in McpHub.ts
to prevent data corruption through atomic writes with file locking.

* fix(mcp): prevent race condition in isProgrammaticUpdate flag

Replace multiple independent reset timers with a single timer that gets
cleared and rescheduled on each programmatic config update. This prevents
the flag from being reset prematurely when multiple rapid updates occur,
which could cause unwanted server restarts during the file watcher's
debounce period.

+ fix(mcp): ensure isProgrammaticUpdate flag cleanup with try-finally

Wrap safeWriteJson() calls in try-finally blocks to guarantee the
isProgrammaticUpdate flag is always reset, even if the write operation
fails. This prevents the flag from being stuck at true indefinitely,
which would cause subsequent user-initiated config changes to be
silently ignored.
2025-10-28 19:42:22 -04:00
Hannes Rudolph
82b0b04b59
docs(vscode-lm): clarify VS Code LM API integration warning (#8493)
* docs(vscode-lm): clarify VS Code LM API integration blurb, provider wording, and error guidance

* fix(vscode-lm): update settings UI warning; revert package description change

* Restored

* restored

* i18n(vscode-lm): unify vscodeLmWarning text across all locales

* i18n(vscode-lm): translate vscodeLmWarning across locales
2025-10-28 19:38:18 -04:00
Dicha Zelianivan Arkana
06af804c2e
fix(modes): custom modes under custom path not showing (#8499) 2025-10-28 19:36:56 -04:00
Chris Estreich
520b2f63da
Prevent a noisy cloud agent exception (#8577) 2025-10-28 19:35:31 -04:00
Daniel
06a5c2dd19
fix: auto-sync enableReasoningEffort with reasoning dropdown selection (#8890) 2025-10-28 14:55:08 -04:00
github-actions[bot]
b5fd805cf0
Changeset version bump (#8879)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-28 13:01:05 -04:00
Daniel
be119bcc5a
Add exponential backoff for mid-stream retry failures (#8888)
* Add exponential backoff for mid-stream retry failures

- Extend StackItem with retryAttempt counter
- Extract shared backoffAndAnnounce helper for consistent retry UX
- Apply exponential backoff to mid-stream failures when auto-approval enabled
- Add debug throw for testing mid-stream retry path

* Add abort check in retry countdown loop

Allows early exit from exponential backoff if task is cancelled during delay
2025-10-28 12:55:13 -04:00
Matt Rubens
a3101aa92b
Add how it works section to reviewer landing page (#8884) 2025-10-28 10:37:40 -04:00
Matt Rubens
11f1c06413
chore: add changeset for v3.29.3 (#8878) 2025-10-27 23:32:38 -04:00
Matt Rubens
0d3817505e
Focus textbox and add newlines after adding to context (#8877) 2025-10-27 23:26:34 -04:00
roomote[bot]
49fde41616
feat: update Gemini models with latest 09-2025 versions (#8486)
* feat: update Gemini models with latest 09-2025 versions

- Add gemini-flash-latest and gemini-flash-lite-latest models
- Add gemini-2.5-flash-preview-09-2025 and gemini-2.5-flash-lite-preview-09-2025
- Reorganize models list with most recent versions at the top
- Maintain all existing models for backward compatibility

Fixes #8485

* fix: restore missing maxThinkingTokens and supportsReasoningBudget for gemini-2.5-pro-preview-03-25

Backward compatibility regression fix - these properties were accidentally
removed during reorganization and are required to preserve existing
reasoning-budget controls for users pinned to this model version.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-27 22:04:08 -04:00
Daniel
86190d8e2d
feat: Add supportsReasoning property for Z.ai GLM binary thinking mode (#8872)
* feat: Add supportsReasoning property for Z.ai GLM binary thinking mode

- Add supportsReasoning to ModelInfo schema for binary reasoning models
- Update GLM-4.5 and GLM-4.6 models to use supportsReasoning: true
- Implement thinking parameter support in ZAiHandler for Deep Thinking API
- Update ThinkingBudget component to show simple toggle for supportsReasoning models
- Add comprehensive tests for binary reasoning functionality

Closes #8465

* refactor: rename supportsReasoning to supportsReasoningBinary for clarity

- Rename supportsReasoning -> supportsReasoningBinary in model schema
- Update Z.AI GLM model configurations to use supportsReasoningBinary
- Update Z.AI provider logic in createStream and completePrompt methods
- Update ThinkingBudget UI component and tests
- Update all test comments and expectations

This change improves naming clarity by distinguishing between:
- supportsReasoningBinary: Simple on/off reasoning toggle
- supportsReasoningBudget: Advanced reasoning with token budget controls
- supportsReasoningEffort: Advanced reasoning with effort levels
2025-10-27 21:55:26 -04:00
Matt Rubens
b72d55ef45
Enabled reasoning in Roo provider (#8874) 2025-10-27 21:15:02 -04:00
roomote[bot]
3cbdbc2af6
feat: add settings to configure time and cost in system prompt (#8451)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-10-27 18:40:16 -04:00
Daniel
fceb413047
Fix LiteLLM test failures after merge (#8870)
* Use monotonic clock for rate limiting

* Fix LiteLLM test failures after merge

- Remove supportsComputerUse from LiteLLM implementation as it's no longer part of ModelInfo interface
- Update test expectations to include cacheWritesPrice and cacheReadsPrice fields
- Fix test for max_output_tokens preference functionality

---------

Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com>
2025-10-27 16:27:26 -05:00
Christiaan Arnoldus
c232057e54
Use monotonic clock for rate limiting (#8456) 2025-10-27 17:01:54 -04:00
roomote[bot]
bde2c3cec6
fix: use max_output_tokens when available in LiteLLM fetcher (#8455)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-27 16:58:45 -04:00
roomote[bot]
13d20bbe8b
fix: process queued messages after context condensing completes (#8478)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-27 16:57:34 -04:00
Daniel
cff65b4f5e
fix: resolve checkpoint menu popover overflow (#8867) 2025-10-27 16:01:44 -04:00
github-actions[bot]
7926dcf00e
Changeset version bump (#8866)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-27 15:06:47 -04:00
Matt Rubens
edcf6d9356
chore: add changeset for v3.29.2 (#8865) 2025-10-27 15:02:42 -04:00
Matt Rubens
84cf332f19
Make sure not to show prices for free models (#8864) 2025-10-27 14:58:43 -04:00
roomote[bot]
e76ac42455
feat: add LongCat-Flash-Thinking-FP8 models to Chutes AI provider (#8426)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-27 13:48:10 -04:00
roomote[bot]
634b1df175
fix: Remove specific Claude model version from settings descriptions (#8437)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-10-27 12:11:01 -04:00
Matt Rubens
b92a22b0c1
Fix caching logic in Roo provider (#8860) 2025-10-27 10:12:28 -04:00
github-actions[bot]
bd1f890589
Changeset version bump (#8855)
* changeset version bump

* Update CHANGELOG for version 3.29.1 release

Updated version number and added release notes for 3.29.1.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-26 22:28:01 -04:00
Matt Rubens
0e0b5c7056
Release v3.29.1 (#8854)
chore: add changeset for v3.29.1
2025-10-26 22:24:11 -04:00
Matt Rubens
f5d7ba1959
Fix provider model loading race conditions (#8836) 2025-10-26 00:56:01 -04:00
roomote[bot]
8870348bd3
feat: add Google Ads conversion tracking to reviewer page (#8831)
* feat: add Google Ads conversion tracking to reviewer page

* fix: add asChild prop to first button to prevent invalid HTML nesting

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-25 21:23:05 -07:00
roomote[bot]
f7009e9b94
fix: change Add to Context keybinding to avoid Redo conflict (#8653)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-25 23:53:45 -04:00
roomote[bot]
98b8d5b005
fix: adjust GLM-4.6-turbo max output tokens to prevent context limit errors (#8822)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-25 14:08:27 -04:00
github-actions[bot]
97331bcb2e
Changeset version bump (#8807)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-24 17:51:45 -04:00
Matt Rubens
6428d099fa
chore: add changeset for v3.29.0 (#8806)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-24 17:46:06 -04:00
Dicha Zelianivan Arkana
aae255d1b8
fix(export): exclude max tokens field for models that don't support it (#8464) 2025-10-24 16:20:31 -04:00
Daniel
a84f7ef77f
fix: respect nested .gitignore files in search_files (#8804) 2025-10-24 16:16:22 -04:00
Drake Thomsen
b33c082300
Chore: Update magistral-medium-latest in mistral.ts (#8364)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-24 16:12:54 -04:00
Matt Rubens
19e06900ee
Fix checkpoints test (#8803) 2025-10-24 10:18:19 -04:00
roomote[bot]
ad56791c3e
fix: preserve trailing newlines in stripLineNumbers for apply_diff (#8227)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-24 10:16:00 -04:00
Matt Rubens
1a9e7ca233
Handle Roo provider pricing correctly (#8802) 2025-10-24 10:07:14 -04:00
Daniel
485b551cf3
Improve checkpoint menu translations for PR #7841 (#8796)
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <wuyoubin0504@gmail.com>
2025-10-24 10:03:03 -04:00
roomote[bot]
ab9a48578c
feat: add dynamic model loading for Roo Code Cloud provider (#8728)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-24 00:58:34 -04:00
NaccOll
f4121e2568
Add checkpoint initialization timeout settings and fix checkpoint timeout warnings (#8019)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-23 22:18:58 -04:00
Daniel
3349c02595
feat: improve auto-approve button responsiveness (#8798)
- Add responsive breakpoint at 300px for compact view
- Icon correctly reflects state (X when off, ✓ when on) at all screen sizes
- Show abbreviated labels on very narrow screens (< 300px)
- Add triggerLabelOffShort translation key to all locales

Fixes issues from PR #8152:
- Icon always showing checkmark on narrow screens
- Breakpoint activating too early (was 400px)
- Incorrect Tailwind class ordering
2025-10-23 21:25:57 -04:00
Daniel
4f084f89e4
fix: retry API requests on stream failures instead of aborting task (#8794) 2025-10-23 16:54:51 -05:00
Chris Estreich
ac88d66194
Remove a very verbose error for cloud agents (#8795) 2025-10-23 12:37:45 -07:00
Daniel
93c13e2d13
feat: add token-budget based file reading with intelligent preview (#8789)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-23 15:35:43 -04:00
Daniel
b9110dc243
fix: always show checkpoint restore options regardless of change detection (#8758) 2025-10-23 10:30:39 -04:00
roomote[bot]
8187a8e189
fix: update X/Twitter username from roo_code to roocode (#8780)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-22 16:27:08 -04:00
Hannes Rudolph
026cbd58d3
feat: add 'anthropic/claude-haiku-4.5' to prompt caching models (#8764)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-22 11:05:26 -04:00
Bruno Bergher
a97cda1da0
web: Updates CTA link in /reviewer to send people to /cloud-agents/welcome (#8774) 2025-10-22 11:02:55 -04:00
Bruno Bergher
c74e42bde4
web: Dynamic OpenGraph images (#8773)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-22 10:04:28 -04:00
Mohammad Danaee nia
9ac1d6ea14
feat: add GLM-4.6-turbo model to chutes ai provider (#8502)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-10-22 09:59:51 -04:00
Matt Rubens
6173a59fb1
Update text for clarity in reviewer page (#8753) 2025-10-22 09:37:17 -04:00
Matt Rubens
6fa6c3c1e6
Skip failing tools tests (#8767) 2025-10-22 01:07:02 -04:00
roomote[bot]
d9ed33db67
Enable browser-use tool for all image-capable models (#8121)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-21 22:23:42 -04:00
Hannes Rudolph
34392dd4dd
Z.ai: add GLM-4.5-X, AirX, Flash (expand model coverage) (#8745)
* feat(zai): add GLM-4.5-X, AirX, Flash; sync with Z.ai docs; keep canonical api line keys

* feat(zai): add GLM-4.5V vision model (supportsImages, pricing, 16K max output); add tests

* feat(types,zai): sync Z.AI international model map and tests
- Update pricing, context window, and capabilities for:
  glm-4.5-x, glm-4.5-airx, glm-4.5-flash, glm-4.5v, glm-4.6
- Add glm-4-32b-0414-128k
- Align tests with new model specs

* fix(zai): align handler generics with expanded model ids to satisfy CI compile step

* chore(zai): remove tier pricing blocks for Z.ai models

* fix(zai): simplify names in zaiApiLineConfigs for clarity

* chore(zai): set default temperature to 0.6

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-21 14:58:07 -06:00
Hannes Rudolph
6ffdd440ce
Remove GPT‑5 instructions/reasoning_summary from UI message metadata to prevent ui_messages.json bloat (#8756)
chore(gpt5): stop persisting instructions/reasoning_summary in UI message metadata

Problem: ui_messages.json was getting bloated with unused or duplicated content (system 'instructions' and 'reasoning_summary') that we do not read back. Root cause: earlier OpenAI Responses API implementation persisted these fields to per-message metadata; however, 'instructions' are already sent as top-level request instructions and 'reasoning_summary' is surfaced live via streaming events. Neither field is consumed from storage. Changes: (1) Task.persistGpt5Metadata now stores only previous_response_id; (2) removed instructions and reasoning_summary from types; (3) updated Zod schema; (4) persistence layer writes messages as-is (no sanitizer); (5) tests green. Impact: smaller ui_messages.json, no runtime behavior change for requests. Migration: old metadata fields will be ignored by schema.
2025-10-21 14:55:29 -06:00
Bruno Bergher
f3a505fd36
web: Landing page for the reviewerFirst pass (#8740)
* First pass

* SEO

* Update apps/web-roo-code/src/app/reviewer/page.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-20 23:24:17 -04:00
Chris Estreich
4e6c717915
Try a 5s status mutation timeout (#8734) 2025-10-20 15:36:05 -07:00
laz-001
e04b27973d
Fix link text for Roomote Control in README (#8742) 2025-10-20 17:00:39 -04:00
roomote[bot]
3c7437e22a
docs: update Configuring Profiles video link (#8189)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-20 14:06:28 -04:00
Bruno Bergher
a8f87d2b1d
web: Leftover white bg (#8719)
Leftover white bg
2025-10-18 06:49:35 -04:00
Matt Rubens
f360c4e08b
Add Intercom as a subprocessor (#8718) 2025-10-17 22:49:49 -04:00
Hannes Rudolph
c8d1a9d699
Normalize docs-extractor audience tags; remove admin/stakeholder; strip tool invocations (#8717)
docs(extractor): normalize audience to type="user"; remove admin/stakeholder; strip tool invocation examples
2025-10-17 19:17:38 -04:00
github-actions[bot]
868117eeae
Changeset version bump (#8716)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-17 17:11:29 -04:00
Matt Rubens
7dcfca7df5
chore: add changeset for v3.28.18 (#8715) 2025-10-17 17:06:19 -04:00
Matt Rubens
236957b818
Revert cloud agents for now (#8713) 2025-10-17 16:59:16 -04:00
Bruno Bergher
f30caf277c
web: Mobile image in /cloud (#8705) 2025-10-17 13:06:42 -04:00
Christiaan Arnoldus
3aa9762d04
Update image generation model selection (#8698) 2025-10-17 10:07:27 -04:00
Matt Rubens
49349e5661
Left align the welcome title (#8700) 2025-10-17 09:40:34 -04:00
Matt Rubens
4405f5a0b3
Remove request content from UI messages (#8696) 2025-10-17 07:34:27 -04:00
Hannes Rudolph
0e7a878fa5
feat: Z AI: only two coding endpoints (#8687) (#8693) 2025-10-17 00:33:53 -04:00
Bruno Bergher
0978ba3996
feat: Cloud agents in extension (#8470)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-17 00:18:16 -04:00
roomote[bot]
6d6b836480
feat: Add userAgent to Bedrock client for version tracking (#8663)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-16 23:08:38 -04:00
Bruno Bergher
9aee31f28a
web: Cloud page and updates to Pricing to explain Cloud Agent Credits (#8605)
* Adds mention of Cloud agents to /pricing

* Credit pricing FAQ

* Skeleton of a /cloud page and more pricing page tweaks

* Lint

* Update apps/web-roo-code/src/app/cloud/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Code review

* Updates copy to new credit system

* Moves Terms of Service to be backed by a markdown file, easier to read/edit/diff

* Updated ToS

* Twerm copy tweaks

* Cloud screenshot and style adjustments

* Style tweaks

* Styles

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-10-16 16:01:19 -07:00
Chris Hasson
270dce5050
fix(editor): prevent file editing issues when git diff views are open (#8676)
* fix(editor): prevent file editing issues when git diff views are open

Add scheme checks to ensure only file:// URIs are matched when finding editors,
avoiding issues with git diffs and other schemes. Includes error logging for
failed editor lookups.

* Remove the warnings

* fix(editor): enforce file:// scheme in editor lookups to prevent git diff issues

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-15 21:43:47 -04:00
github-actions[bot]
1a3a873002
Changeset version bump (#8675)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-15 19:07:09 -04:00
Matt Rubens
932beabbb0
Release v3.28.17 (#8674) 2025-10-15 19:04:03 -04:00
Daniel
e5216c689e
Add Claude Haiku 4.5 (#8673) 2025-10-15 15:55:32 -05:00
Peter Dave Hello
6b8c21f873
fix(i18n): Update zh-TW run command title (#8631) 2025-10-12 12:59:48 -05:00
github-actions[bot]
3a47c55a2e
Changeset version bump (#8593)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-09 23:57:36 -04:00
Matt Rubens
06189f65ab
chore: add changeset for v3.28.16 (#8592) 2025-10-09 23:51:41 -04:00
Colby Serpa
bdc91b2aef
feat: Add Claude Sonnet 4.5 1M context window support for Claude Code… (#8586)
feat: Add Claude Sonnet 4.5 1M context window support for Claude Code provider
2025-10-09 19:08:16 -04:00
Matt Rubens
507a600ee9
Revert "Clamp GPT-5 max output tokens to 20% of context window" (#8582) 2025-10-09 13:00:51 -04:00
Chris Estreich
b011b63c93
Identify cloud tasks in the extension bridge (#8539) 2025-10-08 20:54:08 -07:00
Matt Rubens
eeaafef786
Revert "feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud" (#8559) 2025-10-07 21:37:10 -04:00
Bruno Bergher
cd8036d2d8
feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud (#8415)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: SannidhyaSah <sah_sannidhya@outlook.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-10-07 17:48:23 -04:00
Matt Rubens
5a3f911321
Release: v1.82.0 (#8535) 2025-10-06 11:31:13 -04:00
Matt Rubens
28b642d28c
Add the parent task ID in telemetry (#8532) 2025-10-06 11:30:01 -04:00
Matt Rubens
85b0e8a280
Release: v1.81.0 (#8519) 2025-10-05 10:17:44 -04:00
Matt Rubens
960958a6da
fix: add ollama and lmstudio to MODELS_BY_PROVIDER (#8511)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-05 10:16:09 -04:00
Daniel
97f968673f
Clamp GPT-5 max output tokens to 20% of context window (#8495) 2025-10-03 12:41:51 -04:00
github-actions[bot]
8c6587a690
Changeset version bump (#8492)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-10-03 10:32:44 -04:00
Matt Rubens
5a4aab13c4
chore: add changeset for v3.28.15 (#8491) 2025-10-03 10:22:59 -04:00
renovate[bot]
18e5c194e7
chore(deps): update dependency glob to v11.0.3 (#7767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:01:15 -04:00
renovate[bot]
7b4f074b9e
chore(deps): update dependency vite to v6.3.6 [security] (#7838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:00:33 -04:00
roomote[bot]
38c8028528
fix: properly reset cost limit tracking when user clicks "Reset and Continue" (#6890)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-03 09:56:34 -04:00
roomote[bot]
1de480b383
fix: improve save button activation in prompts settings (#5780) (#8267)
Co-authored-by: MuriloFP <muriloferreira2@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-03 09:55:54 -04:00
Matt Rubens
7ba8e33d03
Deprecate free grok 4 fast (#8481)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-03 00:14:38 -04:00
Mohammad Danaee nia
8622d93f59
feat: add new DeepSeek and GLM models with detailed descriptions to the Chutes provider (#8467) 2025-10-02 11:44:13 -04:00
John Richmond
13534cc8b7
Release: v1.80.0 (#8442)
chore: bump version to v1.80.0
2025-10-01 10:12:22 -07:00
roomote[bot]
c8a8188f8c
feat: add UsageStats schema and type (#8441)
feat: add UsageStats schema and type to cloud.ts

Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-01 09:50:50 -07:00
Bruno Bergher
9bcd9918af
fix: Addresses overeager 'there are unsaved changes' dialog in settings (#8410)
Fixes overeager 'there are unsaved changes' dialog in settings
2025-10-01 07:39:12 -04:00
Matt Rubens
f8ed7a7931
Add structured data to the homepage (#8427)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-09-30 23:53:20 -04:00
roomote[bot]
3e47e88c01
fix: show send button when only images are selected in chat textarea (#8423)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-30 17:12:53 -04:00
Matt Rubens
c552027960
Include reasoning messages in cloud tasks (#8401) 2025-09-30 15:49:30 -04:00
SannidhyaSah
e33efc6242
chore: Remove unsupported Gemini 2.5 Flash Image Preview free model (#8359) 2025-09-30 15:33:01 -04:00
Matt Rubens
9af9d5b021
A couple more sonnet 4.5 fixes (#8421) 2025-09-30 14:28:23 -04:00
github-actions[bot]
9f41ee098d
Changeset version bump (#8414)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-30 09:38:32 -04:00
Matt Rubens
4ec921c57d
chore: add changeset for v3.28.14 (#8413) 2025-09-30 09:33:50 -04:00
roomote[bot]
9e98d1aef6
feat: add GLM-4.6 model support for z.ai provider (#8408)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-30 09:26:34 -04:00
github-actions[bot]
702b269a1b
Changeset version bump (#8394)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-29 19:25:10 -04:00
Matt Rubens
d25a8d713e
chore: add changeset for v3.28.13 (#8393) 2025-09-29 19:21:58 -04:00
Daniel
7b7bb49572
fix: remove topP parameter from Bedrock inference config (#8388)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-29 19:17:47 -04:00
Matt Rubens
8111da66bd
Fix Vertex Sonnet 4.5 (#8391) 2025-09-29 19:16:52 -04:00
github-actions[bot]
2502058046
Changeset version bump (#8376)
* changeset version bump

* Revise changelog for version 3.28.12

Updated version number and consolidated patch notes.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-29 18:10:33 -04:00
Matt Rubens
8b74af9938
chore: add changeset for v3.28.12 (#8385) 2025-09-29 18:01:34 -04:00
Daniel
b26449575d
fix: Anthropic Sonnet 4.5 model id + Bedrock 1M context checkbox (#8384)
fix(anthropic): use claude-sonnet-4-5 id
fix(bedrock): enable 1M context checkbox for Sonnet 4.5 via shared list
closes #8379
closes #8381
2025-09-29 17:49:50 -04:00
github-actions[bot]
f3b3751b48
Changeset version bump (#8375)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-29 14:55:02 -04:00
Matt Rubens
46f0ae6982
chore: add changeset for v3.28.11 (#8374) 2025-09-29 14:51:29 -04:00
Daniel
6759687180
fix: correct Claude Sonnet 4.5 model ID format (#8373) 2025-09-29 14:47:00 -04:00
roomote[bot]
c57539d4b5
fix: correct AWS Bedrock Claude Sonnet 4.5 model identifier (#8372)
Fixes #8371 - Updates the model ID from anthropic.claude-4.5-sonnet-v1:0
to anthropic.claude-sonnet-4-5-20250929-v1:0 to match AWS Bedrock naming convention

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-29 14:41:43 -04:00
github-actions[bot]
de77055720
Changeset version bump (#8370)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-29 14:10:35 -04:00
Matt Rubens
06ccab6dd7
chore: add changeset for v3.28.10 (#8369) 2025-09-29 14:04:52 -04:00
Daniel
6a91385f05
feat: add Claude 4.5 Sonnet model across all providers (#8368) 2025-09-29 14:04:40 -04:00
Hannes Rudolph
c943ba7875
ci: refresh contrib.rocks cache workflow (#8083) 2025-09-29 13:17:05 -04:00
Bruno Bergher
ded23b72b7
web: Testimonials (#8360)
* Adds lots of testimonials, 5-stars from marketplace

* Fits more testimonials in one page

* Testimonial heading tweak
2025-09-29 06:12:42 -04:00
Matt Rubens
a57528dc8e
Make chat icons shrink-0 (#8343) 2025-09-26 23:33:29 -04:00
roomote[bot]
602901fa0f
fix: use max_completion_tokens for GPT-5 models in LiteLLM provider (#6980)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-26 23:16:20 -04:00
Matt Rubens
b5c58b64aa
Track when telemetry settings change (#8339) 2025-09-26 22:48:33 -04:00
github-actions[bot]
28a7e4cd5c
Changeset version bump (#8337)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-26 15:56:15 -04:00
Matt Rubens
5458e8e05f
chore: add changeset for v3.28.9 (#8336) 2025-09-26 15:49:47 -04:00
Matt Rubens
8a7d90e43b
Upgrade Supernova (#8330) 2025-09-26 15:37:36 -04:00
roomote[bot]
5e218febdb
fix: remove <thinking> tags from prompts for cleaner output and fewer tokens (#8319)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-09-26 10:30:09 -04:00
Bruno Bergher
a1e6948b1b
web: More website copy tweaks (#8326)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-26 10:12:00 -04:00
Daniel
87d50a78cb
refactor: remove pr-reviewer mode (#8222) 2025-09-25 17:44:49 -05:00
Bruno Bergher
7fd01ab2a0
wip: Website Improvements (#8303)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-25 16:31:04 -04:00
Matt Rubens
8485548f53
Show the Roo provider on the welcome screen (#8317) 2025-09-25 16:13:04 -04:00
John Costa
a0d6a4b4f9
removing user hint when refreshing models (#7710) 2025-09-25 15:22:16 -04:00
Hannes Rudolph
ab0644d367
Correct tool use suggestion to improve model adherence to suggestion (#8315)
* Correct tool use suggestion to improve model adherence to suggestion

* tweak
2025-09-25 11:53:31 -06:00
roomote[bot]
d959e88a97
feat: Add telemetry tracking to DismissibleUpsell component (#8309)
* feat: add telemetry tracking to DismissibleUpsell component

- Added UPSELL_DISMISSED and UPSELL_CLICKED events to TelemetryEventName enum
- Updated DismissibleUpsell component to track clicks and dismissals with telemetry
- Added telemetry tests to DismissibleUpsell test suite
- Events include upsellId in the payload for tracking specific upsells

* refactor(webview): make handleDismiss synchronous in DismissibleUpsell

test(webview): add scenario where dismissOnClick=true without onClick tracks only UPSELL_DISMISSED; update tests; all tests passing locally

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-25 13:29:43 -04:00
roomote[bot]
43c1de0d7e
feat: log out from cloud when resetting extension state (#8312)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-25 12:24:46 -04:00
github-actions[bot]
bf1aafad9b
Changeset version bump (#8306)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-25 10:25:30 -04:00
Matt Rubens
37a175c4ed
Release v3.28.8 (#8305) 2025-09-25 10:15:34 -04:00
Matt Rubens
b75f8dd274
Add a couple more free models to the Roo provider (#8304) 2025-09-25 10:00:40 -04:00
Hannes Rudolph
798801d582
Fix frequent "No tool used" errors by clarifying tool-use rules (#8292) 2025-09-25 09:24:46 -04:00
Hannes Rudolph
2f1b94f430
fix: include initial ask in condense summarization (#8293) (#8298)
* fix: include initial ask in condense summarization (#8293)

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-24 23:14:44 -06:00
Matt Rubens
d3d0967fc3
Show cloud switcher and option to add a team when logged in (#8291) 2025-09-24 16:42:06 -04:00
Chris Estreich
25f61943ca
Set port 3446 for web-evals in production mode (#8288) 2025-09-24 08:43:05 -07:00
Bruno Bergher
205f3e4242
web: Opengraph image (#8285)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-24 09:18:55 -04:00
github-actions[bot]
8dbd8c4b1b
Changeset version bump (#8271)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-23 19:14:03 -04:00
Matt Rubens
c5269f3262
chore: add changeset for v3.28.7 (#8268) 2025-09-23 18:59:42 -04:00
Matt Rubens
fc4ee93585
Remove org switcher tooltip (#8269) 2025-09-23 18:59:06 -04:00
Bruno Bergher
d8dd19a6ed
ux: Collapse thinking blocks by default (but control all of them with a keyboard shortcut) (#8254)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-23 18:48:04 -04:00
roomote[bot]
35791d03d3
fix: checkpoint restore popover positioning issue (#8219) (#8220)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-23 18:35:46 -04:00
Matt Rubens
0682629ac8
Cloud account switcher (#8223)
* Cloud account switcher

* Bare metal evals fixes (#8224)

Co-authored-by: Roo Code <roomote@roocode.com>

* Rounded icons in chat account switcher

* Visual tweaks to CloudView

* Remove hardcoded timeout

* Safer check

* PR feedback

* Fix test

* Check for org mismatches in handleCredentialsChange

* Cloud: use the existing auth event flow to handle org switching

* Cleanup: broadcast() might be confusingly named.

---------

Co-authored-by: Chris Estreich <cestreich@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-09-23 18:18:28 -04:00
roomote[bot]
382ab63ea1
feat: add zai-org/GLM-4.5-turbo model to Chutes provider (#8157)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-23 17:33:44 -04:00
Matt Rubens
f47a2b8b1d
Add image for 3.28.5 (#8266) 2025-09-23 14:19:35 -04:00
github-actions[bot]
44cbee5e75
Changeset version bump (#8262)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-23 14:02:01 -04:00
Matt Rubens
606167209d
chore: add changeset for v3.28.6 (#8263) 2025-09-23 13:54:18 -04:00
Chris Estreich
19c36068cb
Follow-up questions should trigger the "interactive" state (#8259) 2025-09-23 13:47:00 -04:00
Matt Rubens
8e9a266256
chore: add changeset for v3.28.6 (#8261) 2025-09-23 13:43:44 -04:00
Daniel
1a4fb7f91c
feat(types): add GPT-5-Codex model (#8260) 2025-09-23 13:35:44 -04:00
roomote[bot]
807cc999a5
feat: add package.nls.json checking to find-missing-translations script (#8255)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-23 11:10:23 -04:00
roomote[bot]
12f94fc727
fix: respect Ollama Modelfile num_ctx configuration (#7798)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-22 23:08:09 -04:00
roomote[bot]
60ba5411b7
fix: prevent checkpoint text from wrapping in non-English languages (#8207)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-22 23:02:43 -04:00
Daniel
9dabb85007
Fix: Improve reasoning block formatting for better readability (#7868) 2025-09-22 23:02:11 -04:00
Chris Estreich
0e1b23d09c
Bare metal evals fixes (#8224)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-22 12:54:56 -07:00
Bruno Bergher
6c2aa63cfd
feat: Add keyboard shortcut for toggling auto-approve (Cmd/Ctrl+Alt+A) (#8214)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-22 11:26:29 -04:00
Matt Rubens
6a4dab0dfa
Remove language selection and word wrap toggle from CodeBlock (#8208) 2025-09-21 23:05:08 -04:00
github-actions[bot]
ceb9d2b9f2
Changeset version bump (#8199)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-20 14:29:01 -07:00
Matt Rubens
95e42350d0
Release v3.28.5 (#8198)
chore: add changeset for v3.28.5
2025-09-20 16:33:28 -04:00
Matt Rubens
32d7e6f2ad
Add an announcement for Supernova (#8197)
* Add an announcement for Supernova

* Remove duplicate keys
2025-09-20 16:28:28 -04:00
Matt Rubens
1533efc1ea
Wrap code blocks by default (#8194) 2025-09-20 12:08:09 -04:00
Hannes Rudolph
d956cdb727
Fix duplicate rehydrate during reasoning; centralize rehydrate and preserve cancel metadata (#8171)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-20 00:34:21 -04:00
Jorge Piedrahita Ortiz
d6cb396271
update sambanova models (#8186)
* update sambanova models

* fix typo
2025-09-19 22:50:37 -04:00
roomote[bot]
c0e2c5ef5b
fix: apply tiered pricing for Gemini models via Vertex AI (#8018)
* fix: apply tiered pricing for Gemini models via Vertex AI

- Modified calculateCost method to handle models where cacheReadsPrice is only defined in tiers
- Added comprehensive tests for Vertex AI tiered pricing calculation
- Fixes issue where local cost calculation always showed highest tier rates

Fixes #8017

* Delete src/api/providers/__tests__/vertex-tiered-pricing.spec.ts

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-09-19 22:49:42 -04:00
James Edward Dillard
c1e0cdc3cd
Updating the privacy policy to allow us to send occasional emails (#8180)
* Updating the privacy policy to allow us to send onboarding and occasional marketing emails.

* docs: Clarified unsubscribe behavior and updated the Last Updated date

* docs: update Last Updated date in Privacy Policy page
2025-09-19 22:47:21 -04:00
roomote[bot]
f7a6589719
fix: support dash prefix in parseMarkdownChecklist for todo lists (#8055)
- Updated regex pattern to support optional dash prefix (e.g., "- [ ] Task")
- Added comprehensive test coverage for both formats
- Fixes issue where todo lists with dash prefixes were not being parsed correctly

Fixes #8054

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-19 22:45:46 -04:00
github-actions[bot]
b75ef1dd83
Changeset version bump (#8183)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-19 16:55:05 -04:00
Matt Rubens
8214672517
chore: add changeset for v3.28.4 (#8182) 2025-09-19 16:51:21 -04:00
Matt Rubens
ac4eda9450
Supernova (#8175)
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-09-19 13:31:54 -07:00
Bruno Bergher
07684c017d
bug: Incorrect copy for "Run" command when approving execution (#8179) 2025-09-19 14:40:23 -04:00
Bruno Bergher
f934363beb
ux: Redesigned Message Feed (#7985)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-19 09:30:13 -04:00
Matt Rubens
513fce3f59
Add cookie policy (#8165) 2025-09-18 16:43:44 -04:00
Matt Rubens
765e3a06f1
Add a list of sub-processors (#8163) 2025-09-18 16:11:45 -04:00
roomote[bot]
87b45def18
Fix: Transform keybindings in nightly build to fix command+y shortcut (#8070)
* fix: transform keybindings command references in nightly build

The keybindings section was not being transformed during the nightly build process, causing command+y keybinding to reference the wrong command name (roo-cline.addToContext instead of roo-code-nightly.addToContext).

- Added keybindings schema to types.ts
- Updated generatePackageJson to transform keybindings command references
- This ensures keybindings work correctly in the nightly build

* fix: only include keybindings in output when they exist

Updated generatePackageJson to conditionally add keybindings to avoid including undefined values in the generated package.json. Fixed eslint-disable comment placement.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-17 19:27:43 -04:00
Chris Estreich
a255c95bd0
Get the model id property for a given provider (#8009) 2025-09-17 15:24:27 -07:00
John Richmond
b1c104e20f
Release: v1.78.0 (#8089)
chore: bump version to v1.78.0
2025-09-17 14:43:39 -07:00
roomote[bot]
961338e0ef
Add organizationFeaturesSchema with roomoteControlEnabled (#8085)
feat: add organizationFeaturesSchema with roomoteControlEnabled

- Add organizationFeaturesSchema with optional roomoteControlEnabled boolean
- Integrate features property into organizationSettingsSchema as optional
- Add comprehensive tests for new schema validation
- Maintain backward compatibility with existing organization settings

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-17 14:31:12 -07:00
Hannes Rudolph
c837025d48
Docs: Overhaul README (#8005)
* docs: overhaul README for clarity and impact

* fix: update badge links and styles in README for improved visibility

* docs(README): stronger CTAs for Discord/Reddit; restore Modes/Roles incl. cloud agents

* docs(readme): add support CTA; refine modes section; clarify custom modes wording

- add centered help/links CTA under badges: [README.md](README.md:8-10)
- expand feature list to explicitly include modes: [README.md](README.md:45)
- rename section header “Modes and Roles” → “Modes”: [README.md](README.md:52)
- update wording to “Custom Modes: build specialized modes for your team or workflow”: [README.md](README.md:60)

* docs: implement @jdilla1277 suggestions for English README

- Updated header to "Your AI-Powered Dev Team, Right in Your Editor" (removed Cline reference)
- Changed line 44 to "Generate Code from natural language descriptions and specs" for better SEO
- Removed "not the other way around" phrase from line 54
- Replaced "Cloud Agents" with "Roomote Control" on line 61

As requested by @hannesrudolph, these changes are only applied to the English README.

* docs: clarify Roomote Control description and update related links in README

* Reworked the contributor list. Made translastion corrections.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-17 14:32:42 -06:00
Daniel
7b1e3a0ee5
feat(cloud): Add telemetry retry queue for network resilience (#7597)
* feat(cloud): Add telemetry retry queue for network resilience

- Implement RetryQueue class with workspace-scoped persistence
- Queue failed telemetry events for automatic retry
- Retry events every 60 seconds with fresh auth tokens
- FIFO eviction when queue reaches 100 events
- Persist queue across VS Code restarts

This ensures telemetry data isn't lost during network failures or temporary server issues.
Migrated from RooCodeInc/Roo-Code-Cloud#744

* fix: address PR review feedback for retry queue

- Fix retry order to use consistent FIFO processing
- Add retry limit enforcement with max retries check
- Add configurable request timeout (default 30s)
- Add comprehensive tests for retryAll() method
- Add request-max-retries-exceeded event
- Fix timeout test to avoid timing issues

* fix: resolve TypeScript errors in RetryQueue tests

* fix(cloud): Address PR feedback for telemetry retry queue

- Handle HTTP error status codes (500s, 401/403, 429) as failures that trigger retry
- Remove queuing of backfill operations since they're user-initiated
- Fix race condition in concurrent retry processing with isProcessing flag
- Add specialized retry logic for 429 with Retry-After header support
- Clean up unnecessary comments
- Add comprehensive tests for new status code handling
- Add temporary debug logs with emojis for testing

* refactor: address PR feedback for telemetry retry queue

- Remove unused X-Organization-Id header from auth header provider
- Simplify enqueue() API by removing operation parameter
- Fix error retry logic: only retry 5xx, 429, and network failures
- Stop retrying 4xx client errors (400, 401, 403, 404, 422)
- Implement queue-wide pause for 429 rate limiting
- Add auth state management integration:
  - Pause queue when not in active-session
  - Clear queue on logout or user change
  - Preserve queue when same user logs back in
- Remove debug comments
- Fix ESLint no-case-declarations error with proper block scope
- Update tests for all new behaviors
2025-09-17 09:21:31 -07:00
Bruno Bergher
6ac6a928cd
ux: Responsive Auto-Approve (#8032)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-09-17 10:55:16 -04:00
James Edward Dillard
dcc6db00c7
feat(web): update homepage headline and tagline for remote control capabilities (#7911) 2025-09-16 22:22:26 -04:00
Matt Rubens
2263d86a20
Types 1.77.0 (#8031) 2025-09-16 15:20:38 -04:00
Matt Rubens
dd20af23bb
Release: v1.76.0 (#8030) 2025-09-16 14:39:11 -04:00
roomote[bot]
2819120216
feat: add GDPR-compliant cookie consent banner (#8022)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-16 14:34:19 -04:00
roomote[bot]
6d8de53c8f
fix: skip flaky Windows test in custom-system-prompt.spec.ts (#8023)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-16 13:47:56 -04:00
roomote[bot]
297c85ff87
feat: remove web-docs app (#8027)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-16 12:39:34 -04:00
github-actions[bot]
4fe051f4b5
Changeset version bump (#8026)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-16 12:19:46 -04:00
Matt Rubens
3c2fd1d3d3
Release v3.28.3 (#8025) 2025-09-16 12:10:20 -04:00
roomote[bot]
fc9c395af2
feat: Replace + icon with edit icon for New Task button (#7942)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-16 11:55:17 -04:00
roomote[bot]
cde738a450
fix: handle square bracket HTML entities in Gemini responses (#7577)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-16 11:53:52 -04:00
roomote[bot]
6fe90713ab
fix: filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (#7818)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-16 11:51:17 -04:00
Bruno Bergher
3d45d4aa13
feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (#8024)
* Visual improvements and code cleanup (removes duplication)

* Brings back an 'enabled' toggle for auto-approve
2025-09-16 08:59:17 -04:00
roomote[bot]
c987417889
feat: Reposition Add Image button inside ChatTextArea (#7989)
* feat: move Add Image button inside ChatTextArea

- Moved Add Image button from bottom toolbar to top-right inside text area
- Repositioned Enhance Prompt button to be above Send button (bottom-right)
- Both buttons now follow similar positioning pattern as Send button
- Maintains consistent button styling and transitions

* fix: corrected C# tree-sitter query (#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Mubeen Zulfiqar <mubeen_zulfiqar@yahoo.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Add Z.ai coding plan support (#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (#7951)

* feat: add keyboard shortcut for "Add to Context" action (#7908)

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* fix: handle ByteString conversion errors in OpenAI embedders (#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (#8014)

* Visual tweaks

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Mubeen Zulfiqar <mubeen_zulfiqar@yahoo.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <wuyoubin0504@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-09-16 07:41:37 -04:00
Hannes Rudolph
ee58c5d0fa
CONTRIBUTING.md tweaks and issue template rewrite (#8014) 2025-09-16 00:29:45 -04:00
Daniel
759454b455
fix: handle ByteString conversion errors in OpenAI embedders (#8008) 2025-09-15 22:56:20 -04:00
roomote[bot]
beb0a59470
feat: add keyboard shortcut for "Add to Context" action (#7908)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-15 22:53:40 -04:00
NaccOll
358519db38
Fix context menu is obscured when edit message. (#7951) 2025-09-15 22:43:31 -04:00
dependabot[bot]
68c5be8030
chore(deps): bump axios from 1.9.0 to 1.12.0 (#7963)
Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 15:48:36 -07:00
Daniel
3fe2918e67
Add Z.ai coding plan support (#8003) 2025-09-15 17:53:20 -04:00
roomote[bot]
94b4511053
feat: Move slash commands to Settings tab with gear icon for discoverability (#7988)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Mubeen Zulfiqar <mubeen_zulfiqar@yahoo.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-15 15:41:00 -04:00
Mubeen Zulfiqar
1b4819c086
fix: corrected C# tree-sitter query (#7813) 2025-09-15 14:10:45 -04:00
Bruno Bergher
9d33c109c9
ux: Makes text area buttons appear only when there's text (#7987) 2025-09-15 11:01:25 -04:00
github-actions[bot]
d54ff8a604
Changeset version bump (#7980)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-14 15:16:24 -04:00
Matt Rubens
3be0a96851
chore: add changeset for v3.28.2 (#7979) 2025-09-14 15:12:15 -04:00
Matt Rubens
c79cb297a5
Remove chevrons from chat buttons (#7970) 2025-09-14 15:02:42 -04:00
Chris Estreich
b309a6ad8b
Disable Roomote Control on logout (#7976) 2025-09-14 10:47:16 -07:00
Bruno Bergher
9ea7173a3e
ux: Smaller and more subtle auto-approve UI (#7894)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <ItsOnlyBinary@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-09-14 10:20:28 -04:00
Daniel
d09689bf9b
feat: add Qwen3 Next 80B A3B models to chutes provider (#7948) 2025-09-13 23:07:57 -04:00
roomote[bot]
b576dd9008
fix: include API key in Ollama /api/tags requests (#7903)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-13 22:55:49 -04:00
roomote[bot]
80d82e65f0
fix: make nested git repository warning persistent with path info (#7885)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-13 22:39:52 -04:00
Matt Rubens
72bc790d6a
Add a little padding to the cloudview (#7954) 2025-09-12 23:35:27 -04:00
Daniel
c4c478023d
fix: preserve original first message context during conversation condensing (#7939) 2025-09-12 12:52:02 -04:00
Daniel
08d7f80e22
Fix message queue re-queue loop in Task.ask() (#7823) 2025-09-11 18:17:48 -07:00
roomote[bot]
03709fd9a5
fix: restrict @-mention parsing to line-start or whitespace boundaries (#7876)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-11 19:37:10 -04:00
Matt Rubens
9c43282c58
Remove Roo Code 3.25 release announcement
Removed the section about Roo Code 3.25 release notes.
2025-09-11 16:47:49 -04:00
github-actions[bot]
0cbc66a09e
Changeset version bump (#7917)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-11 16:34:02 -04:00
Matt Rubens
9d296ec46b
chore: add changeset for v3.28.1 (#7916) 2025-09-11 16:30:42 -04:00
Matt Rubens
200d79e818
In-app announcement for Roo Code Cloud (#7914)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-09-11 16:28:21 -04:00
Daniel
3dfa5269ff
Fix: Preserve first message during conversation condensing (#7910) 2025-09-11 16:00:41 -04:00
Matt Rubens
33fe6fb9c6
Make Posthog telemetry the default (#7909)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-09-11 15:50:40 -04:00
roomote[bot]
a9e22f0df0
fix: center active mode in selector dropdown on open (#7883)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-11 15:16:43 -04:00
roomote[bot]
ad8551868e
feat: Add cloud task button for opening tasks in Roo Code Cloud (#7572)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
2025-09-11 15:08:14 -04:00
Matt Rubens
8fee3127ff
Bust cache in generated image preview (#7860)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-10 17:26:16 -04:00
roomote[bot]
3b1a6d1825
feat: show notification when the checkpoint initialization fails (#7766)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-10 17:08:45 -04:00
github-actions[bot]
9da9785eb2
Changeset version bump (#7859)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-10 16:38:49 -04:00
Matt Rubens
a7befef848
v3.28.0 (#7858) 2025-09-10 16:34:08 -04:00
Bruno Bergher
469a70fe5d
feat: In-extension dismissible upsells for Roo Code Cloud (#7850)
* First pass at separate upsell dialog

* Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (#7783)

Fixes #7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes #7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

* Let people paste in the auth redirect url (#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>

* fix: resolve chat message edit/delete duplication issues (#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (#7819)

* UI: Render reasoning as plain italic (match <thinking>) (#7752)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

* Add taskSyncEnabled to userSettingsConfigSchema (#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <roomote@roocode.com>

* Release: v1.75.0 (#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (#7830)

Co-authored-by: Roo Code <roomote@roocode.com>

* Fix Groq context window display (#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <ItsOnlyBinary@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-09-10 13:06:13 -07:00
John Richmond
80af39dc74
separate task sync roomote control (#7799)
* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-10 12:43:11 -07:00
Matt Rubens
7cd6520302
Fix Groq context window display (#7839) 2025-09-10 00:50:57 -04:00
roomote[bot]
48d592f433
fix: prevent negative cost values and improve label visibility in evals chart (#7830)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-09 17:50:37 -04:00
John Richmond
d2e07ec8b9
Release: v1.75.0 (#7829)
chore: bump version to v1.75.0
2025-09-09 14:08:05 -07:00
roomote[bot]
de0cd99aa7
Add taskSyncEnabled to userSettingsConfigSchema (#7827)
feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-09 13:53:25 -07:00
roomote[bot]
bbd3d9883b
UI: Render reasoning as plain italic (match <thinking>) (#7752)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-09 13:18:33 -04:00
Daniel
39030bf273
fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (#7819) 2025-09-09 12:42:04 -04:00
Daniel
88b5d66cb8
fix: resolve chat message edit/delete duplication issues (#7793) 2025-09-09 12:26:44 -04:00
Matt Rubens
5780659ae5
Let people paste in the auth redirect url (#7805)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
2025-09-09 09:50:50 -04:00
roomote[bot]
195f4eb245
feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#7790)
* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes #7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-09-08 22:50:21 -04:00
ItsOnlyBinary
76c6745649
Make ollama models info transport work like lmstudio (#7679) 2025-09-08 22:48:22 -04:00
Daniel
0188159762
fix: reduce CodeBlock button z-index to prevent overlap with popovers (#7783)
Fixes #7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.
2025-09-08 22:46:59 -04:00
Daniel
0ce4e891fd
Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594) 2025-09-08 10:30:02 -04:00
renovate[bot]
25717817a6
chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (#7764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 20:19:10 -04:00
renovate[bot]
4e5e3ed200
chore(deps): update dependency nock to v14.0.10 (#6465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:47:38 -04:00
renovate[bot]
8f2d40d177
chore(deps): update dependency @changesets/cli to v2.29.6 (#7376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:45:49 -04:00
renovate[bot]
408ea44ea2
chore(deps): update dependency esbuild to v0.25.9 (#5455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:45:36 -04:00
renovate[bot]
888bd2d570
chore(deps): update dependency eslint-config-prettier to v10.1.8 (#6464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:45:21 -04:00
Chris Estreich
247da38b02
Add model info to eval runs table (#7749) 2025-09-06 22:10:08 -07:00
ssweens
18cf33f96d
Feature/update vertex ai models and regions (#7727) 2025-09-06 22:18:55 -04:00
roomote[bot]
9378a4e2ad
feat: show dash instead of zero for missing data on evals page (#7748)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-06 17:15:10 -04:00
roomote[bot]
079b37a85d
feat: replace cloud waitlist ad with direct Cloud link in navigation (#7742)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-06 13:05:01 -04:00
roomote[bot]
e8deedd91b
fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (#7687)
- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes #7685

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-05 18:46:00 -04:00
github-actions[bot]
8864651c95
Changeset version bump (#7716)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-05 18:20:26 -04:00
Matt Rubens
e3facc1ee9
Bump to 3.27.0 (#7719) 2025-09-05 18:15:59 -04:00
roomote[bot]
ed765a3e7d
feat(checkpoints): create checkpoint when user sends a message (#7713)
* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-05 18:07:59 -04:00
Matt Rubens
ae01a90151
chore: add changeset for v3.26.8 (#7715) 2025-09-05 16:24:44 -04:00
Daniel
49b50c8997
fix: preserve context by retrying with full conversation on invalid previous_response_id (#7714) 2025-09-05 16:09:14 -04:00
Ton Hoang Nguyen (Bill)
c206da4a26
fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (#7434)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-05 15:03:09 -04:00
Daniel
687b37943a
fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (#7583) 2025-09-05 14:54:22 -04:00
NaccOll
1e403a7c92
fix: identify mcp and slash command config path in multiple folder workspace (#6904) 2025-09-05 14:52:48 -04:00
Daniel
0510c03684
fix: prevent stack overflow in codebase indexing for large projects (#7712) 2025-09-05 14:51:38 -04:00
NaccOll
e559ac64bd
Edit/Delete User Message (#7447) 2025-09-05 14:50:18 -04:00
roomote[bot]
2b533993ff
fix: handle array paths from VSCode terminal profiles (#7697)
* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes #7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-09-05 11:41:00 -07:00
roomote[bot]
2c8c140551
feat: add Kimi K2-0905 model to Chutes provider (#7701)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-05 09:22:22 -04:00
Daniel
55ea32842b
Fix: Improve WelcomeView styling and readability (#7682)
* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.
2025-09-05 07:55:15 -04:00
github-actions[bot]
90e7d09596
Changeset version bump (#7690)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-05 00:06:19 -04:00
John Richmond
467c9f597d
Use an allowlist to keep the prompt default shell sane (#7681) 2025-09-05 00:00:52 -04:00
Daniel
4ad1a26492
feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (#7693) 2025-09-04 23:57:39 -04:00
Matt Rubens
146d849ede
Delete .changeset/petite-rats-admire.md 2025-09-04 23:48:36 -04:00
Matt Rubens
282a75bc97
Release v3.26.7 (#7691) 2025-09-04 23:45:24 -04:00
Matt Rubens
2b7325170e
Fix test 2025-09-04 23:27:49 -04:00
CellenLee
d9f80f175f
feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (#7663) 2025-09-04 23:27:15 -04:00
WangXiaolong
bca6e86d2b
fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (#7673)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-09-04 23:19:58 -04:00
Daniel
de12ec169b
fix: prevent countdown timer from showing in history for answered follow-up questions (#7686) 2025-09-04 23:19:05 -04:00
Hannes Rudolph
571d1a4833
feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (#7646)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-04 23:14:01 -04:00
roomote[bot]
65146b1b12
fix: add error transform to cryptic openAI SDK errors when API key is invalid (#7586)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-04 23:12:28 -04:00
roomote[bot]
7935c94827
fix: validate MCP tool exists before execution (#7632)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-04 17:44:31 -04:00
Thach Nguyen
72502d8f1a
feat: Add DeepInfra as a model provider in Roo Code (#7677) 2025-09-04 17:28:45 -04:00
Peter Dave Hello
b48b0be061
Minor zh-TW Traditional Chinese locale typo fix (#7672) 2025-09-04 12:24:56 -04:00
Matt Rubens
b50104cc59
Handle zsh glob qualifiers correctly (#7667) 2025-09-04 11:14:25 -04:00
Matt Rubens
966ed76ce2
Handle zsh process substitution correctly (#7658) 2025-09-04 01:14:52 -04:00
Matt Rubens
e1dfe25321
Remove unused slack notif (#7655) 2025-09-04 01:06:08 -04:00
Matt Rubens
a0384f35d5
Delete .github/workflows/discord-pr-notify.yml 2025-09-03 23:18:11 -04:00
github-actions[bot]
08a825f9bb
Changeset version bump (#7651)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-03 23:04:52 -04:00
Matt Rubens
e2c1a20a23
Release v3.26.6 (#7650) 2025-09-03 22:57:15 -04:00
roomote[bot]
e7f599bfb9
fix: use askApproval wrapper in insert_content and search_and_replace tools (#7649)
Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes #7648

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-03 22:35:40 -04:00
WangXiaolong
0126c5dd46
feat: add Kimi K2 Turbo model configuration to moonshotModels (#7593)
* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices
2025-09-03 20:11:38 -04:00
淡草
1f5ee4307e
fix: preserve scroll position when switching tabs in settings (#7587)
* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-03 19:43:05 -04:00
Chris Estreich
c25cfdeaef
Publish token usage metrics (#7637) 2025-09-03 13:51:27 -07:00
John Richmond
f12f1934a7
Cloud: remove extension_bridge_enabled for personal users (#7638) 2025-09-03 13:49:55 -07:00
Matt Rubens
8dbd30af6c
Release: v1.73.0 (#7636) 2025-09-03 16:13:32 -04:00
Chris Estreich
280b75d2eb
Focus the extension when receiving bridge commands (#7633) 2025-09-03 12:23:50 -07:00
roomote[bot]
d7896924a9
feat: add run_slash_command tool for executing slash commands (#7473)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-03 14:14:55 -04:00
github-actions[bot]
130ce2936e
Changeset version bump (#7630)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-03 09:49:02 -04:00
github-actions[bot]
c0b9e7adcf
Update contributors list (#7629)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-09-03 09:46:27 -04:00
Matt Rubens
7f5d82f8c6
chore: add changeset for v3.26.5 (#7628) 2025-09-03 09:45:20 -04:00
Mohammad Danaee nia
84bc7035ee
Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (#7578)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-03 09:27:24 -04:00
Chris Estreich
43ff486d42
Publish subtask events (#7626) 2025-09-03 04:05:54 -07:00
Chris Estreich
bcb71dbebf
More socket-io client logging improvements (#7620) 2025-09-03 00:59:48 -07:00
Chris Estreich
aa4144e10e
More socket-io client fixes from PR feedback (#7619) 2025-09-03 00:41:56 -07:00
Chris Estreich
c1509da9bd
Fix socket-io client event handling (#7618) 2025-09-03 00:39:26 -07:00
Matt Rubens
f8973d9539
Never give up in socket transport (#7616) 2025-09-03 02:47:15 -04:00
Chris Estreich
641c058587
Send custom modes to the extension bridge (#7612) 2025-09-02 23:11:45 -07:00
Chris Estreich
5196c75017
Move message queue to the extension host (#7604)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-09-02 19:12:18 -07:00
Daniel
7e24600877
feat: add auto-approve support for MCP access_resource tool (#7606) 2025-09-02 21:49:21 -04:00
Hannes Rudolph
d1baa6e849
fix: add cache reporting support for OpenAI-Native provider (#7602)
* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens
2025-09-02 19:59:16 -04:00
John Richmond
59d6e74ec0
Cloud: fix provider syncing (#7603)
ClineProvider creation was moved before CloudService which broke
the old way of doing things.
2025-09-02 15:18:21 -07:00
Bruno Bergher
2e59347a9d
Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (#7555)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-09-01 21:38:05 -04:00
roomote[bot]
fe2b6126c6
feat: add configurable embedding batch size for code indexing (#7464)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-01 21:36:56 -04:00
github-actions[bot]
ae8a639d6f
Changeset version bump (#7580)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-01 11:41:52 -04:00
github-actions[bot]
5092cdf247
Update contributors list (#7462)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-09-01 11:39:10 -04:00
Matt Rubens
00d26ee4bf
v3.26.4 (#7579) 2025-09-01 11:37:37 -04:00
Christiaan Arnoldus
97cfb962a0
Fix claudeCode.notFound translation key (#7571)
I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.
2025-09-01 08:53:14 -04:00
Matt Rubens
c97027427b
Disconnect extension bridge on logout (#7563)
* Disconnect extension bridge on logout

* Remove bad test

* Cleanup
2025-09-01 08:50:52 -04:00
roomote[bot]
63b71d8299
feat: add Ollama API key support for Turbo mode (#7425)
* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR #7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-30 19:20:31 -04:00
roomote[bot]
f5e0525536
feat: rename Account tab to Cloud tab (#7558)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-30 18:57:00 -04:00
Daniel
fad219e001
feat: optimize memory usage for image handling in webview (#7556)
* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting
2025-08-30 15:57:30 -04:00
Piotr Wilkin (ilintar)
47f594f27b
fix: special tokens should not break task processing (#7540) 2025-08-30 10:40:40 -04:00
Chris Estreich
c7d7ad8197
Fix evals (#7547) 2025-08-29 20:10:58 -07:00
Matt Rubens
0e95f9312c
Putting the Roo in Roo-leases (#7546) 2025-08-29 23:00:59 -04:00
Chris Estreich
20929b0f16
Mode and provider profile selector (#7545) 2025-08-29 16:48:06 -07:00
github-actions[bot]
a1f9b7d55e
Changeset version bump (#7542)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-29 18:53:07 -04:00
Matt Rubens
63e40d2cc8
chore: add changeset for v3.26.3 (#7541) 2025-08-29 18:49:37 -04:00
Daniel
c3d84d295d
refactor: flatten image generation settings structure (#7536) 2025-08-29 18:35:24 -04:00
roomote[bot]
01458f1646
feat: sync extension bridge settings with cloud (#7535)
- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-08-29 11:08:58 -07:00
roomote[bot]
b22a618ee2
feat: add optional input image parameter to image generation tool (#7525)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-29 11:08:21 -04:00
Chris Estreich
1d46bd1bbc
Implement deferred task subscriptions (#7517) 2025-08-29 02:43:06 -07:00
Chris Estreich
1e4c46fe6f
Refactor the extension bridge (#7515) 2025-08-29 00:28:38 -07:00
Chris Estreich
cd9e92fa9b
Move @roo-code/cloud to the Roo-Code repo (#7503) 2025-08-28 11:18:45 -07:00
Chris Hasson
aee531a143
Show console logging in vitests when the --no-silent flag is set (#7467)
By default, all of the tests run in silent mode with monkey-patched the console logging so no console logging will ever appear in test output.
This confuses the agent- sometimes it will add console logging to help it debug things, and it won't see the logs that it expects.

Adds src/utils/vitest-verbosity.ts to handle verbosity resolution and console logging.
Modifies src/vitest.config.ts and webview-ui/vitest.config.ts to integrate the new verbosity control.
Removes manual console suppression from src/vitest.setup.ts and webview-ui/vitest.setup.ts as it's now handled dynamically.

Co-authored-by: Chris Hasson <noreply@example.com>
2025-08-28 12:51:21 -04:00
github-actions[bot]
88409029aa
Changeset version bump (#7491)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-28 11:21:07 -04:00
Daniel
622da63de0
fix: prevent dirty state on initial mount in ImageGenerationSettings (#7495) 2025-08-28 11:05:49 -04:00
Matt Rubens
6ef9dbd873
Add padding to image model picker (#7494) 2025-08-28 10:27:41 -04:00
Daniel
8e666078e4
feat: update OpenRouter API to support input/output modalities and filter image generation models (#7492) 2025-08-28 10:19:46 -04:00
Matt Rubens
bea0684487
Support free imagegen (#7493) 2025-08-28 10:00:01 -04:00
Matt Rubens
43597b3a20
Release v3.26.2 (#7490) 2025-08-28 09:46:09 -04:00
Matt Rubens
548d3b48a9
Make the default image filename more generic (#7479) 2025-08-28 02:22:38 -04:00
Daniel
2092fb1a50
feat: add image generation tool with OpenRouter integration (#7474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-28 01:57:48 -04:00
Matt Rubens
d1122ea707
Bump cloud to 0.25.0 (#7475) 2025-08-27 23:52:25 -04:00
Daniel
2204457cc5
Fix GPT-5 Responses API issues with condensing and image support (#7067)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-08-27 23:30:43 -04:00
roomote[bot]
d4a16f469c
fix: exclude browser scroll actions from repetition detection (#7471)
- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: https://github.com/RooCodeInc/Roo-Code/discussions/7470

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-27 20:56:36 -04:00
roomote[bot]
3cb489d305
fix: hide .rooignore'd files from environment details by default (#7369)
* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes #7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-27 18:09:06 -04:00
Matt Rubens
0f6079a3a3
Add type for RooCodeEventName.TaskSpawned (#7465) 2025-08-27 17:40:06 -04:00
github-actions[bot]
d23bc015f3
Changeset version bump (#7460)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-27 13:41:54 -04:00
Matt Rubens
bf9e44743f
Update 3.26.1 changeset (#7463) 2025-08-27 13:37:52 -04:00
github-actions[bot]
68e4629861
Update contributors list (#7109)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-08-27 13:34:14 -04:00
Matt Rubens
94f3b2a35b
Remove dot before model display (#7461) 2025-08-27 13:33:48 -04:00
Matt Rubens
1ad2129964
Add support for Vercel embeddings (#7445)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-27 13:30:19 -04:00
roomote[bot]
33a8573b02
feat: update tooltip component to match native VSCode tooltip shadow styling (#7457)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-27 10:27:40 -07:00
Daniel
faf5734bdc
feat: show model ID in API configuration dropdown (#7423) 2025-08-27 13:19:30 -04:00
Matt Rubens
46b6fdd21e
chore: add changeset for v3.26.1 (#7459) 2025-08-27 13:15:10 -04:00
Chris Estreich
c479678d8e
Always set remoteControlEnabled to true for cloud agents (#7448) 2025-08-27 02:43:51 -07:00
Chris Estreich
02f551cec5
Update @roo-code/cloud to enable roomote control for cloud agents (#7446)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-27 00:53:40 -07:00
Chris Estreich
f02a2bb05d
Random chat text area cleanup (#7436) 2025-08-26 20:48:24 -07:00
Matt Rubens
3528f51304
fix: remove duplicate cache display in task header (#7443) 2025-08-26 22:11:35 -04:00
Daniel
ff1f4f0398
fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (#7433)
- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).
2025-08-26 20:22:37 -04:00
Daniel
11c454ffa2
feat: Enable on-disk storage for Qdrant vectors and HNSW index (#7182) 2025-08-26 17:02:55 -04:00
Josh
934bfd0a54
feat: Add Vercel AI Gateway provider integration (#7396)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-26 13:41:02 -07:00
github-actions[bot]
7c91e4f259
Changeset version bump (#7429)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-26 16:28:21 -04:00
Matt Rubens
f9921ff194
chore: add changeset for v3.26.0 (#7428) 2025-08-26 16:23:27 -04:00
Matt Rubens
572fa5080d
Sonic -> Grok Code Fast (#7426) 2025-08-26 16:17:47 -04:00
Matt Rubens
a79c3d04a6
Follow symlinks in rooignore checks (#7405) 2025-08-26 10:12:20 -04:00
Matt Rubens
8684877097
Update list of default allowed commands (#7404) 2025-08-26 00:56:03 -04:00
Matt Rubens
296edfc829
Mark code-workspace files as protected (#7403) 2025-08-26 00:09:14 -04:00
Hannes Rudolph
0cfd314c00
feat: update /init command to focus only on non-obvious discoveries (#7400)
* feat: update /init command to focus only on non-obvious discoveries

- Emphasize that only non-obvious information discovered by reading files should be included
- Update all mode-specific examples to show truly non-obvious rules
- Add CRITICAL section explaining what qualifies as non-obvious
- Exclude standard patterns and framework defaults
- Focus on gotchas, hidden requirements, and counterintuitive patterns

* fix: ensure /init command checks for and updates existing AGENTS.md files

- Check for existing AGENTS.md in root directory
- Check for existing AGENTS.md in all .roo/rules-*/ directories
- Read and improve existing files rather than replacing them
- Update discovery phase to explicitly look for these files

* refactor: clean up /init command to properly handle existing AGENTS.md files

- Consolidate all AGENTS.md path checking into step 1 with CRITICAL emphasis
- Add explicit instructions for deep dive improvement of existing files
- Remove redundant mentions throughout the workflow
- Emphasize iterating and enhancing existing files, not just appending
- Add clear guidance on cleaning up outdated info and reorganizing
- Make discovery phase the single source of truth for file checking

* fix: strengthen /init command to aggressively remove obvious information

- Add explicit instructions to DELETE obvious information first
- Emphasize that files should get SHORTER, not longer
- Use stronger language: CRITICALLY EVALUATE, AGGRESSIVELY DELETE
- Make clear that standard practices must be removed even if previously included
- Add success metric: files should be more concise and valuable
- Goal is to fix the tendency to just append instead of clean up

* fix: ensure .roo directory is created in project root, not system root

CRITICAL FIX: Paths were being interpreted as absolute, causing .roo to be created at system root

- Clarify all paths are relative to PROJECT/WORKSPACE root
- Add explicit warnings that .roo must be in project root, not system root
- Update example to show proper project structure
- Add IMPORTANT notes throughout emphasizing relative paths
- Fix prevents accidental creation of /.roo at system level

* test: update built-in-commands test to match new init command content

- Replace 'mode-specific rule directories' with 'non-obvious'
- Replace 'analysis_workflow' with 'discovered by reading files'
- Tests now align with the new focus on non-obvious discoveries
2025-08-25 21:01:51 -06:00
Daniel
91f3dd90fb
fix: preserve user input when selecting follow-up choices (#7394) 2025-08-25 17:18:08 -04:00
Daniel
c75f184022
feat: Hide static providers with no models from provider list (#7392) 2025-08-25 17:17:07 -04:00
Matt Rubens
2c82f4c950
Add a built-in /init slash command (#7381)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-08-25 16:53:32 -04:00
Chris Estreich
c7d2b72cab
Fix build error (#7397) 2025-08-25 12:18:59 -07:00
James Edward Dillard
2bd9f47f1b
update privacy policy to account for stealth model (#7255)
* docs(privacy): add proxy-mode exception when Roo Code is selected as provider; no storage, transit-only; update dates

* Apply suggestion from @jdilla1277

* Apply suggestion from @jdilla1277

changed name to roo code cloud

* Apply suggestion from @jdilla1277

updated provider to Roo Code Cloud
2025-08-25 15:17:03 -04:00
roomote[bot]
2e99d5bf1b
feat: Add Qwen Code CLI API Support with OAuth Authentication (#7380)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-25 10:43:48 -07:00
Matt Rubens
3dd3d7bf17
Handle substitution patterns in command validation (#7390) 2025-08-25 12:41:01 -04:00
Hannes Rudolph
3c233f3be0
fix: add todos parameter to new_task tool usage in issue-fixer mode (#7391) 2025-08-25 12:36:06 -04:00
Daniel Trugman
0c481a3cf9
Fix requesty model listing (#7378)
* Fix requesty model listing

* Delete .changeset/spotty-queens-crash.md

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-24 20:12:43 -04:00
roomote[bot]
8367b1ac92
feat: add Deepseek v3.1 to Fireworks AI provider (#7375)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-24 18:43:06 -04:00
Hannes Rudolph
1322e9a981
fix: resolve newTaskRequireTodos setting not working correctly (#7363)
* fix: resolve newTaskRequireTodos setting not working correctly

- Use dynamic Package.name instead of hardcoded namespace values
- Show todos parameter as optional/required based on setting value
- Remove hardcoded new_task example from shared tool use section
- Update tests to use Package.name pattern

The setting now works correctly for both regular and nightly builds
without requiring hardcoded namespace values.

* test: update snapshots after removing hardcoded new_task example

The snapshots needed updating because the hardcoded new_task example
was removed from the shared tool use section

* fix: remove namespace prefix from newTaskRequireTodos setting

The setting name should not include the namespace prefix in package.json
as VSCode automatically adds the extension's namespace. This was preventing
the setting from appearing in the VSCode settings UI.

* fix: restore prefixed setting id roo-cline.newTaskRequireTodos for Settings UI visibility

* docs(newTaskTool): explain dynamic Package.name config namespace\n\ntest(newTaskTool): verify config uses Package.name variant (roo-code-nightly)

* refactor: simplify new-task prompt generation

- Replace complex template literals with two complete prompt constants
- Remove nested ternary operators for better readability
- Hide todos parameter completely when disabled (not shown as optional)
- Update tests to reflect new behavior
- Reduce code from 105 to 66 lines for better maintainability

* test: update snapshots after removing optional todos parameter

The todos parameter is now conditionally required based on the newTaskRequireTodos setting, so the snapshots needed to be updated to reflect the new tool documentation format.

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-24 17:33:58 -04:00
renovate[bot]
8109e365b2
chore(deps): update dependency drizzle-kit to v0.31.4 (#5453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 16:27:57 -04:00
Dicha Zelianivan Arkana
fc70012f54
fix(ui): make auto approve toggle trigger stay (#7318)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-23 10:54:23 -07:00
roomote[bot]
b433d1f7a2
fix: handle Mistral thinking content as reasoning chunks (#7106)
* fix: handle Mistral thinking content as reasoning chunks

- Add TypeScript interfaces for Mistral content types (text and thinking)
- Update createMessage to yield reasoning chunks for thinking content
- Update completePrompt to filter out thinking content in non-streaming mode
- Add comprehensive tests for reasoning content handling
- Follow the pattern used by other providers (Anthropic, OpenAI, Gemini, etc.)

Fixes #6842

* fix: resolve TypeScript type issue in completePrompt method

* fix: handle Mistral thinking content chunks in streaming responses

- Added ContentChunkWithThinking type helper to handle thinking chunks
- Properly converts thinking content to reasoning chunks in streaming
- Filters out thinking content in non-streaming completePrompt responses
- Confirmed that Mistral API does send thinking chunks with type 'thinking'
- Works with Mistral SDK v1.9.18

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-23 06:33:43 -07:00
Christiaan Arnoldus
8e4c0ae99d
Show cache read and write prices for OpenRouter inference providers (#7176) 2025-08-22 14:43:34 -07:00
github-actions[bot]
0fdd15728d
Changeset version bump (#7339)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-22 13:54:38 -07:00
Matt Rubens
777a9d9142
chore: add changeset for v3.25.23 (#7338) 2025-08-22 13:47:44 -07:00
Daniel
d175272c76
feat: add custom base URL support for Requesty provider (#7337)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: John Costa <john@requesty.ai>
Co-authored-by: Thibault Jaigu <thibault.jaigu@gmail.com>
2025-08-22 13:43:08 -07:00
roomote[bot]
262033ddd0
feat: add DeepSeek V3.1 model to Chutes AI provider (#7295)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-22 12:18:55 -07:00
Hannes Rudolph
7137c1902f
Revert "feat: enable loading Roo modes from multiple files in .roo/roo_modes directory" (#7332)
Revert "feat: enable loading Roo modes from multiple files in .roo/roo_modes …"

This reverts commit faece9e26f.
2025-08-22 11:44:15 -07:00
github-actions[bot]
b1f2d39faf
Changeset version bump (#7327)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-22 10:03:00 -07:00
Matt Rubens
8e26d5f004
chore: add changeset for v3.25.22 (#7326) 2025-08-22 09:59:56 -07:00
Daniel
faab314a88
feat: add prompt caching support for Kimi K2 on Groq (#7324)
Ported from upstream Cline repository PR #5697
Original PR: https://github.com/cline/cline/pull/5697

- Added GroqUsage interface to handle cached token fields
- Implemented proper cost calculation with cache read discounts
- Enabled prompt caching for Kimi K2 model with 50% discount on cached tokens
- Updated tests to verify caching functionality

Co-authored-by: Cline Contributors <cline@github.com>
2025-08-22 09:40:21 -07:00
roomote[bot]
f14e6acaf0
feat: add documentation links for global custom instructions in UI (#7114)
* feat: add documentation links for global custom instructions in UI

- Updated translation strings to include links to global rules documentation
- Added VSCodeLink components in ModesView to render clickable documentation links
- Helps users discover global custom instructions feature as suggested in GitHub discussion #7111

* fix: address PR feedback - update all language files and improve documentation links

- Added <0> placeholders to all 17 non-English translation files for global rules links
- Updated documentation anchors to use #global-rules-directory and #setting-up-global-rules
- Added aria-label attributes to all VSCodeLink components for better accessibility
- Improved UTM campaign parameter naming for clearer tracking

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-22 08:40:22 -07:00
Matt Rubens
9b8f3b95ec
Update changelog with correct .roo/modes/ path 2025-08-21 21:37:51 -07:00
github-actions[bot]
9a8ac61d8a
Changeset version bump (#7307)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-08-21 21:33:56 -07:00
Chris Estreich
5febc54418
v3.25.21 (#7306) 2025-08-21 20:30:27 -07:00
Chris Estreich
175edeff25
Pass task ID in the Roo provider request headers (#7303) 2025-08-21 20:27:21 -07:00
Daniel
d06d970208
fix: ensure subtask results are provided to GPT-5 in OpenAI Responses API (#7305)
When a subtask completes and the parent task resumes, set skipPrevResponseIdOnce = true
to ensure the next API call sends the full conversation including the subtask result.
This fixes the issue where GPT-5 would only receive the new message without the subtask
result context when using previous_response_id.

Fixes #7251
2025-08-21 20:16:16 -07:00
roomote[bot]
4222036c58
feat: remove assistantMessageParser experiment flag and enable for all users (#7300)
- Remove assistantMessageParser from experiment definitions in packages/types
- Remove ASSISTANT_MESSAGE_PARSER from shared experiments configuration
- Update Task.ts to always initialize and use AssistantMessageParser
- Remove conditional logic that checked for experiment flag
- Remove unused parseAssistantMessage import
- Update test files to remove assistantMessageParser references
- All tests passing successfully

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 15:30:42 -07:00
roomote[bot]
9fe06db921
fix: update DeepSeek models context window to 128k (#7269)
* fix: update DeepSeek models context window to 128k

- Updated deepseek-chat and deepseek-reasoner models from 64k to 128k context window
- Updated corresponding test expectations
- Aligns with DeepSeek API documentation at https://api-docs.deepseek.com/quick_start/pricing/

Fixes #7268

* feat: update deepseek-reasoner maxTokens to 64K based on official documentation

* fix: use default maxTokens values instead of maximum for DeepSeek models

- deepseek-chat: 4096 (4K default) instead of 8192 (8K max)
- deepseek-reasoner: 32768 (32K default) instead of 65536 (64K max)
- Updated tests to match new default values
- Updated description to clarify default vs max output tokens

* fix: use maximum output tokens for both DeepSeek models

- deepseek-chat: 8192 (8K max)
- deepseek-reasoner: 65536 (64K max)
- Updated tests to match maximum values
- Updated description to reflect 64K max output

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 15:03:35 -07:00
Daniel
44fd6432dc
refactor: Remove exceptions from RooHandler constructor (#7302) 2025-08-21 14:56:47 -07:00
roomote[bot]
0bc1183c71
feat: enable grounding features for Vertex AI (#6777)
* feat: enable grounding features for Vertex AI

- Add enableUrlContext and enableGrounding options to vertexSchema in provider-settings.ts
- Update Vertex.tsx UI component to include URL context and grounding checkboxes
- Add comprehensive tests for the new grounding features in Vertex.spec.tsx
- Reuse existing localization strings from Gemini provider

Fixes #6776

* fix: address review feedback - hide grounding features in welcome view and only show for Gemini models

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 13:02:45 -07:00
Hannes Rudolph
4664955127
feat: add optional todos parameter to new_task tool with experimental setting (#6329) (#6775)
* feat: add optional todos parameter to new_task tool with experimental setting (#6329)

- Add optional todos parameter to new_task tool for hierarchical task planning
- Implement experimental setting to optionally require todos parameter
- Add clean state-based UI rendering to avoid spurious messages
- Export and reuse parseMarkdownChecklist function
- Add comprehensive test coverage for both optional and required modes
- Maintain full backward compatibility (todos optional by default)

* fix: update new_task tool example to include todos parameter

- Updated the example in tool-use.ts to show the todos parameter
- This prevents AI confusion about whether todos is a valid parameter
- The example now demonstrates the complete tool usage pattern

* fix: make new_task tool definition dynamic based on experimental setting

- Tool description now changes based on newTaskRequireTodos setting
- When disabled: shows todos as (optional)
- When enabled: shows todos as (required) with no mention of configuration
- Added tests to verify dynamic behavior
- Ensures AI models get unambiguous instructions based on current settings

* fix: add translations for newTaskRequireTodos experimental setting

- Added translations for all 17 supported languages
- Ensures consistent UI experience across all locales

* test: update snapshots for new_task tool example with todos parameter

- Updated 13 snapshot files to reflect the new tool-use example
- All tests now pass with the updated example format

* Update src/core/tools/newTaskTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: address PR review comments

- Replace any[] with TodoItem[] type in ExtensionStateContext.tsx for better type safety
- Remove redundant initialTodos parameter from startTask call in Task.ts (todos already set in constructor)
- Improve code clarity in newTaskTool.ts by checking provider reference early and reusing state

# Conflicts:
#	src/core/task/Task.ts
#	webview-ui/src/context/ExtensionStateContext.tsx

* fix: revert order of operations in startTask to fix integration test timeout

The change in order of operations (calling say() before postStateToWebview()) was causing the XML content file test to timeout. Reverting to the original order fixes the issue.

* fix: hide todos parameter from new_task tool prompt when experiment is disabled

- Modified getNewTaskDescription to completely omit todos parameter when experiment is off
- Updated tests to verify todos parameter is not shown at all when disabled
- Ensures tool prompt remains unchanged when experimental setting is disabled
- Maintains backward compatibility while providing cleaner prompt interface

* fix: update snapshots for new_task tool todos parameter

- Updated snapshots in add-custom-instructions.spec.ts
- Updated snapshots in system-prompt.spec.ts
- All tests now passing with the new todos parameter documentation

* feat: move newTaskRequireTodos from experimental to VSCode settings

- Added newTaskRequireTodos as a VSCode configuration property in src/package.json
- Added description in src/package.nls.json
- Updated newTaskTool.ts to read from VSCode configuration instead of experiments
- Removed NEW_TASK_REQUIRE_TODOS from experimental settings in src/shared/experiments.ts
- Removed newTaskRequireTodos from packages/types/src/experiment.ts
- Updated tests to use VSCode configuration mocking instead of experiments
- Removed references from experiments test file
- Maintains backward compatibility (defaults to false)

* fix: make new_task tool description dynamically reflect VSCode setting

- Updated new-task.ts to check args.settings instead of args.experiments
- Added newTaskRequireTodos to SystemPromptSettings interface
- Pass newTaskRequireTodos setting through Task.ts and generateSystemPrompt.ts
- Updated all related tests to use settings instead of experiments
- Fixed TypeScript errors in test files by adding newTaskRequireTodos property

This ensures the tool description correctly shows todos parameter as required/optional
based on the VSCode setting value, fixing the issue where Roo would try to use
new_task without the todos parameter when it was required.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Merge Resolver <merge-resolver@roo-code.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 13:02:05 -07:00
Chris Estreich
ef340806c7
Evals web app fixes / tweaks (#7299) 2025-08-21 12:36:33 -07:00
Daniel
4216618c72
feat: add MDM authentication notification when navigation is blocked (#7291)
- Show VSCode warning when users under MDM policy try to leave AccountView without auth
- Add showMdmAuthRequiredNotification message type to WebviewMessage interface
- Implement handler in webviewMessageHandler to display localized warning
- Add 'Your organization requires authentication' translation in all 17 languages
- Fix translation key path to use common:mdm.info.organization_requires_auth
2025-08-21 11:12:04 -07:00
roomote[bot]
6fd261d3b6
feat: mark non-English package.nls.*.json files as linguist-generated (#7271)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 02:56:55 -07:00
renovate[bot]
4fdbcb5d78
fix(deps): update dependency tmp to v0.2.4 [security] (#6762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 02:28:00 -07:00
roomote[bot]
b2fdb9ac57
fix: handle null/undefined token values in ContextCondenseRow to prevent UI crash (#6916)
* fix: handle null/undefined token values in ContextCondenseRow to prevent UI crash

- Added null/undefined checks for prevContextTokens, newContextTokens, and cost
- Default to 0 when values are null or undefined
- Added comprehensive test coverage for edge cases
- Fixes #6914

* Delete webview-ui/src/components/chat/__tests__/ContextCondenseRow.spec.tsx

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-21 02:21:41 -07:00
Daniel
a5b143bb44
feat: add OpenAI context window error handling (#6967)
* feat: add OpenAI context window error handling

- Add comprehensive context window error detection for OpenAI, OpenRouter, Anthropic, and Cerebras
- Implement automatic retry with aggressive context truncation (25% reduction)
- Use proper profile settings for condensing operations
- Add robust error handling with try-catch blocks

Based on PR #5479 from cline/cline repository

* fix: address PR review comments

- Improved type safety by using Record<string, any> instead of direct any casts
- Enhanced Anthropic error detection with message pattern matching
- Added comprehensive unit tests for context-error-handling module
- Added named constant FORCED_CONTEXT_REDUCTION_PERCENT
- Added MAX_CONTEXT_WINDOW_RETRIES limit to prevent infinite loops
- Added logging for context window exceeded errors
- Extracted getCurrentProfileId helper method to reduce duplication
- All tests passing (3438 tests)

* fix: address PR review comments for context window error handling

- Improve Anthropic error detection with more specific patterns and error codes
- Add comprehensive unit tests for context-error-handling module
- Add logging for context window errors with detailed information
- Fix comment for FORCED_CONTEXT_REDUCTION_PERCENT constant
- Fix TypeScript error for untyped error parameter
- Maintain existing getCurrentProfileId helper method

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 02:20:49 -07:00
roomote[bot]
007b58db77
feat: add "Installed" filter to Roo Marketplace (#7007)
* feat: add "Installed" filter to Roo Marketplace

- Added installed boolean filter to ViewState interface
- Implemented UI checkbox for "Show installed only" filter
- Updated filterItems method to filter by installation status
- Added translation strings for the new filter
- Updated tests to include the new filter property

Fixes #7004

* fix: add missing translations for "Installed" filter in marketplace

- Added "filters.installed.label" and "filters.installed.description" keys
- Updated all backend marketplace.json files (src/i18n/locales/*/marketplace.json)
- Updated all frontend marketplace.json files (webview-ui/src/i18n/locales/*/marketplace.json)
- All translation checks now pass successfully

* fix: improve code quality for installed filter feature

- Replace plain HTML checkbox with UI library Checkbox component for consistency
- Add proper TypeScript typing for installedMetadata (MarketplaceInstalledMetadata)
- Optimize filterItems method to avoid unnecessary object copying
- Remove dead code for subcomponent filtering

* refactor: improve installed filter UI and functionality

- Replace checkbox with dropdown for better UX
- Place dropdown inline with search field for better layout
- Add three filter options: All Items, Installed Only, Not Installed
- Update filter logic to handle all three states
- Improve translation labels to clarify it's a filter
- Optimize filterItems method for better performance
- Add proper TypeScript types throughout

* fix: ensure both filter dropdowns have matching height

- Set both Select and Button components to h-7 for visual consistency
- Installation status dropdown and tags dropdown now have identical height
- Improved visual alignment for better UX

* chore: remove redundant useEffect in MarketplaceListView to prevent re-render loop; rely on state manager handleMessage sync

* i18n: update tri-state Installed filter translations across all locales

- Replace checkbox-based installed keys with dropdown keys:
  { label, all, installed, notInstalled }
- Updated both frontend and backend marketplace.json files for all non-English locales
- Ensures translation completeness for CI check

* i18n: change Installed option text to 'Installed' (remove 'Only') across all locales (frontend + backend)

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 02:17:41 -07:00
Dicha Zelianivan Arkana
ce052dbd7e
refactor(storage): better fs check (#7164)
* refactor(storage): better fs check

* fix(storage): fs check inconsistencies

* test(storage): more thorough testing
2025-08-21 02:15:52 -07:00
roomote[bot]
090737c516
fix: omit temperature parameter when not explicitly set for OpenAI Compatible providers (#7188)
* fix: omit temperature parameter when not explicitly set for OpenAI Compatible providers

- Modified OpenAiHandler to only include temperature when modelTemperature is defined
- Modified BaseOpenAiCompatibleProvider to only include temperature when modelTemperature is defined
- Added tests to verify temperature is omitted when undefined
- Updated existing tests to explicitly set temperature where needed

This allows backend services (LiteLLM, vLLM) to use their configured default temperatures
instead of being forced to use temperature=0 when "Use custom temperature" is unchecked.

Fixes #7187

* test: update tests to match new temperature handling behavior

- Remove temperature parameter expectations from provider tests
- Tests now expect temperature to be omitted when not explicitly set
- Aligns with PR #7188 changes to fix OpenAI Compatible provider behavior

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 02:14:03 -07:00
roomote[bot]
faece9e26f
feat: enable loading Roo modes from multiple files in .roo/roo_modes directory (#7203)
* feat: enable loading Roo modes from multiple files in .roo/roo_modes directory

- Add support for loading modes from .roo/roo_modes directory (both global and project)
- Implement proper precedence: project .roo/roo_modes > .roomodes > global .roo/roo_modes > settings
- Update file watchers to monitor .roo/roo_modes directories
- Preserve original source file when updating modes
- Add comprehensive tests for the new functionality

Fixes #7202

* refactor: rename .roo/roo_modes to .roo/modes for cleaner directory structure

- Changed ROO_MODES_DIR constant from "roo_modes" to "modes"
- Updated all references in CustomModesManager.ts
- Updated all test descriptions and mocks in CustomModesManager.spec.ts
- All tests passing successfully

* fix: normalize sourceFile paths to use forward slashes in exported YAML

- Fixes Windows test failure where backslashes in sourceFile paths were causing test assertions to fail
- Ensures cross-platform compatibility by normalizing all paths to use forward slashes in YAML exports

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 02:12:56 -07:00
renovate[bot]
f44661feb7
fix(deps): update dependency mermaid to v11.10.0 [security] (#7231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 02:09:08 -07:00
Chris Estreich
241df17483
Add MODELS_BY_PROVIDER for use in @roo-code/cloud (#7258) 2025-08-20 11:26:51 -07:00
DarinVerheijke
57ea6257dd
feat: Featherless provider (#7235)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-20 10:42:57 -07:00
github-actions[bot]
c608392a85
Changeset version bump (#7246)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-19 23:07:50 -07:00
Matt Rubens
1fa647134f
chore: add changeset for v3.25.20 (#7245) 2025-08-19 23:04:46 -07:00
Matt Rubens
94fa33bd63
Add announcement for Sonic model (#7244) 2025-08-19 23:02:27 -07:00
github-actions[bot]
1f7ae548ed
Changeset version bump (#7243)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-19 19:37:02 -07:00
Matt Rubens
6e65aeeb13
chore: add changeset for v3.25.19 (#7242) 2025-08-19 19:33:19 -07:00
Daniel
912eefd7b3
Fix: Add 'roo' provider to checkExistKey function (#7239) 2025-08-19 19:13:44 -07:00
github-actions[bot]
c249ff81e9
Changeset version bump (#7220)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-19 17:45:45 -07:00
Matt Rubens
613abe08fc
More changes (#7232) 2025-08-19 14:00:28 -07:00
NaccOll
21e9d24ba7
feat: add new models and update configurations for vscode-lm (#7201) 2025-08-19 13:24:29 -07:00
roomote[bot]
b06005d321
fix: add missing zaiApiKey and doubaoApiKey to SECRET_STATE_KEYS (#7083)
Fixes first-time initialization issue with Z AI and Doubao providers
where the API keys were not recognized as valid secret keys, causing
the configuration to fail during initial setup.

Fixes #7082

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-19 12:54:44 -07:00
Matt Rubens
5d54ce9667
chore: add changeset for v3.25.18 (#7223) 2025-08-19 11:04:31 -07:00
Daniel
9a7ddab1bc
feat: simple read_file tool for single-file-only models (#7222) 2025-08-19 10:57:57 -07:00
Matt Rubens
865fb18334
Release v3.25.18 (#7219) 2025-08-19 09:24:20 -07:00
Matt Rubens
ede26b8036
Increase sonic max_tokens to 16384 (#7218) 2025-08-19 07:19:50 -07:00
Chris Estreich
532728ee85
Expose thinking tokens for roo/sonic (#7212)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-19 07:01:01 -07:00
Matt Rubens
fd3535c21a
Add support for Sonic model (#7207)
Co-authored-by: cte <cestreich@gmail.com>
2025-08-19 00:53:32 -07:00
roomote[bot]
87c42c1f26
fix: respect enableReasoningEffort setting when determining reasoning usage (#7049)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-18 15:07:06 -07:00
Daniel
b975ced81b
feat: simplify ask_followup_question prompt documentation (#7191) 2025-08-18 09:12:16 -07:00
Daniel
e7e827a3f8
fix: prevent duplicate LM Studio models with case-insensitive deduplication (#7185)
* fix: prevent duplicate LM Studio models with case-insensitive deduplication

- Keep both listDownloadedModels and listLoaded APIs to support JIT loading
- Implement case-insensitive deduplication to prevent duplicates
- When duplicates are found, prefer loaded model data for accurate runtime info
- Add test coverage for deduplication logic
- Addresses feedback about LM Studio's JIT Model Loading feature (v0.3.5+)

Fixes #6954

* fix: correct deduplication logic to prefer loaded models

- When a loaded model ID is found in any downloaded model key (case-insensitive)
- Remove the downloaded model and replace with the loaded model
- This ensures loaded models with runtime info take precedence
- Updated tests to verify the correct deduplication behavior

* fix: improve deduplication logic and add comprehensive test coverage

- Enhanced deduplication to use path segment matching instead of simple substring
- Prevents false positives like 'llama' matching 'codellama'
- Added comprehensive test cases for edge cases and multiple scenarios
- Maintains support for JIT Model Loading feature
2025-08-18 08:17:43 -07:00
Matt Rubens
a8aea14078
chore: bump version to v1.53.0 (#7171) 2025-08-17 23:30:45 -07:00
github-actions[bot]
d941cee055
Changeset version bump (#7170)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-17 22:26:16 -07:00
Matt Rubens
fae811cc62
Release v3.25.17 (#7169) 2025-08-17 22:22:33 -07:00
Matt Rubens
185365af5d
Fix terminal reuse logic (#7157) 2025-08-16 23:10:59 -07:00
github-actions[bot]
0d90facc53
Changeset version bump (#7152)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-16 19:54:59 -07:00
Matt Rubens
6b57c1bd3d
Release v3.25.16 (#7151) 2025-08-16 19:51:42 -07:00
Chris Estreich
2a974e8bf6
Emit event when a task ask requires interaction (#7128)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-16 02:46:51 -07:00
Daniel
f3864ffebb
fix: use native Ollama API instead of OpenAI compatibility layer (#7137) 2025-08-15 23:31:58 -04:00
roomote[bot]
45ac7ee6cf
feat: add support for OpenAI gpt-5-chat-latest model (#7058)
* feat: add support for OpenAI gpt-5-chat-latest model

- Added gpt-5-chat-latest model configuration to openAiNativeModels
- Updated OpenAiNativeHandler to recognize gpt-5-chat-latest as a Responses API model
- Added comprehensive tests for the new model
- Model is optimized for conversational AI and non-reasoning tasks

Fixes #7057

* fix: remove redundant condition and unnecessary test file

- Remove redundant gpt-5-chat-latest check in isResponsesApiModel since startsWith('gpt-5') already covers it
- Remove unnecessary dedicated test file for gpt-5-chat-latest

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-15 23:15:55 -04:00
Will Li
438c8e377a
Make enhance with task history default to true (#7140) 2025-08-15 22:40:46 -04:00
Matt Rubens
52c58ea666
Bump cloud version to 0.16.0 (#7135) 2025-08-15 14:25:32 -04:00
Matt Rubens
6274273982
Release: v1.51.0 (#7130) 2025-08-15 12:42:53 -04:00
Matt Rubens
9a734d0cab
Add an API for resuming tasks by ID (#7122) 2025-08-15 12:03:58 -04:00
Chris Estreich
44086e4a86
Add support for task page event population (#7117) 2025-08-14 23:17:05 -07:00
roomote[bot]
0d0bba2eb7
fix: add type check before calling .match() on diffItem.content (#6905) (#6906)
* fix: add type check before calling .match() on diffItem.content

Fixes #6905 - Error during diff application "v.content.match is not a function"

- Added type check to ensure diffItem.content is a string before calling .match()
- Added comprehensive tests for handling non-string content values
- Prevents runtime errors when content is null, undefined, or other non-string types

* fix: validate content type earlier in diff parsing

- Move type check to where content is first extracted from XML
- Remove redundant check since content is now guaranteed to be string
- Add test for early content validation

* chore: remove comments

* fix: add TelemetryService mock to multiApplyDiffTool tests

* fix: add captureDiffApplicationError to TelemetryService mock

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-14 20:05:45 -04:00
Daniel
bfdd158129
Fix: Enable save button for provider dropdown and checkbox changes (#7113)
* fix: enable save button for provider dropdown and checkbox changes

The save button wasn't enabling when users changed provider settings like
dropdowns and checkboxes because setApiConfigurationField was treating all
changes from undefined to a defined value as 'initial sync' and not marking
the form as dirty.

Added an optional isUserAction parameter (defaults to true) to distinguish:
- User actions (should enable save button) - the default
- Automatic initialization (shouldn't enable save button) - pass false

This fixes the issue where changing provider dropdowns, checkboxes with
default values, and other settings wouldn't enable the save button.

* fix: remove incorrect isUserAction=false from apiModelId sync

The useEffect that syncs apiModelId with selectedModelId was incorrectly
passing isUserAction=false, which prevented the save button from enabling
when users selected a different model. Since this effect responds to all
selectedModelId changes (including user selections), it should use the
default isUserAction=true behavior.

* test: fix ThinkingBudget test to expect isUserAction parameter

The test now correctly expects setApiConfigurationField to be called
with three arguments including the isUserAction=false parameter for
automatic thinking token adjustments.
2025-08-14 19:48:25 -04:00
NaccOll
3f4af18bf7
fix: Use cline.cwd as primary source for workspace path in codebaseSearchTool (#6902)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-14 18:17:14 -04:00
NaccOll
57389bff36
Hotfix multiple folder workspace checkpoint (#6903) 2025-08-14 18:16:54 -04:00
roomote[bot]
6540f2be5c
fix: prevent XML entity decoding in diff tools (#7107) (#7108)
* fix: prevent XML entity decoding in diff tools

- Add parseXmlForDiff function with processEntities: false to preserve exact content
- Update multiApplyDiffTool to use parseXmlForDiff instead of parseXml
- Add comprehensive tests for entity handling in parseXmlForDiff

This fixes the issue where fast-xml-parser was decoding HTML entities like &
causing mismatches in diff tools when comparing against original file content.

Fixes #7107

* refactor: eliminate code duplication between parseXml and parseXmlForDiff

- Refactored parseXml to accept optional ParseXmlOptions parameter
- parseXmlForDiff now delegates to parseXml with processEntities: false
- Added explanatory comment in multiApplyDiffTool.ts about why parseXmlForDiff is used
- Improved JSDoc documentation with specific use cases for parseXmlForDiff

This maintains backward compatibility while eliminating code duplication.
parseXml continues to be used for general XML parsing (file reads, follow-up questions),
while parseXmlForDiff is specifically for diff operations where entity processing must be disabled.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-14 17:46:52 -04:00
Catriel Müller
342123d351
Refactor task execution system: improve call stack management (#7035) 2025-08-14 15:43:44 -04:00
github-actions[bot]
2a105a5881
Changeset version bump (#7104)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-14 12:52:06 -04:00
Dicha Zelianivan Arkana
62d023d016
feat(web): fill missing SEO-related values (#7096)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-14 12:51:13 -04:00
github-actions[bot]
1ee9e01d6c
Update contributors list (#6883)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-08-14 12:50:55 -04:00
Matt Rubens
a6feb27093
Release v3.25.15 (#7103) 2025-08-14 12:49:21 -04:00
Daniel
253d5acc09
fix: add /evals page to sitemap generation (#7102)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-08-14 12:48:32 -04:00
Abdullah Hilson
3d2673bb28
feat: implement sitemap generation in TypeScript and remove XML file (#6206)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-14 11:53:16 -04:00
f14XuanLv
e5d93f2bca
fix: reset condensing state when switching tasks (#6922)
Previously, when users initiated context condensing and switched to another task before completion, the 'condensing context' indicator would persist on the new task.

This fix ensures the condensing state is properly reset in the task switching effect, preventing the indicator from appearing incorrectly on different tasks.
2025-08-14 10:21:31 -04:00
Chris Estreich
48af73dba9
Fix publish-npm script (#7093) 2025-08-14 03:17:56 -07:00
Chris Estreich
c56b95bc60
Task metadata (#7092) 2025-08-14 03:14:17 -07:00
roomote[bot]
dcbb7a673f
fix: remove 500-message limit to prevent scrollbar jumping in long conversations (#7064)
- Removed array slicing logic that limited messages to 500
- This eliminates array index shifting that caused Virtuoso to lose scroll position
- Virtuoso is designed to efficiently handle large lists through virtualization
- Fixes the scrollbar jumping issue reported in #7063 and #7052

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-13 21:21:32 -04:00
Christiaan Arnoldus
a203a90bb7
Fix allowedMaxRequests and allowedMaxCost values not showing in the settings UI (#6925) 2025-08-13 21:07:05 -04:00
github-actions[bot]
ca6f261cce
Changeset version bump (#7061)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-13 16:09:47 -04:00
Matt Rubens
46085581d5
Release v3.25.14 (#7060) 2025-08-13 15:42:13 -04:00
roomote[bot]
23afdfca03
fix: only include verbosity parameter for models that support it (#7055)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-13 15:33:18 -04:00
Daniel
7ed833cb5d
Fix: AWS Bedrock 1M context - Move anthropic_beta to additionalModelRequestFields (#7056) 2025-08-13 15:26:50 -04:00
Chris Estreich
962df868bd
Fix webview in dev mode (#7044) 2025-08-13 01:40:00 -07:00
Chris Estreich
9ffc2b0a36
Move cloud types from @roo-code/types to @roo-code/cloud (#7038) 2025-08-13 00:10:29 -07:00
Matt Rubens
6f81b775c7
Revert "Fix token usage / cost often being underreported" (#7039) 2025-08-13 01:33:57 -04:00
github-actions[bot]
140310f055
Changeset version bump (#7034)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-12 23:11:43 -04:00
roomote[bot]
667773be10
fix: add i18n support for Account button title (#6978)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 22:59:01 -04:00
Matt Rubens
49020da566
Release v3.25.13 (#7033) 2025-08-12 22:57:54 -04:00
Matt Rubens
13d1a5bc8f
Add Sonnet 1M context checkbox (#7032) 2025-08-12 22:51:30 -04:00
Peter Dave Hello
4c018663de
Remove deprecated GPT-4.5 Preview model (#6948) 2025-08-12 22:45:00 -04:00
roomote[bot]
8bd8f5dc59
feat: add support for AGENT.md alongside AGENTS.md (#6913)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 21:20:59 -04:00
roomote[bot]
7b0f489ea2
fix: add --no-messages flag to ripgrep to suppress file access errors (#6757)
Fixes #6756

When ripgrep encounters file access errors (e.g., permission denied), it would cause the search_files tool to return empty results. Adding the --no-messages flag suppresses these error messages while still showing pattern syntax errors, allowing the search to continue and return valid results from accessible files.

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 17:51:06 -04:00
github-actions[bot]
245bc2a2e6
Changeset version bump (#7019)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-12 16:15:51 -04:00
Matt Rubens
2083d11586
chore: add changeset for v3.25.12 (#7018) 2025-08-12 16:11:51 -04:00
roomote[bot]
f6f5fa3ede
feat: add OpenAI gpt-oss models to Amazon Bedrock dropdown (#6783)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 15:50:06 -04:00
Daniel
8e7a2e7bdb
feat: Update Claude Sonnet 4 context window to 1 million tokens (#7005)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-12 14:40:42 -04:00
roomote[bot]
bbe3362359
fix: ensure JSON files respect .rooignore during indexing (#6691)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-12 12:52:08 -04:00
roomote[bot]
f9e85a5e84
feat: add configurable API request timeout for local providers (#6531)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-12 11:48:45 -04:00
Matt Rubens
cee7c9894c
Add minimal reasoning support to OpenRouter (#6998)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-12 11:46:31 -04:00
Peter Dave Hello
01e417e0e5
Update and improve zh-TW Traditional Chinese locale (#6946) 2025-08-12 11:42:49 -04:00
roomote[bot]
1d8b51d7c9
fix: truncate long model names in model selector to prevent overflow (#6985)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-12 10:08:36 -04:00
Matt Rubens
3acb3ba21e
Adding requesty base url (#6992)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: John Costa <john@requesty.ai>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 10:04:35 -04:00
NaccOll
2730ef96b8
fix: improve checkpoint service initialization handling (#6860) 2025-08-12 09:57:25 -04:00
Chris Estreich
12d1959bbd
Switch to the UnifiedBridgeService (#6976) 2025-08-12 03:39:11 -07:00
Matt Rubens
5f3c67fa91
Bump cloud to 0.10.0 (#6968) 2025-08-12 00:04:52 -04:00
Alfredo Medrano
b6dd6e5210
fix: add --no-sandbox flag to browser launch options (#6686) 2025-08-11 23:25:58 -04:00
roomote[bot]
e02ac08089
feat: add new Chutes provider models (#6699)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-11 23:24:40 -04:00
Chris Estreich
65674d5191
Bump @roo-code/cloud to v0.9.0 (#6964) 2025-08-11 16:11:30 -10:00
roomote[bot]
5e07bc42d0
feat: exclude GPT-5 models from 20% context window output token cap (#6963)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-11 22:04:58 -04:00
roomote[bot]
4eb407585d
feat: add task.expand and task.collapse translations (#6962)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-11 22:03:20 -04:00
Chris Estreich
a7ad887621
Handle bridge config fetch errors (#6961) 2025-08-11 15:17:17 -10:00
roomote[bot]
bd39fe6fd4
fix: correct tool repetition detector to not block first tool call when limit is 1 (#6836)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-11 17:36:30 -04:00
Chris Estreich
b1300e5550
Bring back roomote control (#6796)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-11 17:28:08 -04:00
github-actions[bot]
4ae9014466
Changeset version bump (#6955)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-11 17:09:37 -04:00
Matt Rubens
6cc4b20bf3
Release v3.25.11 (#6952) 2025-08-11 17:04:55 -04:00
Christiaan Arnoldus
b30372d5ca
Fix token usage / cost often being underreported (#6122)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-11 16:55:16 -04:00
Ertan Dagistanli
1018b885ab
Add IO Intelligence Provider (#6875)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-11 16:54:35 -04:00
Matt Rubens
bce579f4c1
Remove translation roomote (#6945) 2025-08-11 15:39:28 -04:00
Daniel
76e5a726a3
feat: add native OpenAI provider support for Codex Mini model (#5386) (#6931)
Co-authored-by: Luis Daniel Riccio Silva <danriccio@Dans-MacBook-Pro.local>
2025-08-11 11:16:01 -04:00
Matt Rubens
f53fd39014
Add submitUserMessage to Task (#6895) 2025-08-10 03:13:15 -04:00
roomote[bot]
3ee607202e
fix: Clearify codebase_search path parameter optional and clarify tool descriptions (#6877)
* fix: make search_files path parameter optional and clarify tool descriptions

- Made path parameter optional in search_files tool (defaults to workspace root)
- Updated search_files description with clearer examples
- Improved codebase_search description to clarify when to use path parameter
- Updated test snapshots to reflect the changes

This addresses confusion where LLMs were unnecessarily specifying paths when searching from project root

* revert: remove search_files changes, keep only codebase_search improvements

- Reverted all changes to src/core/prompts/tools/search-files.ts
- Reverted all changes to src/core/tools/searchFilesTool.ts
- Updated test snapshots to reflect the reverted search_files tool
- Kept the codebase_search tool description improvements as intended

* Update codebase-search.ts

Simplify codebase_search tool documentation

- Condensed description to eliminate repetitive explanations about user wording
- Reduced from 2 examples to 1 comprehensive example showing optional path usage
- Streamlined parameter descriptions to remove redundancy
- Maintained all critical requirements (English queries, semantic search, path optionality)
- Reduced documentation size by ~40% while preserving clarity

* fix: add workspace directory context to codebase_search path parameter

- Added ToolArgs import and parameter to getCodebaseSearchDescription function
- Updated path parameter description to include '(relative to the current workspace directory ${args.cwd})'
- Updated index.ts to pass args to getCodebaseSearchDescription
- Maintains consistency with other tool descriptions like list_files and search_files

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-08-09 16:22:18 -04:00
Hannes Rudolph
cda67a86f5
GPT5 OpenAI Fix (#6864)
* fix: add explicit max_output_tokens for GPT-5 Responses API

- Added max_output_tokens parameter to GPT-5 request body using model.maxTokens
- This prevents GPT-5 from defaulting to very large token limits (e.g., 120k)
- Updated tests to expect max_output_tokens in GPT-5 request bodies
- Fixed test for handling unhandled stream events by properly mocking SDK fallback

* fix: add missing translations for reasoningEffort.minimal in Indonesian and Dutch locales

* fix: correct GPT-5 response ID persistence and usage

- Renamed metadata field from 'previous_response_id' to 'response_id' for clarity
- Fixed logic to correctly use the response_id from the previous message as previous_response_id for the next request
- This resolves the 'Previous response with id not found' errors that occurred after multiple turns in the same session

* feat: add robust error handling for GPT-5 previous_response_id failures

- Automatically retry without previous_response_id when it's not found (400 error)
- Clear stored lastResponseId to prevent reusing stale IDs
- Handle errors in both SDK and SSE fallback paths
- Log warnings when retrying to help with debugging

* fix: handle GPT-5 response ID race condition with nano model

- Add promise-based synchronization for response ID persistence
- Wait for pending response ID from previous request before using it
- Resolve promise when response ID is received or cleared
- Add 100ms timeout to avoid blocking too long on ID resolution
- Properly clean up resolver on errors to prevent memory leaks

This fixes the race condition where fast nano model responses could cause
the next request to be initiated before the response ID was fully persisted.

* fix: address PR review comments for GPT-5 implementation

- Extract usage normalization helper to reduce duplication
- Suppress conversation continuity for first message (but respect explicit metadata)
- Deduplicate response ID resolver logic
- Remove dead enableGpt5ReasoningSummary option references
- DRY up GPT-5 event/usage handling with normalizeGpt5Usage helper
- Centralize default GPT-5 reasoning effort using model info
- Fix Indonesian locale minimal string misplacement
- Add clarifying comments for Developer prefix usage
- Add TODO for future verbosity UI capability gating
- Fix failing test in reasoning.spec.ts

* fix(openai-native): address Roomote inline feedback\n\n- Delegate standard GPT-5 SSE event types to shared processor to reduce duplication\n- Add JSDoc for response ID accessors\n- Standardize key error messages for GPT-5 Responses API fallback\n- Extract persistGpt5Metadata() in Task to simplify metadata writes\n- Add malformed JSON SSE parsing test\n

* fix(openai-native,gpt5): correct usage cost calc (use calculateApiCostOpenAI incl. cache); enforce 'skip once' continuity via suppressPreviousResponseId; dedupe responseId resolver on SSE 400; feat: gate reasoning.summary by enableGpt5ReasoningSummary; centralize default reasoning effort; types/ui: add ModelInfo.supportsVerbosity and gate Verbosity UI by capability; refactor: avoid duplicate usage emission in SSE done/completed

* fix(gpt5): default enableGpt5ReasoningSummary=true to preserve tests and expected behavior

* fix(gpt5): canonicalize GPT-5 metadata key to previous_response_id and align enableGpt5ReasoningSummary default docs

* fix(openai-native): remove review artifact comments and guard GPT-5 in completePrompt
2025-08-09 14:52:06 -04:00
John Richmond
cdc31f7c26
Bedrock: workaround LiteLLM passthrough issues (#6778)
Explicitly setting requestTimeout seems to be required for it to be
possible to use the Bedrock provider with LiteLLM
Bedrock passthrough.
2025-08-09 14:29:18 -04:00
Hannes Rudolph
75b861c845
fix(mcp): Revert changes causing startup issues and remove refresh notifications (#6878)
* Revert "fix: prevent unnecessary MCP server refresh on settings save (#6772) (#6779)"

This reverts commit 8d05bc179b.

* fix(mcp): Revert changes causing startup issues and temporarily disable notifications

- Reverted PR #6779 which prevented unnecessary MCP server refreshes but caused startup failures
- Temporarily disabled MCP notification popups as a stopgap solution
- Added TODO comments explaining the temporary nature of disabled notifications
- This allows MCP servers to function properly while a more robust solution is developed

* test(mcp): restore mcpEnabled toggle coverage to verify delegation to McpHub

* refactor(mcp): remove info notifications during refresh; rely on UI indicator
2025-08-09 14:28:05 -04:00
github-actions[bot]
ad0e33e2d9
Changeset version bump (#6826)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-07 17:43:14 -04:00
github-actions[bot]
5f6891322a
Update contributors list (#6636)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-08-07 17:41:07 -04:00
Matt Rubens
d0b1fbf049
chore: add changeset for v3.25.10 (#6825) 2025-08-07 17:39:09 -04:00
roomote[bot]
dc57552ade
feat: add GPT-5 model support (#6819)
* feat: add GPT-5 model support

- Added GPT-5 models (gpt-5-2025-08-07, gpt-5-mini-2025-08-07, gpt-5-nano-2025-08-07)
- Added nectarine-alpha-new-reasoning-effort-2025-07-25 experimental model
- Set gpt-5-2025-08-07 as default OpenAI Native model
- Implemented GPT-5 specific handling with streaming and reasoning effort support

* fix: remove hardcoded temperature from GPT-5 handler

- Updated handleGPT5Message to use configurable temperature
- Now uses this.options.modelTemperature ?? OPENAI_NATIVE_DEFAULT_TEMPERATURE
- Maintains consistency with other model handlers

* feat: add reasoning effort support for all OpenAI models

* fix: update test to expect new default model gpt-5-2025-08-07

* feat: increase GPT-5 models context window to 400,000

- Updated context window from 256,000 to 400,000 for gpt-5-2025-08-07
- Updated context window from 256,000 to 400,000 for gpt-5-mini-2025-08-07
- Updated context window from 256,000 to 400,000 for gpt-5-nano-2025-08-07
- Updated context window from 256,000 to 400,000 for nectarine-alpha-new-reasoning-effort-2025-07-25

As requested by @daniel-lxs in PR #6819

* revert: remove GPT-5 models, keep only nectarine experimental model

- Removed gpt-5-2025-08-07, gpt-5-mini-2025-08-07, gpt-5-nano-2025-08-07
- Kept nectarine-alpha-new-reasoning-effort-2025-07-25 experimental model
- Reverted default model back to gpt-4o
- Updated tests and changeset accordingly

* feat: add GPT-5 models with updated context windows

- Added gpt-5-2025-08-07, gpt-5-mini-2025-08-07, gpt-5-nano-2025-08-07 models
- All GPT-5 models configured with 400,000 context window
- Updated nectarine model context window to 256,000
- All models configured with reasoning effort support
- Set gpt-5-2025-08-07 as default OpenAI Native model
- Added GPT-5 model handling in openai-native.ts
- Updated tests to reflect new default model

* fix: restore reasoning effort support for o1 series models

- Added supportsReasoningEffort: true to o1, o1-preview, and o1-mini models
- This restores the ability to use reasoning effort parameters with these models
- The existing code in openai-native.ts already handles reasoning effort correctly

* Revert "fix: restore reasoning effort support for o1 series models"

This reverts commit 7251237ae8.

* fix: restore reasoning effort support for o3 and o4 models

- Added supportsReasoningEffort: true to o3, o3-high, o3-low models
- Added supportsReasoningEffort: true to o4-mini, o4-mini-high, o4-mini-low models
- Added supportsReasoningEffort: true to o3-mini, o3-mini-high, o3-mini-low models
- These models have both supportsReasoningEffort and reasoningEffort properties

* Revert "fix: restore reasoning effort support for o3 and o4 models"

This reverts commit a75a2b8a69.

* fix: restore reasoning effort support for o3 and o4 models

- Added supportsReasoningEffort: true to o3, o3-high, o3-low models
- Added supportsReasoningEffort: true to o4-mini, o4-mini-high, o4-mini-low models
- Added supportsReasoningEffort: true to o3-mini, o3-mini-high, o3-mini-low models

* fix: adjust reasoning effort support for o3/o4 models

- Keep supportsReasoningEffort only for base o3, o4-mini, and o3-mini models
- Remove supportsReasoningEffort from -high and -low variants
- Position supportsReasoningEffort right before reasoningEffort property

* fix: remove nectarine experimental model

- Removed nectarine-alpha-new-reasoning-effort-2025-07-25 from openai.ts
- Removed nectarine handling from openai-native.ts (renamed to handleGpt5Message)
- Removed associated changeset file
- Keep GPT-5 models with developer role handling

* feat: implement full GPT-5 support with verbosity and minimal reasoning

- Add all three GPT-5 models with accurate pricing (.25/0 for gpt-5, /bin/sh.25/ for mini, /bin/sh.05//bin/sh.40 for nano)
- Implement verbosity control (low/medium/high) that passes through to API
- Add minimal reasoning effort support for fastest response times
- GPT-5 models use developer role instead of system role
- Set gpt-5-2025-08-07 as default OpenAI Native model
- Add Responses API infrastructure for future migration
- Update tests to verify all GPT-5 features
- All 27 tests passing

Note: UI controls for verbosity still need to be added in a follow-up PR

* feat: add verbosity setting for GPT-5 models

- Add VerbosityLevel type definition to model types
- Add verbosity field to ProviderSettings schema
- Create Verbosity UI component for settings
- Add verbosity labels to all localization files
- Integrate verbosity handling in model parameters transformation
- Update OpenAI native handler to support verbosity for GPT-5
- Add comprehensive tests for verbosity setting
- Update existing GPT-5 tests to use verbosity from settings

* Delete .roorules

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: hannesrudolph <hrudolph@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-07 16:57:12 -04:00
roomote[bot]
72668fef8d
fix: add missing MCP error translation keys (#6821)
* fix: add missing MCP error translation keys

- Added refresh_after_disable translation key
- Added refresh_after_enable translation key
- Added disconnect_servers_partial translation key
- Updated all 18 locale files with the missing keys
- Fixes the "errors.refresh_after_disable" display issue in MCP server management

* fix: remove fallback English strings from MCP error translations

As requested by @mrubens, removed the || operator and fallback English strings from:
- t("mcp:errors.disconnect_servers_partial")
- t("mcp:errors.refresh_after_disable")
- t("mcp:errors.refresh_after_enable")

The translation system will now rely solely on the localized strings without fallbacks.

* fix: translate MCP error messages to all locales

- Translated "refresh_after_disable" error message
- Translated "refresh_after_enable" error message
- Translated "disconnect_servers_partial" error message with count placeholder
- All 17 non-English locales now have proper translations instead of English text

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-07 14:42:12 -04:00
Hannes Rudolph
7ea1ae570a
fix: use CDATA sections in XML examples to prevent parser errors (#4852) (#6811) 2025-08-07 12:42:29 -04:00
github-actions[bot]
6b4ac52d00
Changeset version bump (#6810)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-07 10:22:46 -04:00
Matt Rubens
cd8f862fc2
chore: add changeset for v3.25.9 (#6809) 2025-08-07 10:19:18 -04:00
Matt Rubens
518c558d56
Fix rounding of max tokens (#6808) 2025-08-07 10:11:01 -04:00
roomote[bot]
212297755f
feat: add GLM-4.5 and OpenAI gpt-oss models to Fireworks provider (#6784)
* feat: add GLM-4.5 and OpenAI gpt-oss models to Fireworks provider

- Added GLM-4.5 (355B/32B active) and GLM-4.5-Air (106B/12B active) models from Z.ai
- Added gpt-oss-20b and gpt-oss-120b models from OpenAI
- All models configured with 128K context window
- Added comprehensive test coverage for all new models

Fixes #6753

* fix: update GLM-4.5 model IDs to use p instead of hyphen

- Changed glm-4-5 to glm-4p5
- Changed glm-4-5-air to glm-4p5-air
- Updated corresponding test cases

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-07 09:42:22 -04:00
roomote[bot]
15b0f50dd9
feat: focus chat input when clicking plus button in extension menu (#6689)
* feat: focus chat input when clicking plus button in extension menu

- Added focusInput action after chatButtonClicked in plusButtonClicked handler
- This ensures the text area in ChatView gets focused when users click the + button
- Improves user experience by allowing immediate typing after creating new chat

* fix: replace unreliable setTimeout with sequential message passing

- Removed setTimeout with hardcoded 100ms delay
- Now sending focusInput action immediately after chatButtonClicked
- This ensures proper sequencing without arbitrary timing delays
- More reliable approach that doesn't depend on timing assumptions

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-07 09:33:25 -04:00
Chris Estreich
cb0a58e4a4
Support linking to @roo-code/cloud in Roo-Code repo (#6799)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-08-07 01:09:21 -10:00
Chris Estreich
37330b0209
Bring back "Use @roo-code/cloud from npm" (#6795) 2025-08-06 20:51:41 -10:00
github-actions[bot]
a198b6aebc
Changeset version bump (#6790)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-06 21:00:33 -07:00
Matt Rubens
ba13c5e5bf
Release v3.25.8 (#6789) 2025-08-06 20:56:25 -07:00
Hannes Rudolph
8d05bc179b
fix: prevent unnecessary MCP server refresh on settings save (#6772) (#6779) 2025-08-06 17:37:51 -07:00
Daniel
c99ccf0bb0
fix: Replace scrollToIndex with scrollTo to fix scroll jitter (#6780) 2025-08-06 17:24:18 -07:00
Matt Rubens
c52fdc4397
Clamp default model max tokens to 20% of context window (#6761) 2025-08-06 13:51:10 -07:00
roomote[bot]
2b647ed9a1
fix: handle current directory path "." correctly in codebase_search tool (#6517)
* fix: handle current directory path "." correctly in codebase_search tool

- Fix path filtering logic in QdrantVectorStore.search() to properly handle current directory representations
- When directoryPrefix is ".", "./", "", or similar, set filter to undefined to search entire workspace
- Add comprehensive tests covering various current directory path formats including cross-platform support
- Resolves issue where codebase_search with path="." returned no results

Fixes #6514

* fix: normalize directory prefix handling in Qdrant vector store

* fix: normalize paths starting with './' and fix OS-dependency issue

- Use forward slash for splitting after toPosix() conversion
- Remove leading './' from paths like './src' to normalize them to 'src'
- Update test expectations to match correct behavior

* refactor: use path.posix.normalize instead of custom toPosix method

- Replaced directoryPrefix.toPosix() with path.posix.normalize()
- Added proper handling of backslashes before normalization
- Updated test mock to include posix.normalize method
- All tests passing (381 tests in code-index service)

* refactor: address review comments - improve path normalization

- Keep check for './' after normalization as path.posix.normalize('./') returns './'
- Use actual Node.js path.posix implementation in tests instead of custom mock
- Apply path.posix.normalize to cleanedPrefix for consistency

All 381 code-index tests pass

* fix: apply path.posix.normalize when cleaning prefix to avoid redundant normalization

Addresses review comment from @mrubens to normalize the path at line 385 instead of normalizing twice

* fix: correct current directory detection logic

The issue was that the condition checked for an empty string after normalization,
but path.posix.normalize('') actually returns '.', not ''. This caused the
current directory check to fail when an empty string was passed.

Removed the redundant empty string check since normalize('') returns '.' which
is already handled by the first condition.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: hannesrudolph <hrudolph@gmail.com>
2025-08-06 06:28:28 -07:00
roomote[bot]
34fb5b7c37
fix: recover from error state when Qdrant becomes available (#6661)
* fix: recover from error state when Qdrant becomes available

- Add recoverFromError method to CodeIndexManager to clear error state and reset internal services
- Update startIndexing handler to check for error state and recover before initialization
- Add comprehensive tests for error recovery functionality

Fixes #6660

* fix: address PR review comments for code indexing error recovery

- Add race condition protection for multiple rapid clicks on Start Indexing button
- Add error handling for setSystemState in recoverFromError method
- Enhance JSDoc documentation for recoverFromError method
- Add test cases for recoverFromError idempotency and error handling

* refactor: move error recovery logic into startIndexing method

- Moved error recovery from webviewMessageHandler into CodeIndexManager.startIndexing()
- This ensures error recovery happens whenever indexing is started, not just from UI
- Added race condition prevention flag within CodeIndexManager
- Simplified webviewMessageHandler by removing error state checking
- The startIndexing method now automatically recovers from error state before proceeding

* fix: remove await from startIndexing calls and update JSDoc

- startIndexing should never be awaited as it's a long-running background process
- Added JSDoc warning to never await this method
- Updated webviewMessageHandler to not await startIndexing calls

* fix: use platform-agnostic paths in code-index manager tests for Windows compatibility

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-06 06:26:34 -07:00
Chris Estreich
142cdb5cb1
Revert "Use @roo-code/cloud from npm" (#6742)
Revert "Use @roo-code/cloud from npm (#6611)"

This reverts commit a1439c1f96.
2025-08-05 16:13:11 -10:00
roomote[bot]
7a865e26c4
fix: prevent disabled MCP servers from starting processes and show correct status (#6084)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: hannesrudolph <hrudolph@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-05 16:55:30 -07:00
roomote[bot]
263e317ebd
feat: reduce Gemini 2.5 Pro minimum thinking budget to 128 (#6588)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-05 15:43:20 -07:00
roomote[bot]
1237eb825b
fix: trim whitespace from OpenAI base URL to fix model detection (#6560)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-05 14:22:29 -07:00
roomote[bot]
7b6c6a8196
fix: improve handling of net::ERR_ABORTED errors in URL fetching (#6635)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-05 14:21:58 -07:00
Nitesh
4f4328d97c
Add swift files to fallback list (#6724) 2025-08-05 14:19:23 -07:00
xyOz
6892427e34
Fix: Resolve Memory Leak in ChatView Virtual Scrolling Implementation (#6697)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-05 14:08:52 -07:00
Matt Rubens
2e77ce1684
Update CHANGELOG.md 2025-08-05 12:08:23 -07:00
github-actions[bot]
31df9bd20c
Changeset version bump (#6738)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-05 12:06:47 -07:00
Matt Rubens
1805b75b43
Stop making types private (#6737) 2025-08-05 11:56:16 -07:00
Matt Rubens
beacbd73a9
Delete bad changeset (#6736) 2025-08-05 11:47:33 -07:00
Matt Rubens
e5f117ded6
Revert "Changesets config tweak (#6733)" (#6735) 2025-08-05 11:42:22 -07:00
Daniel
98e0a2d5c6
feat: add OpenAI GPT OSS model to Cerebras providers (#6734) 2025-08-05 11:25:02 -07:00
Matt Rubens
f4b7c895e3
Changesets config tweak (#6733) 2025-08-05 11:23:02 -07:00
Matt Rubens
f0d2a54aad
v3.25.7 (#6730) 2025-08-05 11:12:13 -07:00
Daniel
6331f5769b
feat: add GPT-OSS 120b and 20b models to Groq provider (#6732) 2025-08-05 11:10:23 -07:00
roomote[bot]
24584f54ec
feat: clean up task list in HistoryPreview and History components (#6687)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-05 11:05:55 -07:00
roomote[bot]
477b85de03
feat: add support for Claude Opus 4.1 (claude-opus-4-1-20250805) (#6728)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-05 10:55:03 -07:00
Matt Rubens
c632b22e56
Revert "Extension bridge (#6677)" (#6729) 2025-08-05 10:45:45 -07:00
Bruno Bergher
ea79dfeb66
Redesigned Task Header (#6561)
* Reorganizes the task header for cleanliness and in preparation for Cloud link

* More task ehader visual tweaks

* Translations for new task header

* Fixes TaskHeader color

* Removes stray string

* Fixes tests

* Iterates on visual details

* More visual tweaks

* Missing localization call

* Fixes tests

---------

Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
2025-08-05 06:26:25 -07:00
NaccOll
d90bab71ff
feat: code indexing support multiple folder similar with task history (#6204)
* feat: Implement code indexing support multi-folder workspaces similar to task history

* fix: add missing mock for onDidChangeActiveTextEditor in tests
2025-08-04 19:39:37 -07:00
roomote[bot]
8a35b64b9b
fix: prevent MCP server creation when setting is disabled (#6613)
* fix: prevent MCP server creation when setting is disabled

- Modified getFetchInstructionsDescription to conditionally include create_mcp_server task
- Updated getToolDescriptionsForMode to pass enableMcpServerCreation parameter
- Added tests to verify the conditional behavior
- Updated snapshot test to reflect the new expected behavior

Fixes #6607

* fix: address review comments - add JSDoc, null test, and clarify default behavior

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-04 19:29:38 -07:00
ershang-fireworks
4a9222b50e
Add the fireworks AI provider (#6652)
* add fireworks provider

* add tests

* Update packages/types/src/providers/fireworks.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix typo

* another typo

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-04 19:27:12 -07:00
Chris Estreich
1d714c8ce4
Extension bridge (#6677)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-04 13:58:14 -07:00
roomote[bot]
7ca4901024
fix: prevent empty mode names from being saved (fixes #5766) (#5767)
* fix: prevent empty mode names from being saved (fixes #5766)

- Add frontend validation in ModesView to prevent empty names from being saved
- Add onBlur handler to restore original name if field is left empty
- Add backend validation in CustomModesManager.updateCustomMode using modeConfigSchema
- Provide user feedback when validation fails
- Trim whitespace from mode names before validation

This prevents YAML parsing errors caused by empty mode name fields.

* fix: improve UX by allowing users to empty mode name field

- Remove restriction that prevented users from emptying the name field
- Remove onBlur handler that automatically restored original name
- Allow backend validation to handle empty names and show appropriate errors
- Users can now type freely but invalid saves are prevented by backend validation

Addresses feedback from @daniel-lxs in PR #5767

* fix: allow emptying mode name field but prevent saving when invalid

- Modified onBlur handler to check if name is empty before saving
- If empty, revert to original name instead of saving empty value
- This provides better UX as requested in PR review

* fix: add proper JSON formatting to source map writes for Windows compatibility

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-04 11:03:34 -07:00
Chris Estreich
c34e412771
Bump @roo-code/types to v1.44.0 (#6675) 2025-08-04 07:58:11 -10:00
Kaan
4e8b17486b
feat(ui): Make mode selection dropdowns responsive (#6422) 2025-08-04 11:56:05 -04:00
jues
a921d059e1
Add Z AI provider (#6657)
Co-authored-by: wangshan <shan.wang@aminer.cn>
2025-08-04 10:06:46 -04:00
axb
f24c1e69a3
use assistantMessageParser class instead of parseAssistantMessage (#5341)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-04 10:02:30 -04:00
NaccOll
603c6c6aea
style: update highlightLayer style and align to textarea (#6648) 2025-08-04 08:52:21 -05:00
roomote[bot]
2882d99ea8
Remove 'Initial Checkpoint' terminology, use 'Checkpoint' consistently (#6643)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-04 00:23:08 -04:00
Chris Estreich
a1439c1f96
Use @roo-code/cloud from npm (#6611) 2025-08-03 16:43:33 -10:00
Chris Estreich
fd7550f463
Bump @roo-code/types to v1.43.0 (#6640) 2025-08-03 16:38:40 -10:00
NaccOll
a5b55dac8b
Changing checkpoint timing and ensuring checkpoints work (#6359)
* feat: Before requesting, ensure checkpoint is initialized

* Generate a checkpoint before modifying the code

* refactor: streamline checkpoint handling and enhance getCheckpoints method

* Blocked waiting for checkpoint initialization timing to change

* cancel checkpoint restore limit

* fix: ensure checkpoint service is undefined on initialization error and improve checkpoint diff handling

* refactor: simplify checkpoint service initialization and cleanup unused variables in CheckpointMenu

* fix: prevent race condition in checkpoint service initialization

- Only assign service to cline.checkpointService after successful initialization
- Add proper cleanup on initialization failure
- Prevents service from being in inconsistent state if Git check fails

* fix: remove checkpoint save from presentAssistantMessage for update_todo_list case

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-03 19:21:45 -04:00
NaccOll
a88238f68b
feat: conditionally include reminder section based on todo list config (#6411)
* feat: conditionally include reminder section based on todo list configuration

* feat: add tests for REMINDERS section based on todoListEnabled configuration
2025-08-03 08:26:33 -04:00
Matt Rubens
82a007a211
Fix the UI for approving chained commands (#6623) 2025-08-03 02:15:45 -04:00
Chris Estreich
3f966dfaa3
Bump @roo-code/types to v1.42.0 (#6610) 2025-08-02 13:27:59 -07:00
Chris Estreich
b2d2a2c5d2
Task and TaskProvider event emitter cleanup + a few new events (#6606)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-02 11:12:44 -07:00
github-actions[bot]
8513263a67
Changeset version bump (#6579)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-01 21:32:31 -04:00
github-actions[bot]
c666340bd6
Update contributors list (#6506)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-08-01 21:30:54 -04:00
roomote[bot]
b5a54ba48d
Release v3.25.6 (#6578)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-01 21:28:49 -04:00
roomote[bot]
19c157e51c
feat: set horizon-beta model max tokens to 32k for OpenRouter (#6577)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-01 21:11:24 -04:00
roomote[bot]
69685c779d
chore: bump @roo-code/types to v1.41.0 (#6568)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-01 13:14:55 -07:00
John Richmond
8353ca2519
Cloud: support syncing provider profiles from the cloud (#6540) 2025-08-01 16:00:09 -04:00
github-actions[bot]
f7b2bb0384
Changeset version bump (#6565)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-01 15:39:30 -04:00
Matt Rubens
b9cd1e1b2c
Release v3.25.5 (#6564) 2025-08-01 15:34:27 -04:00
Kevin Taylor
88272e9b02
Add Qwen 3 Coder from Cerebras (#6562)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-01 15:29:33 -04:00
Daniel
7cbb37df74
fix: Fix VB.NET indexing by implementing fallback chunking system (#6552) 2025-08-01 14:55:45 -04:00
Matt Rubens
ebfd384ac4
More tolerant search/replace match (#6537)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-01 11:58:57 -04:00
Matt Rubens
305a5da369
Clean up the auto-approve UI (#6538)
* Clean up the auto-approve UI

* Update webview-ui/src/components/settings/AutoApproveSettings.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Fix

* Translations

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-08-01 07:49:42 -04:00
Will Li
836371c36a
fix: linter not applied to locales/*/README.md (#6477)
fix
2025-07-31 22:00:32 -04:00
Matt Rubens
5c05762333
Revert "Migrate evals database when deploying roo-code-website" (#6525) 2025-07-31 19:27:55 -04:00
thill2323
c6e7ac41fc
Phase 1 website updates (#6085)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-31 19:08:06 -04:00
John Richmond
6e835de82f
Cloud service cleanup callbacks / move to events (#6519)
* Cloud: use events in SettingsService

* Cloud: simplify AuthService events

* Cloud: convert CloudService to an EventEmitter

* Apply suggestions from code review

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-07-31 18:30:30 -04:00
Kevin Taylor
079fc22a66
Add Cerebras as a provider (#6392) 2025-07-31 18:17:54 -04:00
Daniel
5041880da0
fix: handle Qdrant deletion errors gracefully to prevent indexing interruption (#6296) 2025-07-31 16:20:11 -04:00
Chris Hasson
1da82b2db0
Add auto-approved cost limits (#6484)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-31 15:33:09 -04:00
Piotr Wilkin (ilintar)
1a013b4416
fix: LM Studio model context length (#5075) (#6183)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-31 15:31:04 -04:00
Daniel
74672fafcb
fix: restore message sending when clicking save button (#6487) 2025-07-31 11:36:40 -04:00
Matt Rubens
de359a465c
Handle more variations of chaining and subshell command validation (#6486) 2025-07-31 11:28:43 -04:00
roomote[bot]
816dc75681
fix: improve Claude Code ENOENT error handling with installation guidance (#5867)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-31 10:45:16 -04:00
roomote[bot]
e13083e532
Skip interpolation for non-existent slash commands (#6475)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-31 01:21:19 -04:00
github-actions[bot]
2f8fd889a5
Changeset version bump (#6474)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-31 00:13:50 -04:00
Matt Rubens
f04e7b0cc5
Release v3.25.4 (#6473) 2025-07-31 00:08:06 -04:00
Matt Rubens
d70adaced9
Revert experiments with nightly marketplace config (#6472) 2025-07-30 23:37:42 -04:00
roomote[bot]
c47e857048
feat: set horizon-alpha model max tokens to 32k for OpenRouter (#6470)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-30 23:27:18 -04:00
KJ7LNW
01f5320b4d
fix: Remove misleading task resumption message (#5851)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-30 22:53:06 -04:00
renovate[bot]
b7410dce8c
chore(deps): update dependency lint-staged to v16.1.2 (#4965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 22:49:35 -04:00
renovate[bot]
4d9cf8f721
fix(deps): update dependency recharts to v2.15.4 (#4971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 22:49:19 -04:00
Daniel
ccd8ab9ffc
Fix: Kill button for execute_command tool (#6457) 2025-07-30 22:24:43 -04:00
roomote[bot]
38c6c7a101
feat: add zai-org/GLM-4.5-FP8 model to Chutes AI provider (#6441)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-30 22:23:51 -04:00
github-actions[bot]
b71cd44c1c
Update contributors list (#6360)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-30 20:23:02 -04:00
renovate[bot]
c21ef368d7
chore(deps): update dependency @changesets/cli to v2.29.5 (#4936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 20:18:38 -04:00
Chris Estreich
796ee5c0e3
Migrate evals database when deploying roo-code-website (#6146)
Evals db migrate
2025-07-30 20:12:21 -04:00
Chris Estreich
cb6dccab95
Miscellaneous cleanup (#6453) 2025-07-30 16:10:53 -07:00
roomote[bot]
b8dc31581c
feat: add symlink support for AGENTS.md file loading (#6326)
* feat: add symlink support for AGENTS.md file loading

- Add safeReadFileFollowingSymlinks function to handle symlink resolution
- Update loadAgentRulesFile to use the new symlink-aware function
- Add comprehensive tests for both symlink and regular file scenarios
- Ensures AGENTS.md can be a symlink pointing to actual rules file

* refactor: use existing symlink resolution pattern for AGENTS.md

- Extracted resolveSymlinkPath function to handle symlink resolution
- Removed duplicate safeReadFileFollowingSymlinks function
- Updated loadAgentRulesFile to use resolveSymlinkPath + safeReadFile
- Updated tests to match new implementation
- Maintains same functionality while reusing existing patterns

* fix: simplify symlink resolution for AGENTS.md to fix Windows compatibility

- Remove duplicate resolveSymlinkPath function as suggested by @mrubens
- Use simpler inline symlink resolution in loadAgentRulesFile
- Update tests to match simplified implementation
- This should fix the failing Windows unit tests while maintaining functionality

* refactor: use existing resolveSymLink function for AGENTS.md symlink support

- Remove duplicate inline symlink resolution logic
- Reuse existing resolveSymLink function with MAX_DEPTH protection
- Adapt loadAgentRulesFile to work with resolveSymLink's fileInfo interface
- Fix test to properly mock fs.stat for resolved symlink targets
- All tests pass (36/36)

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-30 18:57:15 -04:00
Hannes Rudolph
ded0180112
feat: diagnose nightly freeze by disabling contributes (#6450) 2025-07-30 16:41:56 -06:00
roomote[bot]
5f4ccbcc34
fix: resolve navigator global error by updating mammoth and bluebird dependencies (#6363)
- Update mammoth from ^1.8.0 to ^1.9.1
- Add pnpm override to force bluebird >=3.7.2 (was 3.4.7)
- Fixes PendingMigrationError: navigator is now a global in nodejs
- Resolves extension crashes in VS Code nightly builds

Fixes #6356

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-30 18:32:31 -04:00
Adam Brand
7a07088802
Add pattern to support Databricks /invocations endpoints (#6317)
For using other models in Azure (e.g., Claude); you have to use Databricks, and the other patterns didn't match that.
2025-07-30 18:31:26 -04:00
NaccOll
181993f639
feat: enhance token counting by extracting text from messages using VSCode LM API (#6424) 2025-07-30 16:56:01 -04:00
Will Li
83280a0d40
feat: Add Task History Context to Prompt Enhancement (#6343) 2025-07-30 16:54:33 -04:00
AntiMoron
4b45a4e7f2
Support new LLM provider: Doubao (#6345)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-30 16:54:16 -04:00
Hannes Rudolph
4015a58951
fix: Use separate changelog for nightly builds to prevent marketplace freezing (#6449) 2025-07-30 16:53:35 -04:00
roomote[bot]
2217a3d548
feat: auto-refresh marketplace data when organization settings change (#6446)
- Added organizationSettingsVersion to ExtensionState type
- Modified ClineProvider to include version in state sent to webview
- Updated CloudService callback to trigger marketplace refresh on settings change
- Added logic to MarketplaceView to detect version changes and request data refresh
- Added comprehensive tests for the new functionality

This ensures marketplace items (MCPs and modes) stay in sync when organization settings are updated in the cloud.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-07-30 13:52:28 -07:00
Jorge Piedrahita Ortiz
75f93c41cf
feat: add SambaNova provider integration (#6188) 2025-07-30 12:47:12 -04:00
github-actions[bot]
f3d2504117
Changeset version bump (#6438)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-30 11:34:15 -04:00
Matt Rubens
6f9fea3ab9
chore: add changeset for v3.25.3 (#6435) 2025-07-30 11:14:46 -04:00
Hannes Rudolph
5724cb2bbb
docs: clarify apply_diff tool descriptions to emphasize surgical edits (#6278)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-30 10:52:20 -04:00
Chris Hasson
fcbff29d04
fix(chat): Prevent input clearing when clicking chat buttons (#6222)
Co-authored-by: Chris Hasson <noreply@example.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-30 10:51:03 -04:00
Daniel
0b9010a688
Remove event types mention from PR reviewer rules (#6428) 2025-07-30 10:49:41 -04:00
Matt Rubens
14a116e1f2
Update the auto-translate prompt (#6430) 2025-07-30 10:46:44 -04:00
Matt Rubens
d7c1c74fef
Hide Gemini checkboxes on the welcome view (#6415) 2025-07-30 10:46:18 -04:00
roomote[bot]
09cf6d0996
Remove "(prev Roo Cline)" from extension title in all languages (#6426)
feat: remove "(prev Roo Cline)" from extension title in all languages

- Updated all package.nls.*.json files to remove "(prev Roo Cline)" references from extension display names
- Updated all localized README.md files to remove "(prev Roo Cline)" references from titles
- Updated main README.md to remove "(prev Roo Cline)" reference from title
- Affects 18 language files and 18 README files across all supported locales

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-30 09:06:44 -04:00
roomote[bot]
6331944ed1
feat: add translation check action to pull_request.opened event (#6393)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-29 21:35:05 -07:00
Matt Rubens
f49d8bc199
Allow queueing images (#6414) 2025-07-29 23:57:55 -04:00
Matt Rubens
8f7ac57e47
Add docs link for slash commands (#6409) 2025-07-29 22:46:37 -04:00
Daniel
51836bdafb
Update PR reviewer rules and mode configuration (#6391) 2025-07-29 22:20:47 -04:00
roomote[bot]
fd5bdc7cb1
feat: increase Claude Code default max output tokens to 16k (#6312)
feat: increase Claude Code default max output tokens from 8k to 16k

- Changed CLAUDE_CODE_DEFAULT_MAX_OUTPUT_TOKENS from 8000 to 16000
- Users can still lower it to 8k via environment variable if needed
- Addresses issue #6125 regarding output token limits

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-29 21:07:25 -04:00
github-actions[bot]
e654ced135
Changeset version bump (#6390)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-29 18:09:58 -04:00
Matt Rubens
d1cbc79cb5
Release v3.25.2 (#6389) 2025-07-29 18:06:36 -04:00
Matt Rubens
3d3d4aea65
Fix zap hover (#6388) 2025-07-29 18:00:32 -04:00
Daniel
1cc9f15df1
fix: show diff view before approval when PREVENT_FOCUS_DISRUPTION is disabled (#6386) 2025-07-29 17:52:30 -04:00
John Richmond
7b0a7e544d
Bump types to 1.40.0 (#6387) 2025-07-29 14:41:31 -07:00
John Richmond
6a42e91b15
Cloud: add organization MCP controls (#6378)
- Add option to hide mcps from the marketplace
- Add ability to define new organization mcps
2025-07-29 14:11:51 -07:00
github-actions[bot]
43021d33e2
Changeset version bump (#6385)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-29 17:10:43 -04:00
Matt Rubens
c5ba16323a
Release v3.25.1 (#6384) 2025-07-29 16:20:04 -04:00
roomote[bot]
039154e938
feat: add zai-org/GLM-4.5-Air model to Chutes AI provider (#6377)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-29 16:14:11 -04:00
Matt Rubens
2c2a7842c4
Improvements to subshell validation (#6379) 2025-07-29 15:30:07 -04:00
Hannes Rudolph
82a3212180
docs: update docs extractor mode configuration and rules (#6373) 2025-07-29 11:29:31 -06:00
github-actions[bot]
b117c0fe52
Changeset version bump (#6362)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-29 11:57:04 -04:00
github-actions[bot]
f955dc4aab
Update contributors list (#6302)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-29 11:54:21 -04:00
roomote[bot]
8c77ca1aed
fix: exclude rules-{slug} folder from mode export paths (#6186)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-29 11:53:57 -04:00
Matt Rubens
4a934f4407
chore: add changeset for v3.25.0 (#6358)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-29 11:52:57 -04:00
Daniel
d07fe6a17f
feat: make PR reviewer rules generic (#6357) 2025-07-29 11:33:19 -04:00
Christiaan Arnoldus
0ea81a19f6
Remove duplicated assignment (#6355) 2025-07-29 10:54:44 -04:00
Chris Hasson
c26752be17
fix(environment): Filter out non-text tab inputs (#6350)
Co-authored-by: Chris Hasson <noreply@example.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-29 10:14:11 -04:00
Chris Estreich
cc0f9e3604
Add .roomotes.yml (#6346) 2025-07-29 02:05:56 -07:00
Matt Rubens
00a3738d30
Better command highlighting (#6336) 2025-07-29 01:42:17 -04:00
Matt Rubens
e117208c29
Command argument hints and change release engineer to a command (#6333) 2025-07-29 00:42:28 -04:00
Matt Rubens
9baac07bf3
Ensure form-data >= 4.0.4 (#6332) 2025-07-28 23:41:55 -04:00
Sam Hoang Van
017622d3e3
feat(tools): add image support to read_file tool (#5172)
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-28 23:23:33 -04:00
roomote[bot]
93930643c6
feat: Add experimental setting to prevent editor focus disruption (#6214)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-28 23:14:53 -04:00
roomote[bot]
8b9303c015
feat: make task mode sticky to task (#6177)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: hannesrudolph <hrudolph@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-28 23:06:14 -04:00
roomote[bot]
e3a8e03905
feat: add ESC key handling for modes, API provider, and indexing settings popovers (#6175)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-28 23:04:23 -04:00
Matt Rubens
41aaf07861
Parse mentions from all user inputs (#6331) 2025-07-28 22:52:39 -04:00
Matt Rubens
e9561743a3
Support inserting mentions after a slash command (#6327)
* Support inserting mentions after a slash command

* Highlight slash commands
2025-07-28 20:58:00 -04:00
Daniel
cd26fc493f
feat: Update PR reviewer mode to use todo lists and GitHub CLI (#6328)
- Add todo list initialization and tracking throughout the review workflow
- Replace all MCP GitHub server calls with gh CLI commands
- Fix duplicate step numbering issue
- Update best practices and common mistakes documentation
- Add notes about GitHub CLI limitations for inline comments
2025-07-28 20:56:57 -04:00
Daniel
f90fc2fd5f
Restore PR reviewer (#6324)
Restore PR reviewer mode with updated rules structure
2025-07-28 19:21:14 -05:00
Matt Rubens
ddb9950776
Fix slash command highlighting (#6325) 2025-07-28 19:52:25 -04:00
roomote[bot]
7b756e391f
fix: empty README.vscode.md to test marketplace freezing issue (#6315)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 15:18:32 -06:00
Matt Rubens
182679d34c
Add support for slash command frontmatter descriptions (#6314) 2025-07-28 17:03:10 -04:00
Hannes Rudolph
03ce1e58a3
feat(mode-writer): add validation and cohesion checking for mode creation (#6313)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-28 16:45:42 -04:00
roomote[bot]
b27673e41f
fix: normalize Windows paths to forward slashes in mode export (#6308)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 16:41:00 -04:00
Hannes Rudolph
4effcecd83
Improve issue-writer mode initialization workflow (#6311) 2025-07-28 16:30:26 -04:00
Matt Rubens
785fcac625
Add a UI for managing slash commands (#6286)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 15:57:32 -04:00
Murilo Pires
a0018c9d04
feat: add prompt caching support for LiteLLM (#5791) (#6074)
* feat: add prompt caching support for LiteLLM (#5791)

- Add litellmUsePromptCache configuration option to provider settings
- Implement cache control headers in LiteLLM handler when enabled
- Add UI checkbox for enabling prompt caching (only shown for supported models)
- Track cache read/write tokens in usage data
- Add comprehensive test for prompt caching functionality
- Reuse existing translation keys for consistency across languages

This allows LiteLLM users to benefit from prompt caching with supported models
like Claude 3.7, reducing costs and improving response times.

* fix: improve LiteLLM prompt caching to work for multi-turn conversations

- Convert system message to structured format with cache_control
- Handle both string and array content types for user messages
- Apply cache_control to content items, not just message level
- Update tests to match new message structure

This ensures prompt caching works correctly for all messages in a conversation,
not just the initial system prompt and first user message.

* fix: resolve TypeScript linter error for cache_control property

Use type assertion to handle cache_control property that's not in OpenAI types
2025-07-28 12:56:06 -07:00
roomote[bot]
499d12ccc0
fix: remove demo GIF from VS Code README to prevent marketplace freezing (#6305)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 15:52:31 -04:00
roomote[bot]
1f3a107369
fix: hide Test ErrorBoundary button in production mode (#6216)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 14:46:05 -04:00
roomote[bot]
878b0bd8d8
Fix keyboard shortcuts for non-QWERTY layouts (#6162)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 14:45:35 -04:00
Hannes Rudolph
6c87ce8cd7
Revert "fix: optimize README for VS Code marketplace to prevent UI freezing" (#6303) 2025-07-28 14:31:01 -04:00
roomote[bot]
6a336c6de3
fix: optimize README for VS Code marketplace to prevent UI freezing (#6275)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-28 12:16:53 -06:00
Ton Hoang Nguyen (Bill)
342ee70fb4
Feat: Adding Gemini tools - URL Context and Grounding with Google Search (#5959)
* feat: Adding more settings and control over Gemini

- with topP, topK, maxOutputTokens
- allow users to enable URL context and Grounding Research

* feat: Adding parameter titles and descriptions + translation to all languages

* feat: adding more translations

* feat: adding `contextLimit` implementation from `maxContextWindow` PR + working with profile-specific thresholding

* feat: max value for context limit to model's limit + converting description and titles to settings for translation purposes

* feat: all languages translated

* feat: changing profile-specific threshold in context management setting will also change in Gemini context management

- sync between Context Management Settting <-> Gemini Context Management with regards to thresholding

* feat: max value of maxOutputTokens is model's maxTokens + adding more tests

* feat: improve unit tests and adding `data-testid` to slider and checkbox components

* fix: small changes in geminiContextManagement descriptions + minor fix

* fix: Switching from "Gemini Context Management" to "Token Management

- better naming and correct purpose

* fix: input field showed NaN -> annoying UX

* fix: Removing redundant "tokens" after the "set context limit"'s checkbox + removing the lengthy description

* fix: Changing the translation to be consistent with the english one

* fix: more translations

* fix: translations

* fix: removing contextLimit and token management related code

- due to the decision in: https://github.com/RooCodeInc/Roo-Code/issues/3717

* fix: removing `contextLimit` test and removing token management in translations

* fix: changing from `Advanced Features` to `Tools` to be consistent with Gemini docs/AI studio

* fix: adding `try-catch` block for `generateContentStream`

* feat: Include citations + improved type safety

* feat: adding citation for streams (generateContextStream)

* fix: set default values for `topP`, `topK` and `maxOutputTokens`

* fix: changing UI/UX according to the review/feedback from `daniel-lxs`

* fix: updating the `Gemini.spec.tsx` unit test

- testing when it is hidden
- testing when users click on the collapsible trigger and model configuration appears

* fix: more changes from the feedback/review from `daniel-lxs`

* fix: adding sources at the end of the stream to preserve

* fix: change the description for grounding with google search and url context

* fix: adding translations

* fix: removing redundant extra translations - a mistake made by the agent

* fix: remove duplicate translation keys in geminiSections and geminiParameters

- Fixed duplicate keys in 13 localization files (es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi)
- Removed second occurrence of geminiSections and geminiParameters keys
- Kept first occurrence which contains more comprehensive descriptions
- All JSON files validated for syntax correctness
- Translation completeness verified with missing translations script

Resolves duplicate key issue identified in PR #4895

* fix: delete topK, topP and maxOutputTokens from Gemini

* fix: deleting topK, topP and maxOutputTokens from translations/locales

* fix: adjust spacing between labels and descriptions + sentence casing

* fix: adding maxOutputTokens back and removing unknown type

* fix: internalizing error Gemini error message

* fix: updating tests in Gemini and Vertex to adjust to the new error logging

* fix: address PR review feedback for Gemini tools feature

- Fix Hindi translation grammatical error in settings.json
- Internationalize 'Sources:' string and error messages in gemini.ts
- Add comprehensive error scenario tests to gemini-handler.spec.ts
- Remove unused currentModelId prop from Gemini component
- Update all locale files with new translation keys

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-27 14:34:55 -04:00
roomote[bot]
f546e6ed1d
feat: Add support for message queueing (#6167)
* feat: Add support for message queueing

* fix: address PR review feedback for message queueing feature

- Restore original ChatView tests from main branch
- Fix broken test by updating ChatTextArea mock
- Add comprehensive tests for message queueing (simplified due to mocking constraints)
- Fix race condition using useRef and setTimeout in queue processing
- Extract QueuedMessage interface to shared types.ts file
- Replace inline styles with Tailwind classes in QueuedMessages
- Add i18n support for 'Queued Messages:' text
- Add keyboard navigation for removing queued messages
- Add JSDoc for fromQueue parameter in handleSendMessage

* refactor: move QueuedMessage interface to packages/types

- Move QueuedMessage interface from local types.ts to packages/types/src/message.ts
- Update imports in ChatView.tsx and QueuedMessages.tsx to use @roo-code/types
- Remove local types.ts file to follow codebase conventions

* fix: add id field when creating queued messages

- Generate unique id using timestamp when adding messages to queue
- Fixes TypeScript error after moving QueuedMessage interface

* Stop disabling sending

* Translations

* Fix tests

* Improved styling

* Remove unused string

* Test cleanup

* fix: address message queueing issues

- Fix race condition in queue processing by re-checking queue state inside setTimeout
- Add error handling for queue operations with retry mechanism
- Replace array index with stable message.id for React keys in QueuedMessages
- Generate more unique IDs using timestamp + random component

* feat: add inline editing for queued messages

- Add ability to edit queued messages by clicking on them
- Support Enter to save and Escape to cancel edits
- Add textarea that auto-resizes based on content
- Add hover effect to indicate messages are editable
- Add translation for click to edit tooltip

* feat: add scrollbar and fix height for queued messages

- Add max-height of 300px with scrollbar to queue container
- Add flex-shrink-0 to prevent message items from being squished
- Ensure consistent height for message items when multiple messages are queued

* feat: add translations for queued message edit tooltip

- Add 'queuedMessages.clickToEdit' translation key to all 18 language files
- Provides localized tooltip text for the click-to-edit functionality

* fix: improve message queue processing reliability

- Fix race condition by removing nested setState and setTimeout
- Add retry limit (3 attempts) to prevent infinite loops
- Add proper cleanup on component unmount
- Clear queue when starting new task
- Prevent queue processing during API errors
- Fix ESLint warnings for React hooks dependencies

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-27 14:32:53 -04:00
Hannes Rudolph
b73c17a375
Update issue writer rules and workflow configurations (#6230) 2025-07-27 10:20:41 -06:00
Hannes Rudolph
7a6e852248
feat: sync API config selector style with mode selector from PR #6140 (#6148)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-27 01:15:10 -04:00
Hannes Rudolph
8625b451f4
feat: Add search functionality to mode selector popup and reorganize layout (#6140)
Co-authored-by: Roo Code Translate Mode
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-27 01:13:57 -04:00
Matt Rubens
5d4e3819e4
Support for custom slash commands (#6263) 2025-07-26 23:16:46 -04:00
Daniel
43f649b03f
fix: prevent scrollbar flickering in chat view during content streaming (#6266) 2025-07-26 22:55:12 -04:00
Daniel
623fa2a025
test: update list-files test for fixed hidden files bug (#6261)
test: update list-files test to reflect fixed hidden files bug
2025-07-26 21:15:34 -04:00
roomote[bot]
91c21a1bba
fix: add text wrapping to command patterns in Manage Command Permissions (#6255)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-26 18:41:02 -04:00
Murilo Pires
f530a71371
# fix: list_files recursive mode now works for dot directories (#5176)
* feat: add Issue Fixer Orchestrator mode

* The `list_files` tool with `recursive: true` was returning empty results when targeting directories that start with a dot (e.g., `.roo-memory`). This happened because the recursive mode was applying a blanket exclusion pattern `!**/.*//**` that excluded all files inside any hidden directory, even when the user explicitly requested to list that directory.

- `src/services/glob/list-files.ts`

- **Modified `buildRecursiveArgs()`**: Removed the problematic `!**/.*//**` exclusion pattern for hidden directories in recursive mode
- **Enhanced `listFilteredDirectories()`**: Added `isTargetDir` parameter to distinguish between explicitly targeted directories and discovered subdirectories
- **Updated `shouldIncludeDirectory()`**: Always include explicitly targeted directories (even if hidden), while still applying ignore rules to subdirectories found during traversal

- **Before**: `list_files` with `path: ".roo-memory"` and `recursive: true` → Empty results
- **After**: `list_files` with `path: ".roo-memory"` and `recursive: true` → Returns directory contents
- **Preserved**: Hidden subdirectories discovered during traversal are still filtered out

This maintains consistency with `.gitignore` and `.rooignore` mechanisms while ensuring explicitly targeted directories are always processed.

Fixes #2992

* Update src/services/glob/list-files.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix: list_files recursive mode now works correctly for hidden directories

- Fixed ripgrep exclusion pattern from `!**/.*//**` to `!**/.*/**`
- Hidden directories (like .git/) now appear in recursive listings but their contents are excluded
- Contents of hidden directories are only shown when explicitly targeting that directory
- Prevents context window overflow from massive hidden directories like .git/
- Maintains consistent behavior: show directory exists, avoid flooding with contents

Fixes #2992

* fix(glob): show top-level hidden directories in list_files

- Modified list-files.ts to show hidden directories at top level
- Added test coverage for hidden directory visibility behavior
- Maintains existing functionality while fixing the .roo directory issue

Addresses PR #5176 feedback with simplified implementation

* fix(glob): include top-level files when recursively listing ignored directories

- Fix issue where files at root level of directories in DIRS_TO_IGNORE were excluded
- Add explicit include patterns (* and **/*) when targeting ignored directories
- Modify exclusion pattern to use !*/dir/** instead of !**/dir/** for target directory
- Add comprehensive test case for .roo/temp scenario

Fixes #5176

* fix(list-files): improve handling of explicitly targeted ignored directories

- Fixed issue where recursive listing would skip files in explicitly targeted directories that are in DIRS_TO_IGNORE
- When targeting a directory like 'temp' that's in the ignore list, we now skip adding exclusion patterns for it
- This ensures all files in the target directory are listed while still preventing recursion into nested directories with the same ignored name
- Also fixed path resolution to convert relative paths from ripgrep to absolute paths

* fix(tests): add missing mocks for list-files tests

* refactor: improve list-files implementation

- Remove redundant path resolution in listFilesWithRipgrep
- Convert CRITICAL_IGNORE_PATTERNS to Set for better performance
- Standardize error message format across all console.warn calls

* fix: update tests to handle cross-platform path resolution

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-26 17:30:56 -05:00
Daniel
4d0550c855
fix: restore working settings link in command permissions tooltip (#6253)
- Replace broken command URI with onClick handler that posts message
- Command URIs don't work in webview context, must use postMessage
- Restores original working implementation from PR #5798
- Directs to autoApprove section where command permissions are configured

The bug was introduced in commit 77bc9e6f when the tooltip was updated
to use command URI instead of the working onClick pattern.
2025-07-26 18:21:53 -04:00
Daniel
478869e37a
feat: add markdown table rendering support (#6252) 2025-07-26 15:31:01 -05:00
github-actions[bot]
62160758fc
Changeset version bump (#6239)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-26 00:41:54 -04:00
Matt Rubens
daccdb365c
Kick off release (#6238) 2025-07-26 00:36:55 -04:00
github-actions[bot]
a1dbd1aac9
Update contributors list (#6110)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-26 00:30:11 -04:00
Matt Rubens
31fee35409
Delete .changeset/kind-horses-sniff.md 2025-07-26 00:26:39 -04:00
Matt Rubens
55d23e0d26
chore: add changeset for v3.24.0 (#6237) 2025-07-26 00:22:11 -04:00
Matt Rubens
97ec777e9c
Clean up some of the hugging face provider settings (#6236) 2025-07-25 23:36:25 -04:00
Daniel
0504199ce4
refactor: consolidate HuggingFace models API into providers/fetchers (#6228)
refactor: move HuggingFace models API to providers/fetchers

- Moved getHuggingFaceModels functionality from src/api/huggingface-models.ts to src/api/providers/fetchers/huggingface.ts
- Added getHuggingFaceModelsWithMetadata function to maintain the same API interface
- Updated import in webviewMessageHandler.ts to use the new location
- Deleted the now redundant src/api/huggingface-models.ts file

This consolidates all HuggingFace-related API logic into a single location within the providers/fetchers directory structure.
2025-07-25 20:39:18 -04:00
Daniel
440ec30d66
fix: add error message when no workspace folder is open for code indexing (#6227)
* fix: add error message when no workspace folder is open for code indexing

- Add 'Indexing requires an open workspace folder' error message in orchestrator.ts
- Replace hardcoded error string with translatable message using i18n
- Add translations for the error message in all 18 supported languages
- Ensures proper error handling when users attempt code indexing without a workspace

* fix: add workspace folder checks for code indexing operations

- Add null checks for codeIndexManager in webviewMessageHandler
- Show translated error message when no workspace folder is open
- Prevents crashes when users try to use indexing features without a workspace
- Uses existing translation key from orchestrator

* Update src/i18n/locales/ca/embeddings.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-25 20:14:35 -04:00
Thomas G. Lopes
31d16dcc33
Hugging Face provider: add more details (#6190)
* add more details

* format details better

* fix tests

* fix: address PR #6190 review feedback

- Move huggingface-models.ts to src/api/providers/fetchers/huggingface.ts
- Remove 'any' types and add proper TypeScript interfaces
- Add missing i18n keys and translations for all languages
- Replace magic numbers with named constants
- Add JSDoc documentation for HuggingFaceModel interface
- Improve error handling in API endpoint
- Update model capabilities display to match other providers
- Remove tool calling display (not used)
- Add comprehensive test coverage for new UI features

* fix: preserve HuggingFace provider details in model response

- Store raw HuggingFace models in cache to preserve provider information
- Export getCachedRawHuggingFaceModels to retrieve full model data
- Update huggingface-models.ts to return cached raw models when available
- Include provider name in model descriptions
- Always add provider-specific variants to show all available providers
- Remove console.log statements from fetcher

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 20:09:09 -04:00
Chris Hasson
912d795358
fix(chat): Cancel auto-approve timer when editing follow-up suggestion (#6226)
Co-authored-by: Chris Hasson <noreply@example.com>
2025-07-25 18:27:40 -04:00
Daniel
490538f9df
fix: prevent duplicate command patterns by trimming full command (#6224) 2025-07-25 17:49:23 -04:00
roomote[bot]
c61bd95bbe
fix: restore list styles for markdown lists in chat interface (#6095)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 16:51:45 -04:00
Hannes Rudolph
c68f8f591e
feat: Add terminal command permissions UI to chat interface (#5480) (#5798)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-25 16:49:51 -04:00
roomote[bot]
f45d9be709
fix: respect maxReadFileLine setting for file mentions to prevent context exhaustion (#6073)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 16:45:45 -04:00
John Richmond
d62a260576
Add support for bedrock api keys (#6132)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-25 01:04:49 -04:00
Nahim EL ATMANI
b1406342a8
Fix Ollama API URL normalization by removing trailing slashes (#6079)
Co-authored-by: Nahim El Atmani <2959826+Naam@users.noreply.github.com>
2025-07-25 00:41:35 -04:00
KJ7LNW
d54e3fcdfc
fix: allow auto-approve checkbox to be toggled at any time (#6061)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 00:41:12 -04:00
KJ7LNW
25857a4809
feat: add efficiency warning for single SEARCH/REPLACE blocks in apply_diff (#6055)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 00:40:43 -04:00
Matt Rubens
02118c5e7f
Add type for allowing org members to view all tasks (#6193) 2025-07-24 22:16:43 -04:00
Chris Estreich
7f70145cb1
Expose default modes in @roo-code/types (#6184) 2025-07-24 22:13:40 -04:00
roomote[bot]
2170c61e3c
feat: add Google Analytics tag to marketing website (#6179)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-24 14:18:03 -04:00
Daniel
a82455715c
fix: Fix Hugging Face provider setup not transitioning from welcome view (#6173)
fix: add Hugging Face API key to SECRET_STATE_KEYS and fix validation

- Added huggingFaceApiKey to SECRET_STATE_KEYS array to ensure it's properly handled as a secret
- Fixed validateModelsAndKeysProvided to check for huggingFaceModelId when validating Hugging Face provider
- This fixes the issue where the welcome view wouldn't transition to chat view after configuring Hugging Face
2025-07-24 11:06:53 -04:00
Hannes Rudolph
1e17b3b3bb
feat: add confirmation dialog and proper cleanup for marketplace mode removal (#6136)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-24 00:57:10 -04:00
roomote[bot]
3977bbc0ce
feat: add support for Agent Rules standard via AGENTS.md (#5966) (#5969)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-24 00:42:11 -04:00
Matt Rubens
d48be230a2
Update next.config.ts 2025-07-23 19:22:14 -04:00
Murilo Pires
c47de36b05
Fix/website logo theme persistence (#6040)
* feat: add Issue Fixer Orchestrator mode

* fix: persist logo theme state on page navigation and refresh

- Add mounted state to prevent hydration mismatch
- Use theme as fallback when resolvedTheme is not available
- Ensure logo matches the persisted theme on initial page load

Fixes issue where logo would revert to dark version after page refresh
even when light theme was selected
2025-07-23 16:41:02 -04:00
Matt Rubens
bcad858b2f
basic hugging face provider (#6134)
* basic hugging face provider

* fetch hf models and providers

* save provider to config

* Update translations

---------

Co-authored-by: Thomas G. Lopes <26071571+TGlide@users.noreply.github.com>
2025-07-23 15:19:23 -04:00
Hannes Rudolph
0323256006
feat: Add settings to control diagnostic messages (#5524) (#5582)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-23 14:49:41 -04:00
github-actions[bot]
d720d35483
Changeset version bump (#6131)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-23 13:56:21 -04:00
Matt Rubens
ba541ab848
chore: add changeset for v3.23.19 (#6130) 2025-07-23 13:53:26 -04:00
Bruno Bergher
4f8c9688a2
Roo Code Cloud Waitlist CTAs (#6104)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
2025-07-23 13:28:30 -04:00
Matt Rubens
4042fb0fd0
Smarter auto-deny (#6123) 2025-07-23 12:02:31 -04:00
Matt Rubens
9d434c2db9
Split commands on newlines (#6121) 2025-07-23 11:21:06 -04:00
github-actions[bot]
714fafd328
Changeset version bump (#6111)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-23 09:07:14 -04:00
github-actions[bot]
637ba34958
Update contributors list (#5699)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-23 09:05:39 -04:00
Matt Rubens
a197c859f0
chore: add changeset for v3.23.18 (#6109) 2025-07-23 09:04:14 -04:00
KJ7LNW
3e89b06f25
debug: Add ErrorBoundary component for better error handling (#5085)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-07-23 08:45:35 -04:00
Daniel
b0820ac755
fix: resolve 'Bad substitution' error in command parsing (#5743) 2025-07-23 08:43:36 -04:00
Christiaan Arnoldus
1c26bbc5ab
Fix todo list toggle not working (#6103) 2025-07-23 08:39:27 -04:00
Chris Estreich
9956cc1f48
Use SIGKILL for command execution timeouts in the "execa" variant (#6071) 2025-07-23 01:47:10 -07:00
github-actions[bot]
2411c8faa4
Changeset version bump (#6092)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-22 21:45:53 -04:00
roomote[bot]
dbc8119601
Release v3.23.17 (#6091)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-22 21:38:44 -04:00
Daniel
aa0e6d31d8
feat: add merge-resolver mode for intelligent conflict resolution (#6090) 2025-07-22 21:31:36 -04:00
Murilo Pires
0cb76d9ae9
fix: add Git installation check for checkpoints feature (#3109) (#5920)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-22 21:31:20 -04:00
roomote[bot]
8dcc078d85
feat: add Qwen/Qwen3-235B-A22B-Instruct-2507 model to Chutes AI provider (#6052)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-22 21:17:14 -04:00
Murilo Pires
c6a29f3f27
feat: add llama-4-maverick model to Vertex AI provider (#5808) (#6023)
* feat: add llama-4-maverick model to Vertex AI provider (#5808)

* fix: update llama-4-maverick pricing to correct values
2025-07-22 19:26:18 -04:00
Hannes Rudolph
2b8228ef0c
docs: clarify when to use update_todo_list tool (#5926)
* docs: clarify when to use update_todo_list tool

Added 'complicated' to the condition for when to use the update_todo_list tool,
making it clearer that the tool should be used for tasks that are either
complicated OR involve multiple steps.

* fix: update vscode mock and snapshots for update_todo_list tool changes

- Add missing RelativePattern export to vscode mock
- Fix onDidChangeWorkspaceFolders function in workspace mock
- Update test snapshots to reflect new "complicated" text in update_todo_list tool documentation
- Build tree-sitter WASM files to fix parsing tests

Fixes failing CI tests related to PR #5926 documentation changes.

* Delete package-lock.json

* revert: remove unrelated changes to src/__mocks__/vscode.js

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-22 17:37:27 -04:00
roomote[bot]
dbde23c84e
fix: add case sensitivity mention to suggested fixes in apply_diff error message (#6076)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-22 14:15:28 -07:00
roomote[bot]
5629199d51
Add jump icon for newly created files (#5738)
* feat: add jump icon for newly created files

- Add jump icon to newFileCreated tool case in ChatRow.tsx
- Matches existing pattern from readFile case for consistent UX
- Allows users to quickly open newly created files
- Fixes issue #5736

* fix: remove duplicate file path display in newFileCreated case

- Removed redundant ToolUseBlock that was showing file path twice
- Added onJumpToFile prop to CodeAccordian component to support jump icon
- Jump icon now appears in CodeAccordian header for newFileCreated files
- Maintains consistent UX with existing file operations while avoiding duplication

Fixes feedback from @daniel-lxs about duplicate elements being shown

* fix: address PR feedback for jump icon on new files

- Fix openFile message to use correct path format with './' prefix
- Remove duplicate chevron icon when jump icon is present
- Add aria-label for accessibility
- Fix styling: use mr-1 to match progressStatus icon
- Remove redundant margin style from jump icon

---------

Co-authored-by: Roo Code <roo@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-22 13:26:32 -04:00
Chris Estreich
984d368f7a
Fix evals; broken by #5865 (#6065) 2025-07-22 09:18:38 -07:00
John Richmond
e78d9541ca
Bugfix: Cloud: be more specific about session error codes (#6051)
InvalidClientTokenError indicates an unrecoverable state for
the session, so we need to be more exact about triggering it. A recent
Clerk outage resulted in a lot of 429 responses which should really cause
inactive-session, not a full clear to logged-out.
2025-07-22 07:16:15 -07:00
Matt Rubens
df6c57d293
feat: add moonshot provider (#6046)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: CellenLee <99465814+CellenLee@users.noreply.github.com>
2025-07-22 00:37:24 -04:00
roomote[bot]
b1bc085aa6
Add todo list tool enable checkbox to provider advanced settings (#6032)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-21 23:27:28 -04:00
Daniel
7e34fbcb0c
fix: add bedrock to ANTHROPIC_STYLE_PROVIDERS and restore vertex Claude model checking (#6019) 2025-07-21 22:27:20 -04:00
Matt Rubens
8334f0869f
Update the max_tokens fallback logic in the sliding window (#5993) 2025-07-21 22:26:39 -04:00
roomote[bot]
0500894b34
fix: sort symlinked rules files by symlink names, not target names (#5903)
* fix: sort symlinked rules files alphabetically

- Add alphabetical sorting to readTextFilesFromDirectory function
- Sort by basename of filename (case-insensitive) for consistent order
- Fixes issue where symlinked rules were read in random order
- Add test case to verify alphabetical sorting behavior

Fixes #4131

* chore: remove solution-indicating comment per PR feedback

* fix: sort symlinks by their symlink names, not target names

- Modified readTextFilesFromDirectory to store both original symlink path and resolved target path
- Updated resolveDirectoryEntry and resolveSymLink to track both paths
- Sort files by original path (symlink name) but read content from resolved path
- Added test to verify symlinks are sorted by their names, not their target names
- This ensures consistent alphabetical ordering when using symlinks in rules directories

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-21 19:37:42 -04:00
roomote[bot]
2eb586b422
fix: properly distinguish between user cancellations and API failures (#6025)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-21 11:16:38 -07:00
Hannes Rudolph
464a3ffa5f
fix: resolve global mode export not including rules files (#5834) (#5837)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-21 11:16:11 -07:00
KJ7LNW
9fce90be9d
fix: add run parameter to vitest command in rules (#5991)
When running vitest without the run parameter, it enters watch mode and waits for user input (like pressing q to quit), causing tests to hang in the terminal.

This change updates the documentation to specify using npx vitest run instead of just npx vitest to ensure tests run to completion without requiring user interaction.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-07-20 22:48:11 -04:00
roomote[bot]
cfda8392fb
feat: auto-omit MCP content when no servers are configured (#5889)
* feat: auto-omit MCP content when no servers are configured

- Modify system prompt generation to detect when no MCP servers are defined
- Only include MCP sections when mode has mcp group AND servers exist
- Pass undefined mcpHub to capabilities and tools when no servers available
- Reduces system prompt verbosity when MCP functionality is not in use

* fix: add missing Uri and RelativePattern exports to VSCode mocks

- Added Uri and RelativePattern exports to global VSCode mock in __mocks__/vscode.js
- Fixed McpHub.spec.ts VSCode mock to include Uri and RelativePattern
- Fixed Task.spec.ts VSCode mock to include Uri and RelativePattern with proper TypeScript typing
- Resolves unhandled rejection errors in unit tests caused by missing VSCode API mocks

* fix: add proper TypeScript typing for RelativePattern in McpHub test mock

* fix: resolve unit test failures in PR #5889

- Fix VSCode mock onDidChangeWorkspaceFolders to accept callback parameter
- Update MCP test mocks to properly test auto-omit functionality
- Update test snapshots to reflect new MCP content omission behavior
- All core functionality tests now passing

* chore: remove package-lock.json as project uses npm

* fix: remove unrelated mock changes from PR

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-20 15:25:26 -04:00
SannidhyaSah
de13d8a5cf
fix: move context condensing prompt to Prompts section (#4924) (#5279)
* feat: move context condensing prompt from context to prompts page

* fix: remove unused imports after lint fixes
2025-07-19 22:24:08 -04:00
roomote[bot]
c96b399dd7
feat: add configurable timeout for evals (5-10 min) (#5865)
* feat: add configurable timeout for evals (5-10 min)

- Add timeout field to CreateRun schema with min 5, max 10, default 5
- Add timeout slider UI component to /runs/new page
- Update database schema to include timeout column in runs table
- Create migration to add timeout column with default value of 5
- Update runTask.ts to use configurable timeout from run settings
- Pass timeout parameter through the createRun action

* fix: remove unused EVALS_TIMEOUT import

* fix: add timeout field to createRun calls in copyRun test

- Added timeout: 5 to both createRun calls in copyRun.spec.ts
- This fixes the test failure caused by the new required timeout field in the runs schema
- The timeout field was added in the configurable timeout feature but the test was not updated

* fix: use configurable timeout for Redis key expiration in registerRunner

- Updated registerRunner function to accept timeoutSeconds parameter
- Modified call in runTask.ts to pass configurable timeout instead of hardcoded EVALS_TIMEOUT
- Removed unused EVALS_TIMEOUT import from redis.ts
- Ensures Redis keys remain valid for the entire duration of task execution (up to 10 minutes)

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: hannesrudolph <hrudolph@gmail.com>
2025-07-19 22:20:23 -04:00
Murilo Pires
1b12108172
fix: enable export, share, and copy buttons during API operations (#5324) (#5849)
* feat: add Issue Fixer Orchestrator mode

* fix: allow export task history while API is active (#5324)

- Add exportAlwaysEnabled prop to TaskActions component
- Export button remains enabled when exportAlwaysEnabled is true
- Other action buttons still respect buttonsDisabled state
- Add tests to verify the new behavior

This fixes the regression where users couldn't export task history
during API operations, which is a common debugging workflow.

* fix: simplify export button to always be enabled

The export functionality is not impacted by the model streaming state,
so the button should always be enabled. Removed the unnecessary
exportAlwaysEnabled prop and simplified the implementation.

- Remove exportAlwaysEnabled prop from TaskActions
- Remove disabled attribute from export button entirely
- Update TaskHeader to remove exportAlwaysEnabled prop usage
- Update tests to reflect that export is always enabled

* fix: enable export, share, and copy buttons during API operations

- Export, share, and copy buttons now remain enabled when API is active
- Delete button still respects buttonsDisabled state for safety
- Removed unnecessary exportAlwaysEnabled prop
- Updated tests to reflect new behavior

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-19 19:25:17 -04:00
roomote[bot]
37300ef0c5
fix: add character limit to prevent terminal output context explosion (#5777)
* fix: add character limit to prevent terminal output context explosion

- Enhanced truncateOutput function to accept character limits alongside line limits
- Character limits take priority over line limits to prevent context window explosion
- Added terminalOutputCharacterLimit setting (default: 100,000 characters)
- Updated all terminal output processing to use both limits
- Added comprehensive tests for character limit functionality

Fixes #5775

* feat: add terminal output character limit setting to UI

- Add character limit slider to Terminal Settings UI (default: 50,000)
- Update ExtensionStateContext to manage character limit state
- Add validation for positive character limit values
- Add English translation and translations for all 17 supported languages
- Connect UI to backend through proper message handling
- Character limit takes precedence over line limit to prevent memory issues

* fix: update test expectations for character limit edge cases

- Fix multi-byte character test to account for JavaScript's string length behavior
- Fix newline content test to match actual slice behavior
- Tests now correctly validate the truncateOutput function's character limit handling

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-19 13:26:25 -04:00
SannidhyaSah
7ddc4e64f3
feat: Add Mistral embedding provider (#5932) (#5946)
* feat: add Mistral embedding provider with OpenAI Compatible Wrapper

- Implement MistralEmbedder class using OpenAI-compatible API
- Add comprehensive unit tests with 100% coverage
- Update type definitions for Mistral provider support
- Integrate Mistral option in UI components and configuration
- Add internationalization support for Mistral provider
- Fix API key storage and retrieval for embedding providers
- Update service factory to support Mistral embeddings
- Add proper error handling and validation

This implementation allows users to use Mistral's embedding models
through the existing OpenAI-compatible wrapper approach, providing
a seamless integration experience.

* feat: add Mistral embedding provider support

- Implement MistralEmbedder class with API integration
- Add Mistral models to embedding model configurations
- Update UI to include Mistral provider option
- Add comprehensive unit tests for Mistral embedder
- Update type definitions and interfaces
- Add internationalization support for Mistral provider

* fix: add missing translations for Mistral embedding provider

* fix: address PR review feedback - improve translations and add clarifying comment
2025-07-19 13:24:24 -04:00
github-actions[bot]
e2970265dd
Changeset version bump (#5953)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-19 11:58:06 -04:00
Matt Rubens
fe3a7ab0f0
Release v3.23.16 (#5952) 2025-07-19 11:55:18 -04:00
roomote[bot]
539b716b4f
feat: enhance release engineer mode to include issue numbers and reporters in changelog (#5940)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-19 11:42:59 -04:00
Daniel
cc369da2d5
feat: add batch limiting to code indexer (#5891)
feat: add batch limiting to code indexer to control memory usage

- Add MAX_PENDING_BATCHES constant (20) to limit concurrent batches
- Implement backpressure mechanism to pause file parsing when limit reached
- Prevent memory overflow during large codebase indexing
2025-07-19 09:37:37 -04:00
Daniel
020c2337dd
feat: add global rate limiting for OpenAI-compatible embeddings (#5854)
* feat: add global rate limiting for OpenAI-compatible embeddings

- Implement shared rate limit state across all embedder instances
- Add exponential backoff (5s base, up to 5 minutes max)
- Track consecutive rate limit errors with auto-reset after 60s
- Add thread-safe mutex for concurrent access
- Remove verbose logging to prevent log flooding during retries
- Add comprehensive test coverage for rate limiting behavior

This prevents multiple parallel batches from overwhelming APIs with
restrictive rate limits by coordinating delays globally.

* fix: restore original logging while keeping rate limit logging silent

- Restored all original console.warn and console.error calls that were inadvertently removed
- Only the rate limit retry warning remains silent (no console output)
- Fixed test expectation to use correct error variable
- All existing logging behavior is preserved
2025-07-19 09:37:01 -04:00
roomote[bot]
e28fad131a
feat: mark non-English translation files as linguist-generated (#5943)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-19 01:07:27 -04:00
roomote[bot]
5a459d0516
Fix Docker port conflicts for evals services (#5909)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-19 00:10:10 -04:00
github-actions[bot]
64d35dc357
Changeset version bump (#5935)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-18 20:21:26 -04:00
Matt Rubens
5ed73385c3
chore: add changeset for v3.23.15 patch release (#5934) 2025-07-18 20:15:21 -04:00
thill2323
f6906f6e87
Added YouTube to website footer (#5929) 2025-07-18 20:02:35 -04:00
roomote[bot]
90148401e9
Add command timeout allowlist with IPC support (#5910)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-18 16:48:39 -04:00
roomote[bot]
b6bded9818
feat: add configurable delay for Go diagnostics to prevent premature error reporting (#5863)
* feat: add configurable delay for Go diagnostics to prevent premature error reporting

- Add diagnosticsDelayMs setting (default: 2000ms) to allow linters time to process
- Add diagnosticsEnabled setting to optionally disable diagnostic checking entirely
- Update DiffViewProvider.saveChanges() to use configurable delay before checking diagnostics
- Update all tool files (writeToFile, searchAndReplace, insertContent, applyDiff, multiApplyDiff) to pass diagnostic settings
- Add comprehensive tests for new diagnostic functionality
- Fixes issue where Go diagnostics errors were submitted to LLM before linter could clean up unused imports

Resolves #5859

* fix: add missing TypeScript type definitions for diagnostic settings

- Add diagnosticsDelayMs and diagnosticsEnabled to globalSettingsSchema
- Include properties in ExtensionState Pick type
- Add default values to EVALS_SETTINGS
- Fix VSCode mock to include DiagnosticSeverity for tests
- Resolves compilation errors in ClineProvider and webviewMessageHandler

* fix: update test mocks to support diagnostic settings in tool tests

- Add providerRef mock to insertContentTool and writeToFileTool tests
- Update mocks to include diagnosticsEnabled and diagnosticsDelayMs settings
- Fix test expectations to match new implementation with diagnostic configuration
- Resolves failing unit tests for insertContentTool.spec.ts and writeToFileTool.spec.ts

* fix: remove package-lock.json file (project uses pnpm)

* refactor: use existing writeDelayMs instead of diagnosticsDelayMs

- Remove diagnosticsDelayMs setting in favor of existing writeDelayMs
- Add min(0) validation for writeDelayMs in global settings schema
- Add error handling around delay function calls in DiffViewProvider
- Create DEFAULT_WRITE_DELAY_MS constant (1000ms) to replace repeated defaults
- Update all tool files to pass writeDelayMs instead of diagnosticsDelayMs
- Remove diagnosticsDelayMs from webview message handlers and types
- Update test files to use writeDelayMs instead of diagnosticsDelayMs

This refactoring consolidates diagnostic delay functionality to use the
existing writeDelayMs setting as requested in PR feedback.

* fix: resolve failing unit tests and TypeScript compilation errors

- Fix DiffViewProvider test to expect correct default delay (1000ms instead of 2000ms)
- Fix TypeScript type errors in ClineProvider test mock state object
- Correct terminalPowershellCounter and terminalZdotdir types to boolean
- Fix pinnedApiConfigs type from array to Record<string, boolean>

* fix: remove unrelated changes from ClineProvider.spec.ts

- Removed extensive unrelated property additions to mock state
- Kept only diagnosticsEnabled property which is related to Go diagnostics delay feature
- Removed unused DEFAULT_WRITE_DELAY_MS import
- Restored original structure and organization of mock state object

This addresses the feedback to remove unrelated changes while preserving
the necessary diagnostic functionality for the Go diagnostics delay feature.

* refactor: move DEFAULT_WRITE_DELAY_MS to packages/types/src/global-settings.ts

- Move DEFAULT_WRITE_DELAY_MS constant from src/shared/constants.ts to packages/types/src/global-settings.ts
- Update all import statements in affected files to use @roo-code/types
- Delete src/shared/constants.ts file as it is no longer needed
- Files updated:
  - src/integrations/editor/DiffViewProvider.ts
  - src/core/webview/ClineProvider.ts
  - src/core/tools/multiApplyDiffTool.ts
  - src/core/tools/applyDiffTool.ts
  - src/core/tools/searchAndReplaceTool.ts
  - src/core/tools/insertContentTool.ts
  - src/core/tools/writeToFileTool.ts

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-18 16:12:00 -04:00
Hannes Rudolph
8c349767fa
feat: Add Issue Investigator mode and enhance Issue Writer mode (#5913) 2025-07-18 14:43:14 -04:00
Matt Rubens
a6e16e80d9
Prevent completion with open todos (#5716)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-18 11:31:31 -04:00
roomote[bot]
38d8edf05a
feat: move marketplace icon from overflow menu to top navigation (#5864)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-17 22:05:49 -04:00
Randal L. Schwartz
670d79be62
feat: Add description and whenToUse fields to custom modes in .roomodes (#5862) 2025-07-17 20:38:44 -04:00
Daniel
a28d50e20c
fix: detect Claude models by name for API protocol selection (#5840)
* fix: detect Claude models by name for API protocol selection

- Modified getApiProtocol to accept modelId parameter
- Added check for 'claude' in model name (case-insensitive)
- Updated Task.ts to pass model ID to getApiProtocol
- Added comprehensive tests for the new logic

Fixes #5830

* fix: limit Claude model detection to vertex and bedrock providers only

- Modified getApiProtocol to only detect Claude models by name when provider is vertex or bedrock
- Added comprehensive unit tests for getApiProtocol function as requested in PR review
- This ensures Claude models are only auto-detected for providers that need it
2025-07-17 18:27:52 -04:00
Murilo Pires
a7771a3c11
Fix/issue fixer pr template (#5839) 2025-07-17 16:03:24 -04:00
github-actions[bot]
2f4d833ebc
Changeset version bump (#5836)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-07-17 11:53:04 -07:00
Chris Estreich
921d7ca6c4
Log API-initiated tasks to a tmp directory (#5833) 2025-07-17 11:47:21 -07:00
Hannes Rudolph
d2b51c1b41
refactor: remove orchestrator modes and update GitHub CLI usage (#5832) 2025-07-17 14:28:09 -04:00
github-actions[bot]
88f1af2ebe
Changeset version bump (#5829)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-07-17 11:01:01 -07:00
Chris Estreich
4b1c9021d6
v3.23.13 (#5827) 2025-07-17 10:46:55 -07:00
Chris Estreich
80fcd1ba74
Allow command execution timeout to be set via IPC task execution (#5825)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-17 10:41:40 -07:00
Daniel
c417f43b18
feat: Update Ollama UI to use text inputs (#5818) 2025-07-17 13:40:05 -04:00
Will Li
fb374b3e94
Message edit/delete overhaul (#5538)
* improved chat row first pass

* big UI improvements

* working functionality

* tests working

* ok finally tests working for real!

* translations

* add back hidden flag

* remove option to skip notif

* fixed image issue

* ui fix

* put back edit flag

* oops test fix

* reduce margins

* code review
2025-07-17 10:16:57 -04:00
Hannes Rudolph
6cf376f832
fix: Resolve confusing auto-approve checkbox states (#5602)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-16 17:52:29 -04:00
Daniel
2458751424
fix: prevent empty mode names from being saved (#5766) (#5794) 2025-07-16 17:50:14 -04:00
Christiaan Arnoldus
a92ee567df
Format time in ISO 8601 (#5793) 2025-07-16 15:58:11 -04:00
Daniel
a7a6bcb30f
fix: resolve DirectoryScanner memory leak and improve file limit handling (#5785) 2025-07-16 15:06:26 -04:00
Matt Rubens
0f994fcf22
Fix settings dirty check (#5779) 2025-07-16 10:57:34 -04:00
Daniel
8c8888a977
feat: increase Ollama API timeout values and extract as constants (#5778)
- Increase embedding request timeout from 10s to 60s
- Increase validation request timeouts from 5s to 30s
- Extract timeout values as module-level constants for better maintainability
- OLLAMA_EMBEDDING_TIMEOUT_MS = 60000 (60 seconds)
- OLLAMA_VALIDATION_TIMEOUT_MS = 30000 (30 seconds)
2025-07-16 09:30:33 -04:00
Murilo Pires
d513b9c0e1
fix: Exclude Terraform and Terragrunt cache directories from checkpoints (#4601) (#5750)
* feat: add Issue Fixer Orchestrator mode

* fix: Exclude Terraform and Terragrunt cache directories from checkpoints (#4601)
2025-07-15 19:50:55 -04:00
Matt Rubens
db718533c6
Move less commonly used provider settings into an advanced dropdown (#5762) 2025-07-15 19:00:14 -04:00
Murilo Pires
93f88b45b6
feat: Add configurable error & repetition limit with unified control (#5654) (#5752)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-15 18:25:43 -04:00
axb
5557d77a96
list-files must include at least the first-level directory contents (#5303)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-15 17:34:03 -04:00
Chris Estreich
b75377416a
Update evals repo link (#5758) 2025-07-15 13:00:50 -07:00
flameboy
9db64de363
Feature/vertex ai model name conversion (#5728)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-15 14:15:33 -04:00
ChuKhaLi
9b6fb36d6f
fix(litellm): handle baseurl with paths correctly (#5697)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-15 14:14:16 -04:00
Matt Rubens
d0452d0d5c
Add telemetry for todos (#5746) 2025-07-15 10:47:50 -04:00
roomote[bot]
ab1756961c
feat: add undo functionality for enhance prompt feature (fixes #5741) (#5742)
Co-authored-by: Roo <roo@roocode.dev>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-15 10:26:34 -04:00
roomote[bot]
29b7d06dd2
Fix max_tokens limit for moonshotai/kimi-k2-instruct on Groq (#5740)
Co-authored-by: Roo Code Bot <roo-code-bot@example.com>
2025-07-15 08:56:46 -04:00
github-actions[bot]
5d1270a1fe
Changeset version bump (#5735)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-15 08:20:17 -04:00
Matt Rubens
fdd1139c2b
Add changeset for v3.23.12 patch release (#5734) 2025-07-15 08:17:24 -04:00
Matt Rubens
8a3dcfb593
Update the max-token calculation in model-params to use the shared logic (#5720) 2025-07-15 02:20:22 -04:00
github-actions[bot]
301977b2dc
Changeset version bump (#5719)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-15 00:37:59 -04:00
Matt Rubens
bc0a98bc5d
chore: add changeset for v3.23.11 patch release (#5718) 2025-07-15 00:35:05 -04:00
Matt Rubens
5762964b56
Add Kimi K2 model and better support (#5717) 2025-07-15 00:31:18 -04:00
Roomote Agent
36d56e8db9
Fix: Remove invalid skip-checkout parameter from GitHub Actions workflows (#5676)
fix: remove invalid skip-checkout parameter from GitHub Actions workflows

- Removed skip-checkout parameter from nightly-publish.yml
- Removed skip-checkout parameter from marketplace-publish.yml
- Removed skip-checkout parameter from changeset-release.yml

The setup-node-pnpm action only accepts: node-version, pnpm-version, skip-install, and install-args.
The skip-checkout parameter was causing warnings in workflow runs.

Fixes #5674
2025-07-14 20:58:13 -04:00
Roomote Agent
8f5c130e21
feat: add Cmd+Shift+. keyboard shortcut for previous mode switching (#5695)
* feat: add Cmd+Shift+. keyboard shortcut for previous mode switching

- Add switchToPreviousMode function that cycles backwards through modes array
- Update handleKeyDown to detect Cmd+Shift+. keyboard combination
- Update modeShortcutText to display both next and previous mode shortcuts
- Add forPreviousMode translation key to all 18 language files
- Implements backwards mode cycling using modulo arithmetic for proper array wrapping

Fixes #5692

* fix: correct keyboard shortcut detection for Cmd+Shift+. (previous mode)

When Shift is pressed with the period key, event.key becomes ">" instead of ".".
Fixed line 1576 to check for event.key === ">" for proper Cmd+Shift+. detection.

Fixes keyboard shortcut issue reported in PR comment.

* fix: use event.code for cross-platform keyboard shortcut compatibility

- Replace event.key checks with event.code === "Period" for both shortcuts
- Fixes keyboard layout compatibility issue where Shift+Period produces different characters on non-US layouts
- Consolidates both shortcuts into a single conditional block for better maintainability
- Addresses feedback from @daniel-lxs in PR #5695
2025-07-14 20:44:45 -04:00
github-actions[bot]
88c4261829
Changeset version bump (#5708)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-14 16:45:39 -04:00
Matt Rubens
adb3a7bbae
chore: add changeset for v3.23.10 patch release (#5707) 2025-07-14 16:38:54 -04:00
Matt Rubens
1a24cd60f9
Add padding to the index model options (#5706) 2025-07-14 16:35:45 -04:00
Daniel
5cab585eb3
fix: prioritize built-in model dimensions over custom dimensions (#5705) 2025-07-14 16:20:34 -04:00
Matt Rubens
0c014f0028
Update CHANGELOG.md 2025-07-14 15:03:35 -04:00
github-actions[bot]
6702871c4e
Changeset version bump (#5702)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-14 14:52:28 -04:00
Matt Rubens
e7b90a8c5b
chore: add changeset for v3.23.9 patch release (#5701) 2025-07-14 14:44:46 -04:00
Matt Rubens
1187a7c50e
Tweaks to command timeout error (#5700) 2025-07-14 14:38:01 -04:00
github-actions[bot]
98fe2a1220
Update contributors list (#5639)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-14 14:12:59 -04:00
SannidhyaSah
824c49487b
feat: enable Claude Code provider to run natively on Windows (#5615) 2025-07-14 14:12:39 -04:00
Roomote Bot
e0196320b5
feat: Add configurable timeout for command execution (#5668)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-14 14:12:12 -04:00
Daniel
d7787a2de3
feat: add gemini-embedding-001 model to code-index service (#5698)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-14 14:10:40 -04:00
Roomote Bot
f71275ef55
fix: resolve vector dimension mismatch error when switching embedding models (#5616) (#5617)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-14 14:10:09 -04:00
chris-garrett
a163053430
fix: [5424] return the cwd in the exec tool's response so that the model is not lost after subsequent calls (#5667) 2025-07-13 22:36:25 -04:00
github-actions[bot]
62f97b917a
Changeset version bump (#5670)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-13 14:51:05 -04:00
Matt Rubens
1ca7a64170
chore: add changeset for v3.23.8 patch release (#5669) 2025-07-13 14:46:38 -04:00
Matt Rubens
e84dd0a2cf
Skip all MCP CI tests (#5645) 2025-07-12 22:23:28 -04:00
Matt Rubens
5fab8521cd
More tweaks to chatview layout (#5643) 2025-07-12 20:05:18 -04:00
Matt Rubens
10f3e30126
Remove duplicate PR link in issue fixer workflow (#5638) 2025-07-12 15:38:04 -04:00
Matt Rubens
14473ea1e9
Updated string for denied command (#5637) 2025-07-12 15:02:15 -04:00
Matt Rubens
b4874f2aa2
Bump types to 1.32.0 (#5636) 2025-07-12 14:29:37 -04:00
Roomote Bot
2220a2d2ba
Add navigation link to history tab in HistoryPreview (#5630)
* feat: add navigation link to history tab in HistoryPreview

- Add 'View all history' link at bottom of history preview
- Include internationalization support with new translation key
- Use consistent styling with VSCode theme colors
- Navigate to history tab using switchTab message format

* feat: add viewAllHistory translation to all language files

* Tweaks and translations

* Fix test

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-12 13:47:13 -04:00
Daniel
5bffebde58
feat: add enable/disable toggle for code indexing (#5599) 2025-07-12 12:55:50 -04:00
Matt Rubens
cdacdfd54b
Add a command denylist (#5614)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-12 12:36:04 -04:00
Daniel
84bfd76924
test: disable flaky MCP directory_tree test (#5627)
The test 'Should request MCP filesystem directory_tree tool and complete successfully' has been timing out after 45s in CI. Disabling it temporarily to unblock the test suite while we investigate the root cause.
2025-07-12 10:38:55 -05:00
github-actions[bot]
50e45a2bc6
Changeset version bump (#5613)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-11 23:43:52 -04:00
github-actions[bot]
1c60ec6ea8
Update contributors list (#5498)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-11 23:40:46 -04:00
Matt Rubens
65df6723a2
chore: prepare v3.23.7 patch release (#5612) 2025-07-11 23:39:22 -04:00
Daniel
32308d79c4
feat: add comprehensive error telemetry to code-index service (#5595) 2025-07-11 23:01:50 -04:00
Hannes Rudolph
39b83070c3
feat: Enable dynamic tool selection in architect mode for context discovery (#5607)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-11 22:47:45 -04:00
Hannes Rudolph
f5dfbf1fc2
feat(claude-code): add configurable max output tokens setting (#5610)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-11 22:31:50 -04:00
Murilo Pires
9aa2e6ea54
Fix/issue 2897 mermaid syntax warning (#5530) 2025-07-11 17:46:38 -04:00
Daniel
0ecae9d4f1
fix: exclude cache tokens from context window calculation (#5603)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-11 16:54:51 -04:00
Chris Estreich
99448fc913
Minor fixes for local (non-Docker) evals (#5604)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-11 12:15:21 -07:00
Matt Rubens
b03d03d860
Add Devstral Medium (#5590) 2025-07-11 09:33:24 -04:00
Matt Rubens
f7b8345e19
Link to marketplace from modes and MCP tab (#5580) 2025-07-11 01:05:32 -04:00
sensei-woo
406b366f4a
Update ChatTextArea.tsx (#5586)
* Update ChatTextArea.tsx

fix issue 5583

* refactor(ui): move TTS stop button to bottom control bar

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-10 20:00:31 -04:00
Daniel
50598b22b5
fix(i18n): Correct translation fallback logic for embedding errors (#5574)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-10 15:47:47 -04:00
Matt Rubens
76a3fdc256
Clean up MCP tool disabling (#5576) 2025-07-10 14:36:09 -04:00
Matt Rubens
6fa918c275
Improve the display of codebase search results (#5571) 2025-07-10 12:30:06 -04:00
Noritaka Kobayashi
ab55854702
chore: fix typos in comment & document (#5569) 2025-07-10 11:33:26 -04:00
Daniel
97b917eac8
fix: handle Qdrant vector dimension mismatch when switching embedding models (#5562) (#5565) 2025-07-10 11:29:25 -04:00
Matt Rubens
356d421344
Run nightly build on push (#5563) 2025-07-10 10:12:16 -04:00
Matt Rubens
a7b5cbd722
Soften the language for incompatible profiles (#5561) 2025-07-10 09:47:47 -04:00
shubhamgupta731
4771864a8c
Expand Vertex AI region config to include all available regions in GCP Vertex AI (#5557)
Co-authored-by: Shubham Gupta <shubham@porter.in>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-10 09:27:28 -04:00
github-actions[bot]
5cfd98dc33
Changeset version bump (#5560)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-10 07:10:05 -04:00
Matt Rubens
cdde7b3aa8
Grok 4 (#5559) 2025-07-10 07:07:16 -04:00
Will Li
08c9420350
fix (#5540) 2025-07-09 20:57:10 -04:00
github-actions[bot]
6e473f5449
Changeset version bump (#5537)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-09 19:39:48 -04:00
Matt Rubens
e64fb150b5
chore: add changeset for v3.23.5 patch release (#5536) 2025-07-09 19:31:50 -04:00
Daniel
45f3d88ddf
fix(embeddings): Translate error messages before sending to UI (#5535)
fix(embeddings): translate error messages before sending to UI

- Import t() function from i18n module
- Wrap error messages with t() translation function in _initializeEmbedder()
- Ensures proper localization of error messages in the UI
- Falls back to original message if no translation exists
2025-07-09 19:22:05 -04:00
Matt Rubens
be1eaa51eb
Make account tab visible (#5534)
* Make account tab visible

* Fix order
2025-07-09 19:21:47 -04:00
Vivek Soni
7a8848de3b
fix: use decodeURIComponent in openFile (#5504)
* fix: use decodeURIComponent in openFile

* feat: add error handling for decodeURIComponent and tests

- Added try-catch block around decodeURIComponent to handle invalid escape sequences
- Falls back to original path if decoding fails
- Added comprehensive unit tests for the openFile function
- Tests cover invalid URI encoding, valid encoding, and various edge cases

* fix: update test to handle dynamic workspace paths in CI

* fix: handle Windows path separators in open-file tests

---------

Co-authored-by: Vivek Soni <vivex@Viveks-MacBook-Air-2.local>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-09 19:08:35 -04:00
github-actions[bot]
5f0860798e
Changeset version bump (#5531)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-07-09 15:01:52 -07:00
Chris Estreich
ffb998bb11
v3.23.4 (#5529) 2025-07-09 14:41:24 -07:00
Daniel
dd00fc8a0f
feat: Replace title attributes with StandardTooltip in ChatTextArea (#5528)
feat: Replace title attributes with StandardTooltip in ChatTextArea buttons

- Added StandardTooltip wrapper for Stop TTS button
- Replaced title attributes with StandardTooltip for Enhance Prompt button
- Replaced title attributes with StandardTooltip for Send Message button
- Replaced title attributes with StandardTooltip for Add Images button

Note: The stopTts translation key needs to be added to the localization files
2025-07-09 16:24:53 -05:00
Matt Rubens
8824a719eb
Fix nightly build again (#5527) 2025-07-09 16:50:29 -04:00
Daniel
12ae900660
fix: handle null/empty custom modes files to prevent 'Cannot read properties of null' error (#5526)
* fix: handle null/empty custom modes files to prevent 'Cannot read properties of null' error

- Fix SimpleInstaller to ensure existingData is always an object after yaml.parse
- Fix CustomModesManager.parseYamlSafely to return empty object instead of null
- Ensure customModes array is always initialized in both install and remove operations
- Add tests for empty/null file handling scenarios
- Update existing tests to match correct behavior

* fix: handle null/undefined settings in updateModesInFile and loadModesFromFile

- Ensure settings object exists before accessing customModes property
- Initialize customModes as empty array if undefined
- Prevent 'Cannot read properties of null' error during mode import
- Add proper validation in loadModesFromFile before schema check
2025-07-09 15:49:32 -05:00
Matt Rubens
c6412b4339
Add modes to the overflow menu (#5525) 2025-07-09 16:27:55 -04:00
dlab-anton
76b13dfd7a
feat ui/ux: overflow button in header actions (#3060)
Co-authored-by: hannesrudolph <hrudolph@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-09 16:07:18 -04:00
Matt Rubens
dfcba654a6
Tweak alignment of indexing dot (#5523) 2025-07-09 16:03:20 -04:00
Roomote Bot
a732f18ea5
fix: respect .gitignore patterns for directories in list_files tool (#5393) (#5394)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-09 16:02:56 -04:00
Matt Rubens
2b7c266546
Update icons in chattextarea (#5520)
* Update icons in chattextarea

* fix: update icons in ChatTextArea and IndexingStatusBadge components

* fix: update Camera icon to Image and fix alignment

- Changed Camera icon to Image icon from lucide-react
- Fixed alignment issue by adjusting gap and removing extra margin
- Updated tests to work with new Lucide icon structure

* fix: revert alignment changes for Image icon

- Keep original alignment with gap-0.5 and mr-1 to match send and enhance buttons

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-09 15:03:04 -04:00
github-actions[bot]
fed603a927
Changeset version bump (#5511)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-09 10:21:10 -04:00
Matt Rubens
d040112a93
Remove feature3 from announcement (#5510) 2025-07-09 10:15:17 -04:00
github-actions[bot]
a201a70a68
Changeset version bump (#5509)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-09 09:57:36 -04:00
Daniel
58cacc3cf0
fix: reset user response flag on new ask messages to fix auto-approval (#5508)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-09 09:54:26 -04:00
github-actions[bot]
0e0da80f88
Changeset version bump (#5506)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-09 08:14:35 -04:00
Matt Rubens
e028d68f57
Always show the code indexing dot (#5505) 2025-07-09 08:11:40 -04:00
github-actions[bot]
e022b1de7d
Changeset version bump (#5500)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-09 00:16:16 -04:00
Matt Rubens
8bc73bcaca
Remove changeset that is preventing release (#5499) 2025-07-09 00:12:23 -04:00
Matt Rubens
7fe1c0f47a
feat: prepare v3.23.0 release (#5497) 2025-07-09 00:05:23 -04:00
Roomote Bot
9b0f3b2435
feat: add User-Agent header to API providers (#5492) 2025-07-08 23:19:56 -04:00
Murilo Pires
fa60a31578
Indexing field validation (#5483)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-08 23:15:37 -04:00
Ruakij
a2815e2026
Fix #3652: Allow insertContentTool to create new files with content (#4382)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-08 23:14:28 -04:00
Hannes Rudolph
0028c56711
fix: strengthen codebase_search enforcement throughout conversations (#5486) 2025-07-08 23:12:53 -04:00
Matt Rubens
f59e837bb0
Hide message editing temporarily (#5494) 2025-07-08 23:11:39 -04:00
github-actions[bot]
f232476f9b
Update contributors list (#5374)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-08 23:09:36 -04:00
Daniel
09e348e21c
Move codebase indexing out of experimental (#5481) 2025-07-08 23:07:36 -04:00
Daniel
cb4652e45e
fix: remove flaky SearchableSelect clear button test (#5489)
- Removed test 'clears search value when clicking the clear button'
- Test was failing in full test suite due to timing/isolation issues
- Component functionality is verified to work correctly
- All tests now pass (540 passed, 1 skipped)
2025-07-08 20:38:15 -04:00
Hannes Rudolph
2a3e40e3f6
update internal orchestrator modes definitions to remove tool access (#5487)
Reorder and update orchestrator mode definitions

Moved the 'issue-fixer-orchestrator' mode below 'pr-fixer-orchestrator' and updated their 'groups' fields to empty lists for consistency. No functional changes to mode logic.
2025-07-08 20:37:37 -04:00
Will Li
15586d3846
Fixed auto question timer unmount (#5368)
* fixed bug

* expanded tests and made better mock

* code review: refactor & race conditions

* code review, some refactor and reset timer on task switch

* rename to onCancelAutoApproval
2025-07-08 20:19:22 -04:00
Will Li
917b2cc882
Simplify edit panel (#5488)
fix
2025-07-08 20:11:04 -04:00
Matt Rubens
15f3876940
Bump types to 1.31.0 (#5484) 2025-07-08 19:20:38 -04:00
gongzhongqiang
8c1aec1912
Add Search/Filter Functionality to API Provider Selection in Settings (#5278)
* Enhance provider selection with search functionality

* fix: add SearchableSelect mock to SettingsView.spec.tsx

- Added SearchableSelect to the @/components/ui mock in SettingsView.spec.tsx
- This resolves test failures after the SearchableSelect component was introduced
- All 497 tests now pass successfully

* test: add comprehensive tests for SearchableSelect component

* feat: address PR feedback

* fix: internationalize SearchableSelect placeholder in test mock

- Replace hardcoded 'Select...' with i18n key 'settings:common.select'
- Ensures consistency with actual component usage
- Addresses PR review feedback

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-08 19:16:56 -04:00
Matt Rubens
83da295fb1
Fix auto-approve todo settings (#5482) 2025-07-08 18:48:59 -04:00
Roomote Bot
3289322734
fix: enforce file restrictions for all edit tools in architect mode (#5445) (#5447) 2025-07-08 16:49:25 -04:00
Murilo Pires
26c2fbbc07
fix: improve chat UI - add camera icon margin and make placeholder no… (#5477)
fix: improve chat UI - add camera icon margin and make placeholder non-selectable
2025-07-08 17:28:12 -03:00
Matt Rubens
a5324268dc
Remove unnecessary useEffect from sharebutton (#5476) 2025-07-08 16:01:39 -04:00
Matt Rubens
d116dbf0f1
Only show share modal from sharebutton (#5475) 2025-07-08 15:49:23 -04:00
Roomote Bot
e9dca0acb9
Mark test snapshot files as linguist-generated (#5474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-08 15:33:03 -04:00
Murilo Pires
150d71256f
Chat index UI enhancements (#5451)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-08 13:19:02 -06:00
Daniel
c551e17327
refactor: remove legacy codebaseIndexOpenAiCompatibleModelDimension property (#5459) 2025-07-08 14:43:03 -04:00
Matt Rubens
0606c56bf1
Make the default architect prompt create a todo list (#5472) 2025-07-08 13:59:48 -04:00
Matt Rubens
32ce45d8bc
Add a hint about using todos for complicated tasks (#5473) 2025-07-08 13:45:38 -04:00
Matt Rubens
6ab57fae43
Remove modifier checks from prompt history navigation (#5467) 2025-07-08 11:19:46 -04:00
Will Li
a9a87c2e0f
Make the prompts editable now (#5359) 2025-07-08 10:42:16 -04:00
bbenshalom
edce187c03
fix typescript compiler watch path inconsistency (#5155) 2025-07-08 10:40:01 -04:00
Matt Rubens
08a0c897ef
Remove warning about writing not being allowed (#5461) 2025-07-07 23:55:29 -04:00
Hannes Rudolph
d4abe73875
fix: add embedder validation to prevent misleading status indicators (#4398) (#5404)
* fix: add embedder validation to prevent misleading status indicators (#4398)

* fix: address PR feedback and fix critical issues

- Fixed settings-save flow to save before validation
- Fixed Error constructor usage in scanner.ts
- Fixed segment identification in file-watcher.ts
- Added missing translation keys for embedder validation errors

* fix: add missing Ollama translation keys

- Added missing ollama.title, description, and settings keys
- Fixed translation check failure in CI/CD pipeline
- Synchronized all 17 non-English locale files

* feat: add proactive embedder validation on provider switch

- Validate embedder connection when switching providers
- Prevent misleading 'Indexed' status when embedder is unavailable
- Show immediate error feedback for invalid configurations
- Add comprehensive test coverage for validation flow

This ensures users get immediate feedback when configuring embedders,
preventing confusion when providers like Ollama are not accessible.

* fix: improve error handling and validation in code indexing process

* refactor: extract common embedder validation and error handling logic

- Created shared/validation-helpers.ts with centralized error handling utilities
- Refactored OpenAI, OpenAI-Compatible, and Ollama embedders to use shared helpers
- Eliminated duplicate error handling code across embedders
- Improved maintainability and consistency of error handling
- Fixed test compatibility in manager.spec.ts
- All 2721 tests passing

* refactor: simplify validation helpers by removing unnecessary wrapper functions

- Removed getErrorMessageForConnectionError and inlined logic into handleValidationError
- Removed isRateLimitError, logRateLimitRetry, and logEmbeddingError wrapper functions
- Updated openai.ts and openai-compatible.ts to inline rate limit checking and logging
- Reduced code complexity while maintaining all functionality
- All 311 tests continue to pass

* fix: add missing invalidResponse i18n key and fix French translation

- Added missing 'invalidResponse' key to all locale files
- Fixed French translation: changed 'and accessible' to 'et accessible'
- Ensures proper error messages are displayed when embedder returns invalid responses

* fix: restore removed score settings in webviewMessageHandler

- Restored codebaseIndexSearchMaxResults and codebaseIndexSearchMinScore settings that were unintentionally removed
- Keep embedder validation related changes

* fix: revert unintended changes to file-watcher and scanner

- Reverted point ID generation back to using line numbers instead of segmentHash
- Restored { cause: deleteError } parameter in scanner error handling
- These changes were unrelated to the embedder validation feature

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-07 18:46:35 -04:00
axb
7645aad435
add todo tool (#5182)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-07 14:07:39 -04:00
Murilo Pires
6ec017ca65
fix: correct export/import of OpenAI Compatible codebase indexing set… (#5383) 2025-07-07 11:53:33 -04:00
Kevin van Dijk
36b3cdc833
Fix model search being prefilled on dropdown (#5449) 2025-07-07 11:48:49 -04:00
Hannes Rudolph
7d31966978
fix: resolve workspace path inconsistency in code indexing for multi-workspace scenarios (#4397) (#5403)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-07 11:29:57 -04:00
John Richmond
ad201cc058
Cloud: support static cloud settings (#5435)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-06 23:21:52 -04:00
Roomote
25be23354a
Add description field to create_mode instructions (#5433)
* Add description field to create_mode instructions

- Include description field in optional but recommended fields list
- Add description field to YAML example with clear guidance
- Description field already exists in ModeConfig schema but was missing from instructions
- Provides short, human-readable description of what the mode does (1-2 sentences)

* Update description field guidance to 5 words instead of 1-2 sentences

- Changed description field guidance from '1-2 sentences' to '5 words'
- Updated YAML example to show concise 5-word description
- Addresses feedback from @mrubens in PR comment #3041823916
2025-07-06 11:00:29 -04:00
Roomote
8f216c3f88
Fix new_task tool streaming issue (#5432) 2025-07-06 09:17:18 -04:00
Shariq Riaz
9faf28acac
fix: use actual max_completion_tokens from OpenRouter API (#5240)
- Update parseOpenRouterModel to always use actual max_completion_tokens from OpenRouter API
- Remove artificial restriction that only reasoning budget and Anthropic models get their actual max tokens
- Fall back to 20% of context window when max_completion_tokens is null
- Update getModelMaxOutputTokens to use same fallback logic for consistency
- Update tests to reflect new behavior
- Fixes issue where reserved tokens showed ~209k instead of actual model limits (e.g. GPT-4o: 16,384)
2025-07-06 04:15:05 -04:00
Daniel
5b1ca51ec0
feat: optimize file listing when maxWorkspaceFiles is 0 (#5421)
- Add early return in listFiles() when limit is 0 to avoid unnecessary file scanning
- Update getEnvironmentDetails() to show appropriate message when workspace files context is disabled
- Add test coverage for maxWorkspaceFiles=0 scenario
- Clean up test files to remove unnecessary mocking complexity

This optimization improves performance when users set maxWorkspaceFiles to 0, completely bypassing file system operations.
2025-07-05 11:28:16 -04:00
Daniel
49af895c1f
fix: restore search score threshold slider (#5410)
fix: restore search score threshold slider and fix value persistence (#5041)

- Add codebaseIndexSearchMinScore to WebviewMessage type definition
- Include codebaseIndexSearchMinScore in saveCodeIndexSettingsAtomic handler
- Initialize codebaseIndexSearchMinScore in ExtensionStateContext
- Fix logical OR operators to use nullish coalescing for proper 0 value handling
- Ensure search threshold values persist correctly when saving settings

This restores the deleted feature from PR #5041 and fixes the issue where
the search score threshold value was being reset upon saving.
2025-07-05 08:04:55 -04:00
Murilo Pires
4a78f51fe5
Feat/issue 5149 configurable max search results (#5402)
* feat: add configurable max search results for codebase indexing (#5149)

- Add codebaseIndexSearchMaxResults to configuration schema with validation (10-1000)
- Update Qdrant client to accept maxResults parameter in search method
- Add UI slider in Experimental Settings to configure max search results
- Rename constants to DEFAULT_MAX_SEARCH_RESULTS and DEFAULT_SEARCH_MIN_SCORE for clarity
- Add translations for new setting across all 17 supported languages
- Add comprehensive test coverage for config manager, Qdrant client, and UI components

fix: settings persistence for codebase index configuration

- Add new updateCodebaseIndexConfig message type to properly merge config updates
- Update SettingsView to send entire codebaseIndexConfig object instead of just enabled flag
- Add backend handler to merge configuration updates instead of overwriting
- Add tests for the new message handler functionality

This ensures the max search results setting persists correctly when saved.

* fix: correct property name in updateCodebaseIndexConfig message

The frontend was sending 'config' but the backend expects 'codebaseIndexConfig'.
This mismatch was preventing the max search results setting from persisting.

* feat: refactor codebase index constants and update search result defaults

* feat(chat): add advanced settings for maximum search results configuration

* refactor: remove updateCodebaseIndexConfig and integrate max search results into saveCodeIndexSettingsAtomic

- Removed updateCodebaseIndexConfig message type and handler as per PR feedback
- Added codebaseIndexSearchMaxResults to codeIndexSettings type in WebviewMessage.ts
- Updated saveCodeIndexSettingsAtomic to save codebaseIndexSearchMaxResults
- Fixed SettingsView.tsx to use codebaseIndexEnabled message instead of updateCodebaseIndexConfig

* Delete webview-ui/src/components/settings/__tests__/ExperimentalSettings.spec.tsx

* refactor: remove updateCodebaseIndexConfig tests to streamline codebase indexing logic

* revert this

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-04 20:55:15 -04:00
Murilo Pires
9da5166f56
Pr fixer improvements (#5407)
* feat: add Issue Fixer Orchestrator mode

* feat(pr-fixer-orchestrator): enhance workflow safety and user control

- Add user approval checkpoint before committing changes
- Implement large diff handling (>2000 lines) with automatic summarization
- Replace dangerous `git add -A` with selective file staging
- Enforce context preservation in shared temp directory for all delegated tasks
- Add exact PR template format specification
- Update best practices to reflect new safety measures

BREAKING CHANGE: Workflow now requires explicit user approval before commits

* removed files that were added accidently
2025-07-04 20:53:40 -04:00
Murilo Pires
7c4fc55fc5
PR-Reviewer improvements (#5406)
* feat: add Issue Fixer Orchestrator mode

* feat: enhance PR Reviewer mode as orchestrator with critical review capabilities

- Transform PR Reviewer into an orchestrator mode that delegates analysis tasks
- Add comprehensive rule files for workflow, guidelines, and patterns
- Implement file-based context management system in .roo/temp/pr-*/
- Add GitHub MCP tool integration with CLI fallback strategy
- Include critical review guidelines for pattern consistency and redundancy detection
- Update file permissions to support temporary context files
2025-07-04 20:53:13 -04:00
Murilo Pires
6982b1916c
feat: Add pre-commit review and PR template to issue-fixer-orchestrator (#5405)
* feat: Add pre-commit review and PR template to issue-fixer-orchestrator

- Add user confirmation step before committing changes
- Handle large diffs (>2000 lines) with summary generation
- Save PR message to temp directory instead of creating PR directly
- Implement exact Roo Code PR template format
- Add post-commit options for flexible PR creation
- Update best practices and communication guidelines
- Document new commit and PR workflow patterns

* removed files that were added accidently
2025-07-04 20:50:36 -04:00
Murilo Pires
f478a5c72c
fix: resolve Go duplicate references in tree-sitter queries (#5367) (#5377)
* fix: resolve Go duplicate references in tree-sitter queries (#5367)

- Replace broad statement captures with function-scoped queries
- Eliminates overlapping captures that caused duplicate references
- Improves search quality and indexing performance for Go projects
- Add test to validate no duplicate line ranges are captured
- Maintains backward compatibility with existing functionality

Fixes #5367

* fix: resolve Go codebase indexing with language-specific thresholds

- Update Go tree-sitter queries to capture full declarations instead of just identifiers
- Implement language-specific character thresholds (50 chars for Go vs 100 default)
- Fix inspectGo.spec.ts test to match new query behavior
- Add comprehensive test coverage for Go indexing fix

This ensures Go files are properly indexed for semantic search while preventing
duplicate references. All tests now pass.

* fix: implement universal 50-character threshold for code indexing

- Changed MIN_BLOCK_CHARS from 100 to 50 in parser.ts
- Updated tests to expect single-block captures for small Go files
- Removed language-specific threshold logic
- Fixes Go files not being indexed due to high character threshold

Fixes #5367

* test: replace Go-specific test with generic MIN_BLOCK_CHARS test

- Remove go-indexing-fix.spec.ts as requested in PR feedback
- Add generic test in parser.spec.ts to verify 50-character threshold
- Test ensures content under 50 chars is filtered, 50+ chars is indexed
- Applies to all languages, not just Go

* fix: update markdown tests for MIN_BLOCK_CHARS change from 100 to 50
2025-07-04 20:49:40 -04:00
Murilo Pires
a83e8c0553
feat: add markdown support to codebase indexing (#4660) (#5378)
* feat: add markdown support to codebase indexing (#4660)

* fix: implement chunking for large markdown sections and fix Qdrant deduplication issue (#4660)

- Modified parseMarkdownContent to chunk large sections (>1150 chars)
- Added support for chunking header-less markdown files
- Fixed _chunkTextByLines to handle oversized lines properly
- Added defensive check for parseMarkdown returning undefined
- Fixed Qdrant ID generation to use segmentHash instead of file:line
  - This was the root cause: chunks were being deduplicated
  - Each chunk now gets a unique ID even from the same line
- Added comprehensive tests for all edge cases
- Ensures all markdown content is properly indexed in Qdrant

* fix: remove redundant supported-extensions test file

As identified in PR review, the supported-extensions.spec.ts file only tests
the contents of an array, which is already implicitly covered by the functional
tests in parser.spec.ts. Removing this reduces maintenance overhead without
sacrificing test quality.

* test: address PR review feedback

- Remove redundant test 'should handle large markdown documentation folders efficiently'
  that only verified the scanner could iterate over mocked files
- Add test to verify unique point IDs are generated for each block from the same file,
  ensuring the segmentHash-based ID generation prevents collisions

* fix: add segmentHash to vector point payload and refactor tests

- Add segmentHash to payload in scanner.ts to fix vector point ID generation
- Split parser.spec.ts tests into focused unit tests (mocked dependencies)
- Move integration tests to new markdownIntegration.spec.ts file
- Each test suite now has clear, distinct responsibilities
- Fixes issue #4660: vector point ID collisions for large Markdown files

* refactor: move redundant tests

* feat: enhance markdown processing with consistent chunking logic and segment hashing

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-04 13:58:25 -04:00
Justin Halsall
7a0a6deb93
Port: feat(chat): add copy prompt button to task actions (#5392)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-04 11:16:57 -04:00
Matt Rubens
055d2bcb87
Try to implement nightly app publishing (#5396)
Co-authored-by: matt <matt@roocode.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-07-04 11:16:45 -04:00
lhish
8e7d9e092d
fix(tools): Resolve intermittent hangs and lack of clear error feedback in apply_diff tool (#5391)
* fix(tools): Resolve intermittent hangs and lack of clear error feedback in apply_diff tool (#5390)

* fix: show user-friendly error message for XML parsing failures

- Keep detailed XML structure instructions only for LLM via pushToolResult
- Show simple error message to user via cline.say
- Aligns with established error handling pattern in codebase

* feat: add telemetry for XML parsing errors

- Track XML parsing errors using captureDiffApplicationError
- Include consecutive mistake count for better error analysis
- Helps monitor and debug XML parsing issues in production

---------

Co-authored-by: Example User <user@example.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-04 10:02:28 -04:00
Matt Rubens
7ae74404f4
Fix inconsistent descriptions in slash commands (#5388) 2025-07-04 01:08:37 -04:00
Daniel
f96021fa6b
fix: resolve UI issues with checkbox state and popover visibility (#5387) 2025-07-03 22:01:10 -04:00
Hannes Rudolph
ede228e152
fix: prevent chatbox focus loss during automated file editing (#4574) (#5349)
* fix: prevent chatbox focus loss during automated file editing (#4574)

- Add preserveFocus: true to DiffViewProvider openDiffEditor method
- Implement comprehensive focus preservation during cursor positioning and scrolling
- Make scrollToFirstDiff async with focus restoration capabilities
- Update all tool files to use async scrollToFirstDiff
- Add comprehensive unit and E2E tests for focus preservation

Fixes #4574

* refactor: extract focus restoration logic and improve consistency

- Created restoreEditorFocus() helper method to eliminate code duplication
- Changed preserveFocus from false to true for consistent behavior
- Added error handling with silent logging for focus restoration failures
- Added null checks for undefined activeTextEditor cases

* Delete apps/vscode-e2e/src/suite/tools/focus-preservation.test.ts

It doesn't seem to be testing anything

* refactor: remove focus restoration logic to simplify diff editor interactions

* refactor: remove unnecessary await from scrollToFirstDiff calls

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-03 20:43:06 -04:00
Daniel
e508eaf3df
Fix code index secret persistence and improve settings UX (#5158)
* Fix code index secret persistence with async VSCode storage

- Add async secret methods to CodeIndexConfigManager
- Implement direct VSCode secret storage access bypassing ContextProxy cache
- Update loadConfiguration to use async secret loading
- Modify webview message handler to use new async secret storage
- Add public secret methods to CodeIndexManager
- Enhance debugging throughout secret flow

This fixes the issue where API keys were saved but not loaded immediately
into services due to ContextProxy cache synchronization issues.

* Fix code index secret persistence and test failures

- Add async secret handling to CodeIndexConfigManager with new methods:
  - getSecretAsync(), storeSecretAsync() for individual secrets
  - loadSecretsAsync(), storeSecretsAsync() for batch operations
- Update doesConfigChangeRequireRestart() to check OpenAI Compatible modelDimension changes
- Fix all failing tests by using setupSecretMocks() helper consistently
- Update manager.spec.ts to properly mock _recreateServices to avoid real service creation

This ensures API keys and other secrets are properly loaded from VSCode's async secret storage
and that configuration changes requiring service restart are correctly detected.

* feat: improve code index settings secret handling in UI

- Show placeholder dots (••••••••••••••••) in password fields when secrets are already set
- Only send modified secret fields to prevent overwriting existing secrets with empty values
- Track which fields have been modified by the user
- Add requestCodeIndexSecretStatus message handler to check if secrets exist
- Fix console.log to handle empty string keys without errors
- Ensure changing one setting doesn't clear other unmodified secrets

* refactor: disconnect code index from unified settings system

- Rename handleExternalSettingsChange to handleSettingsChange for clarity
- Remove handleSettingsChange call from ClineProvider (not related to code index)
- Remove codebaseIndexConfig from general settings save in SettingsView
- Delete unused codebaseIndexConfig message handler
- Remove codebaseIndexConfig from WebviewMessage type definition
- Code index settings are now fully independent with their own dedicated UI

* feat: separate code index enable/disable from indexing settings

- Move 'Enable codebase indexing' toggle to global settings in Experimental section
- Keep indexing-specific settings (API keys, URLs, models) in dedicated Code Index Settings component
- Add codebaseIndexEnabled handler to webview message handler
- Update translations with new settings title and disabled message
- Ensure code index service properly responds to enable/disable changes
- Maintain backward compatibility with existing codebaseIndexConfig structure

* refactor: remove ContextProxy.getVSCodeContext() and pass ExtensionContext directly

- Updated CodeIndexConfigManager to accept vscode.ExtensionContext in constructor
- Modified CodeIndexManager to pass context directly to CodeIndexConfigManager
- Updated webviewMessageHandler to use provider.context.secrets directly
- Removed getVSCodeContext() method from ContextProxy
- Updated all related tests to reflect these changes
- Fixed CodeIndexSettings webview tests after UI changes

* refactor: streamline secret handling by removing async methods and utilizing ContextProxy directly

* feat: translations and popover component

* refactor: simplify test mocks and improve checkbox handling in CodeIndexSettings tests

* refactor: remove debug logging from CodeIndexConfigManager, CodeIndexManager, CodeIndexServiceFactory, and QdrantVectorStore

* fix: merge missing translation keys from main after rebase

- Add advancedConfigLabel, searchMinScoreLabel, searchMinScoreDescription, searchMinScoreResetTooltip keys
- Update startIndexingButton and clearIndexDataButton labels to match main
- Preserve all CodeIndexPopover translations added in this PR

* Revert "fix: merge missing translation keys from main after rebase"

This reverts commit beb1de4924ac1475731fcd06d994ddb96eb1e5fd.

* fix: add missing translation keys from main branch after rebase

- Added codeIndex.advancedConfigLabel
- Added codeIndex.searchMinScoreLabel
- Added codeIndex.searchMinScoreDescription
- Added codeIndex.searchMinScoreResetTooltip

These keys exist on main but were missing from non-English locales after rebase.

* fix: remove clickIndicatorMessage, fix toggle message type, and clean up translation key inconsistencies

* refactor: streamline settings management in CodeIndexPopover and improve secret handling

* refactor: remove debug logging from configuration checks in CodeIndexConfigManager and webviewMessageHandler

* fix: translations

* refactor: remove CodeIndexSettings component and associated tests
2025-07-03 18:33:20 -04:00
Daniel
b7d5a964c7
fix: enhance PR reviewer mode to prevent duplicate comments (#5382)
- Reorganized workflow to fetch existing comments BEFORE code review (Step 4)
- Added dedicated Step 6 to verify existing comments against current code
- Updated best practices to emphasize checking resolved comments first
- Enhanced common mistakes to highlight duplicate comment prevention
- Added tracking of resolved vs pending comments in the review process
2025-07-03 14:50:38 -04:00
Hannes Rudolph
2ecf2ce5ad
feat: improve docs-extractor mode rules for better documentation extraction (#5381)
- Enhanced extraction workflow with clearer step-by-step instructions
- Improved documentation patterns for better structure recognition
- Refined analysis techniques for comprehensive coverage
- Updated tool usage guide with practical examples
- Added complete extraction examples for common scenarios
- Improved communication guidelines for clearer output
- Enhanced user-friendly examples with better formatting
2025-07-03 14:50:09 -04:00
Murilo Pires
a3106bf9a5
feat: add Issue Fixer Orchestrator mode (#5379) 2025-07-03 14:49:25 -04:00
Hannes Rudolph
329690cf54
feat: Delete .roo/rules-{mode} folder when custom mode is deleted (#5210) (#5317)
* feat: Add folder deletion when custom mode is deleted (#5210)

* fix: address PR feedback - fix Korean translation typo and add missing German translation

* fix: use os.homedir() instead of vscode.env.userHome

* fix: use dynamic home directory in webview tests for cross-platform compatibility

* fix: normalize path separators in tests for Windows compatibility

* feat: implement DeleteModeDialog component for mode deletion confirmation

* fix: use ref to store current modeToDelete value for consistent state handling

* feat: add error handling for rules folder deletion and localize error messages

* Update src/i18n/locales/ja/common.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update src/i18n/locales/zh-CN/common.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix: remove redundant rulesFolderExists from deleteCustomModeCheck response

* fix: update webviewMessageHandler tests to match fs import style

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-03 13:00:07 -04:00
Hannes Rudolph
7e8c1d71a4
feat: add issue-fixer-orchestrator mode (#5366)
* Add issue-fixer-orchestrator mode

* fix: address PR review comments

- Restore multi-line YAML formatting for mode-writer roleDefinition
- Fix duplicate numbering in workflow XML (4. -> 5., 5. -> 6.)

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-03 10:58:58 -04:00
SeeD
abea1920ac
Fix: Chat UI consistency and layout shifts (#5237) 2025-07-03 00:02:00 -04:00
SannidhyaSah
e4b051bb71
fix: prevent completion sound from replaying when reopening completed tasks (#4885) (#5249) 2025-07-02 23:59:51 -04:00
SannidhyaSah
37619d7850
fix: support full endpoint URLs in OpenAI Compatible provider (#5212) (#5214)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-02 23:58:35 -04:00
SannidhyaSah
87aa688f33
feat: add Gemini embedding provider for codebase indexing (#5228)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-02 23:51:42 -04:00
WuWen
19cd001f8d
fix access_mcp_resource fails to handle images correctly (#5254) 2025-07-02 23:50:15 -04:00
Matt Rubens
1cb69d2dc6
Remove reference to file that no longer exists (#5360) 2025-07-02 22:25:58 -04:00
Daniel
c72f4a4b5e
docs: add compact testing guidelines to project rules (#5353) 2025-07-02 18:48:50 -04:00
github-actions[bot]
6355cb010c
Changeset version bump (#5358)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-02 17:20:21 -04:00
github-actions[bot]
7704463a7b
Update contributors list (#5213)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-02 17:16:31 -04:00
Matt Rubens
cb44e6dda4
v3.22.6 (#5357) 2025-07-02 17:15:40 -04:00
dleffel
a57b0b6dc4
feat: integrate security one-pager into website (#5234)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-02 16:39:02 -04:00
Matt Rubens
1be6fce1a6
Check for protected files in single apply diff (#5348) 2025-07-02 13:52:13 -04:00
Matt Rubens
3993406ebd
Add .vscode/ to the list of write-protected files/directories (#5347) 2025-07-02 13:17:20 -04:00
Christiaan Arnoldus
89d28a5e66
Give Mermaid buttons a light background in light mode (#5342) 2025-07-02 10:58:35 -04:00
John Richmond
05040414c2
Cloud: support alternate auth token from environment (#5323) 2025-07-01 22:23:23 -04:00
Hannes Rudolph
70726bcd21
feat: Import export modes (#5074)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-01 17:13:44 -04:00
Matt Rubens
b4dc3a486e
Add optional share links to templates (#5318) 2025-07-01 17:11:19 -04:00
Hannes Rudolph
1acbd45dc2
refactor: update issue-fixer mode to use GitHub CLI instead of MCP (#5320) 2025-07-01 17:04:57 -04:00
Matt Rubens
a1ae29cdcd
Suppress mermaid error rendering (#5308) 2025-07-01 15:50:24 -04:00
DEV×PAIN
0ee3680fb4
feat(dx): streamline extension installation and documentation (#4284) 2025-07-01 15:50:05 -04:00
SannidhyaSah
ff1e8ac2ee
fix: remove context size from environment details (#5165) (#5312)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-01 15:14:50 -04:00
Will Li
781beeb30f
Auto approve follow up questions (#5296) 2025-07-01 14:43:16 -04:00
Hannes Rudolph
a348a2ae9a
feat: add user-configurable search score threshold slider for semantic search (#5027) (#5041)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-01 14:41:23 -04:00
Murilo Pires
933f28fe32
fix: Exclude cache files from rules compilation (#5283)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-01 10:33:32 -04:00
Hannes Rudolph
adb3ee9a11
feat: add translation orchestration to PR Fixer mode (#5280)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-01 10:32:38 -04:00
Hannes Rudolph
6b7cfdc6ac
feat: add translation workflow to issue-fixer mode (#5281) 2025-07-01 10:32:23 -04:00
roomote
951f2d0fad
Fix #5294: Prevent Architect mode from providing time estimates (#5295)
* Fixes #5294: Add instruction to Architect mode to avoid time estimates

- Updated Architect mode custom instructions to explicitly prohibit providing time estimates
- Added clear guidance to focus on actionable plans without speculating about implementation timeframes
- Updated test snapshot to reflect the new instruction
- All tests passing

* More tweaks to prompt

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-01 09:42:46 -04:00
Andrew Shu
569b276d93
feat: adding default headers and testing for litellm fetcher (#5242)
* chore: adding x-title header and testing for litellm

* chore: indentation fi and headers order fix

* chore: spacing fix

* chore: removed white space

* fix: allow user headers to override default headers and clean up formatting

- Reorder header spread in router-provider.ts so user-provided openAiHeaders can override DEFAULT_HEADERS
- Remove unnecessary blank lines after imports for consistency
- This matches the pattern used in openai.ts where DEFAULT_HEADERS come first

---------

Co-authored-by: Brendan-Z <brendanzhou.99@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 20:23:11 -04:00
Hannes Rudolph
18c3f5dc33
feat: change default mode to architect for new installations (#5289)
* feat: change default mode to architect for new installations

- Reordered modes array to put architect mode first
- Updated test to reflect architect as the default mode
- Maintains backward compatibility for existing users

* test: update snapshots and fix tests for architect default mode

- Update all snapshot tests to reflect architect as the default mode
- Fix mode destructuring in validateToolUse tests
- All tests now pass with the new default mode configuration

* docs: add comment explaining mode ordering for default selection

Addresses PR review feedback to clarify that the first mode in the array
serves as the default for new installations

* fix: Update integration test to use lowercase mode name

The test was using 'Ask' (capitalized) but modes are now lowercase 'ask'.
This was causing the test to timeout as the mode validation failed.
2025-06-30 17:46:56 -04:00
Hannes Rudolph
298908fe1d
fix: ensure VersionIndicator only shows on welcome screen (#5288)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 14:07:00 -04:00
SannidhyaSah
24eb6e4c29
fix: prevent Qdrant URL field from auto-filling with default value (#5217)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:56:49 -04:00
Murilo Pires
b9626a7eff
fix: cap API retry exponential backoff at 10 minutes (#5171)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:56:34 -04:00
Hannes Rudolph
904e956179
feat: add persistent version indicator on chat screen (#5115) (#5128)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:53:55 -04:00
Kevin Zhao
000a9e5268
feat: update AWS Bedrock cross-region inference profile mapping, Closed issue #2704 (#4973) 2025-06-30 10:49:32 -04:00
roomote
fb711a097c
Fixes #4903: Consistent cancellation error messages for thinking vs streaming phases (#4904)
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-30 10:48:57 -04:00
takakoutso
562a007438
feat: Add automatic configuration import on extension startup (#4848)
Co-authored-by: Roo Code <chris@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:45:51 -04:00
Murilo Pires
64279166c4
fix: resolve URL loading timeout issues in @ mentions (#5160)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:40:53 -04:00
PaperBoardOfficial
8c493b393f
fixed profile context condensation threshold (#5230) 2025-06-30 10:37:18 -04:00
roomote
cd60bb3a7e
Fixes #5206: Update apply_diff tool documentation to accurately reflect multi-file capabilities (#5232)
* Fixes #5206

* Fix failing test: Update snapshot after documentation changes

- Updated system-prompt.spec.ts snapshot to match new tool descriptions
- Changes reflect updated multi-file diff strategy documentation
- Addresses test failure mentioned in PR #5232 comment by @mrubens
2025-06-30 09:01:44 -04:00
github-actions[bot]
b45252d490
Changeset version bump (#5225)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-29 01:06:59 -04:00
Matt Rubens
5cda9e453b
Bring back more gemini cli types (#5227) 2025-06-29 00:45:40 -04:00
Matt Rubens
0c89162199
Try to avoid type error from removing gemini-cli (#5226) 2025-06-29 00:16:58 -04:00
Matt Rubens
a480937b22
Add changeset for v3.22.5 patch release (#5224) 2025-06-28 23:56:48 -04:00
Matt Rubens
d64e677f88
Remove Gemini CLI provider (#5223) 2025-06-28 23:48:28 -04:00
Matt Rubens
f763a5119b
Revert "Stop double-capturing cloud telemetry" (#5220) 2025-06-28 16:03:56 -04:00
Will Li
dc44e7a40b
Git Repo URL telemetry link fix: only Https (#5202)
* https parsing in URL sanatizing for git repo

* fix: remove duplicate JSDoc and add SSH to HTTPS conversion test

- Remove duplicate JSDoc comment from convertGitUrlToHttps function
- Add test case to verify getGitRepositoryInfo converts SSH URLs to HTTPS format

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-28 09:32:27 -04:00
Matt Rubens
8bb7ef083f
Stop double-capturing cloud telemetry (#5211) 2025-06-28 00:49:01 -04:00
github-actions[bot]
fa693e1f06
Changeset version bump (#5205)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-27 20:20:03 -04:00
github-actions[bot]
ad89e83280
Update contributors list (#5129)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-27 20:17:16 -04:00
Matt Rubens
53cf9010da
chore: add changeset for v3.22.4 patch release (#5204) 2025-06-27 20:16:12 -04:00
Daniel
867eaf4d70
fix: move StandardTooltip inside PopoverTrigger in ShareButton (#5203) 2025-06-27 20:13:46 -04:00
Johannes
de99e348df
fix: resolve E2BIG error by passing large prompts via stdin to Claude CLI (#5186)
* fix: resolve E2BIG error by passing large prompts via stdin to Claude CLI

- Pass messages via stdin instead of command line arguments to avoid Linux argument length limits
- Add --input-format text flag to claude CLI command
- Update execa configuration to use stdin pipe
- Fix corresponding unit tests with proper async iterator mocking
- Resolves spawn E2BIG errors when using very large conversation histories

* fix: address race condition and improve error handling

- Use setImmediate to ensure process is spawned before writing to stdin
- Add proper error handling for stdin write operations
- Add tests for error scenarios
- Update existing tests to handle async behavior properly

* fix: remove --input-format text flag to prevent CLI parsing errors

The --input-format text flag was causing the Claude CLI to misinterpret
the JSON content passed via stdin, leading to errors like 'unknown option -------'
when the system prompt contained dashes. Removing this flag allows the CLI
to properly handle the JSON input via stdin.

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-27 20:07:04 -04:00
Matt Rubens
719d661478
Add optional mode suggestions to follow-up questions (#5200) 2025-06-27 16:26:17 -04:00
github-actions[bot]
3a8ba27615
Changeset version bump (#5196)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-27 15:45:28 -04:00
Matt Rubens
e64db9ad0b
v3.22.3 (#5201) 2025-06-27 15:40:33 -04:00
Daniel
d397d131b9
fix: restore JSON backwards compatibility for .roomodes files (#5199) 2025-06-27 15:04:17 -04:00
github-actions[bot]
f1feccc6bf
Changeset version bump (#5167)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-27 12:58:44 -04:00
Matt Rubens
11ed27a925
v3.22.2 (#5195) 2025-06-27 12:53:06 -04:00
Daniel
0ddd21e8fb
fix(i18n): correct gemini cli error translation paths (#5194) 2025-06-27 12:23:21 -04:00
Daniel
b0190387ce
Fix checkpoint popover not opening due to StandardTooltip wrapper conflict (#5192) 2025-06-27 11:22:32 -04:00
KJ7LNW
c58b9638c5
fix: eliminate XSS vulnerability in CodeBlock component (#5157)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-27 10:20:59 -04:00
Catriel Müller
426518bccd
Code Index (Qdrant) recreate services when change configurations (#5152) 2025-06-27 10:20:38 -04:00
Murilo Pires
9bf31d3ff7
fix terminal keyboard shortcut error when adding content to context (#5161)
## Fix terminal keyboard shortcut error when adding content to context

**Fixes:** [#2276](https://github.com/RooCodeInc/Roo-Code/issues/2276)

**Problem:**
- Using keyboard shortcuts to add terminal content to context threw error: "Cannot read properties of undefined (reading 'selection')"
- Context menu worked correctly, but keyboard shortcuts failed

**Root Cause:**
- Command handler accessed `args.selection` without null checking
- When triggered via keyboard shortcut, VS Code passes `undefined` for `args` parameter
- When triggered via context menu, VS Code passes an object with `selection` property

**Solution:**
- Changed `args.selection` to `args?.selection` using optional chaining
- Maintains existing fallback behavior when no selection is available
- Preserves backward compatibility with context menu functionality

**Files Modified:**
- `src/activate/registerTerminalActions.ts` - Added null safety for args parameter

**Testing:**
-  Keyboard shortcuts now work without errors
-  Context menu functionality preserved
-  Fallback to `Terminal.getTerminalContents()` works in both scenarios
2025-06-26 20:34:14 -04:00
github-actions[bot]
43357967f0
Changeset version bump (#5166)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-26 20:19:18 -04:00
roomote
2f52058def
chore: add changeset for v3.22.1 patch release (#5164)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-26 20:16:00 -04:00
Hannes Rudolph
992997c02f
feat: add Gemini CLI provider for free access to Gemini models (#5134) (#5137)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-26 16:03:18 -04:00
Hannes Rudolph
3318366b66
fix: standardize tooltip delays to 300ms (#5090) (#5098)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-26 15:41:32 -04:00
KanTakahiro
c797c9a1d1
update maxTokens value for qwen/qwen3-32b model on Groq (#5138)
Co-authored-by: Kan <yihong.han@feat-ltd.jp>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-26 15:39:43 -04:00
Matt Rubens
1c37b77e9d
Track mode selector opened in telemetry (#5150) 2025-06-26 15:19:58 -04:00
axb
5c9b476d5b
fix undefined mcp command (#5107) 2025-06-26 12:25:15 -04:00
Christiaan Arnoldus
1a9aa13bd2
Use upstream_inference_cost for OpenRouter BYOK cost calculation and show cached token count (#5145)
Improve OpenRouter cache calculation and show cached tokens
2025-06-26 10:18:49 -04:00
github-actions[bot]
c4594cc60f
Changeset version bump (#5131)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-25 21:55:56 -04:00
Matt Rubens
12691918a3
v3.22.0 (#5130) 2025-06-25 21:49:13 -04:00
Hannes Rudolph
f9f01b012c
fix: resolve Claude Code token counting inefficiency and enable caching (#5104) (#5108)
* fix: resolve Claude Code token counting inefficiency and enable caching (#5104)

- Remove 1.5x fudge factor from Claude Code token counting
- Enable prompt caching support for all Claude Code models
- Add comprehensive tests for token counting and caching
- Update existing tests to reflect accurate token counting

This fixes the extreme token inefficiency where simple messages would
jump from ~40k to over 60k tokens, causing API hangs when approaching
the artificial 120k limit. Claude Code now properly utilizes its full
200k context window with accurate token counting.

* fix: address PR review comments

- Extract IMAGE_TOKEN_ESTIMATE as a named constant for clarity
- Update token counting tests to use exact counts instead of ranges for deterministic testing
- Fix test expectations to match actual tokenizer output

* Remove token counting changes, keep only cache support

- Removed custom countTokens override from claude-code.ts
- Deleted claude-code-token-counting.spec.ts test file
- Kept cache token collection and reporting functionality
- Kept supportsPromptCache: true for all Claude Code models
- Kept claude-code-caching.spec.ts tests

This focuses the PR on enabling cache support without modifying token counting behavior.

* fix: update webview test to expect supportsPromptCache=true for Claude Code models

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:36:06 -04:00
KJ7LNW
d1ab71c60e
Improve translation workflow to avoid unnecessary file reads (#5126)
* dotroo: improve translation workflow to reduce unnecessary file reads

Update translation workflow guidelines to use search_files instead of reading
each translation file individually. This approach is more efficient and
reduces context token usage while maintaining translation accuracy.

The improved workflow:
- Uses search_files to find JSON structure in translation files
- Creates proper context for apply_diff without reading every file
- Only reads specific files when their structure differs
- Validates changes with the missing translations script

Fixes: #5125
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* Update 001-general-rules.md

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-25 20:24:30 -04:00
ExactDoug
889e92518b
Fix: Remove temperature parameter for Azure OpenAI reasoning models (#5116)
* Fix temperature parameter error for Azure OpenAI reasoning models

* Fix tests: Update O3 family model tests to expect temperature: undefined

- Updated failing tests in openai.spec.ts to expect temperature: undefined for O3 models
- This aligns with the PR changes that remove temperature parameter for Azure OpenAI o1, o3, and o4 models
- All 4 previously failing tests now pass

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:23:45 -04:00
Hannes Rudolph
e559beee67
fix: handle YAML parsing edge cases in CustomModesManager (#5099)
* fix: handle YAML parsing edge cases in CustomModesManager

- Add BOM (Byte Order Mark) stripping for UTF-8 and UTF-16
- Normalize invisible characters including non-breaking spaces
- Replace fancy quotes and dashes with standard characters
- Remove zero-width characters that can cause parsing issues
- Add comprehensive test coverage for all edge cases

This fixes the YAML parsing limitations documented in PR #237 by
implementing proper preprocessing before parsing YAML content.

* fix: address PR review comments

- Fix BOM handling to correctly handle UTF-16 (all BOMs appear as \uFEFF when decoded)
- Optimize cleanInvisibleCharacters with single regex pass for better performance
- Prevent duplicate error messages by marking errors as already handled
- Refactor test file to use mockFsReadFile helper function to reduce duplication
- Fix YAML indentation in tests (use spaces instead of tabs)
- Add ESLint disable comment for character class warning (regex is correct)

* fix: prevent YAML line breaks by setting lineWidth to 0

- Added lineWidth: 0 option to all yaml.stringify() calls
- Prevents automatic line wrapping at 80 characters
- Improves readability of YAML output for long strings
- Applied to CustomModesManager, SimpleInstaller, and migrateSettings

* fix: add defaultStringType option to yaml.stringify calls

- Added defaultStringType: 'PLAIN' to minimize formatting changes
- This helps preserve plain scalars when possible
- Works alongside lineWidth: 0 to prevent automatic line wrapping

* refactor: extract problematic characters regex as a named constant

- Move regex pattern to PROBLEMATIC_CHARS_REGEX static constant
- Add comprehensive documentation for each character range
- Improves maintainability and makes the pattern reusable

* test: add comprehensive edge case tests for YAML parsing

- Add test for mixed line endings (CRLF vs LF)
- Add test for multiple BOMs in sequence
- Add test for deeply nested structures with problematic characters
- Ensures robustness across different real-world scenarios

* feat(i18n): add error messages for custom modes in multiple languages

* fix: update tests to expect i18n keys instead of hardcoded strings

- Update CustomModesManager tests to expect translation keys
- Fix YAML edge case tests to match new i18n error messages
- All tests now pass with the i18n integration

* refactor: use strip-bom package and fix error handling

- Replace custom stripBOM method with existing strip-bom package
- Fix duplicate error handling in parseYamlSafely by returning empty object instead of re-throwing
- Addresses review comments from PR #5099

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:22:21 -04:00
Hannes Rudolph
896e9867ce
fix: disable reasoning budget UI controls for Claude Code provider (#5111) (#5113)
* fix: resolve intermittent reasoning content not displayed for Claude Code provider (#5111)

- Modified fallback logic in stream parsing to handle all message types, not just assistant messages
- Added proper parsing attempts for partial data before yielding
- Improved error logging to help debug streaming issues
- Added debug logging (controlled by DEBUG_CLAUDE_CODE env var) to trace message types

This ensures reasoning/thinking content from Claude 3.5 Sonnet 4.0 is properly displayed in all cases.

* fix: disable reasoning budget UI controls for Claude Code provider (#5111)

- Set supportsReasoningBudget to false for all Claude Code models
- Claude Code CLI doesn't support thinking/reasoning parameters
- UI controls were misleading users since they had no effect

* fix: update Claude Code models configuration

- Add missing requiredReasoningBudget: false to claude-3-5-sonnet-20241022 and claude-3-5-haiku-20241022
- Revert run.ts changes as they are not needed for fixing the UI issue
- The UI issue is resolved by properly disabling reasoning budget support in model configuration

* feat: add reasoning effort support to Claude Code models and integrate into model selection

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:07:42 -04:00
Chris Estreich
aaed043cb0
Git repo cloud telemetry (#5119)
This PR adds filtering of git repository properties from telemetry data and includes git info in telemetry properties, with comprehensive tests.

Behavior:
PostHogTelemetryClient now filters out repositoryUrl, repositoryName, and defaultBranch from telemetry events.
ClineProvider includes git repository information in telemetry properties, filtered by clients.
Functions:
Added isPropertyCapturable() in BaseTelemetryClient to allow property filtering.
Implemented getGitRepositoryInfo() and getWorkspaceGitInfo() in git.ts to extract git info.
Tests:
Added tests for isPropertyCapturable() in PostHogTelemetryClient.test.ts.
Added tests for getGitRepositoryInfo() and getWorkspaceGitInfo() in git.spec.ts.
2025-06-25 17:01:32 -07:00
Hannes Rudolph
83c19ce2c8
fix: resolve claude-code provider image hang (#5100) (#5105)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-25 16:08:35 -04:00
Daniel
a9752e0293
Improve pr-reviewer to verify resolved comments by checking code (#5112) 2025-06-25 16:07:29 -04:00
shivamd1810
1472c19f8f
feat: register importSettings as VSCode command (#5095)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 16:07:08 -04:00
KJ7LNW
8455909809
fix: use safeWriteJson for all JSON file writes with race condition fix (#4733)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 16:05:02 -04:00
Catriel Müller
8ef359f9ee
fix: allowed commands import/export (#5110)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 16:01:15 -04:00
Chris Estreich
3598e3c877
Publish @roo-code/types v1.29.0 (#5084) 2025-06-24 16:31:50 -07:00
Matt Rubens
da8b09e655
Sharing improvements (#5082)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-06-24 16:36:32 -04:00
github-actions[bot]
ba5033e02e
Update contributors list (#5053)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-24 16:02:35 -04:00
Daniel
f666cb334f
Revert fix: resolve LM Studio context length detection (#5075) (#5083) 2025-06-24 15:56:22 -04:00
Daniel
e7ca038cb5
feat(pr-fixer): add validation step to workflow (#5078) 2025-06-24 15:00:35 -04:00
Hannes Rudolph
f5d4847dce
feat: add PR check monitoring to issue-fixer workflow (#5077) 2025-06-24 15:00:19 -04:00
Hannes Rudolph
cb4c178b5b
feat: remove individual review comments option from PR Reviewer mode (#5080) 2025-06-24 14:59:59 -04:00
Daniel
5bf7d006a2
fix: resolve LM Studio context length detection (#5075) (#5076) 2025-06-24 14:44:06 -04:00
Bruno Bergher
21dc57365e
Modes selector improvements (#4902)
Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-24 14:24:35 -04:00
Sam Hoang Van
c8b92e0789
feat: add support for loading rules from global and project-local .roo directories (#5016)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-24 11:40:45 -04:00
Hannes Rudolph
ee751af5c6
fix: improve Bedrock error handling for throttling and streaming contexts (#4745) (#4748)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-24 11:37:19 -04:00
Daniel
03052f827b
Add default task names for empty tasks (#5071)
Co-authored-by: kiwina <kiwina@users.noreply.github.com>
2025-06-24 11:35:45 -04:00
Daniel
954825afb7
fix: Handle long Claude code messages (#5072) 2025-06-24 11:34:06 -04:00
kiwina
64901c867c
fix: Address multiple memory leaks in CodeBlock component (#4244)
* fix: address multiple memory leaks in CodeBlock component (CodeBlock_247, CodeBlock_459, CodeBlock_694)

* fix: Address review feedback for CodeBlock memory leak fixes

- Consolidate isMountedRef management into syntax highlighting useEffect
- Unify timeout cleanup patterns for consistent maintainability
- Maintain all existing memory leak protections
- Improve code organization and readability

Addresses review comments from daniel-lxs in PR #4244

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 18:45:59 -04:00
xyOz
976dcfdcef
memory cleanup (#4190)
* memory cleaanup

* forgot to run linter
2025-06-23 18:45:15 -04:00
Thomas Brugman
245c8f3269
Fix: Allow write_to_file to handle newline-only and empty content (#3550)
* Fix: Allow write_to_file to handle newline-only and empty content

* fix: update writeToFileTool to return early without error on missing or empty parameters

* fix: preserve newlines in content parameters and update error handling in writeToFileTool tests

* fix: update parseAssistantMessage and parseAssistantMessageV2 to preserve newlines in content parameters while stripping leading and trailing newlines

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 18:43:49 -04:00
OlegOAndreev
82f7e88c2c
Added Enable Roo Code quick fixes setting to disable quick fixes. (#4878)
* Added Enable Roo Code quick fixes setting to disable quick fixes.

* Fix: Address PR review comments and failing tests for #4878

* Fix localization consistency and add test coverage

- Add missing period to French translation for consistency
- Add test case for disabled enableCodeActions setting
- Fix existing test mock setup for proper configuration handling

---------

Co-authored-by: hannesrudolph <hrudolph@gmail.com>
Co-authored-by: RooCode <roocode@RooCodes-Virtual-Machine.local>
2025-06-23 18:41:57 -04:00
John Richmond
6670e1abba
Cloud: settings fetch logging improvements (#5056) 2025-06-23 16:26:26 -04:00
github-actions[bot]
609df58831
Changeset version bump (#5055)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-23 15:04:16 -04:00
Matt Rubens
9cb5a8627d
chore: add changeset for v3.21.5 patch release (#5054) 2025-06-23 15:00:59 -04:00
github-actions[bot]
05f7d685e0
Update contributors list (#5029)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-23 14:48:04 -04:00
John Richmond
9b40829922
Fetch settings only when ready (#5052) 2025-06-23 14:47:27 -04:00
Daniel
041c28d8e5
fix: improve LM Studio model detection to show all downloaded models (#5047) 2025-06-23 14:46:56 -04:00
Matt Rubens
8d94cf86c8
Bump types to 1.28.0 (#5051) 2025-06-23 14:31:27 -04:00
Hannes Rudolph
cabf19153e
fix: resolve Claude Code provider JSON parsing and reasoning block display (#5049)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 14:14:20 -04:00
Chiao-Wei Wang
3fda1efbd7
fix(qdrant): add URL prefix handling for QdrantClient initialization (#5033) 2025-06-23 14:00:53 -04:00
Chris Estreich
1f05caa569
Skip e2e test that often prompts you (#5044) 2025-06-23 09:32:48 -07:00
Chris Estreich
0a8c55cbd2
Fix TemperatureControl test flake (#5045) 2025-06-23 08:48:26 -07:00
github-actions[bot]
ae885d64e0
Changeset version bump (#5039)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-23 10:25:57 -04:00
Matt Rubens
aaa5f1fd70
v3.21.4 (#5040) 2025-06-23 10:20:52 -04:00
Matt Rubens
6fd0b75bc8
Add claude code as a provider that doesn't need configuration (#5038) 2025-06-23 10:16:22 -04:00
Matt Rubens
abaa3d8179
Store the organization id in credentials (#5002)
* Store the organization id in credentials

* Better organization logic

* Fix tests

* Update cloud settings defaults

* Fix organization_id handling in Clerk API calls

Address review feedback by properly handling 3 cases for organization_id:
1. Have an org id: send organization_id=THE_ORG_ID
2. Have a personal account: send organization_id= (empty string)
3. Don't know if you have an org id (old credentials): don't send organization_id param at all

Changes:
- Updated clerkCreateSessionToken() to check credentials.organizationId !== undefined
- Updated fetchUserInfo() to handle all 3 cases consistently
- Added fallback logic for old credentials without organization context
- Improved logging for better debugging of organization context

* DRY up organization loading code in AuthService

Extract common organization membership processing logic into reusable helper methods:

- findOrganizationMembership(): Find specific org membership by ID
- findPrimaryOrganizationMembership(): Get first/primary org membership
- setUserOrganizationInfo(): Set organization info on user object

This eliminates duplication between the two clerkGetOrganizationMemberships()
call sites that were doing very similar organization data processing.
2025-06-23 07:23:29 -04:00
Sam Hoang Van
5bc3af1bc3
fix: start line not working in multiple apply diff (#5019) 2025-06-22 23:33:52 -04:00
Hannes Rudolph
ff9b6b3ef6
feat: add Claude Code provider for local CLI integration (#4864)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-22 23:17:55 -04:00
Mark IJbema
9750d868c1
Close the local browser when used as fallback for remote (#4823) 2025-06-22 23:01:23 -04:00
Daniel
35cdcf4883
Refine PR Reviewer mode: focus on issues, minimize markdown (#5022) 2025-06-22 22:53:10 -04:00
Ben Ashby
f39da324d4
fix(qdrant): resolve URL port handling bug for HTTPS URLs (#4992)
Co-authored-by: Ben Ashby <bashby@ximasoftware.com>
2025-06-22 22:49:59 -04:00
Daniel
8eb147346d
fix: resolve diff editor issues with markdown preview associations (#4946) (#4980)
* fix: resolve diff editor issues with markdown preview associations (#4946)

- Pre-open files as text documents before executing diff command to avoid preview mode
- Update closeAllDiffViews to identify diff tabs by label pattern
- Add comprehensive tests for the new behavior

This ensures that files with custom editor associations (like markdown preview)
can be properly edited using Roo Code's diff editor tools.

* refactor: extract diff view label separator as shared constant

- Add DIFF_VIEW_LABEL_SEPARATOR constant to prevent breaking logic if string changes
- Update all usages in DiffViewProvider.ts and test file
- Addresses PR review feedback for better maintainability

* refactor: improve diff view label constant to include full text

- Rename DIFF_VIEW_LABEL_SEPARATOR to DIFF_VIEW_LABEL_CHANGES
- Include full 'Original ↔ Roo's Changes' text in constant for better maintainability
- Update all usages in DiffViewProvider.ts and test file
- Addresses feedback to make constant changes less awkward
2025-06-22 17:44:53 -04:00
Daniel
02a4823250
fix: mark unused Ollama schema properties as optional (#5014)
fix: handle null families field in Ollama model details schema

- Updated OllamaModelDetailsSchema to make families field nullable and optional
- Made all unused properties optional in Ollama schemas to prevent validation errors
- Added test cases to verify handling of null families field
- Only required properties that are actually used in the code are now mandatory
- Fixes Zod validation error when Ollama returns null for families array
2025-06-22 10:55:16 -04:00
Hannes Rudolph
922f48335a
The goal of this change is to give the mode writer access to a list o… (#4990) 2025-06-21 16:37:34 -04:00
github-actions[bot]
3e28921ef0
Changeset version bump (#4998)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-21 15:45:43 -04:00
Matt Rubens
91975a1b83
v3.21.3 (#4997) 2025-06-21 15:43:02 -04:00
Daniel
5b9907b925
fix: resolve MCP tool eye icon state and hide in chat context (#4993) (#4994) 2025-06-21 15:22:20 -04:00
github-actions[bot]
6a9503da1d
Update contributors list (#4955)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-21 13:23:36 -04:00
Matt Rubens
df2871be18
Remove type of change from PR template (#4987)
Remove type of change section from PR template

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-06-21 13:22:50 -04:00
Matt Rubens
5b501d0e84
Simplify PR template checklist for code quality and testing (#4985)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-06-21 13:09:01 -04:00
Matt Rubens
95497a72c7
Filter out additional bot and automated accounts from contributors list (#4983)
* Filter out additional bot and automated accounts from contributors list

* [Ellipsis] fix: exclude `cursor` and `roomote` logins in contributors section (#4984)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-21 13:08:35 -04:00
cursor[bot]
d838109aa3
Remove changeset requirement from PR template (#4982)
- Remove the changeset checklist item from PR template as requested
- Contributors no longer need to create changesets for PRs
- Automated changeset workflows remain in place for version management

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-06-21 12:37:52 -04:00
Daniel
ef19082acd
feat: add PR Fixer mode for resolving pull request issues (#4961)
* feat: add PR Fixer mode for resolving pull request issues

- Add new PR Fixer mode to help address feedback and resolve issues in existing PRs
- Include workflow instructions for analyzing PR comments, failing tests, and merge conflicts
- Add best practices and common patterns for PR resolution
- Include tool usage guidelines and examples
- Add custom instructions for handling merge conflict markers in diffs

* refactor: remove duplicate custom instructions
2025-06-21 12:11:53 -04:00
Chris Estreich
bccf11f2eb
Increase suite-level e2e test timeout (#4975) 2025-06-21 00:57:13 -07:00
Chris Estreich
00ad4256d1
Fix flakey ModelPicker test (#4972) 2025-06-21 00:34:08 -07:00
renovate[bot]
86ce767688
fix(deps): update dependency serialize-error to v12 (#4832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:15:19 -04:00
renovate[bot]
d049634263
fix(deps): update dependency tailwind-merge to v3 (#4834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:14:57 -04:00
renovate[bot]
15d5af6919
fix(deps): update dependency pretty-bytes to v7 (#4806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:14:01 -04:00
renovate[bot]
40883a6dd9
chore(deps): update dependency mocha to v11.7.0 (#4944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:13:41 -04:00
renovate[bot]
5238a515df
chore(deps): update dependency globals to v16.2.0 (#4943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:13:28 -04:00
SannidhyaSah
7392f14e44
feat: add profile-specific context condensing thresholds (#4456)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:02:04 -04:00
Brad Davis
37ed013157
fix context length for lmstudio and ollama (#2462) (#4314)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 22:53:04 -04:00
github-actions[bot]
a24b7210e4
Changeset version bump (#4963)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 22:51:05 -04:00
Matt Rubens
6736d81913
v3.21.2 (#4964) 2025-06-20 22:45:08 -04:00
roomote
133af6ae64
Fix #4958: Increase vitest timeout for Windows CI (#4959)
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-06-20 17:14:42 -07:00
Ksandr
d99ae582d0
feature: add toggle for disable mcp server tool from prompt (#3551)
* add toggle for disable mcp server tool from prompt

* languages

* fix error message

* Update src/core/prompts/instructions/create-mcp-server.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix build

* typo

* refactor: make the switch style consistent

* respect review

* refactor: improve layout and styling in McpToolRow component

* fix: update new mcp tests

* tailwind css for disabledTool swipper

* id locale (from main)

* fix: improve error message for updating tool settings

* fix: specify type for serverConfigData as Record<string, any>

* fix: enhance UI layout and improve accessibility for tool controls

* fix: migrate jest.Mock to vitest Mock type

* Update .changeset/slimy-years-smell.md

* fix: replace enabled switch with button

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 19:14:59 -04:00
John Richmond
805fe7021d
It's compliant if you're on your first attempt to fetch a session token (#4957) 2025-06-20 16:06:35 -07:00
roomote
6ed217c716
Fixes #4882: Remove experimental setting for command execution in attempt_completion (#4884)
* Fixes #4882: Remove experimental setting for command execution in attempt_completion

- Remove DISABLE_COMPLETION_COMMAND from experiments system
- Permanently disable command execution in attempt_completion tool
- Update tool prompts to remove command parameter and examples
- Remove experimental UI toggle and localization entries (18+ languages)
- Update tests to reflect permanent behavior
- Remove experiment-specific test file

Command execution is now permanently disabled in attempt_completion.
Users must use execute_command tool separately before attempt_completion.

* refactor: simplify getAttemptCompletionDescription by removing unnecessary variables

* test: fix tests by regenerating snaps

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 17:48:01 -04:00
xyOz
93b8f6d87f
Update MarkdownBlock.tsx (#4841)
* Update MarkdownBlock.tsx

* fix: correct URL handling in MarkdownBlock and add tests for trailing punctuation

* Fix URL punctuation rendering

* fix: improve URL handling in MarkdownBlock and update tests for trailing punctuation

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 17:46:38 -04:00
Daniel
9da598c9db
fix: update MarketplaceViewStateManager test to match default isFetching state (#4954)
The test was expecting isFetching to be false in the default state, but the implementation correctly initializes it as true to show a loading state on initial load. Updated the test expectation to match the actual behavior.
2025-06-20 13:36:26 -07:00
github-actions[bot]
2f30af00b4
Update contributors list (#4845)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-20 15:47:01 -04:00
roomote
ce2cfe6df0
Fixes #4855: Rename 'Boomerang Tasks' to 'Task Orchestration' for clarity (#4856) 2025-06-20 15:45:58 -04:00
Hannes Rudolph
85d73af334
feat: add LaTeX math equation rendering in chat window (#4258) (#4786)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:45:18 -04:00
roomote
d598fc3795
Fixes #4794: Fix marketplace blanking after populating (#4796)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:42:36 -04:00
Hannes Rudolph
7a8483dc12
fix: add symlink support to list_files tool (#4654) (#4859)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:26:55 -04:00
peng
5012922a18
Fix recursive directory scanning in @ mention "Add Folder" functionality (#4863) 2025-06-20 15:24:37 -04:00
Matt Rubens
8370591ec0
Display the organization image in the account view (#4953) 2025-06-20 15:14:18 -04:00
Daniel
9a5f6ce7ea
fix: resolve marketplace timeout issues and display installed MCPs (#4817) (#4941) 2025-06-20 13:20:02 -04:00
Matt Rubens
d1eecb9084
Fix logo centering (#4945) 2025-06-20 12:56:35 -04:00
John Richmond
b31250d128
Scope dev RCC credentials by dev url (#4922) 2025-06-19 22:34:04 -07:00
dleffel
68e38e8db8
feat: add Terms of Service page at /terms (#4920) 2025-06-20 00:56:14 -04:00
Chris Estreich
53e6419fab
Fix roocode.com Vercel preview on PR open (#4916) 2025-06-19 20:00:11 -07:00
Matt Rubens
b6bbb1e95b
Add choice to share with organization or publicly (#4899) 2025-06-19 22:29:42 -04:00
dleffel
9e5ecb18f7
Update enterprise page with control-plane messaging (#4914) 2025-06-19 22:11:19 -04:00
Bruno Bergher
886a8a7f1f
Onboarding tweaks to emphasize modes (#4791)
Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
2025-06-19 21:47:52 -04:00
dleffel
28259e021d
Update privacy policy to comprehensive Roo Code Cloud policy (#4910) 2025-06-19 21:41:33 -04:00
Chris Estreich
c6d1cee448
Disable flakey tests (#4911) 2025-06-19 18:39:39 -07:00
Daniel
db334c182f
fix: correct Gemini 2.5 Flash pricing (#4836) (#4898) 2025-06-19 16:20:13 -04:00
Hannes Rudolph
9e96fcabc6
fix: resolve phantom subtask display on cancel during API retry (#4602) (#4893) 2025-06-19 13:41:24 -06:00
John Richmond
a879f247f3
cloud service cleanup (auth mostly) (#4539) 2025-06-19 12:29:02 -04:00
github-actions[bot]
ea7749dc3b
Changeset version bump (#4880)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-19 10:39:07 -04:00
Matt Rubens
3d18ba60b9
v3.21.1 (#4879) 2025-06-19 10:26:41 -04:00
renovate[bot]
fba89d9c53
fix(deps): update dependency puppeteer-chromium-resolver to v24 (#4812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 00:53:46 -07:00
renovate[bot]
385fa1fa92
chore(deps): update dependency knip to v5.61.2 (#4831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 00:53:02 -07:00
renovate[bot]
b0f55fde53
fix(deps): update dependency posthog-node to v5 (#4805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 00:52:40 -07:00
renovate[bot]
5c7cae0c48
fix(deps): update dependency lucide-react to ^0.518.0 (#4820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 00:52:01 -07:00
Chris Estreich
72cb248ef8
Fix tree-sitter (#4857) 2025-06-18 15:41:38 -07:00
Hannes Rudolph
b0f4ea78e1
feat: update issue-writer mode rules for streamlined feature request template (#4850) 2025-06-18 15:36:31 -04:00
Chris Estreich
775457c59a
Yield the cost in usage data for Anthropic (#4849) 2025-06-18 11:59:11 -07:00
Hannes Rudolph
48ebb06841
feat: streamline feature request template to focus on problem reporting (#4847) 2025-06-18 13:30:31 -04:00
Matt Rubens
ff1b150955
Fix a couple security vulnerabilities for dependabot (#4844) 2025-06-18 12:45:57 -04:00
Olwer Altuve
4b2b05f262
Rate limit when starting a subtask (#4453)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-18 12:45:36 -04:00
roomote
db4f7f3320
Fix #4837: Default 'Enable MCP Server Creation' to false (#4838) 2025-06-18 12:08:54 -04:00
Hannes Rudolph
9b18b145b4
fix: improve error handling for codebase search embeddings (#4432)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-18 11:19:02 -04:00
Hannes Rudolph
bdc60fa4e4
fix: resolve MCP server execution on Windows with node version managers (#1246) (#4711)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-18 11:18:26 -04:00
renovate[bot]
347a29233b
chore(deps): update dependency lint-staged to v16.1.2 (#4804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:37:52 -07:00
renovate[bot]
a8b9f4ab17
chore(deps): update dependency knip to v5.61.1 (#4606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:37:30 -07:00
renovate[bot]
b909643684
fix(deps): update dependency openai to v5 (#4650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:36:23 -07:00
renovate[bot]
60bbf6d258
fix(deps): update radix-ui-primitives monorepo (#4708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:34:39 -07:00
renovate[bot]
a68fa6589c
fix(deps): update dependency pkce-challenge to v5 (#4653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:34:16 -07:00
renovate[bot]
8d61bfb16f
fix(deps): update dependency lucide-react to ^0.516.0 (#4612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:33:47 -07:00
renovate[bot]
28f39db925
chore(deps): update docker/build-push-action action to v6 (#4613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 15:33:17 -07:00
Chris Estreich
44f3a8418b
Convert all webview-ui tests: jest -> vitest (#4771) 2025-06-17 15:29:17 -07:00
github-actions[bot]
0d2878193b
Changeset version bump (#4801)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-17 17:58:47 -04:00
github-actions[bot]
c6e5bab8d4
Update contributors list (#4699)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-17 17:55:31 -04:00
Matt Rubens
e93fd12f69
v3.21.0 (#4800) 2025-06-17 17:53:59 -04:00
Chris Hasson
e484bfff32
Reapply "Always focus the panel when clicked to ensure menu buttons are visible" (#4598)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-17 16:51:56 -04:00
Daniel
f18cf3d7ea
feat: add Gemini 2.5 models (Pro, Flash and Flash Lite) (#4798) 2025-06-17 16:36:37 -04:00
feifei
5c5ee8c324
Fix/4100 subtask completion mismatch (#4738)
Co-authored-by: yansheng3 <yansheng3@staff.weibo.com>
2025-06-17 15:06:44 -04:00
Hannes Rudolph
80dd3b8320
fix: update wording in GitHub MCP tool usage guide (#4789)
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-17 15:05:45 -04:00
Chris Estreich
e4e75648d3
Ignore logs in git (#4797) 2025-06-17 12:03:00 -07:00
Matt Rubens
d8b468adbf
Remove warning about commands switching working directory (#4795) 2025-06-17 14:58:03 -04:00
Dicha Zelianivan Arkana
b8505fe175
fix: ambiguous model id error (#4306) 2025-06-17 11:32:08 -07:00
Steven T. Cramer
fca4bea7c3
Update evals Docker setup to work on Windows. (#4656) 2025-06-17 11:23:43 -07:00
KJ7LNW
9b605c997c
Add proper error handling for API conversation history issues (#4312)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-17 14:20:40 -04:00
Daniel
38c7f360ac
fix: normalize Windows paths in MCP variable injection (#4739) (#4741) 2025-06-17 14:13:55 -04:00
KanTakahiro
64dc3fc7e0
update provider models and prices for Groq & Mistral (#4588)
Co-authored-by: Kan <yihong.han@feat-ltd.jp>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-17 14:13:26 -04:00
Christiaan Arnoldus
bbbff7344b
feat(tools): Support for Excel (.xlsx) files (#4668) 2025-06-17 14:12:33 -04:00
Matt Rubens
7b5a1d987d
Turn on marketplace (#4788) 2025-06-17 14:00:27 -04:00
Matt Rubens
3e2aec2ca7
Update test mode for Vitest (#4778) 2025-06-17 11:55:01 -04:00
Matt Rubens
a13fd1cb7d
Include the cwd in the terminal details (#4783) 2025-06-17 11:53:49 -04:00
Matt Rubens
9d0c636b21
Add telemetry for marketplace tab views and install clicks (#4781) 2025-06-17 11:44:25 -04:00
Matt Rubens
48c9bd5fae
Encourage use of start_line in multi-file diff to match legacy diff (#4777) 2025-06-17 10:40:37 -04:00
Matt Rubens
e95c1e88d7
MDM check improvements (#4770)
* Better check for production clerk

* Send to account tab if required

* Fix tests
2025-06-17 07:35:20 -04:00
Chris Estreich
62c3914034
Farewell jest (#4607)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-16 21:39:45 -07:00
Matt Rubens
c10fbbc3a7
Fix typo in mdm.json (#4767)
* Fix typo in mdm.json

* Update src/services/mdm/MdmService.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-16 19:20:23 -04:00
Matt Rubens
8dd99a0254
Support config policies that require use of cloud (#4762)
* Support config policies that require use of cloud

* Switch to vitest
2025-06-16 18:31:22 -04:00
Matt Rubens
322a15ee5d
Fetch organization info in the extension (#4751) 2025-06-16 14:58:49 -04:00
Daniel
2e2f83be60
fix: align codebase indexing with list-files hidden directory filtering (#4709) 2025-06-15 15:43:46 -04:00
Matt Rubens
10143ba712
Adjust position within context menus to be near Copilot (#4718) 2025-06-15 07:51:13 -04:00
SannidhyaSah
829fe8ff2a
fix: update marketplace branding to 'Roo Marketplace' (#4706) (#4717) 2025-06-14 23:57:46 -04:00
SmirnovDev
bfe2274813
Add max tokens checkbox option for OpenAI compatible provider (#4467)
Co-authored-by: AlexandruSmirnov <test@example.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-14 23:28:09 -04:00
Hannes Rudolph
58888d5d14
refactor: reorganize implementation plan step in workflow (#4710) 2025-06-14 20:45:13 -04:00
Chris Hasson
54edab571a
Fix the save/discard/revert flow for Prompt Settings (#4623)
Add support for the save/discard flow for support prompt setting page

Normally when you edit things on the settings pages, the save button lights up,
allowing you to discard your changes. Currently the prompts page doesn't support this flow-
the prompts are immediately saved when they change.

With this change, we use the normal cachedState system in the SettingView, allowing users to dicard changes to their prompts like any other setting.
This removed the need for the resetSupportPrompt event since we send the entire state of the support prompts (same as before).

Test plan:
* Manually verified prompts can be saved/discarded for different types of support prompts.
2025-06-14 10:36:14 -04:00
Hannes Rudolph
69ffa43bab
Add Mode Writer mode to repo (#4600) 2025-06-13 22:32:09 -06:00
Dicha Zelianivan Arkana
e618fa958c
refactor: more consistent history UI (#4684) 2025-06-13 23:53:58 -04:00
github-actions[bot]
f51f89454f
Changeset version bump (#4686)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-13 23:40:58 -04:00
github-actions[bot]
70771121eb
Update contributors list (#4638)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-13 23:38:42 -04:00
Matt Rubens
405ffacd04
v3.20.3 (#4685) 2025-06-13 23:35:29 -04:00
Matt Rubens
254baa8704
Fix errant maxReadFileLine default (#4683) 2025-06-13 23:30:28 -04:00
Matt Rubens
1a4c6892a3
Make listing tools respect auto-approve settings for outside of the workspace (#4682) 2025-06-13 23:12:31 -04:00
Matt Rubens
d67b351fca
Fix inconsistencies in markdown file i18n (#4681) 2025-06-13 23:05:25 -04:00
Matt Rubens
3937e06380
Update Indonesian locales/ files (#4680) 2025-06-13 22:46:28 -04:00
Daniel
91f632ed00
fix: improve prompt history navigation to not interfere with text editing (#4677) 2025-06-13 22:10:50 -04:00
Daniel
4ccd6fab2d
Update Indonesian locale files for chat and settings (#4675) 2025-06-13 20:47:14 -04:00
Christiaan Arnoldus
206c292498
feat: Indonesian translation (#4672)
* Copy Indonesian text files from Kilo Code

* Use Roo to update its own Indonesian translation
2025-06-13 20:25:05 -04:00
Daniel
feb2fa8443
Fix multi-file diff error handling and UI feedback (#4674)
fix: improve multi-file diff error handling and UI feedback

- Fix nested array issue in multi-file-search-replace strategy
- Consolidate diff error reporting to single message
- Fix infinite spinner on single file diff failures
2025-06-13 20:09:04 -04:00
John Richmond
7dd56d6551
Move marketplace types to @roo-code/types (#4671)
And do some cleanup & consolidation.
2025-06-13 17:02:16 -07:00
Matt Rubens
7d0b22f9e6
Add logic to prevent auto-approving edits of configuration files (#4667)
* Add logic to prevent auto-approving edits of configuration files

* Fix tests

* Update patterns
2025-06-13 19:58:55 -04:00
Matt Rubens
10b2fb32ed
Adjust searching outside of the workspace to respect the auto-approve… (#4670)
Adjust searching outside of the workspace to respect the auto-approve checkbox
2025-06-13 18:49:39 -04:00
Daniel
ec9b27d587
Resolve diff editor race condition in multi-monitor setups (#4578)
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Mnehmos <Mnehmos@gmail.com>
2025-06-13 16:54:14 -04:00
github-actions[bot]
c0876d0b56
Changeset version bump (#4663)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-13 15:17:57 -04:00
Matt Rubens
0284b1101c
v3.20.2 (#4662) 2025-06-13 15:13:15 -04:00
Matt Rubens
ca0338af15
Limit search_files to only look within the workspace (#4642) 2025-06-13 12:10:43 -04:00
Eamon Nerbonne
e535b55076
♻️ Refactor: Avoid type system duplication (#4596) 2025-06-13 12:10:34 -04:00
Sam Hoang Van
8fb368dd6b
feat(ui): add max height constraint to MCP execution response (#4644) 2025-06-13 11:29:41 -04:00
Hannes Rudolph
fc82485563
Docs extractor mode (#4621) 2025-06-13 11:29:12 -04:00
Daniel
a1b8b12928
Prevent MCP 'installed' label from being squeezed #4630 (#4649) 2025-06-13 11:28:33 -04:00
Daniel
48d0b19324
Feat: Improve Issue Fixer Rules for Targeted Fixes (#4652) 2025-06-13 11:28:05 -04:00
Daniel
87186067f9
Feat: Improve PR Reviewer Rules (#4651) 2025-06-13 11:08:51 -04:00
Daniel
28ad8d719e
Reapply reasoning for bedrock with fix (#4645)
* Add reasoning budget support to Bedrock models and update related components

- Introduced `supportsReasoningBudget` property in Bedrock models.
- Enhanced `AwsBedrockHandler` to handle reasoning budget in payloads.
- Updated `ThinkingBudget` component to dynamically set max tokens based on reasoning support.
- Modified `ApiOptions` and `Bedrock` components to conditionally render `ThinkingBudget`.
- Added tests for extended thinking functionality in `bedrock-reasoning.test.ts`.

* Add BedrockThinkingConfig interface and update payload structure

* fix: address PR review feedback (#4481)

- Simplify ThinkingBudget ternary logic since component only renders when reasoning budget supported
- Break down complex thinking enabled condition with clear documentation
- Replace 'as any' usage with proper TypeScript interfaces for AWS SDK events
- Add comprehensive documentation for multiple stream structures explaining AWS SDK compatibility

* feat: show ThinkingBudget component unconditionally

Remove selectedProviderModels.length check to display ThinkingBudget
for all providers, not just those with available models

---------

Co-authored-by: hannesrudolph <hrudolph@gmail.com>
2025-06-13 11:07:27 -04:00
Sam Hoang Van
9eb9fabee0
feat(ui): sync BatchDiffApproval styling with BatchFilePermission (#4640) 2025-06-13 09:01:47 -04:00
pugazhendhi-m
2cb02d6512
Add cache breakpoints for custom vertex models on Unbound (#4585)
Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-06-13 08:29:40 -04:00
Raffael
dc00167289
Update ContextManagementSettings.tsx (#4634)
Allow 5% threshold for context condensing (thats already 50k with gemini 1M context, enough for many tasks)
2025-06-13 06:42:55 -04:00
Chris Estreich
28a16c9ee7
Force tar-fs >=2.1.3 (#4629) 2025-06-12 23:27:41 -07:00
github-actions[bot]
4e46698fd3
Changeset version bump (#4628)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-13 01:49:08 -04:00
Matt Rubens
9db7840655
v3.20.1 (#4627) 2025-06-13 01:46:22 -04:00
Matt Rubens
47e84b4572
Revert "feat: Add reasoning budget support to Bedrock models for extended thinking (#4201)" (#4626) 2025-06-13 01:43:06 -04:00
Hannes Rudolph
bde7a7bf2a
feat: Add indexing status badge to chat view (#4429) (#4532)
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-12 21:56:57 -04:00
Daniel
5f29348519
Improve performance of MCP execution block (#4615) 2025-06-12 21:17:55 -04:00
github-actions[bot]
0cf3f00bab
Update contributors list (#4348)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-12 20:57:45 -04:00
Matt Rubens
1492e5780e
Update CHANGELOG.md 2025-06-12 20:24:09 -04:00
github-actions[bot]
ca5f2d05f9
Changeset version bump (#4593)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-12 18:17:12 -04:00
Matt Rubens
ffc8dc7b6b
v3.20 (#4609)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-12 17:54:53 -04:00
Daniel
33ce5a2e24
Fix undefined on multi-file apply_diff output (#4608)
feat: enhance file handling in `apply_diff` case to support legacy and multi-file formats
2025-06-12 16:46:16 -04:00
Matt Rubens
184c4803c6
Move concurrent reads into context settings and default to 5 (#4597)
* Move concurrent reads into context settings and default to 5

* Spacing tweaks

* Change max back to 100
2025-06-12 16:21:39 -04:00
Matt Rubens
2eca105e35
Add a footer to the marketplace to report issues (#4604) 2025-06-12 16:18:07 -04:00
Chris Estreich
fe52c19fde
Evals fixes (#4599) 2025-06-12 13:01:59 -07:00
Trung Dang
84ccf3fcc3
feat: add injectVariables(), support magic variables for MCPs (workspaceFolder) (#4442)
* feat: add `injectVariables()`, support magic variables for MCPs

* fix: fallback for `workspaceFolder` should just be an empty string

Previously this is intended so that the CLI receives a correct empty path argument, but on a second thought, if the user have added the quotes themselves it might cause error.

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: remove unused import

* chore: better log format

* chore: better describe the accepted config type and more extensive test

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-12 13:17:41 -04:00
Dixie Flatline
c481827cbb
Manually specify openai-compat format and parse it (#4463)
* Manually specify openai-compat format and parse it

* fixup! Manually specify openai-compat format and parse it

* Expect base64 in embedding test arguments

* fixup! Manually specify openai-compat format and parse it

Remove debug logs

* fixup! Manually specify openai-compat format and parse it

Improve comment

* fixup! Manually specify openai-compat format and parse it

* Add tests to exercise base64 decode of embeddings

* Add tests to verify openai base64 and brokenness behavior

* feat: improve typing

* refactor: switch from jest to vitest for mocking in tests

---------

Co-authored-by: Dixie Flatline <dflatline>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-12 13:12:48 -04:00
axb
dfcf8fe760
add mermaid buttons (#4547)
* add mermaid buttons

* feat: Add Modal, TabButton, and ZoomControls components

* feat: Add error handling messages for image operations and file opening

* mermaid: Add drag functionality and support contious zooming

* add active color for tabbutton

* refactor zoom controls

* refactor: Remove unused svgToPng prop and simplify handleCopy function

* Move zoom to constants and increase max zoom

* feat: add save image functionality and refactor image handling

* feat: add translations

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-12 13:06:27 -04:00
Matt Rubens
85fd86e675
Revert "Always focus the panel when clicked to ensure menu buttons are visible" (#4592)
Revert "Always focus the panel when clicked to ensure menu buttons are visibl…"

This reverts commit 1b1e5a20f1.
2025-06-12 12:51:34 -04:00
Hannes Rudolph
fb3a728a30
feat: Add reasoning budget support to Bedrock models for extended thinking (#4201) (#4481)
* Add reasoning budget support to Bedrock models and update related components

- Introduced `supportsReasoningBudget` property in Bedrock models.
- Enhanced `AwsBedrockHandler` to handle reasoning budget in payloads.
- Updated `ThinkingBudget` component to dynamically set max tokens based on reasoning support.
- Modified `ApiOptions` and `Bedrock` components to conditionally render `ThinkingBudget`.
- Added tests for extended thinking functionality in `bedrock-reasoning.test.ts`.

* Add BedrockThinkingConfig interface and update payload structure

* fix: address PR review feedback (#4481)

- Simplify ThinkingBudget ternary logic since component only renders when reasoning budget supported
- Break down complex thinking enabled condition with clear documentation
- Replace 'as any' usage with proper TypeScript interfaces for AWS SDK events
- Add comprehensive documentation for multiple stream structures explaining AWS SDK compatibility
2025-06-12 12:39:21 -04:00
Sam Hoang Van
7bed94454a
feat: Enhance apply_diff with XML for multi-file/multi-diff operations & batch UI (#3342)
* feat: add BatchDiffApproval component for multi-file diff application

- Introduced a new component `BatchDiffApproval` to handle the approval of batch changes across multiple files.
- Integrated the `BatchDiffApproval` component into `ChatRow` to display batch diff requests.
- Updated experimental settings to include a toggle for multi-file apply diff functionality.
- Enhanced localization files to support new strings related to batch changes in multiple languages.
- Updated tests to cover the new multi-file apply diff feature.

* revert this

* fix: update applyDiff parameter type to accept string or DiffItem

* refactor: keep original file name for apply diff tool

* revert this

* Update src/core/webview/__tests__/ClineProvider.test.ts

* revert this

* fix: keep the original path if the experiment is disabled

* test: add dynamic strategy selection tests for MultiSearchReplaceDiffStrategy and MultiFileSearchReplaceDiffStrategy

* fix: mock applyDiffTool module and ensure legacy tool resolves successfully in tests

* remove this

* ellipsis suggestion

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* refactor: mirror concurrent file reads

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-12 12:36:34 -04:00
Edwin P Jacques
8b6f5f8baa
update xai models and pricing (#4315)
* update xai models and pricing

* cache accounting for xAI

* change log
2025-06-12 11:59:45 -04:00
Chris Estreich
15e3d6fc87
feat(tests): core tools integration tests (#4433)
* feat(tests): add apply_diff tool tests

* feat(tests): add tests for write_to_file tool functionality

* feat(tests): add comprehensive tests for read_file tool functionality

* feat(tests): add tests for execute_command tool functionality

* feat(integration-tester): add integration testing role with comprehensive guidelines

* feat(tests): enhance test runner with grep and specific file filtering

* feat(tests): add comprehensive tests for search_files tool functionality

* feat(tests): add comprehensive tests for list_files tool functionality

* feat(tests): add tests for insert_content tool functionality

* feat(tests): add comprehensive tests for search_and_replace tool functionality

* feat(tests): add comprehensive tests for use_mcp_tool functionality

* feat(tests): increase timeout values for various tool tests to improve reliability

* fix(tests): add non-null assertion for workspaceDir assignment in multiple test files

* feat(tests): enhance read_file tool tests with increased timeouts and improved prompts

* feat(tests): enhance read_file tool tests to extract and verify tool results

* feat(tests): enhance execute_command tool tests with additional context in prompts

* refactor(tests): remove script execution test and related setup for execute_command tool

* fix(tests): increase timeout for task start and completion in apply_diff and read_file tests

* fix(tests): clarify error handling message in command execution test

* refactor(tests): remove error handling test and related setup for execute_command tool

* fix: update openRouterModelId to use anthropic/claude-3.5-sonnet

* fix: update openRouterModelId to use openai/gpt-4.1

* fix(tests): increase timeouts for apply_diff, execute_command, and search_and_replace tests

* fix(tests): disable terminal shell integration for execute_command tool tests

* chore: rewrite integration tester mode

* Update .roo/rules-integration-tester/1_workflow.xml

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-12 11:50:25 -04:00
KJ7LNW
53e7e6beaa
feat: Allow escaping of context mentions (#4362)
* allow escaping of context mentions

* refactor: update comment

---------

Co-authored-by: cannuri <91494156+cannuri@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-12 11:49:19 -04:00
Ruakij
8f58737550
Fix #4113: Move relPath & newContent checks in writeToFileTool earlie… (#4378)
Fix #4113: Move relPath & newContent checks in writeToFileTool earlier and run after they exist or block is non-partial
Add tests covering the issue.
2025-06-12 11:48:14 -04:00
Hannes Rudolph
91a477d831
docs: add JSDoc documentation for ClineAsk and ClineSay types (#4427)
docs: add comprehensive JSDoc documentation for ClineAsk and ClineSay types
2025-06-12 11:47:23 -04:00
Hannes Rudolph
69472099ea
feat: Navigate prompt history in prompt field via arrow up/down (#4139) (#4450)
* feat: add prompt history navigation with arrow keys (#4139)

- Navigate through prompt history using arrow up/down keys
- Only triggers when cursor is at first line (up) or last line (down)
- Preserves current input when starting navigation
- Resets navigation state when typing or sending messages
- Follows VSCode's standard UX patterns for history navigation

* fix: correct prompt history order and add workspace filtering (#4139)

- Remove reverse() to maintain chronological order in history array
- Add workspace filtering to only show prompts from current workspace
- Ensure arrow up navigates to older prompts (as expected)
- Filter history items by workspace field matching current cwd

* test: Fix Windows unit test failures for prompt history navigation

- Add missing taskHistory and cwd properties to all useExtensionState mocks
- Add comprehensive test coverage for prompt history navigation feature
- Ensure all 25 tests pass including new prompt history functionality

Fixes failing Windows CI test in PR #4450

* refactor: Improve cursor positioning with useLayoutEffect

- Replace setTimeout(..., 0) with useLayoutEffect for more reliable cursor positioning
- Implement state-based cursor positioning pattern suggested by @mochiya98
- Add CursorPositionState interface for better type safety
- Maintain all existing functionality while improving timing reliability

This addresses the technical suggestion in PR #4450 comment about using
useLayoutEffect instead of setTimeout for DOM manipulation timing.

* feat: optimize prompt history with performance improvements and memory management

- Add useMemo for prompt history filtering to prevent unnecessary re-computations
- Implement MAX_PROMPT_HISTORY_SIZE = 100 limit for memory management
- Extract logic into usePromptHistory custom hook for better code organization
- Simplify ChatTextArea component by delegating history logic to custom hook

Addresses review feedback on PR #4450 for issue #4139

* refactor: clean up unused code and fix linting issues in prompt history

- Remove unused CursorPositionState interface from ChatTextArea
- Remove unused destructured variables from usePromptHistory hook
- Fix missing dependency in useEffect dependency array
- Rename unused parameter with underscore prefix

Related to #4139

* feat: implement hybrid prompt history with position reset

- In chat: Use conversation messages (user_feedback), newest first
- Out of chat: Use task history, oldest first
- Reset navigation position when switching between history sources
- Switch from taskHistory to clineMessages for active conversations
- Maintain backward compatibility with task history fallback
- Add comprehensive tests for hybrid behavior and position reset

This provides intuitive UX where:
- Users navigate recent conversation messages during tasks (newest first)
- Users access initial task prompts when starting fresh (oldest first)
- Navigation always starts fresh when switching contexts

* fix: correct task history slicing order for prompt navigation

Task history was using .slice(-100) which gets the newest 100 tasks,
but we want to show oldest tasks first when navigating. Changed to
.slice(0, 100) to get the oldest 100 tasks instead.

This ensures that when starting fresh (no conversation), up arrow
shows the oldest task prompts first, which is the intended behavior.

* refactor: remove comment on task history size limitation and clarify order preservation

* refactor: replace local ClineMessage and TaskHistoryItem interfaces with imported types

* fix: prevent prompt history fallback to task list during active conversation

When an active task has only an initial prompt with no follow-up user messages,
the prompt history should return empty instead of falling back to task history.
This fixes the "Starting Fresh" behavior appearing inappropriately.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-12 11:43:54 -04:00
Matt Rubens
befbebb8a4
Populate whenToUse for built-in modes (#4579) 2025-06-12 11:40:55 -04:00
Hannes Rudolph
a851ffb7cb
feat: Add DeepSeek R1 support to Chutes provider (#4523) (#4525)
* feat: Add DeepSeek R1 support to Chutes provider (#4523)

- Modified BaseOpenAiCompatibleProvider to expose client as protected
- Enhanced ChutesHandler to detect DeepSeek R1 models and parse reasoning chunks
- Applied R1 format conversion for message formatting
- Set appropriate temperature (0.6) for DeepSeek models
- Migrated tests from Jest to Vitest format
- Added comprehensive tests for DeepSeek R1 functionality

This ensures reasoning chunks are properly separated from regular content
when using DeepSeek R1 models via Chutes provider.

* feat: Enhance DeepSeek R1 support with <think> tag handling in Chutes provider

* fix: Correct temperature retrieval in ChutesHandler to use model's info

* fix: Update condition for DeepSeek-R1 model identification in createMessage method

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-12 11:39:41 -04:00
Hannes Rudolph
c17a07d096
Fix: Reset terminal busy state after manual commands complete (#4583)
fix: reset terminal busy state after manual commands complete (#4319)

- Add terminal.busy = true when shell execution starts
- Add terminal.busy = false when shell execution ends for both Roo and non-Roo terminals
- Add comprehensive tests for busy flag management
- Fixes issue where terminals got stuck in busy state after manual commands
2025-06-12 11:09:08 -04:00
Chris Estreich
bad9b0e163
Bump @roo-code/types to v1.26.0 (#4584)
* Bump @roo-code/types to v1.26.0

* Add instructions for NPM publish
2025-06-12 11:05:53 -04:00
Sam Hoang Van
a9c1dad2ce
feat(mcp): improve mcp with McpExecution, make UX like terminal execute (#3485)
* feat: add MCP viewer and enhanced UI

- Add McpExecutionStatus type with discriminated union for execution states
- Implement McpExecution component with live status updates and collapsible output
- Replace inline MCP UI in ChatRow with dedicated McpExecution component
- Add comprehensive test coverage for useMcpToolTool
- Enhance CodeAccordian to support custom headers
- Improve combineCommandSequences to handle MCP execution flows

* refactor: merge loops in combineCommandSequences for better efficiency

- Reduced from 3 separate loops to 1 main processing loop
- Improved time complexity from O(n²) to O(n)
- Reduced total passes through array from 4 to 2
- Better memory access patterns and cache utilization

* feat: enhance JSON parsing and rendering in McpExecution component

* feat: add mock implementations for react-markdown and remark-gfm

* fix: remove unreachable return statement in ChatRowContent component

* feat(i18n): add execution status messages and error handling for invalid JSON arguments

* test: add parameter validation tests for missing server_name and tool_name

* Update McpExecution component to show server name in header and tool name in approval section

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-12 00:46:07 -04:00
Chris Hasson
1b1e5a20f1
Always focus the panel when clicked to ensure menu buttons are visible (#4511)
feat: Clicking the panel will always focus it

Adds a new `focusPanel` command and utility function to allow focusing the active webview panel (tab or sidebar). This command is now triggered when a user clicks on non-interactive content within the webview, improving user experience by automatically bringing the panel into focus.

This fixes an issue where sometimes the menu options do not appear because the panel is not in focus:
https://github.com/orgs/Kilo-Org/projects/4/views/1?pane=issue&itemId=113936749&issue=Kilo-Org%7Ckilocode%7C619

**Details**
- **New Command:** Introduced `focusPanel` command to programmatically focus the webview panel.
- **Utility Function:** Created `src/utils/focusPanel.ts` to encapsulate the logic for revealing tab panels or focusing sidebar panels.
- **Webview Integration:** Added a `focusPanelRequest` message type to `WebviewMessage` and implemented a handler in `webviewMessageHandler` to execute the new `focusPanel` command.
- **User Experience:** Implemented a `useAddNonInteractiveClickListener` hook in `webview-ui` that sends a `focusPanelRequest` message to the extension when a click occurs on non-interactive elements, ensuring the webview gains focus.
- **Refactor:** Modified the `focusInput` command to utilize the new `focusPanel` utility, reducing code duplication and centralizing panel focus logic.

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-12 00:09:19 -04:00
forestyoo
d5f862a6e0
fix: TaskItem display and copy issues with HTML tags in task messages. (#4444)
* fix: TaskItem display and copy issues with HTML tags in task messages.
* Display issue: HTML tags not displaying in HistoryView.
* Copy issue: HTML tags in message are removed when clicking the copy button in TaskItem.

* perf(webview-ui): add LRU cache to escapeHtml function

- Add LRU cache with 500 item limit for escapeHtml results
- Improves performance by caching frequently escaped strings
- Reduces redundant HTML escaping operations

---------

Co-authored-by: Jimmycai <jimmycai@qiyi.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-11 23:50:56 -04:00
Matt Rubens
d7087c3eb8
Update o3 prices (#4580) 2025-06-11 23:30:22 -04:00
renovate[bot]
6449f8a51a
chore(deps): update dependency @dotenvx/dotenvx to v1.44.2 (#4533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 23:24:08 -04:00
Christiaan Arnoldus
11668af83d
Fix OpenRouter cost calculation with BYOK (#4543)
Currently, when you use OpenRouter with your own key for the underlying service, the costs shown by Roo Code are way off what it actually costs.

With bring your own key, OpenRouter charges 5% of what it normally would (see https://openrouter.ai/docs/use-cases/byok)
so we have to multiply the reported cost by 20 to get an estimate of what it actually costs.

Co-authored-by: Johan Otten <drakonen@drakonen.com>
Co-authored-by: Eamon Nerbonne <eamon@nerbonne.org>
2025-06-11 23:19:24 -04:00
Chris Estreich
395f55b31f
Convert jest tests to vitest and disable default watch mode for vitest (#4568)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-11 14:48:01 -07:00
Matt Rubens
5d8b16159b
Marketplace (#4538)
* chore: merge jbbrown/marketplace squashed

Detailed commits:

Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Wed May 21 00:36:02 2025 +0700

    feat: better UI for marketplace item list (#11)

    * feat: better UI for marketplace item list

    * feat: better source config UI

    * refactor: change how we fetch items

    * fix: update state more optimistically

    * fix: incorrect tags filter

    * fix: better tags filtering

    * feat: more consistent UI

    * feat: marketplace animation

    * fix: remove cache, it's fast enough

    * refactor: make the UI more consistent across themes

    * feat: integrate install metadata to UI

    * feat: add translation files

    * test: add marketplace UI

commit 1a11665672
Author: Trung Dang <dangquoctrung123@gmail.com>
Date:   Mon May 19 23:08:25 2025 +0700

    feat: `installedMetadata` MVP (#10)

    * feat: `installedMetadata` MVP

    * feat: removal support for installed items (+ general refactors)

commit e25b3e77c0
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Tue May 6 08:40:19 2025 +0000

    refactor: minor: cleanup marketplaceHandler passing

commit 3dcb4534f8
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Tue May 6 07:53:43 2025 +0000

    chore: add reusable `globalContext` util

commit b7fae4a325
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Tue May 6 06:55:33 2025 +0000

    chore(cline_docs/marketplace): align with `Roo-Code-Marketplace`

commit f89c11ec67
Author: Trung Dang <dangquoctrung123@gmail.com>
Date:   Mon May 5 14:35:19 2025 +0700

    feat(marketplace): UI form for configurable install (#9)

    * feat(wip): installation UI

    * chore: rebase, refactor and fixes

    ---------

    Co-authored-by: elianiva <51877647+elianiva@users.noreply.github.com>

commit bbd790f4bd
Author: Trung Dang <dangquoctrung123@gmail.com>
Date:   Sun May 4 12:36:52 2025 +0700

    chore: bump `roo-rocket` and `config-rocket` version (#7)

    This is a breaking change that reword a lot of thing, revise the config props, and adds some more features.

commit 562c34b9b7
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Sat May 3 14:57:53 2025 +0000

    chore(MM/roo-rocket): shorten and pin CLI version

commit a25ed006d6
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Fri May 2 16:48:39 2025 +0000

    chore: adjust `registry` dir find & validate logic

commit 065c8af320
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Fri May 2 16:27:47 2025 +0000

    chore: `showInstallButton` for `package` item

commit 563b327007
Author: Trung Dang <dangquoctrung123@gmail.com>
Date:   Fri May 2 23:16:26 2025 +0700

    chore: marketplace wordings, cleanup, and document refresh (#6)

    * chore: reword all `PackageManager` => `Marketplace`

    * chore: document refresh, `mcp-server` => `mcp`

    * chore: correct word

    * chore: remove unnecessary condition

    * chore: remove unnecessary bits

    * chore: add note for failed test

commit c0638798d8
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Fri May 2 05:13:35 2025 +0000

    tests: prepare required mocks for `MarketplaceItemActionsMenu`

commit 39b2638c6a
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Fri May 2 05:12:55 2025 +0000

    chore: remove tests specific to `MarketplaceItemActionsMenu` from ItemCard test file

commit 03974e82b2
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Fri May 2 05:10:35 2025 +0000

    refactor: move `isValidUrl` to global util, prop/scope cleaning

commit 8ea74f77dd
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Fri May 2 04:28:35 2025 +0000

    chore: bump `roo-rocket`, `config-rocket` (fix tests)

commit bbfbaa1b30
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Wed Apr 30 19:47:08 2025 +0000

    fix: use relative path import instead

commit 7274092a6b
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Wed Apr 30 19:30:57 2025 +0000

    fix: should display N/A instead of `All` for unknown types

commit 8fbc2d95a2
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Wed Apr 30 16:58:16 2025 +0000

    style: minor indent & import combine

commit 765764790a
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Wed Apr 30 16:56:48 2025 +0000

    perf: verify binary hash right after download

commit bc60b426b5
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Wed Apr 30 16:54:27 2025 +0000

    fix: resolve lint problems

commit 9354a80b1a
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Wed Apr 30 16:48:39 2025 +0000

    fix: bump version and lockfile, adjust import

commit 6a4dc46c80
Merge: 29d73dce 324be54e
Author: JB Brown <jb.brown@smartsheet.com>
Date:   Tue Apr 29 06:57:25 2025 -0700

    Merge pull request #5 from NamesMT/marketplace/roo-rocket

    feat: marketplace install MVP

commit 324be54e4e
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Mon Apr 28 15:02:59 2025 +0000

    chore: minor rewording

commit 086523655b
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Mon Apr 28 14:48:52 2025 +0000

    feat: working CLI interactive install mode

commit 3ac4bf61f2
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Mon Apr 28 12:16:35 2025 +0000

    feat: binary configurable pack detection, auto-select installation method

commit 3539550b0c
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Mon Apr 28 10:52:04 2025 +0000

    feat: delegate the hooks declaration  to `roo-rocket`, prepare for CLI feat

commit 26be7b3ac7
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Mon Apr 28 07:54:10 2025 +0000

    fix: should not require workspace folder for `global` install (+ formatting)

commit 74a0c44d59
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Mon Apr 28 06:57:39 2025 +0000

    feat: marketplace supports global install

commit 04d7360da9
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Sun Apr 27 20:41:07 2025 +0000

    fix: correct error message

commit 52b653f271
Author: NamesMT <dangquoctrung123@gmail.com>
Date:   Sun Apr 27 20:24:07 2025 +0000

    feat: marketplace install MVP

commit 29d73dce4c
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sun Apr 27 00:11:00 2025 -0400

    Knip fixes

commit 0e7a14e68a
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sun Apr 27 00:02:10 2025 -0400

    Shouldn't need to change this

commit 1a6a41d8c0
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sat Apr 26 23:54:16 2025 -0400

    Revert unrelated changes

commit c9449ca2fe
Merge: 4f5b04b6 1924e10e
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sat Apr 26 23:51:13 2025 -0400

    Merge remote-tracking branch 'origin/main' into jbbrown/marketplace

commit 1924e10e72
Author: Chris Estreich <cestreich@gmail.com>
Date:   Sat Apr 26 09:45:26 2025 -0700

    Fix all linter errors (and fix the lint scripts too) (#2958)

commit 418791a743
Author: Julio Navarro <julioocz@gmail.com>
Date:   Sat Apr 26 08:46:05 2025 -0400

    Fix: custom modes export import (#2810)

    * Enhance export method in ContextProxy to filter out project custom modes, ensuring only global settings are included in the export.

    * Fix issue of customModes not being imported when importing settings.

    The problem was that the Custom modes are managed by the CustomModesManager, not by the context proxy.

    * * Fix tests

    * Update webviewMessageHandler to provide customModeManager to importSettings

commit 42c1f5f882
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Fri Apr 25 21:03:17 2025 -0700

    Changeset version bump (#2957)

    * changeset version bump

    * Update package.json

    * Update package-lock.json

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit d6860e1114
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Apr 25 23:53:45 2025 -0400

    Update contributors list (#2946)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

commit 5b99e4d50d
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Fri Apr 25 23:51:13 2025 -0400

    Updated tips (#2961)

    * Updated tips

    * Changeset

commit 83133c6e6d
Author: Sacha Sayan <sacha.sayan@gmail.com>
Date:   Fri Apr 25 22:39:11 2025 -0400

    UI top down homescreen (#2951)

    * isotrUpdate welcome screen UI components and fix unused variable

    * Save collapsibility.

    * Add persistence, locales.

    * Top layout, expanded tips.

    * Minimal 'tasks' language.

    * Adjust announcement positioning/dimensions.

    * Fix tests, defaults.

    * Fix translations.

    * Compromise-compromise.

    * Final tweaks.

    * More tweaks.

    * More tweaks.

    * Issues fix.

    * Update translations, remove debug.

    * Fix transparency issue.

    ---------

    Co-authored-by: hannesrudolph <hrudolph@gmail.com>

commit de22566ea2
Author: Tony Zhang <157202938+zhangtony239@users.noreply.github.com>
Date:   Sat Apr 26 08:13:13 2025 +0800

    Fix: word wrapping in Roo message title (#2948)

commit e3d55a36ac
Author: shariqriazz <ishariqriaz@gmail.com>
Date:   Fri Apr 25 15:49:19 2025 -0700

    docs: fix file paths in settings.md (#2930)

commit c8b5cdf7b2
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 25 15:24:03 2025 -0700

    Omit reasoning params for non-reasoning models (#2932)

commit cb29e9d56f
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 25 15:23:25 2025 -0700

    Remove ModelInfo objects from settings (#2939)

commit a354c01b0e
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Fri Apr 25 16:06:50 2025 -0400

    Add Boomerang as a default mode (#2934)

    * Add Boomerang as a default mode

    * Rename boomerang, add emoji

commit 547874eed7
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Fri Apr 25 16:04:38 2025 -0400

    Revert "Fix: Preserve editor state and prevent tab unpinning during diffs" (#2956)

    Revert "Fix: Preserve editor state and prevent tab unpinning during diffs (#2…"

    This reverts commit c2dd743aeb.

commit 06db547308
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 25 10:32:35 2025 -0700

    Use a WASM-based tiktoken implementation (#2859)

    * Use a WASM-based tiktoken implementation

    * Clean up imports

commit 7e76736e13
Author: pugazhendhi-m <132246623+pugazhendhi-m@users.noreply.github.com>
Date:   Fri Apr 25 17:06:25 2025 +0530

    Updates default model for Unbound (#2944)

    * Updates default model for Unbound

    * Adds changeset

    ---------

    Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>

commit 586e43bd55
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Thu Apr 24 16:41:26 2025 -0700

    Changeset version bump (#2926)

    * changeset version bump

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Chris Estreich <cestreich@gmail.com>

commit 0dfbae64f3
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 24 16:34:22 2025 -0700

    Allow users to toggle Gemini caching on / off for OpenRouter (#2927)

commit 5c2511e355
Author: KJ7LNW <93454819+KJ7LNW@users.noreply.github.com>
Date:   Thu Apr 24 16:28:09 2025 -0700

    feat: compress terminal output with backspace characters (#2907)

    Follow-up to #2562 adding support for backspace character compression.
    Optimizes terminal output by handling backspace characters similar to
    carriage returns, improving readability of progress spinners and other
    terminal output that uses backspace for animation.

    - Added processBackspaces function using efficient indexOf approach
    - Added comprehensive test suite for backspace handling
    - Integrated with terminal output compression pipeline

    Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
    Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>

commit 23aa3b636b
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Apr 24 19:26:00 2025 -0400

    Update contributors list (#2903)

    docs: update contributors list [skip ci]

    Co-authored-by: cte <cte@users.noreply.github.com>

commit a3f1a3f3ad
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 24 14:20:09 2025 -0700

    Gemini caching improvements (#2925)

commit 7f99c0691e
Author: asychin <asychin@crypton.studio>
Date:   Fri Apr 25 03:03:30 2025 +0700

    feat/add-russian-lang (#2909)

    * rus

    * sad

    * fix lang

    * Add ru to translate mode instructions

    * Add ru to evals types

    * Add link to READMEs

    * Bring back smart quotes

    * Add prompt caching translations

    ---------

    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit b75379bed3
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 24 12:29:36 2025 -0700

    Improve OpenRouter model fetching (#2922)

commit ad4782b766
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 24 12:28:43 2025 -0700

    Add an option to enable prompt caching (#2924)

commit 31600ed3c9
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Thu Apr 24 09:27:32 2025 -0700

    Changeset version bump (#2919)

    * changeset version bump

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Chris Estreich <cestreich@gmail.com>

commit d46a9b484c
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 24 09:24:56 2025 -0700

    v3.14.1 (#2920)

commit fb91836203
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 24 09:15:56 2025 -0700

    Revert Gemini caching, fix OR supports cache issue (#2918)

commit 9b73965867
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Wed Apr 23 21:51:24 2025 -0700

    Changeset version bump (#2877)

    * changeset version bump

    * Update CHANGELOG.md

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 2e9b1f1824
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Thu Apr 24 00:44:24 2025 -0400

    v3.14.0 (#2902)

commit 37a8a442ac
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Apr 24 00:31:27 2025 -0400

    Update contributors list (#2871)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

commit b5ffaf1ba2
Author: Yikai Liao <lyk-boya@outlook.com>
Date:   Thu Apr 24 12:22:47 2025 +0800

    Fix Terminal Carriage Return Handling for Correct Progress Bar Display (#2562)

    * fix(terminal): Ensure correct handling of carriage returns for progress bars

    This commit refines the tests for `TerminalProcess` to ensure the correct interpretation of terminal output containing carriage returns (`\\r`), which is essential for properly handling dynamic elements like progress bars (e.g., `tqdm`).

    - Validated the `processCarriageReturns` method's behavior in simulating terminal line overwrites caused by `\\r`.
    - Corrected the expectation in the `handles carriage returns in mixed content` test to accurately reflect the method's output (final line content + preserved escape sequences), confirming the logic works as intended for progress-bar-like updates.
    - Fixed a minor Jest `toBe` syntax error in a related test case.
    - Suppressed an expected `console.warn` in the non-shell-integration test for cleaner logs.

    By ensuring `processCarriageReturns` is correctly tested, we increase confidence that the component responsible for pre-processing terminal output handles progress bars appropriately before the output is potentially used elsewhere (e.g., sent to an LLM).

    * fix(test): Make TerminalProcess integration test reliable

    This commit fixes the flaky test case `integrates with getUnretrievedOutput to handle progress bars` in `TerminalProcess.test.ts`.

    The test previously failed intermittently due to:
    1.  Relying on a fixed `setTimeout` duration to wait for asynchronous stream processing, which created a race condition.
    2.  Incorrectly assuming that `await terminalProcess.run(...)` would return the final output directly via its resolved value.

    The fix addresses these issues by:
    -   Removing the unreliable intermediate check based on `setTimeout`.
    -   Modifying the test to correctly obtain the final output by listening for the `completed` event emitted by `TerminalProcess`, which is the intended way to receive the result.

    This ensures the test accurately reflects the behavior of `TerminalProcess` and is no longer prone to timing-related failures.

    * Add changeset for terminal carriage return fix

    * Implement terminal compress progress bar feature

    This commit introduces a new feature to compress terminal output by processing carriage returns. The `processCarriageReturns` function has been integrated into the `Terminal` class to handle progress bar updates effectively, ensuring only the final state is displayed.

    Additionally, the `terminalCompressProgressBar` setting has been added to the global settings schema, allowing users to enable or disable this feature.

    Tests have been updated to validate the new functionality and ensure correct behavior in various scenarios.

    A Benchmark is also added to test the performance.

    Not that there is still no i18n support for this.

    * Add i18n support for compressProgressBar setting in multiple languages

    * Optimize processCarriageReturns function for performance and multi-byte character handling

    This commit enhances the `processCarriageReturns` function by implementing in-place string operations to improve performance, especially with large outputs. Key features include:
    - Line-by-line processing to maximize chunk handling.
    - Use of string indexes and substring operations instead of arrays.
    - Single-pass traversal of input for efficiency.
    - Special handling for multi-byte characters to prevent corruption during overwrites.

    Additionally, tests have been updated to validate the new functionality, ensuring correct behavior with various character sets, including emojis and non-ASCII text.

    Highly Density CR case is added to Benchmark

    * slight performance improvement by caching several variable

    * Optimize multi-byte character handling in processCarriageReturns

    Refactor the logic within the `processCarriageReturns` function to simplify the detection of partially overwritten multi-byte characters (e.g., emojis).

    Removed redundant checks and clarified the conditions for identifying potential character corruption during carriage return processing. This improves code readability and maintainability while preserving the original functionality of replacing potentially corrupted characters with a space.

    Also enforced consistent use of semicolons for improved code style.

    * docs: standardize carriage return (\r) and line feed (\n) terminology
    Improve code clarity by consistently adding escape sequence notation to all
    references of carriage returns and line feeds throughout documentation and tests.
    This makes the code more readable and avoids ambiguity when discussing these special characters.

    * feat: Improve terminal output processing clarity and settings UI

    - Add detailed comments to `processCarriageReturns` explaining line feed handling.
    - Relocate `terminalCompressProgressBar` setting below `terminalOutputLineLimit` for better context in UI.

    * Fix: Compress Progress Bar Setting Checkbox

    ---------

    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 3b65023d0b
Author: axb <uaxb@hotmail.com>
Date:   Thu Apr 24 12:12:07 2025 +0800

    feat(diff): improve progress indicator for apply_diff tool (#2758)

    Add animated dots to progress indicator based on content length
    Optimize when progress updates are shown (every 10 characters)
    Move searchBlockCount calculation inside conditional blocks
    Skip unnecessary ask operations when toolProgressStatus is empty

commit c228e638b9
Author: Hannes Rudolph <hrudolph@gmail.com>
Date:   Wed Apr 23 15:43:36 2025 -0600

    Update insert_content tool description for clarity and detail (#2892)

commit 41db2cad43
Author: Hannes Rudolph <hrudolph@gmail.com>
Date:   Wed Apr 23 15:42:59 2025 -0600

    Update search_and_replace tool description for clarity and detail (#2891)

commit a53f604e3a
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 23 16:46:52 2025 -0400

    Disable OpenRouter Gemini caching for now (#2890)

commit 03925d25b0
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 13:26:59 2025 -0700

    Fix code cli flag in evals (#2889)

commit 1543713c32
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 13:24:22 2025 -0700

    Don't immediately show an model ID error when changing API providers (#2888)

commit 2c40224f6f
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 12:20:13 2025 -0700

    Fix task size cache TTL (#2887)

commit 72962b3c76
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 12:09:24 2025 -0700

    Split api and chat message persistence into a separate module (#2866)

commit 230e953e5d
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 11:42:22 2025 -0700

    Throttle calls to calculate task folder size (#2885)

commit b421636a2c
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 11:41:06 2025 -0700

    Properly hide cache section of task header (#2884)

commit a08461a655
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 11:35:50 2025 -0700

    Gemini prompt caching (#2827)

commit 31d4b656d0
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 11:21:35 2025 -0700

    Package material icons in vsix (#2882)

    * Package material icons in vsix

    * Add changeset

commit a77be28a95
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 11:16:20 2025 -0700

    Use formatLargeNumber on token counts in task header (#2883)

    * Format large numbers

    * Add changeset

commit 970ccd7879
Author: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Date:   Wed Apr 23 12:21:32 2025 -0500

    feat: add other useful variables to the custom system prompt (#2879)

commit 4606e9a6cc
Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Wed Apr 23 22:57:50 2025 +0700

    fix(chat): better loading feedback (#2750)

    * fix(chat): better loading feedback

    * fix(chat): missing loading aria role

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

    * refactor(chat): use vscode loading for more consistency

    ---------

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

commit 80912d0919
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 23 09:47:19 2025 -0400

    v13.3.3 (#2876)

commit a9ca17717c
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 23 06:45:57 2025 -0700

    OpenRouter Gemini caching (#2847)

    * OpenRouter Gemini caching

    * Fix tests

    * Remove unsupported models

    * Clean up the task header a bit

    * Update src/api/providers/openrouter.ts

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

    * Remove model that doesn't seem to work

    ---------

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

commit e53d299acf
Author: mlopezr <mlopezr@users.noreply.github.com>
Date:   Wed Apr 23 15:36:50 2025 +0200

    Allow Amazon Bedrock Marketplace ARNs (#2874)

    * Update validate.ts

    Allow ARNs from Bedrock Marketplace, which are different because models are deployed using SageMaker Inference behind the scenes.

    * Update bedrock.ts

    Allow ARNs from Bedrock Marketplace, which are different because models are deployed using SageMaker Inference behind the scenes.

commit 844753e0d9
Author: Dominik Oswald <6849456+d-oit@users.noreply.github.com>
Date:   Wed Apr 23 15:34:32 2025 +0200

    Remove unnecessary cost calculation from vscode-lm.ts (#2875)

    * feat: Removed unnecessary cost calculation

    * Update vscode-lm.ts

    ---------

    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 74faacd69d
Author: Wojciech Kordalski <wkordalski@pm.me>
Date:   Wed Apr 23 10:42:06 2025 +0200

    FakeAI "controller" object must not be copied (#2463)

    The FakeAI object passed by the user must be exactly the same object
    that is passed to FakeAIHandler via API configuration.
    Unfortunatelly, as the VSCode global state is used as configuration
    storage, we lose this property (VSCode global state creates copies of
    the object). Also the class of the stored object is lost, so methods
    of the object are unavailable.

    Therefore, we store the original objects in global variable and
    use ID field of FakeAI object to identify the original object.

commit e403a96e66
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Apr 23 03:14:08 2025 -0400

    Update contributors list (#2867)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

commit 01a7a66ca0
Author: Trung Dang <dangquoctrung123@gmail.com>
Date:   Wed Apr 23 14:13:04 2025 +0700

    feat: add `injectEnv` util, support env ref in mcp config (#2679)

    * feat: support environment variables reference in mcp `env` config

    * tests(src/utils/config): add test for `injectEnv`

    * fix(injectEnv): use `env == null` and `??` check instead of `!env`, `||`

    * refactor: remove unnecessary type declare

    * chore!: simplify regexp, remove replacement for env vars with dots

commit 3df9eac5b7
Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Wed Apr 23 14:09:29 2025 +0700

    fix(mention): conditionally remove aftercursor content (#2732)

commit 33ee5d6c34
Author: hongzio <11085613+hongzio@users.noreply.github.com>
Date:   Wed Apr 23 16:06:48 2025 +0900

    Fix: focusInput open roo code panel (#2626) (#2817)

    * Fix: focusInput open roo code panel (#2626)

    * Fix: `roo-cline.focusInput` open roo code panel

    * fixup! Fix: focusInput open roo code panel (#2626)

commit 3a5913ffca
Author: Alfredo Medrano <alfredomedranosanchez@gmail.com>
Date:   Wed Apr 23 01:05:47 2025 -0600

    Bugfix/fix vscodellm model information (#2832)

    * feat: initialize VS Code Language Model client in constructor

    * feat: add VS Code LLM models and configuration

    * feat: integrate VS Code LLM models into API configuration normalization

    * Fix tests

    ---------

    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit c2dd743aeb
Author: seedlord <boklu@hotmail.de>
Date:   Wed Apr 23 08:45:35 2025 +0200

    Fix: Preserve editor state and prevent tab unpinning during diffs (#2857)

    - Maintains editor view column state when closing and reopening files during diff operations, ensuring tabs stay opened in their original position.

    - Prevents closing the original editor tab when opening the diff view, preserving pinned status when applying changes via write_to_file or apply_diff.

    - Updates VSCode workspace launch flag from -n to -W for compatibility.

commit 3d129e8a89
Author: Hannes Rudolph <hrudolph@gmail.com>
Date:   Wed Apr 23 00:35:10 2025 -0600

    fix: allow opening files without workspace root (#1054)

    * fix: allow opening files without workspace root

    The openFile function in open-file.ts was requiring a workspace root to be present,
    which prevented opening global files (like MCP settings) when no workspace was open.
    Modified the function to handle absolute paths without this requirement.

    Previously, trying to open MCP settings in a new window without a workspace would
    error with "Could not open file: No workspace root found". Now the function
    properly handles both workspace-relative and absolute paths, allowing global
    settings files to be accessed in any context.

    Changes:
    - Removed workspace root requirement in openFile
    - Added fallback for relative paths when no workspace is present

    * fix: update openFile function to use provided path without modification

    ---------

    Co-authored-by: Roo Code <support@roo.vet>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 0f64849542
Author: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Date:   Wed Apr 23 00:09:14 2025 -0500

    feat: allow variable interpolation into the custom system prompt (#2863)

    * feat: allow variable interpolation into the custom system prompt

    * fix: allow the test to pass on windows by using the path module

commit c6f91a3b2f
Author: System233 <cdkeylzh@outlook.com>
Date:   Wed Apr 23 03:40:33 2025 +0800

    Fix error message not showing after canceling API request (#2845)

commit 1a376c262e
Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Wed Apr 23 02:39:45 2025 +0700

    [DRAFT] feat(menu): use material icons for files and folders (#2739)

    feat(menu): use material icons for files and folders

commit 4f5b04b6c9
Merge: 2c6ef8a1 62d55893
Author: JB Brown <jb.brown@smartsheet.com>
Date:   Tue Apr 22 12:30:06 2025 -0700

    Merge pull request #4 from Smartsheet-JB-Brown/hobbsessr/fix-marketplace-redraw-issue

    Hobbsessr/fix marketplace redraw issue

commit 62d5589397
Author: HobbesSR <20545418+HobbesSR@users.noreply.github.com>
Date:   Tue Apr 22 12:16:01 2025 -0500

    Fix marketplace tab switching and redraw issue that occurred every 30 seconds

commit 0d561f8a27
Author: System233 <cdkeylzh@outlook.com>
Date:   Tue Apr 22 22:12:29 2025 +0800

    Fix redundant 'TASK RESUMPTION' prompts (#2842)

commit 8ac911244c
Author: System233 <cdkeylzh@outlook.com>
Date:   Tue Apr 22 22:10:34 2025 +0800

    Fix user feedback not being added to conversation history in API error state (#2844)

    Fix user feedback not being added to conversation history in the API error state

commit f1c79759a0
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Tue Apr 22 00:15:46 2025 -0400

    Add line wrapping to MCP arguments (#2831)

commit 3e2d20f37c
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Mon Apr 21 22:57:58 2025 -0400

    Search and replace fixes (#2830)

    * Allow replacing with an empty string

    * Visual cleanup

commit 8b5d48013e
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Mon Apr 21 22:39:39 2025 -0400

    Fix MCP hub lookup during view transition (#2829)

commit b6ea9d1465
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Apr 21 21:22:54 2025 -0400

    Update contributors list (#2803)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

commit ff5430a95c
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Mon Apr 21 21:18:25 2025 -0400

    Try adding better errors for write_to_file truncated output (#2821)

commit f06567d579
Author: Sam Hoang Van <samhv.ict@gmail.com>
Date:   Tue Apr 22 03:49:27 2025 +0700

    Feat/improve insert block content (#2510)

    * refactor: enhance insertGroups and insertContentTool for better handling of insertion operations

    * refactor: simplify insert_content tool

    - Remove operations-based implementation in favor of single line insertion
    - Update parameters from operations to line and content
    - Simplify insertion logic and error handling
    - Update tool description and documentation
    - Remove XML parsing for operations
    - Clean up code and improve error messages

    * refactor: remove insert_content experiment and related tests

    * Remove the append_to_file tool

    * Improvements to chat row and instructions

    ---------

    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 80b298492c
Author: Sam Hoang Van <samhv.ict@gmail.com>
Date:   Tue Apr 22 02:25:03 2025 +0700

    improve search and replace tool  (#2764)

    * Refactor search and replace tool

    * feat(search-replace): enhance search/replace tool UI and messaging

    Refactor search/replace tool message structure for better consistency
    Add dedicated UI component for displaying search/replace operations
    Add i18n support for search/replace operations in all supported languages
    Improve partial tool handling in searchAndReplaceTool

    * Remove search_and_replace experiment and related references

commit 61e23cccb6
Author: Chris Estreich <cestreich@gmail.com>
Date:   Mon Apr 21 11:04:35 2025 -0700

    Record tool use errors encountered during eval runs (#2816)

commit a244a9dc21
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Mon Apr 21 13:54:02 2025 -0400

    Fix a bad search/replace when moving tools into their own files (#2815)

commit b955dbc1fc
Author: Daniel Trugman <dtrugman@gmail.com>
Date:   Mon Apr 21 16:56:02 2025 +0100

    Requesty models behind api key (#2813)

    * Don't fetch Requesty models on startup, only when opening settings

    * Provide api key when fetching models

commit f1c3edeb75
Author: Felix NyxJae <52313587+NyxJae@users.noreply.github.com>
Date:   Mon Apr 21 21:27:24 2025 +0800

    Fix: Improve drag-and-drop and SSH path handling (#2808)

    * Fix: Correct path handling for dragged files on Windows

    * Fix: Improve drag-and-drop and SSH path handling

commit 29137fbfec
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Mon Apr 21 00:24:52 2025 -0400

    Revert changes on omitted line count in write_to_file (#2807)

commit 2c6ef8a184
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Sun Apr 20 20:56:53 2025 -0700

    allow relative path from pacakge items to outside of packages directory

commit 19df13c760
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sun Apr 20 23:28:19 2025 -0400

    Add a warning display when a system prompt override is active (#2804)

commit d2e5019f88
Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Mon Apr 21 09:04:23 2025 +0700

    fix(icons): use geometricPrecision to avoid blurriness (#2756)

commit 47230d5a5c
Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Mon Apr 21 08:46:01 2025 +0700

    fix(action): handle edge case for add to context action (#2780)

commit 612b948193
Author: Sacha Sayan <sacha.sayan@gmail.com>
Date:   Sun Apr 20 21:38:08 2025 -0400

    Refactor: Use path aliases in webview source files. (#2801)

    * Refactor: Use path aliases in webview source files.

    * Add module resolution to root jest config.

    * Add tests.

    Broken import.

    Another broken import.

     Broken test.

commit cf54c7d820
Author: Sacha Sayan <sacha.sayan@gmail.com>
Date:   Sun Apr 20 21:19:42 2025 -0400

    Quickfix: Change cloud-download icon to more appropriate desktop-download icon. (#2802)

commit eeb73c3c06
Author: Nico Bihan <nicolas.bihan@wellsky.com>
Date:   Sat Apr 19 23:30:20 2025 -0500

    Adds Gemini 2.5 Flash "thinking" model to Vertex AI Provider (#2794)

commit ed102d1850
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sat Apr 19 15:43:27 2025 -0400

    Remove the strict line bounds check from the diff (#2790)

commit 2205606118
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sat Apr 19 14:26:35 2025 -0400

    Remove globby as it's no longer used (#2788)

commit 5d0aa20f97
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Sat Apr 19 14:13:45 2025 -0400

    Switch list files from globby to ripgrep (#2689)

    * Switch list files from globby to ripgrep

    * PR feedback

    * PR fix

commit c5f48a8bc6
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Fri Apr 18 21:14:30 2025 -0700

    Changeset version bump (#2777)

    * changeset version bump

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Chris Estreich <cestreich@gmail.com>

commit 8c18727f9a
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Apr 18 21:13:43 2025 -0700

    Update contributors list (#2779)

    docs: update contributors list [skip ci]

    Co-authored-by: cte <cte@users.noreply.github.com>

commit e74b69dfbc
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 18 21:01:21 2025 -0700

    v3.13 announcement (#2778)

    * v3.13 announcement

    * Update README.md

    * Update lastShownAnnouncementId

    * Tweak copy

commit c10600e354
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 18 19:25:42 2025 -0700

    Pass baseURL to Gemini API if googleGeminiBaseUrl is set (#2776)

commit b8b90737fa
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Fri Apr 18 17:39:24 2025 -0700

    Changeset version bump (#2768)

    * changeset version bump

    * Update CHANGELOG.md

    * Update CHANGELOG.md

    * Update CHANGELOG.md

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Chris Estreich <cestreich@gmail.com>

commit 5eaf8ba876
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Fri Apr 18 16:48:28 2025 -0700

    fix regex in response to security scan concern in CI build

commit 130493e43d
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Fri Apr 18 15:25:35 2025 -0700

    fix renaming bug for locales

commit 2a5d472f0d
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Apr 18 15:14:38 2025 -0700

    Update contributors list (#2770)

    docs: update contributors list [skip ci]

    Co-authored-by: cte <cte@users.noreply.github.com>

commit d5fe876c9b
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 18 14:56:01 2025 -0700

    v3.13.1 (#2774)

commit 1a05a4190f
Merge: a122dc74 96ff9fc3
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Fri Apr 18 14:52:12 2025 -0700

    Merge branch 'main' into jbbrown/marketplace

commit a122dc7465
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Fri Apr 18 11:08:21 2025 -0700

    fix failing tests from state management changes

commit 96ff9fc380
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 18 14:43:27 2025 -0700

    Fix pricing for Gemini 2.5 Flash (Thinking) (#2773)

    * Fix pricing for Gemini 2.5 Flash (Thinking)

    * Looks like it's actually $3.50

    * We aren't honoring custom thinking token budgets on Vertex yet

commit f6e4e3504f
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 18 14:43:04 2025 -0700

    Move executeCommand out of Cline and add telemetry for shell integration errors (#2771)

commit 0bb5ec18c5
Author: Sacha Sayan <sacha.sayan@gmail.com>
Date:   Fri Apr 18 16:43:03 2025 -0400

    UI: Auto-approve toggle styling tweak. (#2769)

commit 5abea50cf1
Author: Chris Estreich <cestreich@gmail.com>
Date:   Fri Apr 18 12:26:17 2025 -0700

    Support Gemini 2.5 Flash thinking (#2752)

commit 968e19047b
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Fri Apr 18 10:23:02 2025 -0700

    rebrand to Marketplace

commit 6772306ade
Author: Felix NyxJae <52313587+NyxJae@users.noreply.github.com>
Date:   Fri Apr 18 22:29:32 2025 +0800

    Fix: Correct path handling for dragged files on Windows (#2753)

commit b3065d2ab3
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Apr 18 03:09:14 2025 -0400

    Update contributors list (#2715)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

commit 31656d9b16
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Thu Apr 17 23:47:41 2025 -0700

    Changeset version bump (#2716)

    * changeset version bump

    * Update CHANGELOG.md

    * Update package.json

    * Update package-lock.json

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit c329b4509f
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Fri Apr 18 02:29:13 2025 -0400

    v3.12.4 (#2745)

commit 06882f5687
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Fri Apr 18 02:23:55 2025 -0400

    Don't break if an end_line is passed into a diff (#2743)

commit 87af3b3424
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 17 22:21:14 2025 -0700

    Record tool usages in the `Cline` object, and persist them in the db for evals (#2729)

commit 887d2ac330
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 21:52:31 2025 -0700

    fix missing translations

commit 9e2476c667
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 21:47:50 2025 -0700

    attempt to fix failing test on windows in ci build

commit c0f615bca7
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 21:40:26 2025 -0700

    more memory pressure work

commit b5a77e34a4
Author: Nico Bihan <nicolas.bihan@wellsky.com>
Date:   Thu Apr 17 23:35:06 2025 -0500

    Fixes maximum token limit for Gemini provider 2.5 pro exp (#2737)

    Corrects the maximum token limit for the "gemini-2.5-pro-exp-03-25" model, ensuring accurate configuration.

commit fffebf1a2e
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Fri Apr 18 00:28:55 2025 -0400

    Remove experiment for append block (#2738)

    * Remove experiment for append block

    * Fix bugs in experiment lookups

commit c84343dbbe
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 21:02:15 2025 -0700

    reduce memory use during MetaDataScan

commit b05c3100bd
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Thu Apr 17 23:25:35 2025 -0400

    Fix context window bar color (#2733)

    * Fix context window bar color

    * Make task header cost badge match the other ones

    * Fix test

commit 86636526bd
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Thu Apr 17 23:25:23 2025 -0400

    Update the style of the suggestions (#2734)

    * Update the style of the suggestions

    * Cleanup

commit 422aed61b7
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 20:21:16 2025 -0700

    memory optimization and revert test command in package.json to main

commit bea36c8977
Author: Nico Bihan <nicolas.bihan@wellsky.com>
Date:   Thu Apr 17 22:19:40 2025 -0500

    Gemini 2.5 Flash Preview fix Max Tokens Count (#2735)

    Gemini 2.5 Flash Preview fix Max Tokens

commit 93b96c3253
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 19:53:24 2025 -0700

    attempt at memory cleanup

commit 3cc3dab9e5
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 19:28:50 2025 -0700

    change metadatascanner to be more memory efficient

commit b7f45f7870
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 19:23:29 2025 -0700

    reduce memory usage - avoid deep copy

commit a2d7f19418
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 17:30:53 2025 -0700

    round 5

commit 1cb77542e1
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 17:25:28 2025 -0700

    round 4

commit 8a9240000c
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 17:20:14 2025 -0700

    round 3 of locale CI fixes

commit 724a2f2350
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 17:13:02 2025 -0700

    another round of locale bugs in the CI build but not local

commit 38d96fa4fb
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 17:06:07 2025 -0700

    try to fix locale bugs that happen in CI build but not locally

commit 78edc21f2e
Merge: 1aea6b4d 3c937c38
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 16:53:19 2025 -0700

    merge main

commit 1aea6b4d9b
Merge: 4f8799f1 92c55d54
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 15:54:34 2025 -0700

    Merge hobbessr/metadatascanner-test-path-recursion-fix

commit 92c55d542e
Author: HobbesSR <20545418+HobbesSR@users.noreply.github.com>
Date:   Thu Apr 17 17:38:07 2025 -0500

    Fix the MetaDataScanner.test.ts infinite recursion in its mock setup

commit 3c937c3827
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 17 15:28:11 2025 -0700

    Task header theme fixes (#2721)

commit b077267b4a
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 15:25:11 2025 -0700

    fixes image support in bedrock. regression from prompt cache implementation (#2723)

    fixes image support in bedrock. regression created during prompt caching implementation

commit d86d601104
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Thu Apr 17 16:39:00 2025 -0400

    Add gemini 2.5 flash preview (#2720)

commit 4f8799f169
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 13:32:08 2025 -0700

    fix localization bugs

commit 471caff000
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 17 13:31:48 2025 -0700

    Clean up types related to tools (#2719)

commit 026091e432
Author: Hannes Rudolph <hrudolph@gmail.com>
Date:   Thu Apr 17 14:18:50 2025 -0600

    Fix filename format in downloadTask function for markdown export (#2717)

    * Fix filename format in downloadTask function for markdown export

    * Update src/integrations/misc/export-markdown.ts

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

    ---------

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

commit 1853ebaa9c
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Thu Apr 17 12:59:13 2025 -0700

    add sourceUrl to support packages hosted external to the package manager repo

commit 1e0e01b9f3
Author: Sam Hoang Van <samhv.ict@gmail.com>
Date:   Fri Apr 18 02:58:22 2025 +0700

    feat: add append_to_file tool for appending content to files (#2712)

    - Implemented the append_to_file tool to allow users to append content to existing files or create new ones if they do not exist.
    - Updated the rules and instructions to include the new tool.
    - Added tests for the append_to_file functionality, covering various scenarios including error handling and content preprocessing.
    - Enhanced the experiment schema to include the new append_to_file experiment ID.
    - Updated relevant interfaces and types to accommodate the new tool.
    - Modified the UI to display the append_to_file tool in the appropriate sections.

commit d3c37eaec8
Author: Chris Estreich <cestreich@gmail.com>
Date:   Thu Apr 17 10:23:19 2025 -0700

    Add missing translation (#2714)

    * Add missing translation

    * More translation fixes

commit 159e4005e5
Author: Sacha Sayan <sacha.sayan@gmail.com>
Date:   Thu Apr 17 12:54:55 2025 -0400

    UI Glam Sesh: Makeover for TaskHeader, ChatView, HistoryPreview... (#2701)

    * - UI Glam Session -> Makeover for TaskHeader, ChatView, HistoryPreview, WelcomeView
    - In particular, display a "no tasks in workspace" message when no tasks are found.
    - Clean up Inferface Settings (not needed now) on Settings View
    - Copy updates throughout these areas.

    * Apply suggestions from code review

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

    * Missing translation string.

    * Fix test

    * Fix tests

    * Improve translations / fix missing strings.

    * Support xAI for evals (#2703)

    * Make sure the slash commands only fire if they're the first character (#2702)

    * Update contributors list (#2675)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

    * v3.12.3 (#2710)

    * Changeset version bump (#2711)

    * changeset version bump

    * Updating CHANGELOG.md format

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: R00-B0T <github-actions@github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

    * Update translations

    ---------

    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
    Co-authored-by: cte <cestreich@gmail.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
    Co-authored-by: R00-B0T <github-actions@github.com>

commit 0736379ad0
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Thu Apr 17 07:45:43 2025 -0700

    Changeset version bump (#2711)

    * changeset version bump

    * Updating CHANGELOG.md format

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: R00-B0T <github-actions@github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 94842f21af
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Thu Apr 17 10:34:32 2025 -0400

    v3.12.3 (#2710)

commit d3ba74c568
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Apr 17 10:26:50 2025 -0400

    Update contributors list (#2675)

    docs: update contributors list [skip ci]

    Co-authored-by: mrubens <mrubens@users.noreply.github.com>

commit 511ebb7a98
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Thu Apr 17 07:55:53 2025 -0400

    Make sure the slash commands only fire if they're the first character (#2702)

commit 0374436fac
Author: Chris Estreich <cestreich@gmail.com>
Date:   Wed Apr 16 23:08:58 2025 -0700

    Support xAI for evals (#2703)

commit 876742a887
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 21:41:30 2025 -0700

    try another modification to the test script for windows out of memory errors in ci build

commit 0c817af055
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 21:20:13 2025 -0700

    increase max heap size to try and get windows passing in the CI build

commit c27aa9c370
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 21:11:51 2025 -0700

    heap cleanup

commit e5556dd115
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 20:46:26 2025 -0700

    attempt to incrase node heap size

commit b7033133ad
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 20:36:46 2025 -0700

    try a path change to see if it helps the CI build pass in the GitHub environment

commit 981c7a1270
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 20:27:20 2025 -0700

    rework git test to see if it helps in the CI build

commit 68b0a1843d
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 20:23:12 2025 -0700

    fix knip and missing translation errors

commit 30c44ff14c
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 23:04:16 2025 -0400

    Support dragging and dropping tabs into chat text area (#2698)

commit 6e299c73f5
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 19:28:39 2025 -0700

    update documentation

commit 9a24ed46a2
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 18:02:38 2025 -0700

    allow custom git domains to support internal dns at companies

commit c2d840cc47
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 17:08:43 2025 -0700

    remove console log statements used to debug tests

commit 9c28626f24
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 16:31:24 2025 -0700

    refactor: remove package manager state files

commit a4a4532922
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 16:06:23 2025 -0700

    fix typescript errors preventing succesful build

commit ba5af60109
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 18:05:04 2025 -0400

    Fix diff escaping issues (#2694)

    * Fix diff escaping issues

    * Potential fix for code scanning alert no. 75: Double escaping or unescaping

    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

    ---------

    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

commit f04487cd3e
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 14:35:39 2025 -0700

    All but 1 test passing

commit a575d25252
Merge: 0caf685b 4bf746d6
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 12:43:51 2025 -0700

    Merge branch 'main' into jbbrown/package-manager
    * main: (161 commits)
      Changeset version bump (#2688)
      v3.12.2 (#2693)
      Add support for different reasoning effort (#2692)
      Add OpenAI o3 & 4o-mini (#2691)
      Add consecutive mistake count to diff error telemetry (#2687)
      refactor(context-menu): handle filename display better (#2684)
      Changeset version bump (#2683)
      Fix select dropdown styling (#2682)
      Changeset version bump (#2676)
      v3.12.0 (#2674)
      Fix configuration titles (#2672)
      feat: Add 'roo.acceptInput' command (#2598)
      Add xAI provider (#2667)
      Await checkpoint saves (except the initial) (#2665)
      Safe JSON parse in ChatRow (#2666)
      feat: Cost Display in Task Header - Suppress Zero Cost Values and Ensure Visibility for Gemini, OpenAI, LM Studio, and Ollama (#2662)
      test: limit Jest worker count to 40% per suite (#2658)
      DRY up the auto-approve toggles (#2664)
      Expose reasoning effort option for reasoning models on OpenRouter (#2483)
      Better string normalization for diffs (#2659)
      ...

commit 0caf685b4f
Author: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Date:   Wed Apr 16 12:33:20 2025 -0700

    rolled back unintended changes not related or needed to support package manager. first phases of build pass, but fail at type checking on things that don't seem related to what I've done

commit 4bf746d635
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Wed Apr 16 11:52:22 2025 -0700

    Changeset version bump (#2688)

    * changeset version bump

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 454df52462
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 14:47:35 2025 -0400

    v3.12.2 (#2693)

commit 43668e0429
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 14:16:51 2025 -0400

    Add support for different reasoning effort (#2692)

commit 250ea6867a
Author: Peter Dave Hello <hsu@peterdavehello.org>
Date:   Thu Apr 17 02:10:10 2025 +0800

    Add OpenAI o3 & 4o-mini (#2691)

    Reference:
    - https://platform.openai.com/docs/models/o3
    - https://platform.openai.com/docs/models/o4-mini
    - https://openai.com/index/introducing-o3-and-o4-mini/

commit 9d761e23e2
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 12:02:49 2025 -0400

    Add consecutive mistake count to diff error telemetry (#2687)

commit 1d029ed0cb
Author: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com>
Date:   Wed Apr 16 20:46:06 2025 +0700

    refactor(context-menu): handle filename display better (#2684)

    * refactor(context-menu): handle filename display better

    * refactor(context-menu): reduce string computation

commit c980662728
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Wed Apr 16 03:44:17 2025 -0700

    Changeset version bump (#2683)

    * changeset version bump

    * Updating CHANGELOG.md format

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: R00-B0T <github-actions@github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 2d360dc59e
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 06:40:43 2025 -0400

    Fix select dropdown styling (#2682)

commit 923e391bb8
Author: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Date:   Tue Apr 15 22:22:03 2025 -0700

    Changeset version bump (#2676)

    * changeset version bump

    * Updating CHANGELOG.md format

    * Update CHANGELOG.md

    * Update package.json

    * Update package-lock.json

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: R00-B0T <github-actions@github.com>
    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit e2d649dc50
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Wed Apr 16 01:16:06 2025 -0400

    v3.12.0 (#2674)

commit 82df05a297
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Tue Apr 15 23:09:18 2025 -0400

    Fix configuration titles (#2672)

commit 1cca4f47c7
Author: Aleksandr Kirillov <32141102+axkirillov@users.noreply.github.com>
Date:   Wed Apr 16 05:01:45 2025 +0200

    feat: Add 'roo.acceptInput' command (#2598)

    * feat: Add 'roo.acceptInput' command

    * Update package.nls.json

    * Update translations

    ---------

    Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

commit 37f7d83792
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Tue Apr 15 22:16:52 2025 -0400

    Add xAI provider (#2667)

    * Add xAI provider

    * Add model reasoning effort

    * DRY this up

    * Handle undefined delta

    * Cleanup getModel to fix test

    * Add missing translations

    * Small type cleanup

    * Support temperature

    ---------

    Co-authored-by: cte <cestreich@gmail.com>

commit 3b19d7a455
Author: Chris Estreich <cestreich@gmail.com>
Date:   Tue Apr 15 16:57:12 2025 -0700

    Await checkpoint saves (except the initial) (#2665)

commit 75a6bc100e
Author: Matt Rubens <mrubens@users.noreply.github.com>
Date:   Tue …

* fix: compatibility with latest version

* chore: apply org change and re-add contributors

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Smartsheet-JB-Brown <Smartsheet-JB-Brown@users.noreply.github.com>
Co-authored-by: elianiva <51877647+elianiva@users.noreply.github.com>

* refactor(marketplace): some UI adjustments (#13)

* refactor(marketplace): add installed tabs

* fix: missing settings button

* refactor(marketplace): better card UI

* refactor(marketplace): better error message for sources

* tests(marketplace): item card and source config

* refactor(marketplace): colocate local states

* refactor(marketplace): simplify tabs

* test: marketplace view

---------

Co-authored-by: elianiva <51877647+elianiva@users.noreply.github.com>

* chore: marketplace rebase to latest fixes

* fix: use `yaml` instead of `js-yaml`, fix `config-rocket` missing, solve lint warn failure

* feat(marketplace): `yaml` migrate for modes, + uninstall UX (remove empty)

* fix(marketplace): IMM broken, can't install non-rocket binary

* chore(marketplace): invoke to reload modes and mcps

* perf(McpHub/reloadMcpServers): ensure no multiple reloads are running, ensure one last update

* feat(i18n): add missing marketplace translations for all languages

- Add missing 'done' and 'refresh' translations
- Add missing source-related translations
- Add missing tab translations
- Ensure proper pluralization for each language
- Fix formatting and structure consistency

* fix knip issue

* test: Add mock for kontroll module

- Add CommonJS mock implementation of kontroll's countdown function
- Add kontroll to moduleNameMapper in Jest config
- Resolves 'Cannot find module kontroll' test errors

* test: Add mock for execa module

- Create CommonJS mock implementation of execa
- Add execa to moduleNameMapper in Jest config
- Resolves 'Cannot use import statement outside a module' error for execa

* fix: Add semver format validation for version field

- Add regex validation to ensure version field follows semver format
- Fixes schema validation test for invalid version format
- Supports major.minor.patch format with optional pre-release and build metadata

* for now comment out failing marketplace tests after install and UI changes

* For now skip marketplace UI tests that are failing after UI changes were made but tests not kept up to date

* chore(marketplace): finishing touches (#14)

* fix(marketplace): done should redirect to browse

* test(marketplace): update outdated tests

* refactor(marketplace): handle opening in non-workspace

* feat(marketplace): put behind a feature flag

* fix(marketplace): missing translations

* fix: solve lint errors, make build-able

* fix: use `cwd` instead of `filePaths` for ws detection

* fix(marketplace): should dedupe items with same id from multiple registries

* fix: tab cycle should not reach hidden content

* fix: `mcp` filter

---------

Co-authored-by: NamesMT <dangquoctrung123@gmail.com>

* style(marketplace): refactor filter match ui, more accessible install button placement (#15)

* refactor(marketplace): subtle 'match' style

* chore: add translations

* refactor(marketplace): move install ui button

* test(marketplace): update outdated tests

* chore: uniform to `roo-rocket` only, remove `config-rocket`

Also solve a lint errror

* chore: solve some lint and types errors

* chore: remove `kontroll` use existing `lodash.debounce` from `main` head

* test(marketplace): resolve some tests

* Ellipsis feedback

* Mock onDidChange

* Update comment

* Hack to make tests pass, like McpHub

* Make tests pass on Windows

* Remove handleCardClick

* Add telemetry

* Update packages/telemetry/src/TelemetryService.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix translation

* Better error handling when installing marketplace items

* Move power steering to the bottom of experimental settings

* Tweaks to experimental settings copy

* Support prereqs

* Refresh webview state after deleting MCP

* PR feedback

* Test cleanup

* More PR feedback

* Only load marketplace data when in experiment

* Cleanup

---------

Co-authored-by: NamesMT <dangquoctrung123@gmail.com>
Co-authored-by: Smartsheet-JB-Brown <Smartsheet-JB-Brown@users.noreply.github.com>
Co-authored-by: elianiva <51877647+elianiva@users.noreply.github.com>
Co-authored-by: Smartsheet-JB-Brown <jb.brown@smartsheet.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-11 17:28:12 -04:00
Daniel
bf14b37edc
Add PR Reviewer mode (#4531)
* feat: add PR Reviewer mode with detailed review instructions

* fix: structure

* feat: add comprehensive PR Reviewer workflow and best practices
2025-06-11 17:27:05 -04:00
Chris Estreich
ab01fb3bdb
Move to Postgres for evals on roocode.com (#4520) 2025-06-11 14:17:53 -07:00
Hannes Rudolph
2ea26637d7
feat: Add Issue Writer and Issue Fixer modes with comprehensive workflows (#4437)
* Add issue writer mode with detailed templates for bug reports and feature proposals

* Refactor issue-writer mode to enhance role definition and instructions for creating GitHub issues

* Add steps for searching GitHub Discussions and documenting related issues in the issue creation process

* Add Issue Fixer mode with detailed workflow for resolving GitHub issues

* Enhance Issue Fixer mode with detailed workflows for PR reviews and issue handling

* Refactor Issue Fixer and Issue Worker modes to enhance workflow orchestration and implementation processes. Updated role definitions, added detailed workflows for issue resolution, and improved context management and communication guidelines.

* Enhance issue-worker mode with branch verification steps and detailed instructions for ensuring correct branch setup before implementation. Updated workflow to include branch context in design planning and final verification processes.

* Enhance pull request creation and verification workflow with detailed steps for branch verification, commit checks, and comprehensive PR status monitoring. Improved instructions for ensuring successful PR creation and linking to original issues.

* feat: Add Issue Writer and Issue Fixer modes with comprehensive workflows

- Add Issue Writer mode for creating well-structured GitHub issues
- Add Issue Fixer mode for implementing fixes from GitHub issues
- Include detailed workflow rules and best practices for both modes
- Add GitHub MCP tool usage guidelines
- Include PR workflow and communication guidelines
2025-06-11 16:00:13 -04:00
Matt Rubens
ba6490c2e2
Remove monorepo.md for now (#4549) 2025-06-11 15:25:31 -04:00
github-actions[bot]
a5ea602339
Changeset version bump (#4559)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-11 13:43:51 -04:00
Matt Rubens
f131cbfbee
v3.19.7 (#4558) 2025-06-11 13:38:58 -04:00
Chris Estreich
083ac9333a
Revert "chore(deps): update postgres docker tag to v17" (#4557) 2025-06-11 10:32:11 -07:00
Matt Rubens
e1c48f0698
Don't grab sidebar focus in the McpHub (#4548) 2025-06-11 09:33:29 -04:00
Dicha Zelianivan Arkana
bfeb12bfb4
chore: add data-testid rule (#4505) 2025-06-10 21:39:49 -04:00
Chris Estreich
c03869bf1e
Remove Storybook + unused components (#4517) 2025-06-10 14:29:39 -07:00
renovate[bot]
243a07e98c
chore(deps): update dependency knip to v5.60.2 (#4515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 14:19:26 -07:00
renovate[bot]
7f36b4ab0a
chore(deps): update eslint monorepo to v9.28.0 (#4516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 14:19:18 -07:00
renovate[bot]
67a1e7fdde
chore(deps): update dependency @types/node to v22.15.31 (#4514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:59:25 -07:00
renovate[bot]
31710c2c79
chore(deps): update dependency @types/node to v18.19.111 (#4513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:59:20 -07:00
renovate[bot]
5236d45ec8
fix(deps): update dependency drizzle-zod to ^0.8.0 (#4181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:52:33 -07:00
renovate[bot]
639cace3f7
fix(deps): update dependency fast-xml-parser to v5 (#4358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-06-10 13:51:12 -07:00
renovate[bot]
cf7c4a13a0
chore(deps): update postgres docker tag to v17 (#4350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:50:29 -07:00
renovate[bot]
6d399d8d2e
fix(deps): update dependency drizzle-orm to ^0.44.0 (#4178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:47:50 -07:00
renovate[bot]
12982f1bc5
fix(deps): update dependency i18next to v25 (#4359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:47:42 -07:00
renovate[bot]
367593bf3e
chore(deps): update peter-evans/create-pull-request action to v7 (#4349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:47:34 -07:00
renovate[bot]
385b5429a7
chore(deps): update storybook monorepo to v9 (major) (#4353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:47:24 -07:00
renovate[bot]
cca80b23d7
fix(deps): update dependency @google/genai to v1 (#4354)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 13:47:17 -07:00
Chris Estreich
64dbcc8221
Disable checkpoint if nested git repos are detected (#4509) 2025-06-10 13:29:19 -07:00
Chris Estreich
8d5dab3518
GHA evals (#4472) 2025-06-10 11:01:54 -07:00
Chris Estreich
bb08fc80cf
Switch back to GH runners for CI (#4507) 2025-06-10 11:01:12 -07:00
blacksmith-sh[bot]
fb83f917cc
.github/workflows: Migrate workflows to Blacksmith runners (#4504)
Co-authored-by: blacksmith-sh[bot] <157653362+blacksmith-sh[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-06-10 10:41:20 -07:00
Daniel Trugman
e2516ebe02
Control Gemini thinking budget via Requesty (#4486) 2025-06-09 22:32:24 -07:00
github-actions[bot]
861a866215
Changeset version bump (#4492)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-06-09 22:31:00 -07:00
Chris Estreich
0dede30c43
Fix changeset:version failure (#4491) 2025-06-09 22:07:34 -07:00
Chris Estreich
bec24517d9
v3.19.6 (#4490) 2025-06-09 21:59:07 -07:00
Hannes Rudolph
bf35dcd626
fix: remove explicit cache_control for Google models in OpenRouter (#4487) (#4488)
* fix: remove explicit cache_control for Google models in OpenRouter (#4487)

- Remove all Google models from OPEN_ROUTER_PROMPT_CACHING_MODELS set
- This resolves 3+ minute lag when using google/gemini-2.5-pro-preview
- OpenRouter still provides automatic implicit ephemeral caching for these models
- Updated tests to handle intentional exclusion of Google models from explicit caching

Fixes #4487

* refactor: simplify OpenRouter caching test logic

- Replace hardcoded exclusion list with simple Google model filter
- Keep original validation logic but make it more maintainable
- Still ensures all our caching models are supported by OpenRouter
- Still verifies we exclude all Google models from explicit caching

* cleanup: remove unused excludedModels variable

- Variable was defined but never used
- Keeps the test logic clean and focused

* refactor: only exclude google/gemini-2.5-pro-preview from caching

- More surgical approach - only exclude the specific problematic model
- Keep other Google models in caching (they work fine)
- Add comment explaining the exclusion with issue reference
- Update test to only exclude the specific model

This targets just the model causing 3+ minute lag while preserving
caching benefits for other Google models that work properly.
2025-06-10 00:48:40 -04:00
John Richmond
736c4b1810
Improve eval docker ports (#4489) 2025-06-09 21:41:18 -07:00
Chris Estreich
483d951723
Try to fix win32 esbuild (#4479) 2025-06-09 15:03:44 -07:00
Chris Estreich
f5c53f1ed7
Retry tasks that disconnect before completion or timeout (#4461) 2025-06-09 14:26:51 -07:00
Chris Estreich
2bf4347cc3
Document how to add evals (#4470) 2025-06-09 14:26:19 -07:00
Chris Estreich
73ed9f2b26
Docker cleanup script (#4469) 2025-06-09 14:25:13 -07:00
Chris Estreich
174da08b23
Publish CI failures to Slack (#4477) 2025-06-09 14:21:14 -07:00
Matt Rubens
1d63fb6773
Run prettier on src (#4478) 2025-06-09 17:10:33 -04:00
Chris Estreich
5bc6690244
Allow manual dispatch for publish-nightly (#4476) 2025-06-09 12:09:45 -07:00
Brendan O'Leary
bfe014fd89
Clarify that the default not the max is 15 files (#4474)
* Clarify that the default not the max is 15 files

* Update webview-ui/src/i18n/locales/en/settings.json

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Update all languages for CONCURRENT_FILE_READS setting

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-09 14:23:03 -04:00
Matt Rubens
8d2eeda4ad
Revert "fix: use safeWriteJson for all JSON file writes" (#4471)
Revert "fix: use safeWriteJson for all JSON file writes (#3772)"

This reverts commit 1be30fc8c2.
2025-06-09 13:53:17 -04:00
Sam Hoang Van
19108f7136
Fix Copy button logic (#4458)
* refactor: streamline text copying by removing history highlight spans

* refactor: improve regex for stripping history highlight spans to handle all content types

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-09 10:40:31 -04:00
Sacha Sayan
360b0e7336
UI Tweak: Fade buttons on history preview (homescreen) if no interaction in progress. (#3523)
Fade buttons on history preview unless mouseover.
2025-06-08 07:27:42 -07:00
Taylor Wilsdon
3f54efca2d
feat: Add Refresh MCP Servers capability, fix state changes in MCP server management UI view (#4267)
* docs: update contributors list [skip ci]

* add refresh all mcp button & supporting logic

* fully working, clean up debug

* begin cleanup

* console debug logging cleanup

* more logging

* Revert "Update contributors list"

* cleanup

* add missing translations

* global and project level i18n strings

* refactor: move translations

* fix: improve MCP settings buttons layout for responsive design

- Add flexWrap to button container to allow wrapping on smaller screens
- Change buttons from fixed flex:1 to flex: 1 1 auto with minWidth
- Ensures buttons maintain minimum readable width of 120px
- Prevents button text from being truncated on narrow viewports

* fix: Add missing vscode mock method and execa mock for McpHub tests

- Added createTextEditorDecorationType to vscode mock in McpHub.test.ts
- Created execa mock to handle ESM module import issues
- Fixes test failure that was exposed by PR #4267's module loading changes

* fix: watch changes on project mcp settings file

---------

Co-authored-by: taylorwilsdon <taylorwilsdon@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-08 07:25:29 -07:00
KJ7LNW
1be30fc8c2
fix: use safeWriteJson for all JSON file writes (#3772)
* feat: Add safeWriteJson utility for atomic file operations

Implements a robust JSON file writing utility that:
- Prevents concurrent writes to the same file using in-memory locks
- Ensures atomic operations with temporary file and backup strategies
- Handles error cases with proper rollback mechanisms
- Cleans up temporary files even when operations fail
- Provides comprehensive test coverage for success and failure scenarios

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: use safeWriteJson for all JSON file writes

This change refactors all direct JSON file writes to use the safeWriteJson
utility, which implements atomic file writes to prevent data corruption
during write operations.

- Modified safeWriteJson to accept optional replacer and space arguments
- Updated tests to verify correct behavior with the new implementation

Fixes: #722
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: Implement inter-process file locking for safeWriteJson

Replaces the previous in-memory lock in `safeWriteJson` with
`proper-lockfile` to provide robust, cross-process advisory file
locking. This enhances safety when multiple processes might attempt
concurrent writes to the same JSON file.

Key changes:
- Added `proper-lockfile` and `@types/proper-lockfile` dependencies.
- `safeWriteJson` now uses `proper-lockfile.lock()` with configured
  retries, staleness checks (31s), and lock update intervals (10s).
- An `onCompromised` handler is included to manage scenarios where
  the lock state is unexpectedly altered.
- Logging and comments within `safeWriteJson` have been refined for
  clarity, ensuring error logs include backtraces.
- The test suite `safeWriteJson.test.ts` has been significantly
  updated to:
    - Use real timers (`jest.useRealTimers()`).
    - Employ a more comprehensive mock for `fs/promises`.
    - Correctly manage file pre-existence for various scenarios.
    - Simulate lock contention by mocking `proper-lockfile.lock()`
      using `jest.doMock` and a dynamic require for the SUT.
    - Verify lock release by checking for the absence of the `.lock`
      file.

All tests are passing with these changes.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: implement streaming JSON write in safeWriteJson

Refactor safeWriteJson to use stream-json for memory-efficient JSON serialization:
- Replace in-memory string creation with streaming pipeline
- Add Disassembler and Stringer from stream-json library
- Extract streaming logic to a dedicated helper function
- Add proper-lockfile and stream-json dependencies

This implementation reduces memory usage when writing large JSON objects.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: improve safeWriteJson locking mechanism

- Use file path itself for locking instead of separate lock file
- Improve error handling and clarity of code
- Enhance cleanup of temporary files

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: fix safeWriteJson test failures

- Ensure test file exists before locking
- Add proper mocking for fs.createWriteStream
- Fix test assertions to match expected behavior
- Improve test comments to follow project guidelines

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update tests to work with safeWriteJson

Updated tests to work with safeWriteJson instead of direct fs.writeFile calls:

- Updated importExport.test.ts to expect safeWriteJson calls instead of fs.writeFile
- Fixed McpHub.test.ts by properly mocking fs/promises module:
  - Moved jest.mock() to the top of the file before any imports
  - Added mock implementations for all fs functions used by safeWriteJson
  - Updated the test setup to work with the mocked fs module

All tests now pass successfully.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: replace JSON.stringify with safeWriteJson for file operations

Replace all non-test instances of JSON.stringify used for writing to JSON files with safeWriteJson to ensure safer file operations with proper locking, error handling, and atomic writes.

- Updated src/services/mcp/McpHub.ts
- Updated src/services/code-index/cache-manager.ts
- Updated src/api/providers/fetchers/modelEndpointCache.ts
- Updated src/api/providers/fetchers/modelCache.ts
- Updated tests to match the new implementation

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* docs: add rules for using safeWriteJson

Add concise rules for using safeWriteJson instead of JSON.stringify with file operations to ensure atomic writes and prevent data corruption.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-08 07:17:20 -07:00
Hannes Rudolph
67d238afd0
feat: add experimental flag to disable command execution in attempt_c… (#4352)
* feat: add experimental flag to disable command execution in attempt_completion tool

* fix: remove deprecation phase comments from attemptCompletionTool

* feat: add translations for disable completion command experiment

* fix: revert unintended package.json change

* Rename attempt-completion.experiment.test.ts to attempt-completion.test.ts

* fix: address PR feedback - restore autoCondenseContext in tests and remove type assertion

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-08 07:14:57 -07:00
Matt Rubens
540d4fb94f
Add a share button when logged into cloud (#4448)
* Add a share button when logged into cloud

* Only show share button if enabled

* PR feedback
2025-06-08 07:08:41 -07:00
user202729
73e4418c12
Remove usage of npx (#4003) 2025-06-07 17:22:45 -07:00
kcwhite
12b8d59562
Bug fix for trailing slash error when using LiteLLM provider (#4275)
* Added changeset for my code changes

* Use URL constructor for joining baseUrl and path in litellm.ts

* Restoring Roo dotfiles

* Moved Roo dotfiles to root directory

* Revert this

* Add tests for litellm URL constructor fix

---------

Co-authored-by: Kevin White <kcwhite@ancestry.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-07 17:21:11 -07:00
Chris Estreich
52673b3721
Harden evals with retry logic + centralize logs on Docker host (#4440)
* Harden evals with retry logic + centralize logs on Docker host

* Don't delete controller container on exit

* Add randomness

* More tweaks

* More tweaks
2025-06-07 08:58:09 -07:00
Chris Estreich
6a232a99c6
Prevent hanging processes from preventing container cleanup (#4428) 2025-06-06 17:07:31 -07:00
Hannes Rudolph
b6bfeefc46
Remove mcp.json configuration and add it to .gitignore (#4422) 2025-06-06 12:33:35 -04:00
Chris Estreich
39d7f559d2
Update evals README.md (#4420)
* Update README.md

* Update README.md
2025-06-06 09:04:11 -07:00
Chris Estreich
f61b4e46a8
Fix git clone in evals setup script (#4418) 2025-06-06 08:47:43 -07:00
Hannes Rudolph
2a92312b85
Add MCP configuration file (#4363) 2025-06-06 11:04:01 -04:00
github-actions[bot]
84c6f44e56
Changeset version bump (#4403)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-06-05 23:36:29 -07:00
Chris Estreich
22392e014e
Fix "The thinking budget (52428) is invalid" Gemini 2.5 Pro Preview e… (#4401) 2025-06-05 22:55:56 -07:00
Chris Estreich
24851b96db
Improve the evals "run status" section (#4400) 2025-06-05 22:00:15 -07:00
Matt Rubens
62a09a233c
Update CHANGELOG.md 2025-06-05 21:59:34 -04:00
Chris Estreich
39d6535f7c
Fix rust evals (run cargo with bash) + logging tweaks (#4392) 2025-06-05 16:40:34 -07:00
github-actions[bot]
93818716e4
Changeset version bump (#4390)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-05 17:56:40 -04:00
Matt Rubens
442042bae9
v3.19.4 (#4389) 2025-06-05 17:53:39 -04:00
Daniel
3b45d86df7
Add gemini pro 06 05 (#4386)
* feat: add gemini-2.5-pro-preview-06-05 to Gemini and Vertex providers and UI, identical to 05-06

* feat: add thinking variant for gemini-2.5-pro-preview-06-05

* feat: add gemini-2.5-pro-preview-06-05 support to OpenRouter

* fix: update gemini-2.5-pro-preview model references in OpenRouter

* fix: tests

* feat: enhance reasoning handling in Gemini and Vertex handlers

* feat: add google/gemini-2.5-pro-preview to required reasoning budget models

* fix: refactor thinkingConfig assignment for consistency in Gemini and Vertex handlers

* Fix Gemini reasoning

* Fix tsc error

* Fix tsc error

* Hack to exclude thinking tokens by default

* feat: add global region to VERTEX_REGIONS

---------

Co-authored-by: Shariq Riaz <ishariqriaz@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-06-05 17:49:12 -04:00
Chris Estreich
cb5b9c3718
Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
Matt Rubens
8f930ff6f8
Update CODEOWNERS (#4387) 2025-06-05 15:10:24 -04:00
Matt Rubens
39f69f27ef
Create SECURITY.md 2025-06-05 10:22:15 -04:00
kiwina
3f3825a219
fix: Address memory leaks in ChatView component (ChatView_1113, ChatView_1236) (#4248)
* chore: Staging ChatView.tsx after reset to main

* fix: Address memory leaks in ChatView (ChatView_1113, ChatView_1236)
2025-06-04 17:34:34 -04:00
KJ7LNW
8cc89149b4
fix: resolve Mermaid CSP errors with enhanced bundling strategy (#3681)
Implements a more robust bundling strategy for Mermaid diagrams to prevent
dynamic chunk loading at runtime, which was causing CSP violations.

Key changes:
- Added manualChunks function in vite.config.ts to consolidate all Mermaid
  code and dependencies into a single bundle
- Added mermaid and dagre to optimizeDeps.include for pre-bundling
- Customized chunkFileNames to ensure predictable output
- Removed incorrect static imports in MermaidBlock.tsx

This resolves the CSP errors where Mermaid was attempting to dynamically
load chunks like chunk-RZ5BOZE2.js and channel.js from the webview origin.

Fixes: #3680

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-04 17:29:22 -04:00
Hannes Rudolph
4befe5ba24
Enforce codebase_search as primary tool for code understanding tasks (#4340)
* feat(prompts): enforce codebase_search as primary code understanding tool

- Add conditional codebase_search enforcement in tool use guidelines
- Modify objective section to prioritize codebase_search when available
- Update rules section with critical codebase_search-first rule
- Pass CodeIndexManager to prompt sections for availability checks
- Ensure graceful degradation when codebase_search is unavailable

* chore(docs): remove codebase search enforcement documentation

* fix: update snapshot and reorder capabilities section

- Update system.test.ts snapshot to reflect architect mode without codebase_search enforcement
- Reorder capabilities section to place search_files description after codebase_search
- Ensures logical flow: codebase_search (semantic) → search_files (regex) → other tools

* refactor: improve tool-use-guidelines numbering logic

- Replace subsequentNumbers object with array-based approach
- Use automatic incrementing with itemNumber++ for sequential numbering
- Build guidelines as an array and join at the end
- Fix potential numbering issues with conditional logic
- Update tests and snapshots to match new format

As suggested by daniel-lxs in PR #4340
2025-06-04 17:03:20 -04:00
github-actions[bot]
ae118c6c78
Update contributors list (#4224)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-06-04 17:01:10 -04:00
SannidhyaSah
a80795b78d
feat: Add OpenAI Compatible embedder for codebase indexing (#4066)
* feat: Add OpenAI Compatible embedder for codebase indexing

- Implement OpenAiCompatibleEmbedder with batching and retry logic
- Add configuration support for base URL and API key
- Update UI with provider selection and input fields
- Add comprehensive test coverage
- Support for all OpenAI-compatible endpoints (LiteLLM, LMStudio, Ollama, etc.)
- Add internationalization for 17 languages

* fix: Update CodeIndexSettings tests for OpenAI Compatible provider

- Fix field count expectations (4 fields including Qdrant)
- Use specific test IDs for button selection
- Fix input handling with clear() before type()
- Use toHaveBeenLastCalledWith for better assertions
- Fix status text matching with regex pattern

* fix: resolve UI test failures and ESLint errors

- Remove unused waitFor import to fix ESLint error
- Fix test expectations to match actual component behavior for input fields
- Simplify provider selection test by removing complex mock interactions
- All CodeIndexSettings tests now pass (20/20)

* feat: add custom model infrastructure for OpenAI-compatible embedder

- Add manual model ID and embedding dimension configuration
- Enable custom model input via text field in settings UI
- Add modelDimension parameter to OpenAiCompatibleEmbedder
- Update configuration management to persist dimension setting
- Prioritize manual dimension over hardcoded model profiles
- Add comprehensive test coverage for new functionality

This allows users to specify any custom embedding model and its
dimension for OpenAI-compatible providers, removing dependency
on hardcoded model profiles.

* Add missing translations for OpenAI-compatible model dimension settings in all locales

* refactor: remove unused modelDimension parameter from OpenAiCompatibleEmbedder

- Remove modelDimension property and constructor parameter from OpenAiCompatibleEmbedder class
- Update ServiceFactory to not pass dimension to embedder constructor
- Update tests to match new constructor signature
- The dimension is still used for QdrantVectorStore configuration

* chore: bot suggestion

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: bot suggestion

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* refactor: rename OpenAiCompatibleEmbedder to OpenAICompatibleEmbedder for consistency

* feat: add model dimension validation for OpenAI-compatible settings

* refactor: improve default model ID retrieval logic for embedding providers

* feat: add default model ID retrieval for openai-compatible provider

* refactor: update default model ID retrieval to use shared utility function

* fix: Remove unnecessary type assertion in OpenAICompatibleEmbedder

* feat: add model dimension input for openai-compatible provider

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-04 17:00:52 -04:00
kiwina
f561208146
fix(WorkspaceTracker): Dispose FileSystemWatcher and other disposables to prevent resource leaks (#4237)
fix: auto patch for WorkspaceTracker_45
2025-06-04 16:57:54 -04:00
renovate[bot]
fe26c05dc9
fix(deps): update dependency lucide-react to ^0.513.0 (#4345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 16:56:35 -04:00
renovate[bot]
f5d263e171
chore(deps): update dependency knip to v5.60.0 (#4344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 16:56:01 -04:00
Wojciech Kordalski
d1876d6af7
Get rid of "partial" component in names referencing not necessarily partial messages (#4332) 2025-06-04 16:55:20 -04:00
kiwina
6f21103545
fix: Prevent FileSystemWatcher leak in RooIgnoreController (#4233)
* fix: auto patch for RooIgnoreController_41

* fix: improve error handling during task disposal and cleanup
2025-06-04 16:54:24 -04:00
xyOz
c02e01ed69
ClineProvider Instance cleanup (#4266)
disposable cleanup
2025-06-04 16:54:00 -04:00
Sam Hoang Van
467c52fb46
refactor(mcp): use getDefaultEnvironment for stdio client transport (#4259)
- Replace manual PATH and HOME env var handling with getDefaultEnvironment()
- Improves consistency and reliability of MCP client environment setup
- Leverages SDK's built-in environment configuration
2025-06-04 16:53:25 -04:00
kiwina
815a0fb846
fix(RooTips): Clear setTimeout in useEffect cleanup to prevent state updates on unmounted components (#4235)
fix: auto patch for RooTips_37
2025-06-04 16:49:55 -04:00
kiwina
15b37134c1
fix(clipboard): Clear setTimeout in useCopyToClipboard to resolve memory leak (#4228)
fix: auto patch for clipboard_44
2025-06-04 16:45:51 -04:00
Dicha Zelianivan Arkana
72493ad40d
chore: improve feature request template (#4338) 2025-06-04 15:11:34 -04:00
renovate[bot]
dd295d9349
chore(deps): update dependency eslint-plugin-turbo to v2.5.4 (#4324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 09:34:53 -07:00
renovate[bot]
6933ef1adb
chore(deps): update dependency @types/node to v22.15.29 (#4318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 09:34:19 -07:00
renovate[bot]
04ef897a2f
chore(deps): update dependency @types/node to v20.17.57 (#4310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 09:34:00 -07:00
renovate[bot]
af74d44ada
chore(deps): update dependency @types/node to v18.19.110 (#4309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 09:33:36 -07:00
Chris Estreich
73f39616c3
Improve turbo task dependency declarations (#4323) 2025-06-04 09:32:27 -07:00
Chris Estreich
664346e34b
Automatically deploy to Vercel (#4307) 2025-06-03 16:23:09 -07:00
renovate[bot]
9183f7bf61
chore(deps): update dependency drizzle-kit to ^0.31.0 (#4303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 16:14:02 -07:00
Chris Estreich
857f80494e
New social icons (#4305)
* New social icons

* Update GitHub links
2025-06-03 16:13:37 -07:00
Chris Estreich
0e248a72e3
Add vercel deploy workflows (#4302) 2025-06-03 15:52:31 -07:00
renovate[bot]
935a7c935b
chore(deps): update dependency @types/jest to v29 (#4184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 15:50:48 -07:00
renovate[bot]
65cf8951f3
chore(deps): update dependency lint-staged to v16 (#4192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 15:50:29 -07:00
renovate[bot]
d1c8f834a6
chore(deps): update eslint monorepo to v9.28.0 (#4175)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 15:50:08 -07:00
renovate[bot]
0e39d32135
chore(deps): update dependency ovsx to v0.10.4 (#4280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 15:49:28 -07:00
Chris Estreich
05f682c251
Update RCC types (#4291) 2025-06-03 15:49:04 -07:00
renovate[bot]
b0d650df2c
chore(deps): update dependency typescript-eslint to v8.33.1 (#4173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 15:48:51 -07:00
renovate[bot]
fac9a69271
chore(deps): update dependency knip to v5.59.1 (#4172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 15:48:30 -07:00
KJ7LNW
17b18e3f47
docs: add monorepo management rules (#4296)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-03 15:12:33 -07:00
Chris Estreich
314ccca1f7
DRY GHA workflows (#4294) 2025-06-03 15:12:16 -07:00
Chris Estreich
01eef2be99
Bring back #4128 (#4292) 2025-06-03 14:03:19 -07:00
Sam Hoang Van
6baf28c328
feat(tools): add support for reading PDF, DOCX, and IPYNB files in read_file tool (#4288)
- Allow specific binary formats (.pdf, .docx, .ipynb) to be processed by extractTextFromFile
- Block unsupported binary files with existing "Binary file" notice
- Update tests to cover both supported and unsupported binary file scenarios
- Refactor test mocks for better maintainability and coverage
2025-06-03 11:59:34 -04:00
Chris Estreich
d87f890556
Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
John Richmond
927e210a44
Cloud: add auth logs to the output channel (#4270) 2025-06-02 16:56:27 -07:00
Adam Hill 🦿
c4dab9e9b2
Improves model info detection for custom Bedrock ARNs (#3799)
* Improves model info detection for custom Bedrock ARNs

Adds heuristics to better estimate model capabilities when using unknown or custom model ARNs, including context window and max tokens. Allows user overrides for key model parameters via provider settings, improving flexibility and reliability for non-standard model integrations.

Fixes #3712

* Improves JSON syntax error handling in import flow

Provides more informative error messages for JSON syntax
errors by extracting the error position and formatting it
for clarity during import. Enhances user feedback when
invalid JSON is encountered.

* Fixed failing tests

* Delete pnpm-lock.yaml

* Added Rory's cache fix from PR #3099

PR #3009 has an important fix, alerted to me by @JBBrown

It was a one liner so I pulled it in.

This brings up a question can we merge PR's in the GH UI?

* Add Claude 4 and Opus 4 to modelID's

Kept previous parameters, did not see any changes in those.

* Fixed types being moved and me breaking the merge.

* Fix merge

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-02 19:00:00 -04:00
John Richmond
2fda064ae9
Cloud: bugfixes: log refresh errors and allow logout from inactive-session (#4268)
* Cloud: log session refresh errors

* Cloud: bugfix: allow logouts during the inactive-session state
2025-06-02 15:32:36 -07:00
John Richmond
900de7b401
Cloud: clear cached settings if already logged-out at startup (#4264) 2025-06-02 15:01:35 -07:00
github-actions[bot]
af2e9ed725
Changeset version bump (#4253)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-02 07:48:55 -04:00
Matt Rubens
7a2d1f8912
3.19.3 (#4252) 2025-06-02 07:46:44 -04:00
Taylor Wilsdon
6423fc301c
fix: SSE MCP Invocation (#4251)
* only apply transport.start for stdio

* instructions

* formatting
2025-06-02 07:41:36 -04:00
github-actions[bot]
c67356991e
Update contributors list (#4164)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-06-01 23:26:35 -04:00
github-actions[bot]
64c4ec0a3b
Changeset version bump (#4223)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-01 23:26:16 -04:00
Matt Rubens
1c280962ab
v3.19.2 (#4222)
* v3.19.2

* Update v3.19.2.md
2025-06-01 23:22:40 -04:00
Daniel
0ad6be7e6e
Unify history item UI with TaskItem and TaskItemHeader (#4151)
* refactor: Unify history item UI with TaskItem and TaskItemHeader

Introduces `TaskItem.tsx` and `TaskItemHeader.tsx` to centralize and
standardize the rendering of history entries. `TaskItem` handles the
overall structure for "compact" (Preview) and "full" (HistoryView)
variants. `TaskItemHeader` consolidates all metadata (timestamp, tokens,
cost, cache, file size) into a single, consistent line above the task
content, enhancing visual clarity and reducing UI clutter.

This refactor significantly simplifies `HistoryPreview.tsx` and
`HistoryView.tsx`. Approximately 314 lines of previous rendering logic
were removed from these components and replaced by 242 lines in the new,
focused, and reusable `TaskItem` and `TaskItemHeader` components,
resulting in a net reduction and improved maintainability.

Most importantly, rendering logic happens in one place.

Key UI Changes:
- Metadata (timestamp, tokens, cost, cache, file size) now displayed
  inline on a single header row in both variants.
- Removed explicit "Tokens:" and "API Cost:" labels for a cleaner look.
- Action buttons (Copy, Export, Delete) in the full view are now
  aligned with the metadata header.
- File size is displayed in the header for the "full" variant only.
- Workspace information is no longer displayed in the "compact" preview.

Component Changes:
- Created `webview-ui/src/components/history/TaskItem.tsx` (125 lines)
- Created `webview-ui/src/components/history/TaskItemHeader.tsx` (117 lines)
- Modified `webview-ui/src/components/history/HistoryPreview.tsx` (-65 lines, +3 lines)
- Modified `webview-ui/src/components/history/HistoryView.tsx` (-249 lines, +3 lines)
- Uses `HistoryItem` type for standardized data handling.

Fixes: #4018
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: fix TaskItem and HistoryView test failures after refactor

Fixes test failures that occurred after the major refactoring that introduced
the shared TaskItem component. The original implementation was correct but
the tests needed updates to match the new component structure.

- Add data-testid attributes to TaskItemHeader for reliable test selection
- Update TaskItem.test.tsx assertions to use new test IDs for tokens/cache
- Fix Checkbox import path in TaskItem.tsx (ui/checkbox vs ui)
- Add missing mocks for lucide-react and Checkbox in HistoryView.test.tsx
- Update HistoryView test assertions to use correct selectors
- Ensure all 19 history component tests pass successfully

The refactoring reduced code duplication by ~250+ lines while maintaining
functionality, and these test fixes ensure the quality gates remain intact.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* ui: move token and cost info from header to dedicated footer

Create a new TaskItemFooter component that displays token and cost information
with different styles for compact and full views. Move the CopyButton and
ExportButton from header to footer in full view. Adjust file size display
positioning in the header for better visual alignment.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update history component tests to match implementation

Update data-testid attributes in HistoryView and TaskItem tests to match the
actual implementation in TaskItemFooter component. The tests were looking for
generic "tokens-in" and "tokens-out" attributes, but the implementation uses
variant-specific attributes like "tokens-in-footer-full".

Also added mocks for CopyButton and ExportButton components to resolve
"Element type is invalid" errors during test rendering.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* Move cache information from header to footer to be consistent with cost/token data

* Fix ESLint warnings: remove unused imports and variables

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-01 23:14:20 -04:00
Tony Zhang
662d6abfbd
fix: optimize ChatRowContent layout and styles (#4205)
* fix: optimize ChatRowContent layout and styles

* adjust ui calc performance
2025-06-01 23:09:29 -04:00
xyOz
eb9c4aa03d
releasing memory in apply diff (#4193) 2025-06-01 23:08:46 -04:00
KJ7LNW
d079cb11ff
Fix directory link handling in markdown (#3690)
fix: improve directory link handling in markdown

Enhance the openFile function to better handle directory links in markdown:
- Add support for resolving ./SimpleName paths to home directory if not found in workspace
- Improve path resolution by checking multiple potential locations
- Ensure directories are properly revealed in the Explorer view
- Attempt to expand directories after revealing them

Fixes: #3686

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-01 22:59:17 -04:00
Matt Rubens
caf54dcc3d
Run prettier on src/ (#4221) 2025-06-01 22:56:47 -04:00
qingyuan1109
98711d45cf
add support for mcp server instructions (#3260)
* add support for mcp server instructions

* Update McpView.tsx

* feat(mcp): add instructions field to MCP localization files and update UI to display instructions

---------

Co-authored-by: huixin <yuanhx@cffex.com.cn>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-01 22:28:27 -04:00
Matt Rubens
a44daed595
Fix typo in tool use prompt (#4220) 2025-06-01 22:26:00 -04:00
KJ7LNW
b39080c8c8
test: add command line test for multi-search-replace (#2220)
Adds a new test case that allows testing the multi-search-replace diff strategy directly from the command line by passing source and diff files as arguments.

This enables easier debugging and manual testing of the diff application functionality without needing to modify test code for each test case.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-01 22:14:53 -04:00
Noritaka Kobayashi
7c4c68e424
chore: fix typos in comment-out (#4095)
* chore: fix typos in comment-out

* chore: revert unrelated fixes
2025-06-01 22:13:42 -04:00
Matt Rubens
0f00982a2b
Revert "Revert "fix: prevent dump of an entire file into the context on user edit "" (#4219)
Revert "Revert "fix: prevent dump of an entire file into the context on user …"

This reverts commit 98f5542021.
2025-06-01 22:05:20 -04:00
Taylor Wilsdon
7e125f86c6
feat: Add support for Streamable HTTP Transport MCP servers (#4210)
* Implement support for streamable-http transport type mcp servers

* add streamable-http mock in same fashion as sse - which does not seem to currently be actually leveraged

* rename mock to resolve kebabcase vs camelCase

* fix (seemingly unrelatd) test failure in writeToFileTool.test.ts

* fix tests
2025-06-01 21:54:38 -04:00
Matt Rubens
7cd89edaa4
Upgrade Node.js to v20.19.2 for security enhancements (#4212)
This commit upgrades Node.js version from v20.18.1 to v20.19.2.

This version incorporates security patches that address known
vulnerabilities, improving the overall security posture.

Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
2025-06-01 17:02:44 -04:00
kiwina
03754f615d
Virtuoso footer re-rendering issue (#4209)
The Virtuoso component has a inner footer component that serves only as a bottom spacer, after investigation this component keeps re-rendering, beccause its unnecessary it was removed and the spaccing added to the component itselve
2025-06-01 16:52:17 -04:00
Matt Rubens
98f5542021
Revert "fix: prevent dump of an entire file into the context on user edit " (#4211)
Revert "fix: prevent dump of an entire file into the context on user edit  (#…"

This reverts commit 5e50c5543b.
2025-06-01 16:51:32 -04:00
Mattias Michaux
dca1076bdb
Add cached read and writes to stats and cost calculation for LiteLLM provider (#4206)
* Add cached read and writes to cost calculation for LiteLLM

* Fixed property issue
2025-06-01 16:35:17 -04:00
John Richmond
3fc05adc17
Better handling of cloud login/out with multiple workspaces (#4196)
* Move client token + session id to shared secret

* Add secret event handling

* Update packages/cloud/src/AuthService.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-01 10:01:49 -04:00
KJ7LNW
5e50c5543b
fix: prevent dump of an entire file into the context on user edit (#3654)
* refactor: Add pushToolWriteResult method to DiffViewProvider

Previously, each tool file contained duplicate code for formatting file write
responses and conditionally sending user_feedback_diff messages. This led to
inconsistent implementations and made changes difficult to maintain.

This refactoring centralizes the response formatting and messaging logic in the
DiffViewProvider class, which now:
- Stores results from saveChanges() in class properties
- Only sends user_feedback_diff when user edits exist
- Configures XMLBuilder with no indentation for cleaner output

Tool files now make a single method call instead of duplicating logic.

Fixes: #3647
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: conditionally show user edits message in file write response

Make the 'If the user's edits have addressed part of the task...' message
conditional based on whether there are actual user edits. This prevents
showing irrelevant guidance when no user edits were made to the file.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-01 09:55:40 -04:00
Matt Rubens
e40a4c96ed
Fix the label of the OpenAI-compatible API keys (#4191) 2025-05-31 22:18:23 -04:00
KJ7LNW
53f94a7852
fix: prevent start_line/end_line in apply_diff REPLACE (#4015)
Adds validation to ensure that `:start_line:` and `:end_line:`
markers do not appear in the REPLACE section of an apply_diff
operation. These markers are only valid within the SEARCH section.

This change prevents potential errors and confusion when users
might inadvertently include these markers in the replacement content.
New tests have been added to verify this validation.

Fixes: #4013

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-31 16:06:41 -04:00
renovate[bot]
ff422b12f7
fix(deps): update dependency lucide-react to ^0.511.0 (#4182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-31 16:04:43 -04:00
renovate[bot]
be2d83b9a4
chore(deps): update dependency globals to v16.2.0 (#4169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 21:22:43 -07:00
Matt Rubens
02b4414d7d
Ignore @vscode/vsce in renovate (#4170) 2025-05-31 00:22:14 -04:00
renovate[bot]
1febdbc2e5
fix(deps): update nextjs monorepo to v15.3.3 (#4166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 21:12:30 -07:00
renovate[bot]
e82a3baf21
chore(deps): update turbo monorepo to v2.5.4 (#4165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 21:12:18 -07:00
Chris Estreich
d10b359809
Add mode to task message event (#4167) 2025-05-30 21:05:29 -07:00
renovate[bot]
97451b5f72
chore(deps): update dependency esbuild to v0.25.5 (#4163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 20:17:14 -07:00
renovate[bot]
0505174644
chore(deps): update dependency @vscode/test-cli to ^0.0.11 (#4162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 20:16:59 -07:00
renovate[bot]
b03d6d0ae3
chore(deps): update dependency @types/node to v18.19.110 (#4158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 20:16:44 -07:00
github-actions[bot]
258755bb7a
Update contributors list (#4085)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-30 22:50:34 -04:00
renovate[bot]
7e0354d531
chore(deps): update node.js to v20.19.2 (#4159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 22:48:46 -04:00
github-actions[bot]
f5ef3650bf
Changeset version bump (#4149)
* changeset version bump

* Update package.json

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-30 22:26:39 -04:00
Matt Rubens
c86128bbcf
v3.19.1 (#4161) 2025-05-30 22:22:46 -04:00
kcwhite
a4c91c65b3
Adding support for custom VPC endpoints when using AWS Bedrock models (#3947)
* feat: Add custom VPC endpoint support for AWS Bedrock

* fix: Fix TypeScript error in Bedrock.tsx

* fix: Update VPC endpoint UI to match Cline's implementation

* Fix AWS Bedrock VPC endpoint UI implementation

- Changed checkbox label to 'Use custom VPC endpoint' to match Cline

- Fixed conditional rendering to show text field when checkbox is checked

- Ensured placeholder text appears correctly

- Maintained proper styling for consistency

* Fix AWS Bedrock VPC endpoint UI implementation to match Cline exactly

- Added state variable to track checkbox selection

- Fixed conditional rendering to show/hide text field based on checkbox state

- Maintained proper styling and placeholder text

* Fix AWS Bedrock VPC endpoint UI implementation with proper event handling

- Fixed checkbox onChange handler to accept boolean directly instead of event object

- Added unit tests to verify the behavior

- Maintained proper styling and placeholder text

* Update Bedrock VPC endpoint tests with proper test IDs

* Improve AWS Bedrock VPC endpoint text field alignment

- Removed left margin from text field to align with checkbox

- Maintained proper styling and placeholder text

* Preserve AWS Bedrock VPC endpoint URL when toggling checkbox

- Added awsBedrockEndpointEnabled field to schema

- Modified Bedrock provider to check both endpoint URL and enabled flag

- Updated UI to preserve endpoint URL when checkbox is toggled

- Maintained proper alignment with checkbox

* Implement AWS Bedrock Custom VPC Endpoint functionality

* fix: update ApiConfiguration to ProviderSettings in Bedrock tests and regenerate types

* fix: update all instances of ApiConfiguration to ProviderSettings in Bedrock tests

* Fixed broken unit test

* Add changeset for Bedrock VPC endpoint support

* informative placeholder

* Bug fixes

* Fixed failing tests

* Add example URLs to Bedrock VPC endpoint section and update tests

* Fix truncated test assertion in Bedrock.test.tsx that was breaking the UI

* Refactor mock components in Bedrock.test.tsx for improved data-testid handling

* feat(i18n): add VPC endpoint translations for AWS Bedrock settings

* test: update Bedrock component tests for internationalized strings

---------

Co-authored-by: Kevin White <kcwhite@ancestry.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-05-30 22:19:34 -04:00
renovate[bot]
72d06f5be4
chore(deps): update dependency @dotenvx/dotenvx to v1.44.1 (#4157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 21:26:51 -04:00
Matt Rubens
4a13d4b475
Update renovate.json
Try to get it to run even though the repo is a fork
2025-05-30 21:02:47 -04:00
cannuri
42f34ae9a5
Fix link to CONTRIBUTING.md in Feature Request Template (#4152)
fix link in feature request template
2025-05-30 20:31:22 -04:00
Sam Hoang Van
0a06885305
feat(ConcurrentFileReadsExperiment): improve logic for enabling/disabling and add tests (#4154)
* feat(ConcurrentFileReadsExperiment): improve logic for enabling/disabling and add tests

* fix: ensure slider always displays valid value (min 2) for concurrent file reads

- Fix issue where slider could display values below minimum when enabled with maxConcurrentFileReads <= 1
- Add test cases for edge cases (value 0 and 1)
- Ensure UI always shows at least the minimum value of 2

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-05-30 20:25:17 -04:00
Chris Estreich
bb9749888e
Publish @roo-code/types v1.23.0 (#4155) 2025-05-30 14:59:06 -07:00
Chris Estreich
9e3b0fd870
Move provider data into @roo-code/types (#4153) 2025-05-30 14:54:48 -07:00
Canyon Robins
da63d1e590
[Condense] Fix bug where bedrock requires a user message first (#4150)
* [Condense] Fix bug where bedrock requires a user message first

* update tests

* Revert previous commits

* always prepend user message

* fix tests

* changeset
2025-05-30 17:25:05 -04:00
Sam Hoang Van
9ba0cd5c7a
feat(read_file): enhance file reading capabilities with multi-file support and improved parameter handling (#2886)
* feat(read_file): enhance file reading capabilities with multi-file support and improved parameter handling

fix(read_file): change return to continue on approval rejection in readFileTool

Enhance readFileTool with improved error handling and validation

- Introduced a FileEntry interface for better type management.
- Added validation for start_line and end_line to ensure proper ranges.
- Implemented RooIgnore validation before processing files.
- Enhanced error handling with dedicated functions for file and global errors.
- Streamlined file reading logic to handle binary files, definitions-only mode, and line thresholds more effectively.
- Improved user feedback for empty files and read limits.

chore: update Jest snapshot for system prompt tool usage

Refactor read-file tool to support XML input format and multiple line ranges

- Updated the `getReadFileDescription` function to reflect new XML structure for file reading requests.
- Modified `readFileTool` to parse XML input, allowing multiple line ranges for each file.
- Removed old parsing logic that handled line ranges as separate parameters.
- Implemented validation for line ranges and ensured proper error handling for file access.
- Adjusted approval messaging to accommodate new line range format.
- Enhanced error handling to provide consistent feedback for file read errors.

update from KJ7LNW  comment

feat: add maxConcurrentFileReads setting to enhance read_file tool performance

feat: enhance readFileTool with XML parsing and file processing state tracking

feat: enhance readFileTool to include user feedback handling and processing state tracking

chore: clean up read_file tool documentation by removing extra newlines

feat: update read_file tool tests to handle user feedback and approval states

feat: add tests for feedback message formatting and XML special character handling in read_file tool

Implement code changes to enhance functionality and improve performance

feat: increase max concurrent file reads and adjust slider range in settings

feat: increase default max concurrent file reads from 5 to 15 across settings and context management

fix(read_file): enhance legacy path handling and remove duplicate parameters

feat(read_file): enhance file description handling and add support for multiple files in messages

done poc for new ux

idea 1

* fix the test

* fix: normalize locale file formatting to use tabs

- Applied prettier formatting to all locale JSON files
- Fixed mixed indentation (spaces/tabs) to use consistent tabs
- Aligns with project's prettier configuration

* fix(settings): improve checkbox handling and slider configuration in ConcurrentFileReadsExperiment

* fix(read_file): enhance description to include partial reads support

* fix(read_file): update description for partial reads and improve example clarity

* fix: suggestions

* fix: translations

* test: update system prompt snapshots for multi-file read tool

* fix: remove batch permission question from readFile tool translations

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-05-30 17:09:42 -04:00
Ryan Pfister
177e7a8eb9
Fix UTF-8 encoding in ExecaTerminalProcess (#3989)
* Fix UTF-8 encoding issue in integrated terminal

- Set LANG and LC_ALL environment variables to en_US.UTF-8
- Resolves Encoding::CompatibilityError in Ruby/CocoaPods commands
- Ensures consistent UTF-8 encoding across all terminal sessions

This change addresses the terminal encoding issue where commands like
'pod install' would fail due to incompatible character encoding. The
fix ensures all integrated terminals are initialized with proper
UTF-8 locale settings.

* Add comprehensive unit tests for ExecaTerminalProcess UTF-8 encoding fix

- Tests verify LANG and LC_ALL are set to en_US.UTF-8
- Tests ensure existing environment variables are preserved
- Tests confirm UTF-8 settings override conflicting locale values
- Addresses PR feedback requesting test coverage for encoding fix
- All 7 tests passing with proper mocking of execa and ps-tree
2025-05-30 16:24:04 -04:00
Matt Rubens
116a50f7b4
Pass headers to SSE (fixes #2705) (#4148)
* Pass headers to SSE

* Add changeset
2025-05-30 15:34:19 -04:00
Christiaan Arnoldus
dabb95f2df
bugfix: Set sidebar name (#4146)
* Set the sidebar name

* Have Roo Code update its own translations
2025-05-30 09:33:15 -04:00
pugazhendhi-m
934c83d3d9
Add task metadata to Unbound API requests (#4144)
* Add structured task metadata to Unbound API requests

* Moves origin app to a constant

---------

Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-05-30 07:40:35 -04:00
Matt Rubens
78769f187c
Revert "Add roocode.com website to monorepo" (#4145)
Revert "Add roocode.com website to monorepo (#4128)"

This reverts commit 0f22eabb1b.
2025-05-30 07:37:47 -04:00
pugazhendhi-m
7ee90f916f
Refactor model cache breakpoint logic to use model info in Unbound (#4137)
Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-05-29 23:33:12 -07:00
Chris Estreich
0f22eabb1b
Add roocode.com website to monorepo (#4128)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-29 22:35:14 -07:00
Canyon Robins
6762b579b2
[Evals] Headless evals with Docker (#4121)
* [Evals] Try to resurrect headless evals with Docker

* fixes; now it runs

* rm

* remove commented out files

* remove trailing space

* nit

* throw error on concurrency attempt
2025-05-29 15:36:11 -07:00
github-actions[bot]
0fd8105cfb
Changeset version bump (#4086)
* changeset version bump

* Update package.json

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-29 18:33:52 -04:00
Chris Estreich
699b0c051b
Appease changests (#4126) 2025-05-29 15:27:01 -07:00
Matt Rubens
af5b1b402d
v3.19.0 (#4109) 2025-05-29 18:15:23 -04:00
John Richmond
838256a7c1
Add roo cloud settings (#4117)
* Add roo cloud settings

First setting controls logging task messages.

* Update packages/cloud/src/TelemetryClient.ts

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Fix typo

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-29 15:10:34 -07:00
Chris Estreich
f3e124e083
Fix deeplinks again (#4125) 2025-05-29 14:49:24 -07:00
Chris Estreich
b0821b3148
Pass editor deeplink URI to app.roocode.com (#4120) 2025-05-29 13:45:06 -07:00
Matt Rubens
8de608a0df
Account tab cleanup (#4119) 2025-05-29 16:41:19 -04:00
John Richmond
1801af26b7
Cleanup unused class (#4115)
Leftover from a rename, I think.
2025-05-29 11:55:26 -07:00
Chris Estreich
170fde848a
Add appName to TelemetryProperties (#4111) 2025-05-29 10:09:40 -07:00
Canyon Robins
3139971f4a
[Condense] Add condense button to expanded task view (#4110) 2025-05-29 09:37:49 -07:00
Matt Rubens
337b5dac88
Condensing fixes (#4107)
* Add missing telemetry types

* Give IconButton the pointer cursor when enabled

* Change context condensing to use a Lucide icon

* Mock Lucide icons globally
2025-05-29 10:45:13 -04:00
ChuKhaLi
c03b9f9d25
Update codebase search description to emphasize English query require… (#4089)
* Update codebase search description to emphasize English query requirement

* refactor: improve the wording

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-05-29 09:03:20 -04:00
Ruakij
201fb3b5a2
Fix: Ensure write_to_file creates empty files when content is empty (#3871)
* Fix #3650: Allow empty content in write_to_file tool

Change validation from !newContent to newContent === undefined
to allow empty strings while still rejecting undefined values.

* Add unit tests for writeToFileTool
2025-05-29 08:52:26 -04:00
zeo
0ef52c8cd7
Add DeepSeek R1 0528 to the Chutes provider (#4105)
New model for the Chutes provider, surpasses the old DeepSeek R1
and is free so it is also set to be the default model now.
2025-05-29 06:41:05 -04:00
Chris Estreich
9d9880a74b
Fix Roo Code Nightly package.json generation (#4098) 2025-05-28 22:23:12 -07:00
John Richmond
d4c00e58ed
Simplify CloudService callbacks (#4097)
- Remove AuthService callbacks, add user-info event
- Store userInfo on AuthService and fetch it when sessions go active
- Simplify CloudService callbacks to just stateChanged
- Add cloudUserInfo to state and remove authenticatedUser message
2025-05-28 21:15:48 -07:00
Chris Estreich
7820b7517a
Roo Code Cloud (#4069)
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-05-28 20:43:30 -07:00
Matt Rubens
4cf240f3db
Check rooignore for insert_content and search_and_replace (#4094) 2025-05-28 22:36:19 -04:00
xyOz
aa6265462e
@directory not respecting .rooIgnore Fix (#4075)
* Issue fixed.

* Update src/core/mentions/index.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update index.ts

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-28 21:58:50 -04:00
Canyon Robins
70e753ebb1
[Condense] Move condense button out of expanded task menu (#4093)
* [Condense] Move condense button out of expanded task menu

* tests

* fix test

* fix test again

* tailwind css
2025-05-28 18:58:08 -07:00
Matt Rubens
3ee7786a1b
Update AWS regions to include Spain and Hyderabad (solves #3862) (#4042)
Update AWS regions to include Spain and Hyderabad
2025-05-28 21:41:20 -04:00
Canyon Robins
4804e3b3b9
[Condense] Move condense settings out of experimental and defualt enable (#4088)
* [Condense] Move condense settings out of experimental and defualt enable

* tests

* wip

* Update translations

* fixes

* more tests

* changeset

* wip

* update translations

* fix more translations
2025-05-28 17:05:39 -07:00
Matt Rubens
12669e1e64
Turn Prompts tab into Modes tab and move support prompts to Settings (#4078) 2025-05-28 17:47:37 -04:00
Christiaan Arnoldus
b7f606db34
Improve POSIX shell compatibility in pre-push hook (#4053)
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
2025-05-28 14:46:40 -07:00
Christiaan Arnoldus
57038b75a0
Fix menu breaking when Roo is moved between primary and secondary sidebars (#4045)
* Fix menu breaking when Roo is moved between primary and secondary sidebars

Hello Roo Team! We changed this on the Kilo side and thought it might be useful to you!

The menu buttons (Settings etc.) stop working when Roo is moved between the primary and secondary sidebars.
This is because ClineProvider is prematurely disposed in that case
This change prevents the ClineProvider from being disposed when hosted in a sidebar.
It should still be disposed when hosted in a tab, because they have their own ClineProvider instance.

Found while investigating https://github.com/Kilo-Org/kilocode/issues/502.

* refactor: improve logging

* fix: extra bracket

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-05-28 17:07:03 -04:00
Canyon Robins
2e5a1a8e1d
[Condense] Skip condense and show error if the context grows (#4061)
* [Condense] Skip condense and show error if the context grows

* update tests

* changeset

* nit: error should be nonempty

* update translations

* add more errors

* add more test cases

* update translations

* pipe error back from truncate code

* add condense_context_error ClineMessage

* fixes

* translations
2025-05-28 15:55:07 -04:00
github-actions[bot]
5fa2cd2055
Update contributors list (#4044)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-28 15:07:17 -04:00
மனோஜ்குமார் பழனிச்சாமி
5c4280c103
bugfix: Update PAGER env for Windows compatibility in Terminal (#3986)
Update PAGER environment variable for Windows compatibility in Terminal class
2025-05-28 15:05:00 -04:00
xyOz
2c58caeb59
Chat input clearing during running task (#4084)
Fixes bug
2025-05-28 14:59:02 -04:00
Sacha Sayan
145ce6e7b5
Lock mermaid diagram sizes. (#3514) 2025-05-28 13:45:52 -04:00
Adrian Belmans
5d33d4c3ff
Mcp server instructions update fix (#3699)
* Refactor weather server example implementation inside of prompt to use new MCP SDK features

* update NPM install instructions as well

* docs: minor improvements

* refactor: improve readability on mcpHub check

* fix: add missing bracket

* refactor: add interfaces

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-05-28 13:27:01 -04:00
ChuKhaLi
171307c2dc
fix: ensure correct precedence for roleDefinition and customInstructions when generating system prompt (#3791)
* fix: ensure correct precedence for roleDefinition and customInstructions

* Refactors mode selection logic for custom modes

Refactors the mode selection logic to prioritize custom modes
2025-05-28 13:23:49 -04:00
Sam Hoang Van
e8b4dda922
feat: Make checkpoint on new task (#3834)
* feat: Make checkpoint on new task

Ensures that invoking the `newTaskTool` always creates a checkpoint, even if no files have changed. This provides a consistent state snapshot before a sub-task is initiated.

* refactor: remove delay

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-05-28 13:13:42 -04:00
Sam Hoang Van
acd51c5120
fix(webview): resolve memory leak in ChatView by stabilizing callback props (#3926)
* fix(webview): resolve memory leak in ChatView by stabilizing callback props

- Stabilize handleSendMessage using clineAskRef to prevent frequent re-creation
- Stabilize toggleRowExpansion by extracting handleSetExpandedRow and managing dependencies
- Re-integrate scrolling logic into useEffect hook to avoid destabilizing callbacks
- Add everVisibleMessagesTsRef to reduce unnecessary ChatRow remounts by Virtuoso
- Update onToggleExpand signature to accept timestamp parameter for better stability
- Remove diagnostic console.log statements used for debugging callback changes

These changes address detached DOM elements memory leak caused by frequent
callback re-creation triggering unnecessary component re-renders and preventing
proper garbage collection of chat message DOM nodes.

* comment correct TTL

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-05-28 13:11:38 -04:00
Trung Dang
dde71d24e4
feat(McpHub): inject env vars on whole mcp config (#3970)
* types(utils/config): improve return type infer

* feat(McpHub): inject env variable on whole mcp config

* fix: check for undefined configInjected

* refactor: improve type assertion

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-05-28 13:10:40 -04:00
Matt Rubens
1365800474
Fix centering of the about text (#4080) 2025-05-28 11:55:00 -04:00
Matt Rubens
3bfe2a3873
Update CHANGELOG.md 2025-05-28 11:24:06 -04:00
Chris Estreich
39d0f68659
Improve configuration for npm publish of @roo-code/types (#4062) 2025-05-27 22:10:41 -07:00
Chris Estreich
59f1d4c529
Add import tests for @roo-code/types, fix the build (#4060) 2025-05-27 20:43:59 -07:00
Chris Estreich
6370131364
Publish @roo-code/types to npm (#4059) 2025-05-27 19:21:27 -07:00
github-actions[bot]
e1b2a260ca
Changeset version bump (#4057)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-27 13:20:03 -07:00
Chris Estreich
ec486374e7
Try adding a version to @roo-code/types (#4056) 2025-05-27 13:16:00 -07:00
slytechnical
73d162305a
Added a hardcoded list of computer use models for litellm as a fallba… (#4052)
Added a hardcoded list of computer use models for litellm as a fallback for older litellm versions
2025-05-27 14:58:20 -05:00
Chris Estreich
343f29b432
Improve the prompt for the "modes" e2e test (#4055) 2025-05-27 12:56:46 -07:00
Chris Estreich
1441112c37
v3.18.5 (#4054) 2025-05-27 12:41:54 -07:00
Chris Estreich
ed24f65b30
Fix Posthog by correctly copying .env in the build process (#4049) 2025-05-27 11:19:21 -07:00
Chris Estreich
f37e6f6fce
Fix Requesty extended thinking (#4051) 2025-05-27 11:16:39 -07:00
Christiaan Arnoldus
dfacdb319b
Improve zh-TW Traditional Chinese locale (#4048)
Hello Roo Team! We received this contribution on the Kilo side and thought it might be useful to you!

These changes were originally submitted by a (presumably) native speaker of the language: https://github.com/Kilo-Org/kilocode/pull/516
2025-05-27 12:22:28 -04:00
Daniel Trugman
4ea75629e9
Add thinking to Requesty provider (#4041) 2025-05-27 11:16:25 -04:00
slytechnical
9d4b4ebff0
Added support for dynamic litellm supports_computer_use (#4027) 2025-05-27 06:54:57 -04:00
Chris Estreich
82f9e9e47c
Fix the build_extension step of the evals setup script (#4028) 2025-05-26 22:05:47 -07:00
Chris Estreich
057ac3e428
Add dependsOn for watch:esbuild script (#4026) 2025-05-26 22:00:39 -07:00
Chris Estreich
b7d1c9ae4a
More elegant way to generate arrays of keys from a type with full type safety (#4025) 2025-05-26 21:27:10 -07:00
Chris Estreich
1384077495
Telemetry refactor (#4021)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-26 20:22:54 -07:00
KJ7LNW
1e5bf74136
fix: Correct path resolution for .vite-port file in ClineProvider (#4007)
The ClineProvider was looking for the .vite-port file in the wrong location.
Updated the path resolution to correctly point to the project root where
the Vite development server creates the file.

Fixes: #4006

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-26 16:25:39 -04:00
Chris Estreich
e66136f1aa
Add a new @roo-code/types package and use it everywhere (#3912) 2025-05-26 12:06:45 -07:00
Matt Rubens
ce6cc6fa97
Adjust the read_file prompt based on whether partial reads are enabled (#3995) 2025-05-26 14:55:53 -04:00
github-actions[bot]
61a381af55
Changeset version bump (#3983)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-25 23:02:08 -04:00
github-actions[bot]
5bf46542cd
Update contributors list (#3961)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-25 22:57:37 -04:00
Matt Rubens
fd84d48400
v3.18.4 (#3984) 2025-05-25 22:56:44 -04:00
Matt Rubens
7509be8d41
Remove the hardcoded line breaks in the about (#3982) 2025-05-25 22:49:31 -04:00
Daniel
6a8fb599c1
Fix settings saving logic to ensure the saved settings are used (#3976)
* feat: Enhance configuration change handling and model dimension checks

* fix: Update embedder creation to use modelId from config

* test: Add unit tests for ServiceFactory embedder and vector store creation

* test: Add comprehensive restart detection tests for configuration changes

* feat: Implement model ID selection logic for provider changes in CodeIndexSettings

* fix: Initialize configuration on constructor to prevent false restart triggers

* fix: Enhance API key handling and restart logic in CodeIndexConfigManager

* fix: Improve handling of external settings changes and automatic indexing in webviewMessageHandler

* fix: Ensure handleExternalSettingsChange only restarts service when manager is initialized

* refactor: remove console logs

* fix: Load configuration during initialization to ensure correct state and restart requirements
2025-05-25 18:25:20 -04:00
Daniel
977fa26e01
Batch code segments when using ollama to report progress (#3968)
fix: batch code segments when using ollama
2025-05-25 17:11:01 -04:00
Daniel Trugman
78b7455a05
Add metadata to create message (#3832) 2025-05-25 16:14:40 -04:00
Ruakij
503c7585de
Fix: Wrongfully clearing input on autoApprove (#3956) 2025-05-25 09:59:58 -04:00
avtc
ad2ff932fa
Fix handling BOM when user Rejects apply_diff (#3960)
Related issue is #1483, related pull request is #1500 - but it looks like it missed the revert of proposed diff case
2025-05-25 09:14:54 -04:00
Peter Dave Hello
6ebc95d2a8
Update xaiModels and xaiDefaultModelId in src/shared/api.ts (#3957)
* Add non-beta versions of `grok-3` models to the `xaiModels` object
* Change the default `xaiDefaultModelId` from `grok-3-beta` to `grok-3`
2025-05-25 09:10:46 -04:00
ChuKhaLi
fe9137b14e
Fix: Correct spawnSync parameters for pnpm check in bootstrap.mjs (cl… (#3952) 2025-05-24 21:19:52 -07:00
github-actions[bot]
8da985849f
Update contributors list (#3838)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-24 20:02:34 -04:00
Matt Rubens
83020c74ec
Update CHANGELOG.md 2025-05-24 20:00:56 -04:00
github-actions[bot]
62d1807f19
Changeset version bump (#3894)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-24 19:56:59 -04:00
Matt Rubens
80250cdf47
v3.18.3 (#3946) 2025-05-24 19:50:25 -04:00
Chris Estreich
77a5b6c06d
Fix reasoning budget for Gemini 2.5 Flash on OpenRouter (#3945)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-24 19:46:42 -04:00
Daniel
68b60a2749
Add unsaved settings warning to codebase indexing settings view (#3944) 2025-05-24 18:51:15 -04:00
Hannes Rudolph
a8922e0c96
Improve tool descriptions to guide proper file editing tool selection (#3943)
* Improve tool descriptions to guide proper file editing tool selection

### Problem
LLMs were frequently choosing `write_to_file` for file edits instead of more appropriate tools like `apply_diff`, `insert_content`, or `search_and_replace`. This was likely because the tool descriptions made it seem like files needed to be reconstructed rather than edited.

### Changes Made

**write_to_file tool description:**
- Clarified primary use cases: **creating new files** or **complete rewrites when intentionally required**
- Changed opening from "write full content" to "write content" to reduce emphasis on full reconstruction
- Updated parameter description to be more specific about when complete content is needed

**apply_diff tool description:**
- Enhanced description to emphasize "targeted modifications" and "precise, surgical edits"
- Clarified that multiple search/replace operations can be performed in a single call
- Removed misleading "only a single operation allowed" restriction
- Better positioned as the preferred tool for making several targeted changes efficiently

### Impact
These changes should guide LLMs toward:
- Using `write_to_file` primarily for new files or intentional complete rewrites
- Using `apply_diff` for targeted edits and modifications to existing files
- Better understanding of when each tool is most appropriate

The updated descriptions maintain necessary technical details while providing clearer guidance on tool selection without being overly prescriptive.

* Update src/core/prompts/tools/write-to-file.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update src/core/prompts/tools/write-to-file.ts

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Update src/core/prompts/tools/write-to-file.ts

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-24 18:35:27 -04:00
Daniel
20e7f118bc
Add handling for external settings changes (#3942) 2025-05-24 18:05:28 -04:00
Daniel
be9195c1ee
Fix: Use EMBEDDING_MODEL_PROFILES as default in the state (#3939)
fix: update codebaseIndexModels to use EMBEDDING_MODEL_PROFILES as default
2025-05-24 16:39:34 -04:00
Daniel
def222f501
Enhance error handling for collection checks on initialize (#3937) 2025-05-24 16:23:43 -04:00
Matt Rubens
b3962246d3
Fix codebase search results string (#3938) 2025-05-24 16:23:28 -04:00
Matt Rubens
2053d27d63
Default to full file reads (#3936) 2025-05-24 15:17:48 -04:00
Sam Hoang Van
e86c0a165d
fix(FileContextTracker): mark file as edited by Roo when added to context tracker (#3499) 2025-05-24 15:15:06 -04:00
Matt Rubens
6efa6746d6
Add a learn more link for indexing (#3935) 2025-05-24 15:02:37 -04:00
Matt Rubens
ca85162235
Handle partial messages in the codebase search tool (#3934) 2025-05-24 14:33:29 -04:00
Daniel
c357daf922
Fix Qdrant URL input default value (#3933) 2025-05-24 14:29:35 -04:00
Daniel
448dc2be37
Fix Qdrant initialization logic when vector size changes (#3925) 2025-05-24 13:12:13 -04:00
Matt Rubens
4abadd877b
Default to Sonnet 4 (#3928) 2025-05-24 13:06:25 -04:00
DEV×PAIN
a734aca02e
fix(mcp): fix error loading config when running MCP Server with npx and bunx (#3922) 2025-05-24 09:07:05 -07:00
Matt Rubens
b655c0d2e9
Make experimental settings more visually consistent (#3923) 2025-05-24 10:38:13 -04:00
Shariq Riaz
ff50a47b5b
feat: enable prompt caching for gemini-2.5-flash-preview-05-20 (#3907)
* feat: enable prompt caching for gemini-2.5-flash-preview-05-20

* feat: Add cache pricing for gemini-2.5-flash-preview-05-20 models
2025-05-24 07:38:45 -04:00
Noritaka Kobayashi
472943281f
refactor: simplify object assignment & use startsWith (#3891) 2025-05-23 23:48:55 -07:00
Chris Estreich
1366ba0115
Preserve model settings when selecting a specific OpenRouter provider (#3915) 2025-05-23 23:22:41 -07:00
Chris Estreich
2cfb96692d
Fix o1-pro on OpenRouter (#3914) 2025-05-23 23:11:41 -07:00
Daniel
61e122dc34
Codebase indexing (Clean history) (#3137)
* feat: apply changes from local main

* fix: add missing types

* feat: deduplicate code blocks coming out of parser

* feat: implement a cache manager to improve cache handling

* refactor: move code index service initialization to extension and remove await from indexing process

* fix: return undefined instead of throwing if no workspace is detected

* feat: allow auto approve if it is active for read tools

* refactor: improve UI of the results and allow opening the ranges directly in the editor

* refactor: use dependency injection to improve performance

* feat: implement result filtering by directory path

* refactor: centralize path normalization logic

* refactor: remove unnecessary barrel file

* refactor: prevent restarting the service if no settings change

* fix: the indexing process should never be awaited

* refactor: cleanup unused method

* refactor: remove batch limits for ollama

* refactor(parser): simplify method signatures and improve chunking logic

- Remove redundant min/max chars parameters
- Add better handling for oversized lines
- Improve chunking logic with segment handling
- Clean up method signatures and parameter ordering

* fix(settings): make select inputs full width in CodeIndexSettings

* refactor: increase max list file limit

* feat(ui): improve codebase search result display formatting

* test: add tests for cache and config managers

* test: create unit tests for parser and scanner

* feat(parser): improve segment hash uniqueness

- Added startCharIndex to segment hash calculation in _chunkTextByLines
- Track character position when splitting oversized lines
- Ensures unique identification of segments from same line

* feat(file-watcher): add error logging and optional ignoreController injection

* fix: allow getting the state if the service is disabled

* fix: set the embedding models when cline provider is initialized

* feat: use zod to validate form

* feat(file-watcher): enhance file watcher for batched deletions and improved vector store interactions

Improve file watcher to handle file deletions in batches and optimize vector store operations.

* feat(CodeIndexSettings): move OpenAI key input to a conditional rendering block

* feat(CodeIndexSettings): update button visibility based on indexing status

* feat(file-watcher): refactor vscode mock and enhance file watcher tests

* fix(CodeIndexManager): do not await startIndexing on configuration changes

* feat(types): add codeIndexOpenAiKey and codeIndexQdrantApiKey to ProviderSettings and IpcMessage

* feat(FileWatcher): enhance file processing with batch operations and new status handling

* fix(webviewMessageHandler): handle errors during CodeIndexManager initialization

* refactor(CodeIndexManager): streamline service creation by consolidating into a single method

* feat(CodeIndex): implement minimum search score configuration and update search methods

* refactor(CodeIndexSettings): replace ApiConfiguration with ProviderSettings and update related methods

* refactor: move contants to centralized file

* refactor(constants): rename CODEBASE_INDEX_SEARCH_MIN_SCORE to SEARCH_MIN_SCORE

* feat(QdrantVectorStore): enhance search functionality with new query structure and indexing

* feat(FileWatcher): implement batch processing and retry logic for upserting points

* fix(CodeIndexSettings): rename setProviderSettingsField to setApiConfigurationField and move model label

* fix(ChatRow): remove limit from search query messages

* refactor(CodebaseSearchResult): remove unused props from component

* feat: implement batch processing for file events in FileWatcher

- Introduced a new mechanism to accumulate file events (create, change, delete) and process them in batches.
- Added debounce functionality to optimize processing frequency.
- Emitted events for batch processing start, progress updates, and completion with detailed summaries.
- Refactored existing processing logic to handle batch deletions and upserts efficiently.
- Enhanced error handling and logging for better traceability during batch operations.

* feat(CodeIndex): implement batch processing and update progress reporting

* fix: define a default url for qdrant

* feat(CodeIndexManager): add initialization check and update startIndexing logic

* feat(CodeIndexSettings): validate Qdrant URL and update settings commitment logic

* feat: refactor progress calculation and update progress bar rendering

* refactor: remove webview provider and related methods

* fix: simplify indexing status update by directly using update values

* feat: integrate .gitignore support into file processing and scanning logic

* fix: update clearCacheFile method to write an empty object instead of deleting the cache file

* Revert this

* Run prettier

* fix: add new dependencies for qdrant client and directory scanner

* feat: add codebase search functionality to localization files

* feat: add localization strings for codebase indexing settings

* feat: integrate CodeIndexSettings into ExperimentalSettings and update settings localization

* refactor: remove console logs from various components for cleaner output

* feat: enhance capabilities section and codebase search tool description

* feat: add code indexing localization for multiple languages

* fix: correct indentation for CodeIndexSettings component in ExperimentalSettings

* refactor: update unit tests to properly test current functionality

* feat: add mock implementation for p-limit and update Jest config

* feat: track file creation, change, and deletion events in accumulatedEvents

* refactor: simplify file watcher tests by removing waitForFileProcessingToFinish and using direct event accumulation

* refactor: mock ContextProxy's getValue method to return current config name in ClineProvider tests

* refactor: mock missing properties required by codebase indexing manager

---------

Co-authored-by: cte <cestreich@gmail.com>
2025-05-23 19:07:19 -06:00
Hannes Rudolph
1dcb6d4a8e
Improve GitHub templates (#3905)
* Improve GitHub templates

- Make bug report outcome summary required for better issue quality
- Make logs/errors optional to reduce friction for simple bugs
- Fix CONTRIBUTING.md path in PR template (../../ instead of ../)

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Update .github/pull_request_template.md

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-23 19:02:28 -04:00
ronyblum
5ab78b37c0
Bedrock Prompt Caching Improvements (#3099)
Fix system prompt caching on first message
2025-05-23 17:51:47 -04:00
Chris Estreich
78bb7e0256
Convert bootstrap script to ESM (#3904) 2025-05-23 14:35:21 -07:00
Shariq Riaz
20c7453425
Remove claude-3.7-sonnet and claude-3.7-sonnet:thinking from vscodelm (#3895)
* Remove claude-3.7-sonnet and claude-3.7-sonnet:thinking from vscodelm provider in api.ts (not supported via API)

* Add static blacklist for unsupported VS Code Language Model IDs

---------

Co-authored-by: Ruakij <ruakij@ruekov.eu>
2025-05-23 17:28:42 -04:00
KJ7LNW
be19a49b20
fix: improve pnpm bootstrapping and add compile script (#3882)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-23 14:20:27 -07:00
slytechnical
1791bb9053
Ability to refresh LiteLLM models list (take 2) (#3852)
* Litellm models can now be refreshed

* Fix no-case-declarations lint issue and put back missing autoCondenseContextPercent webviewMessageHandler case

* Add tests for litellm config changes

* replace hardcoded keys with constants
2025-05-23 16:19:40 -05:00
Chris Estreich
872902754a
Fix max tokens in the task header (#3893) 2025-05-23 02:32:21 -07:00
Chris Estreich
fa1e7b415c
Re-work support for reasoning models, including "hybrid" reasoning models (#3870) 2025-05-23 01:40:17 -07:00
github-actions[bot]
7206da97fb
Changeset version bump (#3869)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-23 01:39:43 -07:00
Chris Estreich
6931cc9262
Fix global settings export (#3890) 2025-05-23 01:33:40 -07:00
Chris Estreich
b9d3331f41
Fix vscode-material-icons path (#3889) 2025-05-23 01:22:43 -07:00
KJ7LNW
82701584ae
fix: respect user-configured terminal integration timeout (#3886) 2025-05-22 22:34:33 -07:00
SannidhyaSah
d149d65e14
Feature/condensing enhancements (#3826)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Your Name <you@example.com>
2025-05-22 17:26:46 -04:00
Matt Rubens
c52d6d52ab
Fix openrouter names for caching and computer use (#3868)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-22 17:07:56 -04:00
Adil Hafeez
29ebd9b274
fix spelling of reterence (#3804)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-22 16:42:04 -04:00
Chris Estreich
48ca890c21
Add --no-verify when pushing tags (#3865) 2025-05-22 13:02:04 -07:00
Chris Estreich
999c3d6188
More publish fixes (#3864) 2025-05-22 12:55:08 -07:00
Chris Estreich
f860d78aca
More publish fixes (#3863) 2025-05-22 12:51:57 -07:00
Chris Estreich
61eaf84eac
Fix syntax error (#3861) 2025-05-22 12:47:06 -07:00
Chris Estreich
57a6ab1a85
Fix extension publish action (#3860) 2025-05-22 12:43:51 -07:00
github-actions[bot]
36dff338b5
Changeset version bump (#3853)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-22 15:36:05 -04:00
Chris Estreich
22431f06f4
Fix changelog generation (#3859) 2025-05-22 12:31:55 -07:00
Chris Estreich
45e22637b5
Fix changelog generation (#3856) 2025-05-22 12:01:57 -07:00
Matt Rubens
29adc27367
v3.18.1-again (#3854) 2025-05-22 14:45:26 -04:00
Matt Rubens
fb3f6d0378
Fix Claude 4 models in Vertex (#3849) 2025-05-22 14:43:31 -04:00
Chris Estreich
0521163212
Fix changeset version bumping (#3850) 2025-05-22 11:41:19 -07:00
Chris Estreich
80d7203230
Evals fixes (#3851) 2025-05-22 11:41:04 -07:00
Matt Rubens
790c6b50f2
Fix referrer (#3848) 2025-05-22 14:35:14 -04:00
Matt Rubens
9ee203385d
v3.18.1 (#3847) 2025-05-22 14:20:10 -04:00
Shariq Riaz
8a8fadd407
Add Claude Sonnet 4 and Claude Opus 4 models with thinking variants (#3844)
Co-authored-by: cte <cestreich@gmail.com>
2025-05-22 10:44:56 -07:00
Matt Rubens
edcaa15438
Fix README gif in all locales (#3837) 2025-05-22 12:08:03 -04:00
Chris Estreich
58a0efa9e1
Move e2e into apps (#3823) 2025-05-22 08:41:58 -07:00
Chris Estreich
568fb875fa
Improve version number derivation (#3822) 2025-05-21 23:59:18 -07:00
Chris Estreich
39cd50b989
Fix linter errors (#3821) 2025-05-21 23:16:43 -07:00
Chris Estreich
c6851976fa
Fix vite server (#3816) 2025-05-21 21:39:41 -07:00
Chris Estreich
d5484b52fa
Upgrade to ESLint 9 + share eslint config across workspaces (#3815) 2025-05-21 21:30:21 -07:00
github-actions[bot]
3eb3169ad6
Update contributors list (#3781)
Co-authored-by: cte <cte@users.noreply.github.com>
2025-05-22 00:08:02 -04:00
Chris Estreich
57249a0881
PNPM + Turbo monorepo + Nightly releases (#3407) 2025-05-21 21:01:20 -07:00
github-actions[bot]
b8aa4b473e
Changeset version bump (#3803)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-21 15:30:13 -07:00
Chris Estreich
514c6a1618
Fix vsix checks (#3802) 2025-05-21 15:26:58 -07:00
R00-B0T
c1b92c1ee9
Changeset version bump (#3660)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-21 17:46:14 -04:00
Matt Rubens
bf0aeb326d
Update changeset-release.yml (#3801) 2025-05-21 17:41:27 -04:00
Matt Rubens
9c740e8d66
v3.18 (#3800)
* v3.18

* Update webview-ui/src/i18n/locales/ko/chat.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-21 17:30:55 -04:00
Canyon Robins
8df7f450e3
[Condense] Add isAutomaticTrigger to condense telemetry (#3798) 2025-05-21 13:02:54 -07:00
Canyon Robins
d7ae811a45
[Condense] Track telemetry for condense and truncate operations (#3796)
* [Condense] Track telemetry for condense and truncate operations

* update tests

* test fix nits
2025-05-21 12:49:43 -07:00
Canyon Robins
fc9a42d95e
[Condense] Update copy for condense button tooltip (#3794)
* [Condense] Update copy for condense button tooltip

* translations
2025-05-21 12:26:37 -07:00
Matt Rubens
b32e1eda03
Convert .roomodes to YAML (#3792)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-21 15:14:10 -04:00
Canyon Robins
1fe65364ee
[Condense] Add a slider for the context condense threshold (#3790)
* [Condense] Add a slider for the context condense threshold

* slider UI

* condense if we reach the threshold

* fixes

* test typing fixes

* add more truncate tests

* changeset

* update translations

* fix missing type
2025-05-21 12:10:00 -07:00
Noritaka Kobayashi
4e71b78327
refactor: simplify loop syntax in combineApiRequests and XmlMatcher (#3776) 2025-05-21 09:33:18 -04:00
axb
3c73684729
fix: fix diffview scoll display (#3783) 2025-05-21 09:32:17 -04:00
Chris Estreich
7d99689031
More VSCode command / build fixes (#3780) 2025-05-21 00:07:37 -07:00
github-actions[bot]
ea93cea9ac
Update contributors list (#3620)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-20 23:21:29 -04:00
Daniel
935acf5957
Add contact section to pull request template for communication (#3771) 2025-05-20 23:13:29 -04:00
KJ7LNW
9317765fb1
Fix: Missing or inconsistent syntax highlighting across UI components (#3656)
* fix: Missing or inconsistent syntax highlighting across UI components

- Change file listings to use 'shellsession' for terminal-like highlighting
- Use 'markdown' for code definitions and instructions
- Add file extension-based language detection for new files
- Ensure consistent 'diff' highlighting for all diff content
- Use 'xml' language for error messages
- Make language property required in CodeAccordian
- Set default fallback to 'txt' instead of undefined

Fixes: #3655
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* chore: make language property required in CodeBlock

- Updated CodeBlockProps interface to make language property required
- Updated mock implementation to match the interface change
- Ensured CodeAccordian always provides a fallback language value

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-20 22:29:57 -04:00
xyOz
ad9c87a04f
Another grey screen fix. (#3644)
Memory memory memory
2025-05-20 22:27:46 -04:00
Canyon Robins
e86884c4d1
[Condense] Show indicator message when context is condensing (#3765)
* [Condense] Show indicator message when context is condensing

* changeset

* translations
2025-05-20 21:19:24 -04:00
Daniel
27e47de3aa
Add Gemini Flash 2.5 05-20 variants for the Vertex provider (#3758)
* feat(api): add gemini-2.5-flash-preview-05-20 model configuration

* feat(tests): update apiModelId to gemini-2.5-flash-preview-05-20 in ProviderSettingsManager tests in case the old version is deprecated

* chore: add changeset

* feat(api): update vertexModels to add gemini-2.5-flash-preview-05-20 variants

* chore: update changeset
2025-05-20 21:13:21 -04:00
Shariq Riaz
5ccce3a39d
feat: add gemini-2.5-flash-preview-05-20 models (#3769) 2025-05-20 21:08:07 -04:00
Canyon Robins
7a4ce14901
[Condense] Change condense icon (#3768)
* [Condense] Change condense icon

* change to fold
2025-05-20 18:01:13 -07:00
xyOz
9402a4d54f
Lm studio and ollama usage fix (#3707)
* integration

* Fix
2025-05-20 20:32:43 -04:00
Chris Estreich
f274a150c4
Get package publisher and name from package.json + command type safety (#3766) 2025-05-20 16:41:03 -07:00
Canyon Robins
ff837d5cbf
[Condense] Fix double counting last message when condensing (#3763) 2025-05-20 14:15:15 -07:00
Canyon Robins
c3716f1107
[Condense] Add a button to condense the task context (#3623)
* [Condense] Add a button to condense the task context

* wip

* wip

* wip

* bring back delete size

* account for the system prompt in the context

* update tests to use systemPrompt

* add type

* translations

* nit

* update tests

* filter to the current task

* nit

* refactor

* nit

* non interactive option

* simplify chat summary UI

* changeset

* nit

* fix check-types

* throw
2025-05-20 13:47:02 -07:00
Matt Rubens
737bad6061
Use yaml as default custom modes format (#3749) 2025-05-20 16:44:29 -04:00
Matt Rubens
7368fa9288
Moved repo to new org (#3756) 2025-05-20 16:42:18 -04:00
Chris Hasson
8614405144
Auto-reload core changes in dev mode (#3284)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-20 14:51:38 -04:00
ChuKhaLi
42832629a9
feat: use template variables for version numbers in announcement strings (#3755) 2025-05-20 11:35:27 -07:00
ChuKhaLi
c042909a89
Move error message for settings import failure into the correct position (#3752)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-20 08:50:21 -07:00
Chris Hasson
25cd57e157
feat(settings): Add allowedMaxRequests feature inspired by Cline (#3631)
* feat(settings): Introduce the "auto-approve request count" feature from Cline

This is the first minor UI feature I've added, so please let me know if I'm missing anything! (translations, organization, etc!)

Please see commits for details

introduce allowedMaxRequests to globalSettingsSchema
update ExtensionState and its context with allowedMaxRequests
implement UI for setting max requests in AutoApproveMenu component
prompt user when auto-approval limit is reached with i18n support
increment consecutiveAutoApprovedRequestsCount and reset upon user approval
add translations for auto-approved request limit reached prompt in multiple languages
add new UI for "auto_approval_max_req_reached" in ChatRowContent
display prompt with title, description, and button for user action

🔧 chore(gitignore): add .idea to .gitignore to exclude IDE-specific files
- remove .idea/workspace.xml to clean up repository

* 🔧 chore(gitignore): add IDE configuration files to ignore list

- add .idea directory to ignore JetBrains IDE configurations

* 🌐 i18n(chat): add translation keys for api request limit

- introduce translation keys for "title" and "unlimited" in multiple languages
- update description for api request limit in various languages

* 🌐 i18n(chat): migrate auto-approved request limit translations

- move translations from common.json to chat.json across locales
- update component to use Trans for dynamic text rendering

* Update the UI for setting max requests

* Hide the auto-approve limit warning once clicked

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-20 11:30:27 -04:00
R-omk
527050eeb0
Add YAML support for .roomode files alongside JSON processing (#3711) 2025-05-20 09:59:23 -04:00
Noritaka Kobayashi
6a6df08fbd
refactor: import multiple times (#3745) 2025-05-20 09:19:44 -04:00
மனோஜ்குமார் பழனிச்சாமி
628661c5c5
feat: move play audio to webview to ensure cross-platform (#3659)
Co-authored-by: sam hoang <samhv.ict@gmail.com>
2025-05-20 01:15:05 -04:00
Matt Rubens
a0735bb414
Make prompt input textareas resizable (#3691) (#3739) 2025-05-20 01:08:57 -04:00
Canyon Robins
aff94e13bc
Merge pull request #3736 from RooVetGit/canyon/condense-metrics
[Condense Context] Track metrics around context condensing and show in UI
2025-05-19 21:45:51 -07:00
Canyon Robins
7df703f34f rm test :/ 2025-05-19 21:41:31 -07:00
Canyon Robins
a1a8654cdb non default export 2025-05-19 21:08:17 -07:00
Canyon Robins
671c3b7f14 use tailwind 2025-05-19 20:57:43 -07:00
Canyon Robins
1f301495b6 use Markdown for summary 2025-05-19 20:52:16 -07:00
Canyon Robins
29e055ccb9 camelCase 2025-05-19 20:26:06 -07:00
Canyon Robins
ff56aba233 add changeset 2025-05-19 20:21:52 -07:00
Canyon Robins
bc94dba12d add tests for ContextCondenseRow 2025-05-19 20:17:41 -07:00
Canyon Robins
5318a2fbc5 add translations 2025-05-19 20:03:23 -07:00
Canyon Robins
fe883e32c7 use chat.json 2025-05-19 19:58:09 -07:00
Canyon Robins
599e1c35fd fix failing tests 2025-05-19 19:49:31 -07:00
Canyon Robins
a028f722bb add getApiMetrics.test.ts 2025-05-19 19:44:51 -07:00
Canyon Robins
01bdc53eb1 update sliding-window tests 2025-05-19 19:37:26 -07:00
Canyon Robins
9765612b28 add unit tests for condense 2025-05-19 19:30:12 -07:00
Canyon Robins
7c3f799a7e fix 2025-05-19 19:21:19 -07:00
Canyon Robins
70535471c6 refactor 2025-05-19 19:20:12 -07:00
Canyon Robins
0fb8075d8c nit 2025-05-19 19:15:38 -07:00
Canyon Robins
f4a263db57 nit 2025-05-19 19:14:05 -07:00
Canyon Robins
2bdd7d11b3 bug fix 2025-05-19 19:09:01 -07:00
Canyon Robins
585023a667 add header 2025-05-19 18:50:40 -07:00
Canyon Robins
65f7f350ea account for system prompt when estimating new context size 2025-05-19 18:28:30 -07:00
Canyon Robins
95bd6cb87f Add UI component 2025-05-19 18:20:04 -07:00
Canyon Robins
603d2eface [Condense Context] Track metrics around context condensing and show in UI 2025-05-19 17:36:17 -07:00
Shariq Riaz
ce3e4e883d
feat(evals): add UI and backend support for importing and injecting f… (#3606) 2025-05-19 14:58:58 -07:00
avtc
1e5783d051
LM studio reasoning support (thinking block) (#3719)
lmstudio reasoning support (thinking block)

Similar to ollama implementation in #1080
2025-05-19 12:55:56 -07:00
Remon Oldenbeuving
8721ab5dcd
fix(webview): Fix links to filename:0 (#3727)
* fix(webview): Fix links to filename:0

* Add changeset
2025-05-19 12:44:36 -07:00
zeo
d70d0c1627
Add Qwen3 model series to the Chutes provider (#3710)
* Add Qwen3 model series to the Chutes provider

New models for the Chutes provider:

- Qwen/Qwen3-235B-A22B
- Qwen/Qwen3-32B
- Qwen/Qwen3-30B-A3B
- Qwen/Qwen3-14B
- Qwen/Qwen3-8B

* add changeset
2025-05-18 09:30:45 -07:00
pugazhendhi-m
d851586042
Adds refresh models button for Unbound provider (#3663)
* Adds refresh models button for Unbound provider

* Adds changeset

* Optimizes code to prevent memory leak, add error messages

* Adds unbound messages to all supported languages

---------

Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-05-17 18:09:39 -07:00
vagadiya
4550a91950
#3679 - Fixes packaging to include correct tiktoken.wasm (lite) (#3697)
- also, additions to .gitignore and .vscodeignore to prevent the IntelliJ .idea and .qodo folders from being included for git and packaging.
2025-05-17 13:53:33 -07:00
xyOz
cf445c3e54
Log Cleanup to Remove Cline (#3704)
* Rename Errors & Fix Spelling Mistake

* Update src/core/task/Task.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-17 13:49:24 -07:00
Chris Estreich
6e958df09e
Export ProviderName type to Roo-Code-Types (#3675) 2025-05-16 12:05:09 -07:00
Chris Estreich
dc694efdb2
Import settings bug fix / improvements (#3657) 2025-05-15 23:21:55 -07:00
R00-B0T
f70e03e3b4
Changeset version bump (#3645)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-15 21:33:21 -07:00
Chris Estreich
433a564cce
Revert "Switch to the new Roo message parser" (#3649) 2025-05-15 21:28:44 -07:00
Chris Estreich
d7eec3afa6
Lock the versions of vsce and ovsx (#3643) 2025-05-15 16:49:09 -07:00
Matt Rubens
1ff8a56e7a
Fix how custom instructions are loaded into the API request (#3638)p 2025-05-15 16:44:10 -04:00
R00-B0T
bcc4526f9e
Changeset version bump (#3637)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-15 12:37:31 -07:00
Chris Estreich
95da34d3da
Fix command display in the approval required case (#3636) 2025-05-15 12:31:25 -07:00
Daniel
8447670499
Fix incorrect reserved tokens calculation on OpenRouter (#3626)
fix: improve token reservation logic in calculateTokenDistribution
2025-05-15 07:22:07 -04:00
hatsu
b69825b95d
fix: correct Changelog link in localized README files (#3629)
The Changelog link in `locales/ja/README.md` and other localized
READMEswas pointing to a broken relative path, resulting in 404s.This
commit updates the link to use a correct relative path
(`../../CHANGELOG.md`)so that it works across all locales.
2025-05-15 06:55:29 -04:00
R00-B0T
f46e14dc04
Changeset version bump (#3556)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-14 17:37:30 -04:00
Matt Rubens
669b239c22
v3.17.0 (#3622) 2025-05-14 17:33:55 -04:00
github-actions[bot]
1c9669f842
Update contributors list (#3612)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-14 16:46:01 -04:00
Matt Rubens
fe43a7b610
Fix type generation (#3619) 2025-05-14 16:45:28 -04:00
Canyon Robins
7c1185ed33
[Condense] Condense messages with an LLM rather than truncating (#3582)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-14 16:44:01 -04:00
Matt Rubens
4ee23b5152
v3.16.7 (#3614) 2025-05-14 15:38:46 -04:00
KJ7LNW
afc82b851d
build: enable source maps for improved debugging (#3596)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-14 13:46:53 -04:00
மனோஜ்குமார் பழனிச்சாமி
cbd77275a1
Add build vsix Workflow (#3600) 2025-05-14 13:21:04 -04:00
Hannes Rudolph
ead5d2a838
feat: add buildDocLink utility and 21 Internal Links to Docs (#3418)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-14 13:15:05 -04:00
Chris Estreich
35fd4e68cd
Use a shadcn dialog for the announcement (#3604) 2025-05-14 09:00:55 -07:00
renovate[bot]
a4e2b66351
fix(deps): update dependency posthog-js to v1.242.1 (#3602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 08:49:23 -07:00
github-actions[bot]
27cf18ca7a
Update contributors list (#3299)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-13 22:01:04 -04:00
Matt Rubens
f18f71cb17
Rename cline_docs -> docs (#3587) 2025-05-13 21:59:26 -04:00
Hannes Rudolph
855a5e213d
Refactor: Update new_task tool description and mode examples (#3586)
The description for the `new_task` tool has been simplified for clarity.
Additionally, the example modes listed for the `mode` parameter have been updated to include "debug" instead of "ask".
2025-05-13 20:26:02 -04:00
Hannes Rudolph
4aa448b7e8
Refactor: Update custom instructions for 'ask' mode (#3583)
This commit refines the custom instructions for the 'ask' mode. The changes aim to provide clearer guidance to the AI, emphasizing thoroughness in answering questions and caution against prematurely switching to code implementation.

Specifically, the instructions were updated as follows:

- Changed "Make sure to answer the user's questions" to "Always answer the user’s questions thoroughly"
- Changed "don't rush to switch to implementing code" to "do not switch to implementing code unless explicitly requested by the user"
- Changed "Include Mermaid diagrams if they help make your response clearer" to "Include Mermaid diagrams when they clarify your response"

These changes are reflected in both [`src/shared/modes.ts`](src/shared/modes.ts:80) and its corresponding snapshot file [`src/core/prompts/__tests__/__snapshots__/system.test.ts.snap`](src/core/prompts/__tests__/__snapshots__/system.test.ts.snap:5458).
2025-05-13 20:10:48 -04:00
Matt Rubens
751afaa6ac
Add a 'when to use' section to mode definitions (#3571)
* Add a 'when to use' section to mode definitions

* Remove defaults for now
2025-05-13 18:39:02 -04:00
Chris Estreich
cd07b7faeb
Fix linter warning + run prettier on everything (#3581) 2025-05-13 15:16:24 -07:00
Chris Estreich
d64f054cbe
Revert "fix(deps): update nextjs monorepo to v15.3.2" (#3578) 2025-05-13 14:57:56 -07:00
renovate[bot]
b13e91cc50
chore(deps): update dependency @dotenvx/dotenvx to v1.44.0 (#3521)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 14:30:23 -07:00
renovate[bot]
ae26754f92
chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3574)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 14:29:07 -07:00
renovate[bot]
00861d5b43
chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 14:28:56 -07:00
renovate[bot]
9beeade41b
chore(deps): update actions/setup-node action to v4 (#3570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 14:15:07 -07:00
renovate[bot]
28693f6c86
chore(deps): update actions/checkout action to v4 (#3569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 14:15:03 -07:00
Chris Estreich
26eae7e303
Switch to the new Roo message parser (#3567) 2025-05-13 12:40:30 -07:00
Chris Estreich
8def83192d
Add IPC types to roo-code.d.ts (#3568) 2025-05-13 12:40:19 -07:00
Matt Rubens
836bbf75d0
Make CONTRIBUTING.md more concise (#3472) 2025-05-13 13:48:47 -04:00
renovate[bot]
0fa907d4ec
fix(deps): update nextjs monorepo to v15.3.2 (#3564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 10:48:07 -07:00
renovate[bot]
9f83ed32c9
fix(deps): update tailwindcss monorepo to v4.1.6 (#3565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 10:47:50 -07:00
Chris Estreich
d8e3258c90
Revert "Publish Roo Code types to NPM" (#3566)
Revert "Publish Roo Code types to NPM (#3563)"

This reverts commit f031914450.
2025-05-13 10:47:07 -07:00
Chris Estreich
f031914450
Publish Roo Code types to NPM (#3563) 2025-05-13 10:32:12 -07:00
renovate[bot]
7a8613c34e
fix(deps): update dependency posthog-js to v1.242.0 (#3562)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 09:47:51 -07:00
Chris Estreich
d3c469391f
Show LLM streaming file write content (#3241) 2025-05-13 09:47:33 -07:00
Chris Estreich
9a358ab0f5
Focus improvements (#3539) 2025-05-13 09:41:03 -07:00
Chris Estreich
0f9691ab27
Revert "Accidental execution of tool syntax fix" (#3560) 2025-05-13 09:36:23 -07:00
xyOz
07db3c8824
Accidental execution of tool syntax fix (#3456)
Co-authored-by: cte <cestreich@gmail.com>
2025-05-13 09:20:32 -07:00
renovate[bot]
26ea660af4
fix(deps): update dependency shiki to v3.4.0 (#3548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 08:16:50 -07:00
renovate[bot]
236da113b2
fix(deps): update dependency posthog-js to v1.241.1 (#3544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 08:16:38 -07:00
renovate[bot]
1007a9557b
fix(deps): update dependency react-markdown to v9.1.0 (#3545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 08:16:31 -07:00
Chris Estreich
72358f2742
Add tests + benchmark for parseAssistantMessage V1 + 2 (#3538) 2025-05-13 08:05:41 -07:00
Daniel Trugman
a14b655590
Requesty: Only report final usage (#3542) 2025-05-13 07:24:28 -04:00
Xudong Zhang
f6cae4df05
fix(task): temporary fix for the ask error (#3471)
Co-authored-by: cte <cestreich@gmail.com>
2025-05-12 21:38:36 -07:00
KJ7LNW
7f8362f2e1
fix: command validation failing on shell array indexing (#3530)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-12 21:31:54 -07:00
renovate[bot]
78a685a092
fix(deps): update dependency react-i18next to v15.5.1 (#3535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 21:28:11 -07:00
renovate[bot]
389899e7a3
chore(deps): update eslint monorepo to v9.26.0 (#3524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 21:15:40 -07:00
renovate[bot]
76a944b406
fix(deps): update dependency @aws-sdk/client-bedrock-runtime to v3.808.0 (#3525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 21:15:05 -07:00
renovate[bot]
b8d96b0352
fix(deps): update dependency @tanstack/react-query to v5.76.0 (#3527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 21:14:38 -07:00
renovate[bot]
284232bef2
fix(deps): update dependency posthog-js to v1.240.6 (#3531)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 21:14:12 -07:00
renovate[bot]
b8e8343933
fix(deps): update dependency posthog-node to v4.17.1 (#3532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 21:13:57 -07:00
Sam Hoang Van
6db30afc74
make apply_diff can deduce when line number in search part fix #2990 (#3329) 2025-05-12 23:11:01 -04:00
xyOz
86a03798d5
Greyscreen fix (#3474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-12 22:39:07 -04:00
Daniel
9ffdc7879e
Use the provider-specific model info for the OpenRouter provider (#3430) 2025-05-12 18:23:32 -07:00
Daniel
79d0e5039b
Handle directory URI on diagnostics (#3457) 2025-05-12 15:33:45 -07:00
renovate[bot]
f91692749b
chore(deps): update dependency typescript-eslint to v8.32.1 (#3516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 14:31:45 -07:00
renovate[bot]
395db31b7f
fix(deps): update dependency @libsql/client to v0.15.5 (#3517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 14:18:08 -07:00
renovate[bot]
8fa225ffdb
chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 14:17:33 -07:00
renovate[bot]
8c7c1b7d89
chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 14:17:26 -07:00
Matt Rubens
4da8a0b771
Update CHANGELOG.md (#3518) 2025-05-12 17:16:55 -04:00
Chris Estreich
20fab97b4d
Gemini implicit caching (#3515) 2025-05-12 14:16:27 -07:00
John Richmond
8a1cc06b54
fix: get model id from ApiHandler (#3512)
Not all handlers/providers use apiModelId, but they do all return a
model id from getModel().
2025-05-12 14:12:11 -07:00
renovate[bot]
090b21a19c
fix(deps): update dependency mammoth to v1.9.0 (#3409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 13:19:30 -07:00
renovate[bot]
7e875e9d45
fix(deps): update dependency drizzle-orm to ^0.43.0 (#3401)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 13:18:38 -07:00
renovate[bot]
19a534016b
fix(deps): update dependency mermaid to v11.6.0 (#3417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 13:17:46 -07:00
renovate[bot]
96b7056091
chore(deps): update dependency @changesets/cli to v2.29.4 (#3501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 13:17:15 -07:00
Chris Estreich
47a13fbb42
Improve command execution UI (#3509) 2025-05-12 13:16:46 -07:00
R00-B0T
465f855334
Changeset version bump (#3507)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-12 13:02:43 -07:00
John Richmond
8cb5c4e9e3
Restore profile management work + fix #3434 (#3449)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-12 15:47:09 -04:00
Wojciech Kordalski
6416118f74
ClineProvider.finishSubTask should wait for unpausing the parent task (#1870) 2025-05-12 12:27:23 -07:00
renovate[bot]
dd9ccfedc5
fix(deps): update dependency lucide-react to ^0.510.0 (#3402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 10:39:34 -07:00
KJ7LNW
7d75536741
fix: webview terminal output processing error (#3028) 2025-05-11 17:51:22 -07:00
Matt Rubens
4f727142ae
Updated roadmap (#3469) 2025-05-11 10:28:25 -04:00
Dicha Zelianivan Arkana
6edb9a16b8
fix(textarea): empty string as fallback (#3463) 2025-05-11 07:29:24 -04:00
Hannes Rudolph
7bef4f0fa6
Refactor bug report template to enforce required fields for reproduct… (#3454)
Refactor bug report template to enforce required fields for reproduction steps and outcome summary
2025-05-10 19:32:57 -04:00
Hannes Rudolph
6adb807d25
Tweaks to the issue/bug intended to make it more intuitive. (#3452)
* Update bug report template for clarity and improved user guidance

* Add Google Vertex AI and LiteLLM to API Provider options in bug report template
2025-05-10 14:17:43 -04:00
xyOz
12c3ed878e
Pr template fix (#3448)
* Fix links to Contributing Guidelines in pull request template

* ../
2025-05-10 13:15:47 -04:00
R00-B0T
373d2aa98c
Changeset version bump (#3441)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-10 08:32:58 -04:00
Matt Rubens
730d037a12
Revert "Improve provider profile management in the external API (#3386)" (#3440) 2025-05-10 08:27:37 -04:00
R00-B0T
1b37e30580
Changeset version bump (#3427)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-10 00:11:34 -04:00
Matt Rubens
4439af47f2
v3.16.4 (#3426) 2025-05-10 00:02:18 -04:00
Tony Zhang
effebc650b
Fix: forced-color-adjust in highlight theme (#3424) 2025-05-09 23:38:02 -04:00
Matt Rubens
c1aa0ec5b3
Fix saving of OpenAI compatible headers (#3415)
* Fix saving of OpenAI compatible headers

* Code cleanup

* Add test
2025-05-09 18:39:10 -04:00
Chris Estreich
ce4ce17cb2
Improve provider profile management in the external API (#3386)
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-05-09 10:05:34 -07:00
renovate[bot]
209c0a5d6f
fix(deps): update dependency @libsql/client to ^0.15.0 (#3375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:41:13 -07:00
renovate[bot]
baf8fccaea
fix(deps): update dependency cmdk to v1.1.1 (#3398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:40:46 -07:00
renovate[bot]
dfb4fe3ee5
chore(deps): update eslint monorepo to v9.26.0 (#3397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:40:39 -07:00
renovate[bot]
44e8dca1c4
fix(deps): update dependency @tanstack/react-query to v5.75.7 (#3378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:24:15 -07:00
renovate[bot]
b41535662f
fix(deps): update dependency axios to v1.9.0 (#3382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:23:23 -07:00
renovate[bot]
ccc0baa95d
chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3384)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:23:08 -07:00
renovate[bot]
4c199e2757
chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:23:03 -07:00
renovate[bot]
117f31573b
fix(deps): update dependency drizzle-zod to v0.7.1 (#3393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:22:58 -07:00
Chris Estreich
302dc2dcba
Export more types to the external API (#3383) 2025-05-09 00:05:29 -07:00
Chris Estreich
c21aa230e3
Get rid of ApiConfiguration type alias, rename ApiConfigMeta to ProviderSettingsEntry (#3380) 2025-05-08 23:52:18 -07:00
renovate[bot]
e418f6d388
fix(deps): update dependency execa to v9.5.3 (#3360)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 21:02:22 -07:00
renovate[bot]
2fe2dad647
chore(deps): update turbo monorepo to v2.5.3 (#3361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 21:01:52 -07:00
renovate[bot]
78d1aa728d
fix(deps): update dependency @aws-sdk/client-bedrock-runtime to v3.806.0 (#3373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 21:00:56 -07:00
renovate[bot]
a3ed9e9574
fix(deps): update dependency @google/genai to ^0.13.0 (#3374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 21:00:40 -07:00
Chris Estreich
55b72a530c
Simplify the process of setting the "active" provider profile (#3366)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-08 20:59:59 -07:00
Dicha Zelianivan Arkana
4730a12d4e
fix(prompts): revert to vscodetextarea to prevent race condition (#3343) 2025-05-08 22:53:37 -04:00
KJ7LNW
1688bd66c0
fix: handle unsupported language errors gracefully in read_file tool (#3359)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-08 22:51:44 -04:00
Daniel
83bf86f637
Fix not being able to use specific providers on Openrouter (#3354) 2025-05-08 22:50:23 -04:00
KJ7LNW
7cc97384cb
fix: show properly formatted multi-line commands in preview (#3368)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-08 22:49:04 -04:00
Murilo Pires
fb807c1056
fix: Prevent terminal focus theft on paste after command execution (#3356) 2025-05-08 22:43:06 -04:00
cannuri
4091131859
fix display issues with too long profile names in ChatTextArea.tsx (#3371) 2025-05-08 22:41:11 -04:00
John Richmond
a79d18739a
Stop leaking other provider settings (#3357)
* Stop leaking other provider settings

* Also filter out leaked properties on export
2025-05-08 17:49:07 -07:00
renovate[bot]
ee2033c5ac
chore(deps): update storybook monorepo to v8.6.12 (#3350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 12:48:32 -07:00
Chris Estreich
1a78be3bfa
Rename Cline to Task (#3352) 2025-05-08 12:47:50 -07:00
renovate[bot]
0725b32111
chore(deps): update dependency esbuild to ^0.25.0 (#3282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 12:02:17 -07:00
Matt Rubens
a1592e5cf6
Disable Posthog autocapture in the code in addition to in the web console (#3303) 2025-05-08 12:01:26 -07:00
renovate[bot]
3c68bebca5
chore(deps): update eslint monorepo to v9.26.0 (#3340)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 12:00:49 -07:00
KJ7LNW
26dc157ff7
build: prevent $esbuild-watch error (#1711)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-08 11:59:36 -07:00
Chris Estreich
7cea2e8bc4
Move presentAssistantMessage into its own module (#3345) 2025-05-08 11:59:03 -07:00
Chris Estreich
b57e148dea
Move checkpoint code into a separate module (#3291) 2025-05-08 10:18:47 -07:00
Shariq Riaz
037a62bf67
Fix: Enforce provider selection in OpenRouter by using 'only' parameter and disabling fallbacks (#3338) 2025-05-08 09:50:06 -07:00
renovate[bot]
2249efc244
chore(deps): update dependency vite to v6.3.5 (#3334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 09:49:49 -07:00
renovate[bot]
b07760a005
chore(deps): update eslint monorepo to v9.26.0 (#3335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 09:49:32 -07:00
renovate[bot]
045ffcb54e
chore(deps): update dependency typescript-eslint to v8.32.0 (#3331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 09:41:25 -07:00
renovate[bot]
9c4f17f56a
chore(deps): update dependency typescript to v5.8.3 (#3330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 09:41:17 -07:00
Tony Zhang
1f91086c6b
fix: enhance focus styles in select-dropdown and docs url (#3336) 2025-05-08 09:41:09 -07:00
aheizi
59fdbaeecc
fix: project mcp allways allow (#3332) 2025-05-08 12:24:42 -04:00
renovate[bot]
e3ccab5b2c
chore(deps): update dependency knip to v5.55.1 (#3315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 08:49:37 -07:00
renovate[bot]
23092e87b7
fix(deps): update dependency styled-components to v6.1.18 (#3316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 08:49:24 -07:00
renovate[bot]
db705d7180
chore(deps): update dependency rust to v1.86.0 (#3317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 08:49:07 -07:00
renovate[bot]
4d6b260eae
chore(deps): update dependency ts-jest to v29.3.2 (#3318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 08:48:50 -07:00
renovate[bot]
fac92b032c
chore(deps): update dependency @types/node to v18.19.100 (#3323)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 08:48:36 -07:00
renovate[bot]
da4d8a16ce
chore(deps): update dependency @types/node to v20.17.46 (#3325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 08:48:23 -07:00
Dicha Zelianivan Arkana
50d1837804
fix: properly handle mode name overflow (#3328) 2025-05-08 08:44:20 -07:00
Matt Rubens
3acb601b22
Update CHANGELOG.md (#3326) 2025-05-08 10:44:36 -04:00
R00-B0T
e19bf81811
Changeset version bump (#3324)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-08 10:41:46 -04:00
Matt Rubens
6d8f903b04
Revert "Tailwind migration" (#3321)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-08 10:38:29 -04:00
Friedrich Pfitzmann
ba465b834e
fix: add Elixir (.ex, .exs) file extension support in language parser (#3306)
Co-authored-by: Friedrich Pfitzmann <friedrich.pfitzmann@teaminternet.com>
2025-05-08 09:13:37 -04:00
renovate[bot]
8eb65853c6
chore(deps): update dependency eslint-plugin-storybook to ^0.12.0 (#3287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:24:37 -07:00
renovate[bot]
9b3d4e7df9
chore(deps): update dependency globals to v16.1.0 (#3288)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:24:27 -07:00
renovate[bot]
abfee46f35
chore(deps): update dependency knip to v5.55.0 (#3289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:24:15 -07:00
renovate[bot]
bfd15106c9
chore(deps): update dependency lint-staged to v15.5.2 (#3290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:24:02 -07:00
renovate[bot]
af1d62f3dc
chore(deps): update dependency @types/node to v18.19.99 (#3301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:23:40 -07:00
renovate[bot]
eb27474aa3
chore(deps): update dependency @types/node to v20.17.45 (#3302)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:23:35 -07:00
renovate[bot]
7ed6ccf9b1
chore(deps): update dependency prettier to v3.5.3 (#3294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:22:50 -07:00
renovate[bot]
dcc319ecb0
chore(deps): update dependency mocha to v11.2.2 (#3293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:22:42 -07:00
R00-B0T
7f9515aa9a
Changeset version bump (#3300)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-08 00:21:51 -04:00
github-actions[bot]
56bf88915d
Update contributors list (#3296)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-08 00:16:38 -04:00
Matt Rubens
72b1d06b8f
v3.16.2 (#3298) 2025-05-08 00:16:23 -04:00
Hannes Rudolph
75e71d41af
Clarify XML tool use formatting instructions (#3295) 2025-05-07 23:52:06 -04:00
R00-B0T
57e5b6ddef
Changeset version bump (#3230)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-07 23:29:34 -04:00
Liu Wei
a715ec723a
fix: reset the variable isWaitingForFirstChunk when catch exception (#3262) 2025-05-07 23:15:31 -04:00
github-actions[bot]
12552d21b8
Update contributors list (#3248)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-07 23:12:48 -04:00
Matt Rubens
c26093bf9b
v3.16.1 (#3292) 2025-05-07 23:05:38 -04:00
renovate[bot]
6f90d4c52d
chore(deps): update dependency drizzle-kit to ^0.31.0 (#3281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 12:27:21 -07:00
Chris Estreich
c300dd16de
Update evals defaults, stop forking cte/evals (#3283) 2025-05-07 12:27:10 -07:00
renovate[bot]
a80f26271c
chore(deps): update dependency @vitejs/plugin-react to v4.4.1 (#3279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 12:01:47 -07:00
renovate[bot]
3c04ab03ea
chore(deps): update dependency @vscode/test-electron to v2.5.2 (#3280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 12:01:26 -07:00
John Richmond
0bbd3fd1df
Add LiteLLM provider (#3242)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-07 14:53:21 -04:00
Matt Rubens
cd423d3a5e
Detect tool loops (#3240) 2025-05-07 14:49:13 -04:00
Sacha Sayan
970bd97668
Tailwind migration (#3235)
Co-authored-by: cte <cestreich@gmail.com>
2025-05-07 11:40:25 -07:00
renovate[bot]
80e04a4b30
fix(deps): update dependency react-virtuoso to v4.12.7 (#3250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 09:49:30 -07:00
renovate[bot]
c2eb03ddbb
fix(deps): update dependency zod to v3.24.4 (#3255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 09:49:19 -07:00
renovate[bot]
a593540e85
chore(deps): update dependency @types/node to v18.19.98 (#3237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 09:49:07 -07:00
renovate[bot]
37a4d8d6c9
chore(deps): update dependency @types/node to v20.17.44 (#3238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 09:48:39 -07:00
renovate[bot]
9ca436a4cb
chore(deps): update dependency @types/node-cache to v4.2.5 (#3274)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 09:48:20 -07:00
renovate[bot]
357282b3ba
chore(deps): update dependency @testing-library/react to v16.3.0 (#3273)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 09:48:08 -07:00
renovate[bot]
3ad0de3289
chore(deps): update dependency @dotenvx/dotenvx to v1.43.0 (#3272) 2025-05-07 08:57:56 -07:00
renovate[bot]
e41d2c5926
chore(deps): update dependency @changesets/cli to v2.29.3 (#3266)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 08:50:55 -07:00
renovate[bot]
76a28bb48b
fix(deps): update react monorepo (#3265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 08:49:51 -07:00
renovate[bot]
c665d3c8d4
fix(deps): update dependency remove-markdown to v0.6.2 (#3252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 22:13:18 -07:00
renovate[bot]
acbdede422
fix(deps): update dependency styled-components to v6.1.17 (#3253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 22:12:56 -07:00
Hannes Rudolph
92c2db072f
Update CODE_OF_CONDUCT and CONTRIBUTING documents across multiple lan… (#3254) 2025-05-07 00:45:24 -04:00
Hannes Rudolph
371419e7ab
fix: update links in issue and pull request templates to relative paths (#3251) 2025-05-07 00:29:40 -04:00
Hannes Rudolph
3ffe946bbf
feat: Revamp contribution process and templates (#3246) 2025-05-06 23:51:18 -04:00
Maxim Madan
94ae4488f5
fix: wrap footer buttons in About section on narrow screens (#3234) 2025-05-06 14:08:19 -07:00
renovate[bot]
104f81f4e1
fix(deps): update dependency react-textarea-autosize to v8.5.9 (#3233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 14:15:42 -04:00
renovate[bot]
34222e5333
fix(deps): update dependency i18next to v24.2.3 (#3232)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 14:14:59 -04:00
github-actions[bot]
2becd52c4b
Update contributors list (#3131)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-06 14:11:02 -04:00
Matt Rubens
3ce7b3a432
Add Dutch localization files (#3231)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Thomas Brugman <thomas.brugman.teb3@gmail.com>
2025-05-06 14:09:05 -04:00
Matt Rubens
42254cf654
Add editor name to telemetry (#3229) 2025-05-06 13:48:33 -04:00
renovate[bot]
19a90dea29
fix(deps): update dependency fast-xml-parser to v4.5.3 (#3228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:31:08 -07:00
renovate[bot]
c3c02b6702
chore(deps): replace dependency npm-run-all with npm-run-all2 ^5.0.0 (#3190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-05-06 10:30:53 -07:00
renovate[bot]
4c858458f8
fix(deps): update dependency @types/pdf-parse to v1.1.5 (#3227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:30:14 -07:00
renovate[bot]
71b24a1a90
chore(deps): update dependency @vscode/test-cli to ^0.0.10 (#3195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:24:12 -07:00
renovate[bot]
2935539b69
chore(deps): update dependency eslint-config-prettier to v10.1.2 (#3204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:22:30 -07:00
renovate[bot]
6472109d4a
chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:22:15 -07:00
renovate[bot]
fc4487af42
chore(deps): update dependency glob to v11.0.2 (#3209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:22:00 -07:00
renovate[bot]
7dc1c023a8
chore(deps): update dependency tsx to v4.19.4 (#3211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:21:32 -07:00
renovate[bot]
242714b22a
chore(deps): update dependency @types/node to v18.19.96 (#3191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:21:13 -07:00
renovate[bot]
53af1c077a
chore(deps): update dependency vitest to v3.1.3 (#3212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:20:59 -07:00
renovate[bot]
4af3854180
chore(deps): update dependency @types/node to v20.17.42 (#3194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 10:20:06 -07:00
R00-B0T
f798a1e4bb
Changeset version bump (#3188)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-06 10:10:23 -07:00
Chris Estreich
b0757c2d05
Enable Gemini prompt caching by default (#3225) 2025-05-06 09:56:57 -07:00
Shariq Riaz
4ce3e64027
Update setup script to pull latest evals repo (#3200) 2025-05-06 09:40:09 -07:00
zetaloop
328a25e889
Add gemini-2.5-pro-preview-05-06 model (#3222)
Add model gemini-2.5-pro-preview-05-06
2025-05-06 09:33:09 -07:00
Dicha Zelianivan Arkana
883cb927a3
refactor: general UI improvements (#2987) 2025-05-06 12:06:20 -04:00
Chris Estreich
2e2c0a8f02
chore: prepare for v3.16.0 release (#3214) 2025-05-06 08:34:29 -07:00
Sam Hoang Van
8b6f5fd60b
Fix/remove path lib webview (#2529) 2025-05-06 08:19:47 -07:00
Tony Zhang
6d0f08f238
Fix language select width calculation (#3201) 2025-05-06 08:49:47 -04:00
dlab-anton
c701600081
Feat: Vertical settings tabs (#2914)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-06 08:48:42 -04:00
robertheadley
78b2083467
feat: Add error console to MCP servers - Edited with Roo Code and Anthropic Claude 3.5 (#2722)
Co-authored-by: cte <cestreich@gmail.com>
2025-05-06 00:17:20 -07:00
Kal Sze
82dd3d5c4b
#1287 - ignore stderr of MCP servers unless it really fails to connect (#1441)
Co-authored-by: cte <cestreich@gmail.com>
2025-05-05 23:32:08 -07:00
Chris Estreich
a649a53ec6
Move remaining provider settings into separate components (#3208) 2025-05-05 23:09:24 -07:00
Daniel Trugman
ce8fbbdafa
Requesty provider fixes (#3193)
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-05 20:49:11 -07:00
Matt Rubens
8ab0de3d02
Use Lucide icons and translations in the code block (#3203) 2025-05-05 23:19:24 -04:00
Chris Estreich
da6c50bf10
Organize provider settings into separate components (#3196) 2025-05-05 15:53:01 -07:00
Shariq Riaz
883be32b1a
feat: Add Groq and Chutes API providers (#3034)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-05 15:16:27 -07:00
renovate[bot]
6666d43c7d
chore: Configure Renovate (#1771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-05 17:40:24 -04:00
Chris Estreich
973295835a
Webview message handler + terminal settings cleanup (#3189) 2025-05-05 12:56:41 -07:00
KJ7LNW
904f71cb19
feat: add VSCode terminal environment inheritance setting (#2862)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-05 12:19:50 -07:00
Deon588
805ac1689a
Improve Accessibility of Auto-Approve Toggles (#3145)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: DEON NEL <deonnel@M-XIB-DeoN01.local>
Co-authored-by: cte <cestreich@gmail.com>
2025-05-05 12:18:07 -07:00
Chris Estreich
78beb718c8
Move environment details to a separate module, add tests (#3078) 2025-05-05 12:07:20 -07:00
KJ7LNW
305185cd88
feat: clickable code references in model responses navigate to source lines (#3087)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-05 14:33:18 -04:00
Aljosa Asanovic
01fec4c1db
fix: migrate and persist modeApiConfigs for per-mode API profiles (#3071) 2025-05-05 11:11:57 -07:00
Chris Estreich
bf38b830b8
Tidy up the Cline class a bit (#3100)
* Tidy up the Cline class a bit

* Clean up more comments
2025-05-05 09:11:47 -07:00
Chris Estreich
11ed7d7d46
Add support for tests that use ESM libraries (#3172)
* Add support for tests that use ESM libraries

* Disable win32 for this test for now
2025-05-05 08:21:40 -07:00
R00-B0T
aceff7dfe8
Changeset version bump (#3167)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-04 18:05:22 -07:00
KJ7LNW
bd3a42ed23
perf: optimize code block rendering performance (#3135)
feat: optimize code block rendering performance

Memoize CodeBlock components to prevent unnecessary re-renders:
- Add MemoizedCodeContent for syntax highlighted HTML
- Add MemoizedStyledPre for container element
- Properly type all component props
- Reduce React reconciliation work for complex code blocks

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-04 13:20:33 -07:00
Chris Estreich
d27b22fa59
Update @google/genai package (#3166) 2025-05-04 13:20:11 -07:00
R00-B0T
c3b8597898
Changeset version bump (#3149)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-04 00:01:32 -07:00
Matt Rubens
756c0a0014
Fix issues with subtasks attempting completion along with commands (#3156) 2025-05-03 23:57:19 -07:00
Matt Rubens
40ee5cf154
Remove help button from title bar (#3150) 2025-05-03 13:45:12 -04:00
Chris Estreich
98adb04f98
Gemini caching tweaks (#3142) 2025-05-03 07:55:35 -07:00
Matt Rubens
8641b215c6
Add isSubtask to telemetry (#3141) 2025-05-02 23:16:21 -04:00
R00-B0T
02ff4bd941
Changeset version bump (#3134)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-05-02 20:03:48 -07:00
Chris Estreich
5bca10d73c
Fix empty command bug (#3139) 2025-05-02 19:52:11 -07:00
Chris Estreich
dd3cd7fd7d
More robust process killing (#3136) 2025-05-02 18:15:22 -07:00
Chris Estreich
0f977724de
v3.15.3 (#3133) 2025-05-02 16:41:58 -07:00
Chris Estreich
06d8dd2bcf
Gemini caching fixes (#3096) 2025-05-02 16:36:22 -07:00
Chris Estreich
a2dcc1869d
Improve performance of CustomModesManager (#3123) 2025-05-02 14:52:08 -07:00
Chris Estreich
19ef52bd85
More command execution improvements (#3124) 2025-05-02 14:51:53 -07:00
Chris Estreich
369e3a610b
Update default settings for evals (#3130) 2025-05-02 14:50:43 -07:00
Aleks Volochnev
aae6fc0ad2
Updates terminal.zshOhMy description (#3125)
Updates settings description

 - Updates setting terminal.zshOhMY.description to mention need to restart IDE to apply the changes
2025-05-02 11:16:39 -07:00
R00-B0T
e483f9bb9d
Changeset version bump (#3098)
* changeset version bump

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-02 11:38:44 -04:00
github-actions[bot]
a1993a90cc
Update contributors list (#3058)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-02 10:55:49 -04:00
Matt Rubens
e625a1e957
V3.15.2 (#3121)
v3.15.2
2025-05-02 10:43:27 -04:00
Matt Rubens
71f428bbeb
Copy both error message and content on mermaid error (#3120) 2025-05-02 10:09:49 -04:00
Chris Estreich
2e66081921
Terminal performance improvements (#3119) 2025-05-02 02:38:40 -07:00
Matt Rubens
da9b857376
Handle Mermaid validation errors (#3112)
* Handle Mermaid validation errors

* PR feedback

* More PR feedback
2025-05-02 01:23:44 -04:00
Matt Rubens
f813ed850b
Remove flaky tiktoken test (#3113) 2025-05-02 00:40:44 -04:00
Tony Zhang
6a6443e648
Fix: ChatTextArea's height moving unexcepted when Roo Code width change (#2969)
Fix: ChatTextArea's height moving unexcepted when Roo Code width change.
2025-05-02 00:09:23 -04:00
Matt Rubens
a356d70669
Customizable headers for the OpenAI-compatible provider (#3056)
* Customizable headers for the OpenAI-compatible provider

* PR feedback

* Fix migration

* Update webview-ui/src/components/settings/ApiOptions.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-01 23:30:57 -04:00
Matt Rubens
2d8beb2ed0
Telemetry for title button clicks (#3108) 2025-05-01 23:11:32 -04:00
Chris Estreich
be387fa948
Update CHANGELOG.md (#3076) 2025-05-01 11:19:12 -07:00
Chris Estreich
d6e86a9eed
Sync evals types (#3069) 2025-05-01 11:15:28 -07:00
Dicha Zelianivan Arkana
f39dcf40aa
refactor(chat): show inline code more subtle (#2747)
* refactor(chat): show inline code more subtle

* refactor: make inline code more readable
2025-05-01 11:11:39 -07:00
Matt Rubens
026a3e1059
Show 'None' when a mode has no tool groups (#3095) 2025-05-01 13:09:08 -04:00
Sacha Sayan
dc03cb75da
Design Engineer Roomode (#3070)
* Design Engineer Roomode

* Create spicy-tips-fail.md

* Update .roomodes

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-01 11:32:47 -04:00
Tony Zhang
40bf9e7ae5
Fix padding problem in #2965 (#3084) 2025-05-01 10:25:26 -04:00
gongzhongqiang
8c428b5b63
feat(openai): Add Config Option to Overwrite OpenAI's API Base (#3066)
* feat(openai): Add Config Option to Overwrite OpenAI's API Base

* feat(openai): Add option to use custom base URL for OpenAI native API
2025-05-01 10:23:18 -04:00
Hannes Rudolph
14afaca5fb
fix the built boomerang orchestrator mode to bring in line with origi… (#3081)
fix the built boomerang orchestrator mode to bring in line with original boomerang mode
2025-04-30 23:17:02 -04:00
R00-B0T
76f98f6c05
Changeset version bump (#3074)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-04-30 12:59:38 -07:00
Chris Estreich
49382b7d89
Capture both stdout and stderr from execa-spawned processes (#3073) 2025-04-30 12:49:48 -07:00
John Richmond
b51abf70f9
Treat HistoryView item clicks as (de)select in selection mode (#3068)
* Treat HistoryView item clicks as (de)select in selection mode

* UI tweaks

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-30 13:53:41 -04:00
Matt Rubens
6e86f04a74
Make retries respect the global auto approve checkbox (#3067) 2025-04-30 11:31:10 -04:00
Brendan O'Leary
506719018b
Play sound only when action needed from the user (#3065)
* Update sound logic to be centralized and only run when action is needed from user

* Handle cases like questions and resuming
2025-04-30 11:14:52 -04:00
R00-B0T
d990f0ea2d
Changeset version bump (#3020)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-04-30 01:57:55 -07:00
Chris Estreich
2fd7d13624
v3.15.0 (#3061) 2025-04-30 01:51:59 -07:00
Chris Estreich
e975e30bd5
Command execution component tweaks (#3059) 2025-04-30 01:00:46 -07:00
Chris Estreich
1d7569b14c
Improve command execution component (#3057) 2025-04-29 23:56:59 -07:00
Chris Estreich
7863303aac
Fall back to execa if VSCode terminal integration fails (#3049) 2025-04-29 21:10:41 -07:00
github-actions[bot]
33a1f358cb
Update contributors list (#2972)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-29 23:35:47 -04:00
Tony Zhang
23977d054d
Fix: Adjust padding in chat view for better UI (#2965)
* Fix: Adjust padding in chat view for better UI

* Add transition for chat view padding
2025-04-29 23:33:27 -04:00
John Richmond
34d7dcf8c3
Support mentioning filenames with spaces (#3044)
* Support mentioning filenames with spaces

Allows spaces to be escaped in mentions with \. Does not attempt more
comprehensive escape handling. (IMO a more structured representation or
moving to something like @[something complex] is probably a better long
term approach, but the scope of that seems problematic.

Adapted from 8955d45708.

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Older array creation to make check-types happier

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-29 22:27:16 -04:00
Sacha Sayan
6e4a7919cd
UI: Toggles and border fixes on edge case themes. (#3051)
Toggles and border fix.
2025-04-29 19:11:58 -07:00
Chris Estreich
67ec7560ee
Copy tree-sitter.wasm to dist (#3046) 2025-04-29 16:12:13 -07:00
KJ7LNW
f120de6a34
test: verify dist WASM files exist (#3048)
Add test to verify presence of all required WASM files in dist directory:
- tiktoken_bg.wasm for tokenization
- tree-sitter.wasm core parser
- Language-specific tree-sitter WASM files for syntax highlighting

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-29 16:10:51 -07:00
Matt Rubens
664d5b1dd5
Add a Release Engineer project mode (#3038) 2025-04-29 16:10:25 -04:00
Chris Estreich
65cb9244ee
Count tokens worker (#3037)
* Count tokens worker

* Appease knip
2025-04-29 12:29:25 -07:00
Chris Estreich
dcef0fc843
Prevent duplicate terminal output when combining terminal output messages (#3033) 2025-04-29 10:10:14 -07:00
Duong M. CUONG
97f0dd4cfa
feat: persist workspacePath to each task for improved task management (#2999) 2025-04-29 11:57:59 -04:00
Chris Estreich
8df1ee0252
Set busy flag on ExecaTerminal so it reports in env details when backgrounded (#3031)
* Set busy flag on ExecaTerminal so it reports in env details when backgrounded

* Revert this
2025-04-29 08:55:52 -07:00
Chris Estreich
d07e60575b
Simplify Roo Code's quick actions (#3024)
* Quick fix actions

* Remove unused keys

* Simplify more stuff

* Bring back "Explain Code"

* Bring "Improve Code" back

* Add back "Improve"

* This is too flakey for now
2025-04-29 08:07:24 -07:00
Chris Estreich
60270d1064
Revert "feat: syntax highlighting terminal output with Shiki" (#3023)
Revert "feat: syntax highlighting terminal output with Shiki (#3021)"

This reverts commit 8b072ad126.
2025-04-28 23:08:57 -07:00
Chris Estreich
81e01a9017
Update package-lock.json in webview-ui (#3022) 2025-04-28 22:58:10 -07:00
KJ7LNW
8b072ad126
feat: syntax highlighting terminal output with Shiki (#3021)
* feat: syntax highlighting terminal output with Shiki

Refactored CommandExecution.tsx to:
- Implement CodeBlock component for terminal display
- Use Shiki for syntax highlighting of shell commands and terminal output

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* ui: present same compressed command output that the model will receive

Avoids rendering problems and performance regressions:
- Compresses output using BaseTerminal.compressTerminalOutput
- Eliminates need for Virtuoso by limiting output size

Ensures command output shown in UI matches the compressed format provided to the model:
- Applies same BaseTerminal.compressTerminalOutput processing
- Uses configured terminalOutputLineLimit for consistency

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update CommandExecution tests to use CodeBlock mock

- Replace virtuoso mock with CodeBlock mock to fix shiki import error
- Update CodeBlock mock to properly handle source prop
- Add proper empty output test case verification
- Keep original test values and structure

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-28 19:54:10 -07:00
Chris Estreich
65958d81b9
Overhaul CodeBlock rendering (#3019) 2025-04-28 17:10:57 -07:00
Julio Navarro
04fa72eebe
Feat: Add a new button to import settings on the welcome screen (#2811) 2025-04-28 16:07:35 -07:00
Ash R
a3d8c0e3f6
feat: vertex/gemini prompt caching (#2996) 2025-04-28 15:11:35 -07:00
Ryan Pfister
2075f26f18
feat: Add Reasoning Effort setting for OpenAI Compatible provider (#2906) 2025-04-28 13:36:47 -07:00
Chris Estreich
21ea433b88
Fix e2e tests (#3014) 2025-04-28 12:52:51 -07:00
Wojciech Kordalski
449d54bdd5
Remove unused ClineSay and -Ask type variants (#2061)
Co-authored-by: cte <cestreich@gmail.com>
2025-04-28 12:33:16 -07:00
Chris Estreich
2e1d949e65
Add support for multiple command execution strategies (#2820) 2025-04-28 08:55:07 -07:00
KJ7LNW
8e85a121f1
feat: standardize tree-sitter test implementations (#2960)
* refactor: standardize C# Tree-Sitter parser tests

This commit standardizes the C# Tree-Sitter parser tests to ensure:
- Variable/function names in sample code match the tests
- Each test only verifies specific identifiers relevant to that test
- Test names clearly indicate what they're testing
- No skipped tests remain
- Only one test exists per structure or combination of structures
- All debug output uses debugLog from helpers.ts

The standardization improves maintainability and clarity while preserving
all existing functionality.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: standardize C Tree-Sitter parser tests

This commit standardizes the C Tree-Sitter parser tests to ensure:
- Variable/function names in sample code match the tests (using snake_case)
- Each test only verifies specific identifiers relevant to that test
- Test names clearly indicate what they're testing
- No skipped tests remain - tests for unsupported features are removed
- Only one test exists per structure or combination of structures
- All debug output uses debugLog from helpers.ts

The standardization improves maintainability and clarity while preserving
all existing functionality. Documentation has been added for C language
constructs that are not currently supported by the parser.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: standardize Kotlin Tree-Sitter parser

Standardized Kotlin Tree-Sitter parser to ensure consistent naming and structure:
- Renamed identifiers to clearly indicate what they're testing
- Ensured all code sections are at least 4 lines long
- Organized query patterns logically with clear comments
- Removed skipped tests and unused query patterns
- Ensured only one test per structure or combination of structures

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: standardize PHP Tree-Sitter parser

Standardized PHP Tree-Sitter parser to ensure consistent naming and structure:
- Renamed identifiers to clearly indicate what they're testing
- Ensured all code sections are at least 4 lines long
- Organized query patterns logically with clear comments
- Consolidated related tests to ensure only one test per structure
- Ensured all debug output uses debugLog from helpers.ts

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: standardize Ruby Tree-Sitter parser

Standardized Ruby Tree-Sitter parser to ensure consistent naming and structure:
- Expanded query to support many more Ruby language constructs
- Added comprehensive test file with clear section headers
- Ensured all code sections are at least 4 lines long
- Added tests for each language construct
- Used consistent naming conventions for test identifiers

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: standardize Swift Tree-Sitter parser

Standardized Swift Tree-Sitter parser to ensure consistent naming and structure:
- Renamed identifiers to clearly indicate what they're testing
- Ensured all code sections are at least 4 lines long
- Organized query patterns logically with clear comments
- Removed skipped tests and unused query patterns
- Ensured only one test per structure or combination of structures

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: dynamically include all tree-sitter WASM files in build process

- Modified esbuild.js to dynamically read and copy all WASM files from tree-sitter-wasms package
- Added error handling and logging for better debugging
- Ensures all language parsers are automatically included without requiring manual updates

* refactor: move test mocks and fixtures to shared locations

Move test mocks to helpers.ts to be shared between test files
Create fixtures directory for shared test data
Move sample TSX content to fixtures/sample-tsx.ts
Update test files to use shared mocks and fixtures

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: simplify tree-sitter debug output

- Remove detailed node inspection to reduce noise
- Keep only essential tree structure output
- Remove duplicate content logging

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: standardize C# tree-sitter test structure

Move C# sample code to dedicated fixture file and create inspectCSharp test
following the same pattern as other language tests. This improves test
organization and maintainability by:

- Extracting sample C# code to fixtures/sample-c-sharp.ts
- Adding inspectCSharp.test.ts for tree structure inspection
- Updating parseSourceCodeDefinitions.c-sharp.test.ts to use fixture

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: add language-specific capture processing

- Add language parameter to processCaptures for language-specific handling
- Implement selective HTML filtering for jsx/tsx files
- Update all call sites to pass correct language parameter
- Fix type safety by properly passing language strings

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: move tree-sitter test samples to fixtures

Move sample code from parseSourceCodeDefinitions test files into dedicated
fixtures directory for better organization and reuse:

- Created fixtures directory for language samples
- Moved sample code for C#, C, JSON, Kotlin, PHP, Ruby, Rust, and Swift
- Created inspect test files for each language
- Updated original test files to import from fixtures
- Standardized test options across languages
- No behavior changes, all tests passing

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: standardize tree-sitter test code across languages

Standardize test code structure and naming across all language parsers:
- Rename identifiers to clearly indicate test purpose
- Ensure each code section has descriptive comments
- Group related code sections together
- Maintain language-specific naming conventions
- Keep test structure consistent across languages
- Remove tests for unsupported features

Changes made to:
- C, JSON, Kotlin, PHP, Ruby, Rust, and Swift test files
- Sample code fixtures
- Parser definition tests
- Inspect structure tests

No functional changes - all tests passing with improved maintainability.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: standardize tree-sitter parser tests across all languages

- Ensure all test structures span at least 4 lines for better parsing
- Create exactly one consolidated test per data structure type
- Use descriptive names that clearly indicate test purpose
- Improve query pattern organization and documentation
- Simplify inspect test files to focus on structure validation
- Implement result caching in test files for better performance
- Remove duplicate and skipped tests
- Follow consistent naming conventions across all languages

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* first pass all but elm-bash

* test: inspectTreeStructure helper now returns a string

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: establish single source of truth for MIN_COMPONENT_LINES

- Move minComponentLines parameter to a file-level constant
- Remove parameter passing to processCaptures function
- Update all references to use the global constant
- Remove redundant local constant declaration in parseFile

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: improve MIN_COMPONENT_LINES implementation

- Changed MIN_COMPONENT_LINES constant to use getter/setter functions
- Updated references to use getMinComponentLines() function
- Modified test helper to set value to 0 during tests
- This establishes a single source of truth while making testing easier

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: standardize tree-sitter test implementations

Standardized tree-sitter test implementations across all supported languages:
- Removed debugLog calls from test files
- Implemented consistent line number pattern matching
- Ensured proper test structure and execution order
- Added comprehensive test coverage for supported structures
- Maintained 1:1 mapping between queries, tests and samples
- Documented unsupported features in TODO sections

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* docs: document tree-sitter parseable but unsupported structures

Added TODO sections in test files documenting structures that can be parsed
by tree-sitter but currently lack query pattern support:

- Python: f-strings, complex type annotations, pattern matching
- C++: virtual methods, field initializers, base class clauses
- Java: import declarations, field declarations with modifiers
- TSX: React hooks, context providers, event handlers

Added examples and clarifying comments to existing TODO sections.
Enhanced Java query patterns for better structure capture including
lambda expressions, field declarations, and type parameters.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: use correct distDir variable for WASM file copying

The copyWasmFiles plugin was using an undefined targetDir variable when copying
tree-sitter WASM files. Changed to use the correctly defined distDir variable,
fixing the build process.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* lint: remove unused imports and variables from tree-sitter tests

Removed unused imports and variables from tree-sitter test files to fix linting errors:
- Removed unused goQuery import from helpers.ts
- Removed unused imports and mockedFs variables from language-specific test files
- Cleaned up test files to only import what they use

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-28 11:27:49 -04:00
dlab-anton
ecc7473a02
fix UI/UX: Mode switch performance from 1 sec -> instant (#2997)
* Fix mode switching performance in PromptsView by using local state for instant UI updates

* Update webview-ui/src/components/prompts/PromptsView.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-04-28 11:10:29 -04:00
Matt Rubens
7020d1db2c
Fix ru README contributor section (#2995) 2025-04-27 22:49:16 -04:00
KJ7LNW
0549a02876
test: run linting during npm test (#2981)
Run linting checks alongside tests to catch style and formatting issues before pushing code or creating PRs, saving developers time by identifying problems earlier.

- Added lint:* to npm test command execution
- Maintains parallel execution on non-Windows systems

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-27 22:39:56 -04:00
Chris Estreich
1924e10e72
Fix all linter errors (and fix the lint scripts too) (#2958) 2025-04-26 09:45:26 -07:00
Julio Navarro
418791a743
Fix: custom modes export import (#2810)
* Enhance export method in ContextProxy to filter out project custom modes, ensuring only global settings are included in the export.

* Fix issue of customModes not being imported when importing settings.

The problem was that the Custom modes are managed by the CustomModesManager, not by the context proxy.

* * Fix tests

* Update webviewMessageHandler to provide customModeManager to importSettings
2025-04-26 08:46:05 -04:00
R00-B0T
42c1f5f882
Changeset version bump (#2957)
* changeset version bump

* Update package.json

* Update package-lock.json

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-26 00:03:17 -04:00
github-actions[bot]
d6860e1114
Update contributors list (#2946)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-25 23:53:45 -04:00
Matt Rubens
5b99e4d50d
Updated tips (#2961)
* Updated tips

* Changeset
2025-04-25 23:51:13 -04:00
Sacha Sayan
83133c6e6d
UI top down homescreen (#2951)
* isotrUpdate welcome screen UI components and fix unused variable

* Save collapsibility.

* Add persistence, locales.

* Top layout, expanded tips.

* Minimal 'tasks' language.

* Adjust announcement positioning/dimensions.

* Fix tests, defaults.

* Fix translations.

* Compromise-compromise.

* Final tweaks.

* More tweaks.

* More tweaks.

* Issues fix.

* Update translations, remove debug.

* Fix transparency issue.

---------

Co-authored-by: hannesrudolph <hrudolph@gmail.com>
2025-04-25 22:39:11 -04:00
Tony Zhang
de22566ea2
Fix: word wrapping in Roo message title (#2948) 2025-04-25 17:13:13 -07:00
shariqriazz
e3d55a36ac
docs: fix file paths in settings.md (#2930) 2025-04-25 18:49:19 -04:00
Chris Estreich
c8b5cdf7b2
Omit reasoning params for non-reasoning models (#2932) 2025-04-25 15:24:03 -07:00
Chris Estreich
cb29e9d56f
Remove ModelInfo objects from settings (#2939) 2025-04-25 15:23:25 -07:00
Matt Rubens
a354c01b0e
Add Boomerang as a default mode (#2934)
* Add Boomerang as a default mode

* Rename boomerang, add emoji
2025-04-25 16:06:50 -04:00
Matt Rubens
547874eed7
Revert "Fix: Preserve editor state and prevent tab unpinning during diffs" (#2956)
Revert "Fix: Preserve editor state and prevent tab unpinning during diffs (#2…"

This reverts commit c2dd743aeb.
2025-04-25 16:04:38 -04:00
Chris Estreich
06db547308
Use a WASM-based tiktoken implementation (#2859)
* Use a WASM-based tiktoken implementation

* Clean up imports
2025-04-25 10:32:35 -07:00
pugazhendhi-m
7e76736e13
Updates default model for Unbound (#2944)
* Updates default model for Unbound

* Adds changeset

---------

Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-04-25 07:36:25 -04:00
R00-B0T
586e43bd55
Changeset version bump (#2926)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-04-24 16:41:26 -07:00
Chris Estreich
0dfbae64f3
Allow users to toggle Gemini caching on / off for OpenRouter (#2927) 2025-04-24 16:34:22 -07:00
KJ7LNW
5c2511e355
feat: compress terminal output with backspace characters (#2907)
Follow-up to #2562 adding support for backspace character compression.
Optimizes terminal output by handling backspace characters similar to
carriage returns, improving readability of progress spinners and other
terminal output that uses backspace for animation.

- Added processBackspaces function using efficient indexOf approach
- Added comprehensive test suite for backspace handling
- Integrated with terminal output compression pipeline

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-24 19:28:09 -04:00
github-actions[bot]
23aa3b636b
Update contributors list (#2903)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-24 19:26:00 -04:00
Chris Estreich
a3f1a3f3ad
Gemini caching improvements (#2925) 2025-04-24 14:20:09 -07:00
asychin
7f99c0691e
feat/add-russian-lang (#2909)
* rus

* sad

* fix lang

* Add ru to translate mode instructions

* Add ru to evals types

* Add link to READMEs

* Bring back smart quotes

* Add prompt caching translations

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-24 16:03:30 -04:00
Chris Estreich
b75379bed3
Improve OpenRouter model fetching (#2922) 2025-04-24 12:29:36 -07:00
Chris Estreich
ad4782b766
Add an option to enable prompt caching (#2924) 2025-04-24 12:28:43 -07:00
R00-B0T
31600ed3c9
Changeset version bump (#2919)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-04-24 09:27:32 -07:00
Chris Estreich
d46a9b484c
v3.14.1 (#2920) 2025-04-24 09:24:56 -07:00
Chris Estreich
fb91836203
Revert Gemini caching, fix OR supports cache issue (#2918) 2025-04-24 09:15:56 -07:00
R00-B0T
9b73965867
Changeset version bump (#2877)
* changeset version bump

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-24 00:51:24 -04:00
Matt Rubens
2e9b1f1824
v3.14.0 (#2902) 2025-04-24 00:44:24 -04:00
github-actions[bot]
37a8a442ac
Update contributors list (#2871)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-24 00:31:27 -04:00
Yikai Liao
b5ffaf1ba2
Fix Terminal Carriage Return Handling for Correct Progress Bar Display (#2562)
* fix(terminal): Ensure correct handling of carriage returns for progress bars

This commit refines the tests for `TerminalProcess` to ensure the correct interpretation of terminal output containing carriage returns (`\\r`), which is essential for properly handling dynamic elements like progress bars (e.g., `tqdm`).

- Validated the `processCarriageReturns` method's behavior in simulating terminal line overwrites caused by `\\r`.
- Corrected the expectation in the `handles carriage returns in mixed content` test to accurately reflect the method's output (final line content + preserved escape sequences), confirming the logic works as intended for progress-bar-like updates.
- Fixed a minor Jest `toBe` syntax error in a related test case.
- Suppressed an expected `console.warn` in the non-shell-integration test for cleaner logs.

By ensuring `processCarriageReturns` is correctly tested, we increase confidence that the component responsible for pre-processing terminal output handles progress bars appropriately before the output is potentially used elsewhere (e.g., sent to an LLM).

* fix(test): Make TerminalProcess integration test reliable

This commit fixes the flaky test case `integrates with getUnretrievedOutput to handle progress bars` in `TerminalProcess.test.ts`.

The test previously failed intermittently due to:
1.  Relying on a fixed `setTimeout` duration to wait for asynchronous stream processing, which created a race condition.
2.  Incorrectly assuming that `await terminalProcess.run(...)` would return the final output directly via its resolved value.

The fix addresses these issues by:
-   Removing the unreliable intermediate check based on `setTimeout`.
-   Modifying the test to correctly obtain the final output by listening for the `completed` event emitted by `TerminalProcess`, which is the intended way to receive the result.

This ensures the test accurately reflects the behavior of `TerminalProcess` and is no longer prone to timing-related failures.

* Add changeset for terminal carriage return fix

* Implement terminal compress progress bar feature

This commit introduces a new feature to compress terminal output by processing carriage returns. The `processCarriageReturns` function has been integrated into the `Terminal` class to handle progress bar updates effectively, ensuring only the final state is displayed.

Additionally, the `terminalCompressProgressBar` setting has been added to the global settings schema, allowing users to enable or disable this feature.

Tests have been updated to validate the new functionality and ensure correct behavior in various scenarios.

A Benchmark is also added to test the performance.

Not that there is still no i18n support for this.

* Add i18n support for compressProgressBar setting in multiple languages

* Optimize processCarriageReturns function for performance and multi-byte character handling

This commit enhances the `processCarriageReturns` function by implementing in-place string operations to improve performance, especially with large outputs. Key features include:
- Line-by-line processing to maximize chunk handling.
- Use of string indexes and substring operations instead of arrays.
- Single-pass traversal of input for efficiency.
- Special handling for multi-byte characters to prevent corruption during overwrites.

Additionally, tests have been updated to validate the new functionality, ensuring correct behavior with various character sets, including emojis and non-ASCII text.

Highly Density CR case is added to Benchmark

* slight performance improvement by caching several variable

* Optimize multi-byte character handling in processCarriageReturns

Refactor the logic within the `processCarriageReturns` function to simplify the detection of partially overwritten multi-byte characters (e.g., emojis).

Removed redundant checks and clarified the conditions for identifying potential character corruption during carriage return processing. This improves code readability and maintainability while preserving the original functionality of replacing potentially corrupted characters with a space.

Also enforced consistent use of semicolons for improved code style.

* docs: standardize carriage return (\r) and line feed (\n) terminology
Improve code clarity by consistently adding escape sequence notation to all
references of carriage returns and line feeds throughout documentation and tests.
This makes the code more readable and avoids ambiguity when discussing these special characters.

* feat: Improve terminal output processing clarity and settings UI

- Add detailed comments to `processCarriageReturns` explaining line feed handling.
- Relocate `terminalCompressProgressBar` setting below `terminalOutputLineLimit` for better context in UI.

* Fix: Compress Progress Bar Setting Checkbox

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-24 00:22:47 -04:00
axb
3b65023d0b
feat(diff): improve progress indicator for apply_diff tool (#2758)
Add animated dots to progress indicator based on content length
Optimize when progress updates are shown (every 10 characters)
Move searchBlockCount calculation inside conditional blocks
Skip unnecessary ask operations when toolProgressStatus is empty
2025-04-24 00:12:07 -04:00
Hannes Rudolph
c228e638b9
Update insert_content tool description for clarity and detail (#2892) 2025-04-23 17:43:36 -04:00
Hannes Rudolph
41db2cad43
Update search_and_replace tool description for clarity and detail (#2891) 2025-04-23 17:42:59 -04:00
Matt Rubens
a53f604e3a
Disable OpenRouter Gemini caching for now (#2890) 2025-04-23 16:46:52 -04:00
Chris Estreich
03925d25b0
Fix code cli flag in evals (#2889) 2025-04-23 13:26:59 -07:00
Chris Estreich
1543713c32
Don't immediately show an model ID error when changing API providers (#2888) 2025-04-23 13:24:22 -07:00
Chris Estreich
2c40224f6f
Fix task size cache TTL (#2887) 2025-04-23 12:20:13 -07:00
Chris Estreich
72962b3c76
Split api and chat message persistence into a separate module (#2866) 2025-04-23 12:09:24 -07:00
Chris Estreich
230e953e5d
Throttle calls to calculate task folder size (#2885) 2025-04-23 11:42:22 -07:00
Chris Estreich
b421636a2c
Properly hide cache section of task header (#2884) 2025-04-23 11:41:06 -07:00
Chris Estreich
a08461a655
Gemini prompt caching (#2827) 2025-04-23 11:35:50 -07:00
Chris Estreich
31d4b656d0
Package material icons in vsix (#2882)
* Package material icons in vsix

* Add changeset
2025-04-23 11:21:35 -07:00
Chris Estreich
a77be28a95
Use formatLargeNumber on token counts in task header (#2883)
* Format large numbers

* Add changeset
2025-04-23 11:16:20 -07:00
Daniel
970ccd7879
feat: add other useful variables to the custom system prompt (#2879) 2025-04-23 13:21:32 -04:00
Dicha Zelianivan Arkana
4606e9a6cc
fix(chat): better loading feedback (#2750)
* fix(chat): better loading feedback

* fix(chat): missing loading aria role

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* refactor(chat): use vscode loading for more consistency

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-04-23 11:57:50 -04:00
Matt Rubens
80912d0919
v13.3.3 (#2876) 2025-04-23 09:47:19 -04:00
Chris Estreich
a9ca17717c
OpenRouter Gemini caching (#2847)
* OpenRouter Gemini caching

* Fix tests

* Remove unsupported models

* Clean up the task header a bit

* Update src/api/providers/openrouter.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Remove model that doesn't seem to work

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-04-23 09:45:57 -04:00
mlopezr
e53d299acf
Allow Amazon Bedrock Marketplace ARNs (#2874)
* Update validate.ts

Allow ARNs from Bedrock Marketplace, which are different because models are deployed using SageMaker Inference behind the scenes.

* Update bedrock.ts

Allow ARNs from Bedrock Marketplace, which are different because models are deployed using SageMaker Inference behind the scenes.
2025-04-23 09:36:50 -04:00
Dominik Oswald
844753e0d9
Remove unnecessary cost calculation from vscode-lm.ts (#2875)
* feat: Removed unnecessary cost calculation

* Update vscode-lm.ts

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-23 09:34:32 -04:00
Wojciech Kordalski
74faacd69d
FakeAI "controller" object must not be copied (#2463)
The FakeAI object passed by the user must be exactly the same object
that is passed to FakeAIHandler via API configuration.
Unfortunatelly, as the VSCode global state is used as configuration
storage, we lose this property (VSCode global state creates copies of
the object). Also the class of the stored object is lost, so methods
of the object are unavailable.

Therefore, we store the original objects in global variable and
use ID field of FakeAI object to identify the original object.
2025-04-23 01:42:06 -07:00
github-actions[bot]
e403a96e66
Update contributors list (#2867)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-23 03:14:08 -04:00
Trung Dang
01a7a66ca0
feat: add injectEnv util, support env ref in mcp config (#2679)
* feat: support environment variables reference in mcp `env` config

* tests(src/utils/config): add test for `injectEnv`

* fix(injectEnv): use `env == null` and `??` check instead of `!env`, `||`

* refactor: remove unnecessary type declare

* chore!: simplify regexp, remove replacement for env vars with dots
2025-04-23 03:13:04 -04:00
Dicha Zelianivan Arkana
3df9eac5b7
fix(mention): conditionally remove aftercursor content (#2732) 2025-04-23 03:09:29 -04:00
hongzio
33ee5d6c34
Fix: focusInput open roo code panel (#2626) (#2817)
* Fix: focusInput open roo code panel (#2626)

* Fix: `roo-cline.focusInput` open roo code panel

* fixup! Fix: focusInput open roo code panel (#2626)
2025-04-23 03:06:48 -04:00
Alfredo Medrano
3a5913ffca
Bugfix/fix vscodellm model information (#2832)
* feat: initialize VS Code Language Model client in constructor

* feat: add VS Code LLM models and configuration

* feat: integrate VS Code LLM models into API configuration normalization

* Fix tests

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-23 03:05:47 -04:00
seedlord
c2dd743aeb
Fix: Preserve editor state and prevent tab unpinning during diffs (#2857)
- Maintains editor view column state when closing and reopening files during diff operations, ensuring tabs stay opened in their original position.

- Prevents closing the original editor tab when opening the diff view, preserving pinned status when applying changes via write_to_file or apply_diff.

- Updates VSCode workspace launch flag from -n to -W for compatibility.
2025-04-23 02:45:35 -04:00
Hannes Rudolph
3d129e8a89
fix: allow opening files without workspace root (#1054)
* fix: allow opening files without workspace root

The openFile function in open-file.ts was requiring a workspace root to be present,
which prevented opening global files (like MCP settings) when no workspace was open.
Modified the function to handle absolute paths without this requirement.

Previously, trying to open MCP settings in a new window without a workspace would
error with "Could not open file: No workspace root found". Now the function
properly handles both workspace-relative and absolute paths, allowing global
settings files to be accessed in any context.

Changes:
- Removed workspace root requirement in openFile
- Added fallback for relative paths when no workspace is present

* fix: update openFile function to use provided path without modification

---------

Co-authored-by: Roo Code <support@roo.vet>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-23 02:35:10 -04:00
Daniel
0f64849542
feat: allow variable interpolation into the custom system prompt (#2863)
* feat: allow variable interpolation into the custom system prompt

* fix: allow the test to pass on windows by using the path module
2025-04-23 01:09:14 -04:00
System233
c6f91a3b2f
Fix error message not showing after canceling API request (#2845) 2025-04-22 15:40:33 -04:00
Dicha Zelianivan Arkana
1a376c262e
[DRAFT] feat(menu): use material icons for files and folders (#2739)
feat(menu): use material icons for files and folders
2025-04-22 15:39:45 -04:00
System233
0d561f8a27
Fix redundant 'TASK RESUMPTION' prompts (#2842) 2025-04-22 10:12:29 -04:00
System233
8ac911244c
Fix user feedback not being added to conversation history in API error state (#2844)
Fix user feedback not being added to conversation history in the API error state
2025-04-22 10:10:34 -04:00
Matt Rubens
f1c79759a0
Add line wrapping to MCP arguments (#2831) 2025-04-22 00:15:46 -04:00
Matt Rubens
3e2d20f37c
Search and replace fixes (#2830)
* Allow replacing with an empty string

* Visual cleanup
2025-04-21 22:57:58 -04:00
Matt Rubens
8b5d48013e
Fix MCP hub lookup during view transition (#2829) 2025-04-21 22:39:39 -04:00
github-actions[bot]
b6ea9d1465
Update contributors list (#2803)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-21 21:22:54 -04:00
Matt Rubens
ff5430a95c
Try adding better errors for write_to_file truncated output (#2821) 2025-04-21 21:18:25 -04:00
Sam Hoang Van
f06567d579
Feat/improve insert block content (#2510)
* refactor: enhance insertGroups and insertContentTool for better handling of insertion operations

* refactor: simplify insert_content tool

- Remove operations-based implementation in favor of single line insertion
- Update parameters from operations to line and content
- Simplify insertion logic and error handling
- Update tool description and documentation
- Remove XML parsing for operations
- Clean up code and improve error messages

* refactor: remove insert_content experiment and related tests

* Remove the append_to_file tool

* Improvements to chat row and instructions

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-21 16:49:27 -04:00
Sam Hoang Van
80b298492c
improve search and replace tool (#2764)
* Refactor search and replace tool

* feat(search-replace): enhance search/replace tool UI and messaging

Refactor search/replace tool message structure for better consistency
Add dedicated UI component for displaying search/replace operations
Add i18n support for search/replace operations in all supported languages
Improve partial tool handling in searchAndReplaceTool

* Remove search_and_replace experiment and related references
2025-04-21 15:25:03 -04:00
Chris Estreich
61e23cccb6
Record tool use errors encountered during eval runs (#2816) 2025-04-21 11:04:35 -07:00
Matt Rubens
a244a9dc21
Fix a bad search/replace when moving tools into their own files (#2815) 2025-04-21 13:54:02 -04:00
Daniel Trugman
b955dbc1fc
Requesty models behind api key (#2813)
* Don't fetch Requesty models on startup, only when opening settings

* Provide api key when fetching models
2025-04-21 11:56:02 -04:00
Felix NyxJae
f1c3edeb75
Fix: Improve drag-and-drop and SSH path handling (#2808)
* Fix: Correct path handling for dragged files on Windows

* Fix: Improve drag-and-drop and SSH path handling
2025-04-21 09:27:24 -04:00
Matt Rubens
29137fbfec
Revert changes on omitted line count in write_to_file (#2807) 2025-04-21 00:24:52 -04:00
Matt Rubens
19df13c760
Add a warning display when a system prompt override is active (#2804) 2025-04-20 23:28:19 -04:00
Dicha Zelianivan Arkana
d2e5019f88
fix(icons): use geometricPrecision to avoid blurriness (#2756) 2025-04-20 22:04:23 -04:00
Dicha Zelianivan Arkana
47230d5a5c
fix(action): handle edge case for add to context action (#2780) 2025-04-20 21:46:01 -04:00
Sacha Sayan
612b948193
Refactor: Use path aliases in webview source files. (#2801)
* Refactor: Use path aliases in webview source files.

* Add module resolution to root jest config.

* Add tests.

Broken import.

Another broken import.

 Broken test.
2025-04-20 21:38:08 -04:00
Sacha Sayan
cf54c7d820
Quickfix: Change cloud-download icon to more appropriate desktop-download icon. (#2802) 2025-04-20 18:19:42 -07:00
Nico Bihan
eeb73c3c06
Adds Gemini 2.5 Flash "thinking" model to Vertex AI Provider (#2794) 2025-04-19 21:30:20 -07:00
Matt Rubens
ed102d1850
Remove the strict line bounds check from the diff (#2790) 2025-04-19 15:43:27 -04:00
Matt Rubens
2205606118
Remove globby as it's no longer used (#2788) 2025-04-19 14:26:35 -04:00
Matt Rubens
5d0aa20f97
Switch list files from globby to ripgrep (#2689)
* Switch list files from globby to ripgrep

* PR feedback

* PR fix
2025-04-19 14:13:45 -04:00
R00-B0T
c5f48a8bc6
Changeset version bump (#2777)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-04-18 21:14:30 -07:00
github-actions[bot]
8c18727f9a
Update contributors list (#2779)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-18 21:13:43 -07:00
Chris Estreich
e74b69dfbc
v3.13 announcement (#2778)
* v3.13 announcement

* Update README.md

* Update lastShownAnnouncementId

* Tweak copy
2025-04-18 21:01:21 -07:00
Chris Estreich
c10600e354
Pass baseURL to Gemini API if googleGeminiBaseUrl is set (#2776) 2025-04-18 19:25:42 -07:00
R00-B0T
b8b90737fa
Changeset version bump (#2768)
* changeset version bump

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-04-18 20:39:24 -04:00
github-actions[bot]
2a5d472f0d
Update contributors list (#2770)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-18 15:14:38 -07:00
Chris Estreich
d5fe876c9b
v3.13.1 (#2774) 2025-04-18 14:56:01 -07:00
Chris Estreich
96ff9fc380
Fix pricing for Gemini 2.5 Flash (Thinking) (#2773)
* Fix pricing for Gemini 2.5 Flash (Thinking)

* Looks like it's actually $3.50

* We aren't honoring custom thinking token budgets on Vertex yet
2025-04-18 14:43:27 -07:00
Chris Estreich
f6e4e3504f
Move executeCommand out of Cline and add telemetry for shell integration errors (#2771) 2025-04-18 14:43:04 -07:00
Sacha Sayan
0bb5ec18c5
UI: Auto-approve toggle styling tweak. (#2769) 2025-04-18 13:43:03 -07:00
Chris Estreich
5abea50cf1
Support Gemini 2.5 Flash thinking (#2752) 2025-04-18 12:26:17 -07:00
Felix NyxJae
6772306ade
Fix: Correct path handling for dragged files on Windows (#2753) 2025-04-18 10:29:32 -04:00
github-actions[bot]
b3065d2ab3
Update contributors list (#2715)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-18 03:09:14 -04:00
R00-B0T
31656d9b16
Changeset version bump (#2716)
* changeset version bump

* Update CHANGELOG.md

* Update package.json

* Update package-lock.json

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-18 02:47:41 -04:00
Matt Rubens
c329b4509f
v3.12.4 (#2745) 2025-04-18 02:29:13 -04:00
Matt Rubens
06882f5687
Don't break if an end_line is passed into a diff (#2743) 2025-04-18 02:23:55 -04:00
Chris Estreich
87af3b3424
Record tool usages in the Cline object, and persist them in the db for evals (#2729) 2025-04-17 22:21:14 -07:00
Nico Bihan
b5a77e34a4
Fixes maximum token limit for Gemini provider 2.5 pro exp (#2737)
Corrects the maximum token limit for the "gemini-2.5-pro-exp-03-25" model, ensuring accurate configuration.
2025-04-18 00:35:06 -04:00
Matt Rubens
fffebf1a2e
Remove experiment for append block (#2738)
* Remove experiment for append block

* Fix bugs in experiment lookups
2025-04-18 00:28:55 -04:00
Matt Rubens
b05c3100bd
Fix context window bar color (#2733)
* Fix context window bar color

* Make task header cost badge match the other ones

* Fix test
2025-04-17 23:25:35 -04:00
Matt Rubens
86636526bd
Update the style of the suggestions (#2734)
* Update the style of the suggestions

* Cleanup
2025-04-17 23:25:23 -04:00
Nico Bihan
bea36c8977
Gemini 2.5 Flash Preview fix Max Tokens Count (#2735)
Gemini 2.5 Flash Preview fix Max Tokens
2025-04-17 23:19:40 -04:00
Chris Estreich
3c937c3827
Task header theme fixes (#2721) 2025-04-17 15:28:11 -07:00
Smartsheet-JB-Brown
b077267b4a
fixes image support in bedrock. regression from prompt cache implementation (#2723)
fixes image support in bedrock. regression created during prompt caching implementation
2025-04-17 15:25:11 -07:00
Matt Rubens
d86d601104
Add gemini 2.5 flash preview (#2720) 2025-04-17 16:39:00 -04:00
Chris Estreich
471caff000
Clean up types related to tools (#2719) 2025-04-17 13:31:48 -07:00
Hannes Rudolph
026091e432
Fix filename format in downloadTask function for markdown export (#2717)
* Fix filename format in downloadTask function for markdown export

* Update src/integrations/misc/export-markdown.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-04-17 16:18:50 -04:00
Sam Hoang Van
1e0e01b9f3
feat: add append_to_file tool for appending content to files (#2712)
- Implemented the append_to_file tool to allow users to append content to existing files or create new ones if they do not exist.
- Updated the rules and instructions to include the new tool.
- Added tests for the append_to_file functionality, covering various scenarios including error handling and content preprocessing.
- Enhanced the experiment schema to include the new append_to_file experiment ID.
- Updated relevant interfaces and types to accommodate the new tool.
- Modified the UI to display the append_to_file tool in the appropriate sections.
2025-04-17 15:58:22 -04:00
Chris Estreich
d3c37eaec8
Add missing translation (#2714)
* Add missing translation

* More translation fixes
2025-04-17 10:23:19 -07:00
Sacha Sayan
159e4005e5
UI Glam Sesh: Makeover for TaskHeader, ChatView, HistoryPreview... (#2701)
* - UI Glam Session -> Makeover for TaskHeader, ChatView, HistoryPreview, WelcomeView
- In particular, display a "no tasks in workspace" message when no tasks are found.
- Clean up Inferface Settings (not needed now) on Settings View
- Copy updates throughout these areas.

* Apply suggestions from code review

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Missing translation string.

* Fix test

* Fix tests

* Improve translations / fix missing strings.

* Support xAI for evals (#2703)

* Make sure the slash commands only fire if they're the first character (#2702)

* Update contributors list (#2675)

docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>

* v3.12.3 (#2710)

* Changeset version bump (#2711)

* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

* Update translations

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
2025-04-17 12:54:55 -04:00
R00-B0T
0736379ad0
Changeset version bump (#2711)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-17 10:45:43 -04:00
Matt Rubens
94842f21af
v3.12.3 (#2710) 2025-04-17 10:34:32 -04:00
github-actions[bot]
d3ba74c568
Update contributors list (#2675)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-17 10:26:50 -04:00
Matt Rubens
511ebb7a98
Make sure the slash commands only fire if they're the first character (#2702) 2025-04-17 07:55:53 -04:00
Chris Estreich
0374436fac
Support xAI for evals (#2703) 2025-04-16 23:08:58 -07:00
Matt Rubens
30c44ff14c
Support dragging and dropping tabs into chat text area (#2698) 2025-04-16 23:04:16 -04:00
Matt Rubens
ba5af60109
Fix diff escaping issues (#2694)
* Fix diff escaping issues

* Potential fix for code scanning alert no. 75: Double escaping or unescaping

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-04-16 18:05:04 -04:00
R00-B0T
4bf746d635
Changeset version bump (#2688)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-16 14:52:22 -04:00
Matt Rubens
454df52462
v3.12.2 (#2693) 2025-04-16 14:47:35 -04:00
Matt Rubens
43668e0429
Add support for different reasoning effort (#2692) 2025-04-16 14:16:51 -04:00
Peter Dave Hello
250ea6867a
Add OpenAI o3 & 4o-mini (#2691)
Reference:
- https://platform.openai.com/docs/models/o3
- https://platform.openai.com/docs/models/o4-mini
- https://openai.com/index/introducing-o3-and-o4-mini/
2025-04-16 14:10:10 -04:00
Matt Rubens
9d761e23e2
Add consecutive mistake count to diff error telemetry (#2687) 2025-04-16 12:02:49 -04:00
Dicha Zelianivan Arkana
1d029ed0cb
refactor(context-menu): handle filename display better (#2684)
* refactor(context-menu): handle filename display better

* refactor(context-menu): reduce string computation
2025-04-16 09:46:06 -04:00
R00-B0T
c980662728
Changeset version bump (#2683)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-16 06:44:17 -04:00
Matt Rubens
2d360dc59e
Fix select dropdown styling (#2682) 2025-04-16 06:40:43 -04:00
R00-B0T
923e391bb8
Changeset version bump (#2676)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

* Update package.json

* Update package-lock.json

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-16 01:22:03 -04:00
Matt Rubens
e2d649dc50
v3.12.0 (#2674) 2025-04-16 01:16:06 -04:00
Matt Rubens
82df05a297
Fix configuration titles (#2672) 2025-04-15 23:09:18 -04:00
Aleksandr Kirillov
1cca4f47c7
feat: Add 'roo.acceptInput' command (#2598)
* feat: Add 'roo.acceptInput' command

* Update package.nls.json

* Update translations

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-15 23:01:45 -04:00
Matt Rubens
37f7d83792
Add xAI provider (#2667)
* Add xAI provider

* Add model reasoning effort

* DRY this up

* Handle undefined delta

* Cleanup getModel to fix test

* Add missing translations

* Small type cleanup

* Support temperature

---------

Co-authored-by: cte <cestreich@gmail.com>
2025-04-15 22:16:52 -04:00
Chris Estreich
3b19d7a455
Await checkpoint saves (except the initial) (#2665) 2025-04-15 16:57:12 -07:00
Matt Rubens
75a6bc100e
Safe JSON parse in ChatRow (#2666) 2025-04-15 19:49:25 -04:00
Dominik Oswald
7fab2f7738
feat: Cost Display in Task Header - Suppress Zero Cost Values and Ensure Visibility for Gemini, OpenAI, LM Studio, and Ollama (#2662)
test: Add unit tests for TaskHeader component cost display logic
2025-04-15 17:57:42 -04:00
KJ7LNW
da2ab6e388
test: limit Jest worker count to 40% per suite (#2658)
- Each test suite (extension/webview) limited to 40% CPU usage
- Total CPU utilization capped at 80% (40% x 2 suites)
- Reserves 20% CPU for system and user tasks
- Prevents memory thrashing and system slowdown
- Reduces risk of OOM kills on memory-constrained systems
- Maintains smooth UI responsiveness during test runs
- Improves test reliability while keeping parallel execution

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-15 14:37:27 -07:00
Chris Estreich
1bbfd2e8e6
DRY up the auto-approve toggles (#2664)
* DRY up the auto-approve toggles

* Better subtask icon per @joemanley201
2025-04-15 14:36:13 -07:00
Chris Estreich
e7a57ea774
Expose reasoning effort option for reasoning models on OpenRouter (#2483)
* Specify reasoning effort for OpenRouter reasoning models

* Add ReasoningEffort type

* Fix ReasoningEffort props

* Remove copypasta

* Set reasoning effort for Grok 3 Mini

* Use translations

* Add translations

* Remove this check
2025-04-15 13:51:52 -07:00
Matt Rubens
51bcade4c5
Better string normalization for diffs (#2659) 2025-04-15 16:20:20 -04:00
Matt Rubens
648c6e7d28
Move diff editing config to provider settings (#2655)
* Move diff editing config to provider settings

* Fix tests
2025-04-15 14:59:27 -04:00
github-actions[bot]
a3b2ebc026
Update contributors list (#2595)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-15 14:41:12 -04:00
Chris Estreich
a4d2de4534
Add pass / fail events for evals (#2656) 2025-04-15 11:29:38 -07:00
Matt Rubens
5f19ea4a06
Add telemetry for prompt enhancement (#2651) 2025-04-15 10:49:01 -04:00
Matt Rubens
31fd6e1470
Capture telemetry for usage of code actions (#2650) 2025-04-15 10:37:48 -04:00
Matt Rubens
afbf174e19
Add telemetry for consecutive mistake error (#2649) 2025-04-15 10:17:17 -04:00
Sam Hoang Van
84c574c947
Fuzzy search bar select dropdown (#2635)
* Revert "Revert "feat: implement fuzzy search and dropdown grouping in SelectDropdown component" (#2627)"

This reverts commit f1ad8ab751.

* Fix double scroll bar on provider select dropdown

* Update webview-ui/src/components/ui/select-dropdown.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-04-15 10:14:39 -04:00
R00-B0T
9a5023504c
Changeset version bump (#2629)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-15 02:15:02 -04:00
Chris Estreich
6e567845cb
Remove auto-approve button useMemo (#2630) 2025-04-14 23:11:13 -07:00
Matt Rubens
249d53b30d
v3.11.17 (#2628) 2025-04-15 02:06:58 -04:00
Chris Estreich
f1ad8ab751
Revert "feat: implement fuzzy search and dropdown grouping in SelectDropdown component" (#2627)
Revert "feat: implement fuzzy search and dropdown grouping in SelectDropdown …"

This reverts commit 89107b82a3.
2025-04-14 22:53:52 -07:00
Chris Estreich
1cdedf3048
Update translations (#2623)
* Update translations

* Clean up the buttons
2025-04-14 22:47:27 -07:00
KJ7LNW
00609aa2f3
fix: race in short-running command output capture (#2624)
Previously, handlers for terminal output were registered after starting the process,
which could cause output to be missed for fast-executing commands that complete
before handlers are set up.

- Adds CommandCallbacks interface to register handlers upfront
- Moves handler registration before process start to ensure no output is missed
- Provides process instance in callbacks for direct control
- Adds debug logging to help diagnose timing issues

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-15 01:34:45 -04:00
Matt Rubens
4f5796c152
Add telemetry for diff errors (#2619) 2025-04-15 00:27:34 -04:00
Sacha Sayan
111ac9ca47
UI Fix: Approve Tool Use Grid Toggles. (#2487)
Improv auto approve layout + refactor.

Button grid layout. Consolidates shortNames and labels, includes translations.
2025-04-14 21:20:54 -07:00
Chris Estreich
5b48a2d708
More small evals tweaks (#2620) 2025-04-14 21:13:08 -07:00
Sam Hoang Van
89107b82a3
feat: implement fuzzy search and dropdown grouping in SelectDropdown component (#2431)
* feat: implement fuzzy search and dropdown grouping in SelectDropdown component

* refactor: optimize SelectDropdown component with memoization and improved performance

* Remove focus output and translate placeholder

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-15 00:05:42 -04:00
Matt Rubens
a64cab92dc
Fix openai cache tracking and cost estimates (#2616)
* fix(api): update cacheReadsPrice for OpenAI GPT-4.1 models (#2887)

Set correct cacheReadsPrice (cached input price) for gpt-4.1, gpt-4.1 mini, and gpt-4.1 nano based on official OpenAI pricing. No changes to cacheWritesPrice as per current OpenAI documentation. This ensures prompt caching costs are accurately reflected for these models in cost calculations.

* Update more OpenAI cache prices

* Track cache tokens and cost correctly for OpenAI

* Update tests

---------

Co-authored-by: monotykamary <tom81094@gmail.com>
2025-04-14 22:55:06 -04:00
Matt Rubens
1eb29be33d
Remove the end_line from the multi_diff instructions and logic (#2615) 2025-04-14 20:39:27 -04:00
nobuo kawasaki
30c3a65b7b
Fix eslint error about --ext option by remove it (#2543) 2025-04-14 16:25:09 -07:00
Chris Estreich
6f8f8c6a1d
Parse providers individually (#2611)
* Parse providers individually

* Remove .strict()

* Clean up tests
2025-04-14 14:51:53 -07:00
Matt Rubens
b196489b97
Fix overdependence on start/end lines in diff strategy (#2567)
* Add test for issue #2556

* Fix overdependence on start/end lines in diff strategy
2025-04-14 17:09:38 -04:00
R00-B0T
45fb958505
Changeset version bump (#2606)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-14 13:32:18 -04:00
Matt Rubens
ab7ca17f29
Fix test (#2607) 2025-04-14 13:27:33 -04:00
Matt Rubens
929503a4c8
Add GPT 4.1 (#2605) 2025-04-14 13:21:47 -04:00
Hannes Rudolph
8cf3c532cf
Update log messages for Cline instances to Roo Code instances in regi… (#2604)
Update log messages for Cline instances to Roo Code instances in registerCommands.ts and corresponding test adjustments
2025-04-14 11:58:52 -04:00
Chris Estreich
d73789cfe4
Update default settings for evals (#2601) 2025-04-14 08:15:20 -07:00
feifei
4fe0b3c419
feat: Add modelId support when exporting tasks (#2142)
Added modelId to the task export process.

Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-04-14 07:20:40 -04:00
R00-B0T
3ffe61f548
Changeset version bump (#2587)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-13 23:33:12 -04:00
github-actions[bot]
180f904528
Update contributors list (#2583)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-13 23:10:53 -04:00
Matt Rubens
73a6ab8acd
v3.11.15 (#2586) 2025-04-13 22:57:36 -04:00
Matt Rubens
db85df86d9
Update NLS translations (#2584) 2025-04-13 22:53:15 -04:00
Matt Rubens
eab61289a2
Add workspace filter to historypreview as well (#2582)
* Add workspace filter to historypreview as well

* PR feedback
2025-04-13 22:27:28 -04:00
github-actions[bot]
1c03234d64
Update contributors list (#2519)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-13 13:52:38 -04:00
Matt Rubens
ff92a61281
Revert "Add o1-pro to api.ts" (#2574)
Revert "Add o1-pro to api.ts (#2433)"

This reverts commit 16d8f14371.
2025-04-13 13:51:14 -04:00
Sam Hoang Van
494af3090a
fix: normalize file paths to POSIX format in search results (#2569) 2025-04-13 13:44:03 -04:00
pokutuna
caf1ae35e1
fix: Restore focus ring for VSCodeButton component (#2572) 2025-04-13 13:42:59 -04:00
Chris Estreich
4ecec98384
Support all providers in evals settings (#2573) 2025-04-13 10:30:06 -07:00
Chris Estreich
352a6b9c75
More unit test kill -9 fixes (#2570)
* More unit test kill -9 fixes

* Fix linter warning
2025-04-13 09:44:45 -07:00
Zhang Tony
8bb3839b4d
fix: background color for new profile dialog (#2560) 2025-04-13 10:09:46 -04:00
Sam Hoang Van
adadc3add2
fix build vsix package (#2554) 2025-04-13 01:00:23 -07:00
Chris Estreich
ef9b339027
Evals improvements (#2555)
* Evals improvements

* Remove debugging
2025-04-13 00:57:33 -07:00
Zhang Tony
d3c65ceac6
feature: Closable welcome message (#2541)
* draft: try to add a setting button

* Add showGreeting setting and related changes

* i18n: showGreeting

* fix chinese i18n 'dot'
2025-04-13 01:16:01 -04:00
Sam Hoang Van
14de4899b8
Add localization support for Roo Code extension in multiple languages (#2523)
* Add localization support for Roo Code extension in multiple languages

- Created new localization files for Catalan, German, Spanish, French, Hindi, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Turkish, Vietnamese, Chinese (Simplified), and Chinese (Traditional).
- Updated extension activation and deactivation messages to use localized strings.
- Enhanced user experience by providing translated command titles and descriptions for various functionalities within the extension.

* Revert changes to extension.ts

* Remove l10n

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-13 00:15:08 -04:00
KJ7LNW
e94e58ff1a
docs: document process for adding new settings (#2552)
Add documentation explaining how to implement new settings in Roo Code,
using the command risk level feature as a practical example.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-12 23:54:43 -04:00
Sam Hoang Van
08110ae35b
Filter & Search Workspace Task History (#2526)
* Enhancement: Add 'Show all workspaces' feature to task history and update translations

* Enhancement: Add Checkbox component and integrate it into HistoryPreview and HistoryView

* Simplify the UX

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-12 23:20:14 -04:00
vagadiya
628d232f9f
Fix AWS token expiry issue when cached token expires when using AWS Profile for Bedrock (#2469) (#2530)
Fix AWS token expiry issue when cached token expires and using AWS Profile (#2469)
2025-04-12 22:23:48 -04:00
mecab
37cfd75ebf
Add Anthropic option to pass API Token as Authorization header instead of X-Api-Key for the custom base URL (#2531)
Add Anthropic option to use authToken over apiKey
2025-04-12 22:20:03 -04:00
vagadiya
294b52ef6a
Fix to Bedrock ARN validation (#2538)
Fixes Bedrock ARN validation

Updates the Bedrock ARN regex to allow alphanumeric characters, dots, hyphens, and colons in the resource ID.

This prevents validation errors when using ARNs containing those characters.
2025-04-12 13:43:35 -04:00
Sam Hoang Van
e9980bcfa9
Fix duplicate mention suggestion (#2528)
improve deduplication logic in getContextMenuOptions to handle context menu item keys more accurately
2025-04-12 08:28:41 -04:00
Chris Estreich
2c8304ea31
Fix node version string when running asdf install nodejs (#2524) 2025-04-12 01:06:03 -07:00
Chris Estreich
91178628aa
Evals enhancements: delete runs, show all run instead of just completed runs (#2520) 2025-04-12 00:07:30 -07:00
Bogdan Dolin
c25163aa20
Fix: Remove 'v' prefix from Node.js version in .tool-versions file (#2515)
Fix formatting of Node.js version in .tool-versions
2025-04-11 23:09:18 -07:00
Chris Estreich
df01e7948b
Add reasoningEffort to provider settings schema (#2518) 2025-04-11 22:45:14 -07:00
Chris Estreich
6ab9aa9f15
Control evals concurrency in web app (#2265) 2025-04-11 22:21:15 -07:00
github-actions[bot]
1f6da88d24
Update contributors list (#2516)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-12 00:34:38 -04:00
R00-B0T
e10c25e0a4
Changeset version bump (#2517)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-12 00:25:55 -04:00
Matt Rubens
624691abb0
Respect the setting to always read the full file (#2514) 2025-04-12 00:14:39 -04:00
Taisuke Oe
e453690e7f
Fix bug not to respect symbolic linked rules, if target is a directory or another symbolic link (#2513)
* read symbolic linked dir and files recursively

* add symlinked dir and nested symlink test case for custom-instructions

* enhance comments

* add changeset
2025-04-11 23:32:57 -04:00
Chris Estreich
2eba534dd6
Evals fixes (#2505)
* Allow Turso URLs, add support for API providers beyond OpenRouter

* Make the git branch name unique
2025-04-11 14:54:03 -07:00
R00-B0T
15b91ab03c
Changeset version bump (#2504)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-11 17:47:29 -04:00
Matt Rubens
4048d36ab4
v3.11.13 (#2503) 2025-04-11 17:36:00 -04:00
github-actions[bot]
aaf0567e8d
Update contributors list (#2501)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-11 17:35:40 -04:00
Matt Rubens
ba307f8e1f
Revert "♻️ refactor(webview): move webview HTML generation to WebviewHTMLManager" (#2502)
Revert "♻️ refactor(webview): move webview HTML generation to WebviewHTMLMana…"

This reverts commit e70954f3de.
2025-04-11 17:32:29 -04:00
KJ7LNW
9c3c93567b
Merge pull request #2427 from KJ7LNW/fix-vscode-lm-content-preservation
fix: preserve content integrity in VS Code LM provider
2025-04-11 17:10:54 -04:00
Matt Rubens
9dead72ace
Merge pull request #2456 from KJ7LNW/fix-misc-terminal-issues
Terminal improvements: command delay, PowerShell counter, and ZSH EOL mark
2025-04-11 17:04:42 -04:00
Eric Wheeler
ae0ab56654 intl: enhance shell integration troubleshooting translations
Add new i18n strings for shell integration steps and expand troubleshooting text across all supported languages

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-11 13:23:57 -07:00
Eric Wheeler
4ef62c6a13 feat: add ZDOTDIR handling for zsh shell integration
Creates a temporary ZDOTDIR to handle zsh shell integration properly while preserving user's zsh configuration. This ensures VSCode shell integration works correctly with zsh without modifying the user's existing setup.

- Add terminalZdotdir setting (disabled by default)
- Create temporary directory with proper security (sticky bit)
- Add automatic cleanup on terminal close
- Add translations for all supported languages

User confirmed fixes:

Fixes: #2205
Fixes: #2129

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-11 13:09:41 -07:00
Bhavesh Ramburn
e70954f3de
♻️ refactor(webview): move webview HTML generation to WebviewHTMLManager (#2494)
- 【What】Move the logic for generating webview HTML content from ClineProvider to a new WebviewHTMLManager class.
- 【Why】This improves code organization and maintainability by separating concerns related to webview HTML generation.
- 【Why】This allows for easier testing and modification of the HTML generation logic without affecting the ClineProvider class.
2025-04-11 15:40:07 -04:00
Matt Rubens
405e599206
Exclude demo gif from extension build (#2481) 2025-04-11 15:38:59 -04:00
Eric Wheeler
b4c67f133b feat: add terminal settings for Oh My Zsh and Powerlevel10k shell integration
Added two new terminal settings:
- terminalZshOhMy: Sets ITERM_SHELL_INTEGRATION_INSTALLED=Yes for Oh My Zsh
- terminalZshP10k: Sets POWERLEVEL9K_TERM_SHELL_INTEGRATION=true for Powerlevel10k

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
b020e46076 fix: clear ZSH EOL mark to prevent command output interpretation issues
Added a new configuration option 'terminalZshClearEolMark' (default: true) that
sets PROMPT_EOL_MARK='' in the terminal environment. This prevents issues with
command output interpretation when the output ends with special characters like '%'.

Added translations for all supported languages.

Fixes: #2194
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
211e31b8f6 feat: add terminalPowershellCounter configuration option
Add a new configuration option that allows users to toggle the PowerShell counter workaround. This workaround adds a counter to PowerShell commands to ensure proper command execution and output capture.

The setting is disabled by default, allowing users to enable it only when needed.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
4d1cfe8141 feat: add terminal.commandDelay setting
Add a new configurable setting to control command execution delays in terminals.
When set to a non-zero value, this adds a sleep delay after command execution
via PROMPT_COMMAND in bash/zsh and start-sleep in PowerShell.

The default value is 0, which disables the delay completely. This setting
replaces the previous hardcoded delay of 50ms that was added as a workaround
for VSCode bug #237208.

Fixes: #2017
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
902d6d5017 fix: prevent UI hang when shell integration is unavailable
When shell integration is unavailable, the UI would hang because the process
was never properly released. This change fixes the issue by:
- Emitting a 'completed' event with a descriptive message
- Marking the terminal as not busy
- Clearing the active stream
- Allowing the process to continue

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
0b0c438284 fix: standardize terminal integration timeout values
Replace hardcoded 3000ms timeout with configurable Terminal.shellIntegrationTimeout
in TerminalProcess.ts. This ensures consistent timeout behavior across all
terminal integration features and allows users to control both timeouts through
a single setting.

The error messages are also updated to display the dynamic timeout value,
providing clearer feedback when shell integration issues occur.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
github-actions[bot]
b8bf634fd2
Update contributors list (#2466)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-10 23:53:03 -04:00
Matt Rubens
2ba7200f37
Fix discard changes in settings (#2485) 2025-04-10 23:44:38 -04:00
KJ7LNW
3cc81c73cf
docs: update settings.md with comprehensive steps (#2451)
* docs: update settings.md with comprehensive steps

Update the settings documentation to include all necessary steps for adding
a new configuration item, including schema definitions, type definitions,
and critical steps for persistence and UI display.

This ensures the documentation accurately reflects the complete process
required when adding new settings to the application.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* docs: add style considerations for checkbox settings

Add documentation about styling checkbox settings in the UI, including:
- Using VSCodeCheckbox component
- Proper wrapping and spacing
- Consistent styling for labels and descriptions
- Example implementation based on terminalPowershellCounter

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* docs: add comprehensive guide for adding new configuration items

Add a new section to settings.md that provides a complete checklist for adding new configuration items to the system. This guide covers all aspects from UI to persistence to functionality, based on implementation experience.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* docs: update settings documentation with persistence guidelines

Add comprehensive guidance for ensuring settings persist across reload
Include debugging steps for troubleshooting persistence issues
Replace 'Avoiding Duplicates' section with more detailed information

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 22:34:18 -04:00
Matt Rubens
e41d6a42ac
Better display of diff errors (#2478) 2025-04-10 22:32:11 -04:00
Hannes Rudolph
c0ba1f5080
Update README.md to reflect new branding and add demo GIF; (#2479)
* Update README.md to reflect new branding and add demo GIF; optimize demo GIF size

* Update README.md to reflect branding change from "Roo Cline" to "Roo Code" and remove duplicate title entry.
2025-04-10 21:55:52 -04:00
Steven T. Cramer
77daf8559b
Move "Previously Roo Cline" to description from title (#2476)
* Move "Previously Roo Cline"  to description from title

* Add a period.
2025-04-10 16:51:27 -04:00
ronyblum
a031b74bf5
Modification of AWS Bedrock to Amazon Bedrock (#2473)
* Modification of AWS Bedrock to Amazon Bedrock

* Duplicated comment removal
2025-04-10 15:47:34 -04:00
Zhang Tony
255a158e75
Bug Fixed: Chinese i18n css error (#2470)
* bug fixed: chinese i18n css error

* Update webview-ui/src/components/settings/ApiOptions.tsx

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-10 11:12:49 -04:00
Sam Hoang Van
5352beb95c
feat: Add file context tracking system (#2440)
* feat: Add file context tracking system

This commit adds a comprehensive file context tracking system that monitors file operations (reads, edits) by both Roo and users. The system helps prevent stale context issues and improves checkpoint management.

Key features:
- Track files accessed via tools, mentions, or edits
- Monitor file changes outside of Roo using file watchers
- Store file operation metadata with timestamps
- Trigger checkpoints automatically when files are modified
- Prevent false positives by distinguishing between Roo and user edits

The implementation includes:
- New FileContextTracker class to manage file operations
- Type definitions for file metadata tracking
- Integration with all file-related tools
- File mention tracking in the mentions system
- Improved checkpoint triggering based on file modifications

* Update src/core/context-tracking/FileContextTracker.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update src/core/context-tracking/FileContextTracker.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* test: Add mocks for getFileContextTracker in Cline tests

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-10 10:56:52 -04:00
Wojciech Kordalski
0ddfa4d0bf
.direnv directory should not be packaged (#2464)
If somebody uses direnv tool, the `.direnv` directory is created,
that contains some data and especially some symlinks.
Symlinks makes `vsce` to fail zipping the built VSIX.

Generally `.direnv` should not be added to the resulting VSIX,
therefore I add it to .vscodeignore.
2025-04-10 09:51:27 -04:00
R00-B0T
82bf3dc42e
Changeset version bump (#2455)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-10 01:11:59 -04:00
Matt Rubens
fba24ac13d
v3.11.12 (#2454) 2025-04-10 01:05:38 -04:00
github-actions[bot]
8da3538744
Update contributors list (#2434)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-10 01:05:18 -04:00
amittell
1445bb0a3c
Make Grok3 streaming work with OpenAI Compatible (#2449) 2025-04-10 00:35:49 -04:00
Matt Rubens
c18e25f4bc
Fall back on aggressive line number stripping in diffs (#2453)
* Add option for aggressive line number stripping

* Fall back on aggressive line number stripping in diffs
2025-04-10 00:29:50 -04:00
Chris Estreich
4e716263d0
Add a script to copy eval run results to Turso (#2452) 2025-04-09 21:18:07 -07:00
Chris Estreich
5fa555e60d
Fix gh fork command (#2442) 2025-04-09 13:12:55 -07:00
Chris Estreich
6d9ebe3fcf
More sane evals default concurrency + staggered startup (#2441) 2025-04-09 13:04:36 -07:00
R00-B0T
5c3237a6b0
Changeset version bump (#2436)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-09 11:41:00 -04:00
Chris Estreich
fb0dd75fe0
API fixes (#2438) 2025-04-09 08:20:17 -07:00
Matt Rubens
eda53815ab
v3.11.11 (#2435) 2025-04-09 09:31:58 -04:00
Matt Rubens
7e4000b4e0
Add custom instructions for de (#2383) 2025-04-09 09:20:13 -04:00
github-actions[bot]
f6467ca371
Update contributors list (#2411)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-09 09:06:42 -04:00
arthur
16d8f14371
Add o1-pro to api.ts (#2433)
Add the o1-pro model to the openai section. Sourced model info from: https://platform.openai.com/docs/models/o1-pro
2025-04-09 09:04:55 -04:00
Matt Rubens
75ba1db3ca
Improve subtasks UI (#2426) 2025-04-09 01:45:45 -04:00
KJ7LNW
270fd88cc8
refactor: improve readFileTool XML output format (#2340)
* fix: addLineNumbers handling of empty content

Empty files should not have line numbers, but non-empty files with empty content at a specific line offset should.
- If content is empty, return empty string for empty files
- If content is empty but startLine > 1, return line number for empty content at that offset
This ensures that the model does not think the file contains a single empty line.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: improve readFileTool XML output format

- Remove unnecessary XML indentation that could confuse the model
- Separate file content from notices and errors using dedicated tags
- Add line range information to content tags
- Handle empty files properly with self-closing tags
- Add comprehensive test coverage

Fixes #2278

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: always show line numbers in read_file XML output

- Always display line numbers in non-range reads
- Improve XML formatting with consistent newlines for better readability

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update tests to match new XML format with line numbers

- Update test expectations to match the new XML format with newlines
- Update tests to expect line numbers attribute in content tags
- Modify test assertions to check for the correct line range values

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: consistent blank line handling in addLineNumbers

- Add newline to all output
- Handle trailing newlines and empty lines consistently
- Add test cases for blank lines:
  - Multiple blank lines within content
  - Multiple trailing blank lines
  - Only blank lines with offset
  - Trailing newlines

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: use actual addLineNumbers in read-file-xml tests

- Modified extract-text mock to preserve actual addLineNumbers implementation
- Removed mock implementation of addLineNumbers
- Updated test data to account for trailing newline
- Removed unnecessary mock verification

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: ensure actual addLineNumbers function is called in tests

- Replace direct mocking of addLineNumbers with spy on actual implementation
- Add verification to ensure the real function is called when appropriate
- Add skipAddLineNumbersCheck option for cases where function should not be called
- Update test cases to use appropriate verification options
- Fix numberedFileContent to include trailing newline for consistency

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: modify readLines to process data directly instead of line by line

- Direct data processing provides more accurate results by preserving exact content with carriage returns
- Improved performance through minimal buffering and efficient string operations
- Use string indexes to find newlines while maintaining their original format
- Handle all edge cases correctly with preserved line endings
- Add tests for various edge cases including empty files, single lines, and different line endings

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: remove unused mockInputContent variable

Remove unused variable declaration to appease ellipsis-dev linter requirements.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 23:04:44 -04:00
KJ7LNW
2779e8f703
fix: clarify difference between workspace directory and terminal working directory (#2418)
* fix: clarify difference between workspace directory and terminal working directory

This commit addresses confusion between the VS Code workspace directory and
terminal working directory. Roo was not properly distinguishing between these
concepts, leading to issues when terminal commands changed directories.

- Renamed 'Current Working Directory' to 'Current Workspace Directory' throughout
- Added clearer notice when a command changes the working directory in a terminal
- Added explanation about the difference between workspace and working directories
- Updated all tool descriptions to reference 'workspace directory'

References: https://www.reddit.com/r/RooCode/s/6L19EvsFbF
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update directory terminology in test files

Update terminology from 'working directory' to 'workspace directory' in tests
to reflect VSCode's concept of workspace vs working directory.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 22:58:33 -04:00
Matt Rubens
63c8f92393
Merge pull request #2420 from KJ7LNW/tree-sitter-eval-definitions
feat: enhance tree-sitter parsers for multiple languages
2025-04-08 22:57:07 -04:00
Matt Rubens
c2fef2d01f
Follow symlinks for rules files (#2421) 2025-04-08 22:51:58 -04:00
Eric Wheeler
c2dda05b2c feat: enhance Python tree-sitter parser with advanced language structures
This commit significantly enhances the Python tree-sitter parser to support a comprehensive range of Python language constructs, enabling more accurate and detailed code analysis.

Key improvements:
- Added support for method definitions (instance, class, and static methods)
- Added support for decorators on functions and classes
- Added support for module-level variables and constants
- Added support for async functions and methods
- Added support for property getters/setters
- Added support for type annotations in various contexts
- Added support for dataclasses
- Added support for nested functions and classes
- Added support for generator functions
- Added support for list/dict/set comprehensions
- Added support for lambda functions
- Added support for abstract base classes and methods

The parser now handles Python's rich feature set more comprehensively, including special Python patterns like decorators, type annotations, and various comprehension types. This enables better code navigation, understanding, and analysis for Python codebases.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 19:40:19 -07:00
Eric Wheeler
56d7cf6199 feat: enhance Java tree-sitter parser with advanced language structures
This enhancement significantly expands the Java parser's capabilities to recognize and parse a wide range of Java language constructs:

- Added support for enum declarations and enum constants
- Added support for annotation type declarations and elements
- Added support for field declarations
- Added support for constructor declarations
- Added support for lambda expressions
- Added support for inner and anonymous classes
- Added support for type parameters (generics)
- Added support for package and import declarations

These improvements enable more comprehensive code analysis for Java projects, providing better definition extraction and navigation capabilities.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 19:38:09 -07:00
Eric Wheeler
599c1849d0 feat: enhance Go tree-sitter parser with advanced language structures
This enhancement significantly expands the Go parser's capabilities to recognize and extract a comprehensive set of language constructs:

- Added support for struct and interface definitions with proper type identification
- Implemented parsing for constant declarations (both single and in blocks)
- Added support for variable declarations (both single and in blocks)
- Added recognition of type aliases with proper distinction from regular types
- Implemented special handling for init functions
- Added support for anonymous functions, including nested function literals
- Improved documentation and organization of query patterns

These enhancements enable more accurate code navigation, better symbol extraction, and improved code intelligence for Go codebases.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 19:33:28 -07:00
Eric Wheeler
749f793c08 feat: enhance C++ tree-sitter parser with advanced language structures
This enhancement significantly expands the C++ parser's capabilities to recognize and extract a wide range of modern C++ language constructs, improving code navigation and analysis.

New supported language constructs include:
- Union declarations and their members
- Destructors and their implementations
- Operator overloading (including stream operators)
- Free-standing and namespace-scoped functions
- Enum declarations (both traditional and scoped enum class)
- Lambda expressions and their captures
- Attributes and annotations
- Method overrides with virtual/override specifiers
- Exception specifications (noexcept)
- Default parameters in function declarations
- Variadic templates and parameter packs
- Structured bindings (C++17)
- Inline namespaces and nested namespace declarations
- Template specializations and instantiations
- Constructor implementations

This enhancement provides more comprehensive code structure analysis for C++ codebases, particularly those using modern C++ features from C++11, C++14, and C++17 standards.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 19:27:00 -07:00
Eric Wheeler
63358e794d feat: enhance TypeScript/TSX tree-sitter parser
- Enhanced the Tree-Sitter parser for JavaScript/TypeScript with support for advanced language constructs
- Modified the parser to exclude comments from the output
- Consolidated sample code in tests for better maintainability

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-08 19:22:10 -07:00
Matt Rubens
b01615f122
Add the option to use a custom Host header for openai-compatible (#2399) 2025-04-08 22:02:27 -04:00
Atlas Gong
9f724bd360
fix: z-index of highlight layer should be under mode/profile dropdowns (#2417) 2025-04-08 15:05:04 -04:00
R00-B0T
6135d351df
Changeset version bump (#2412)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-08 11:51:58 -04:00
Matt Rubens
75d17a5233
v3.11.10 (#2413) 2025-04-08 11:46:32 -04:00
github-actions[bot]
a4530eea5b
Update contributors list (#2402)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-08 11:40:53 -04:00
Matt Rubens
08b586334b
Remove extra colon from rules content (#2409) 2025-04-08 11:40:23 -04:00
Matt Rubens
9ab4a88176
Fix typo in diff prompt (#2410) 2025-04-08 11:40:10 -04:00
Sam Hoang Van
e1f6eb625b
feat: Add CommandOutputViewer component and integrate it into ChatRow (#2326)
* feat: Add CommandOutputViewer component and integrate it into ChatRow

* Remove unnecessary memo wrapper from CommandOutputViewer component
2025-04-08 08:29:03 -07:00
Ross McFarland
58149a083e
Clean up global rateLimitSeconds & fully shift to provider version (#2408)
* Directly use provider rateLimitSeconds and remove uneeded default

* remove a bunch of unused rateLimitSeconds references

* rateLimitSettings field def in  GlobalSettingsRecord isn't needed for migration
2025-04-08 11:21:54 -04:00
Taisuke Oe
dedd655c9e
Fix a bug not to read rule files properly, under nested .roo/rules directories (#2405)
* fix .roo/rules/subdir/file path calculation

* add changeset
2025-04-08 11:17:21 -04:00
Matt Rubens
4c81f7e167
Update CHANGELOG.md (#2406) 2025-04-08 09:39:40 -04:00
Matt Rubens
72a9e0bd39
Fix cache usage tracking for openai-compatible (#2401) 2025-04-08 01:20:45 -04:00
Matt Rubens
903f3b64a1
Add custom instructions for zh-CN (#2381)
* Add custom instructions for zh-CN

* Updates from System233
2025-04-07 23:06:54 -04:00
Matt Rubens
06e0fc6ee4
Update CHANGELOG.md (#2396) 2025-04-07 18:33:25 -04:00
github-actions[bot]
fbb7887f8d
Update contributors list (#2338)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-07 17:38:38 -04:00
R00-B0T
70a05d3302
Changeset version bump (#2394)
* changeset version bump

* Updating CHANGELOG.md format

* Apply suggestions from code review

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-07 17:35:49 -04:00
Matt Rubens
1ad8e9c7d3
v3.11.9 (#2393) 2025-04-07 17:18:14 -04:00
Ross McFarland
260fc30043
feat(settings): Rate-limit setting updated to be per-profile (#2376)
* Rate-limit setting updated to be per-profile

* Correct rateLimitSeconds translations

* Add missing d to rateLimitSecondsMigrate

* Fix fr rate-limit translation
2025-04-07 16:24:38 -04:00
KJ7LNW
af9e471c92
dev: dynamic Vite port detection for webview development (#2339)
Implements a solution for the Vite port collision issue that allows easier development of Roo across multiple instances of VSCode in different Roo repository directories.

This may also fix crashes and strange behavior between multiple running instances that would otherwise create port conflicts. This is solved using the following automated process:
- When Vite automatically selects an alternative port, a custom plugin automatically writes the port to a '.vite-port' file in the repository root
- ClineProvider automatically reads the port from this file, falling back gracefully to port 5173 if the file doesn't exist
- No user intervention is necessary as the entire process is handled automatically
- Added detailed logging for debugging
- Added .vite-port to .gitignore

The extension now connects to the correct Vite development server port automatically, even when the default port (5173) is already in use.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-07 15:12:41 -04:00
Matt Rubens
d0661fb0c7
Don't automatically convert types when parsing XML (#2389)
* Don't automatically convert types when parsing XML

* PR feedback
2025-04-07 14:57:02 -04:00
Matt Rubens
d5aee1e1d8
Add custom instructions for zh-TW (#2382)
* Add custom instructions for zh-TW

* Move custom instructions to a rules file for easier reading

* PR feedback
2025-04-07 14:24:23 -04:00
Nico Bihan
320ef77d79
Added to Vertex AI Provider gemini 2.5 Pro Preview (#2384)
* Added Gemini 2.5 Pro model to Vertex AI Provider

* Adds Gemini 2.5 Pro preview model

Adds configuration for the new Gemini 2.5 Pro preview model,
including its token limits, context window size, image support, and
pricing information.
2025-04-07 12:15:09 -04:00
Matt Rubens
009faf349e
Move .roorules to .roo/rules/ (#2385) 2025-04-07 12:14:04 -04:00
Yu SERIZAWA
580672ffc8
feat: enhance rule file loading with .roo/rules directory support (#2354)
* feat: enhance rule file loading with .roo/rules directory support

- Introduced functions to safely read files and check for directory existence.
- Added capability to read all text files from a specified directory in alphabetical order.
- Updated `loadRuleFiles` to prioritize loading rules from a `.roo/rules/` directory, falling back to existing rule files if necessary.
- Enhanced `addCustomInstructions` to support loading mode-specific rules from a `.roo/rules-{mode}/` directory, improving flexibility in rule management.

This change improves the organization and retrieval of rule files, allowing for better modularity and maintainability.

* Updated strings and translations

* Add tests

* Revert changes to system prompt translations

* Fix path resolution

* Make instruction structure clearer

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-07 11:46:30 -04:00
Matt Rubens
0e4be83c35
Fixes to resumeTask and isTaskInHistory (#2380) 2025-04-07 11:41:08 -04:00
Franciszek Piszcz
cf74568f66
feat(RooCodeAPI): implement resumeTask and isTaskInHistory (#1672) 2025-04-07 08:19:47 -07:00
Marco Quinten
f5a4b425da
feat(browserTool): Implement hover action (#2368)
* Implement hover action for the browser action tool

* Update snapshots
2025-04-07 09:35:14 -04:00
Marco Quinten
fff8fdd3f3
feat(browserTool): Implement resize action (#2370)
* Implement resize action for browser action tool

* Update snapshots
2025-04-07 09:34:32 -04:00
Aleksandr Kirillov
88cac3c9d8
feat: add command to focus Roo Code input field (#2369)
* feat: add command to focus Roo Code input field

* fixup! feat: add command to focus Roo Code input field

* fixup! feat: add command to focus Roo Code input field
2025-04-07 07:54:49 -04:00
Kyle Tse
84c703e050
fix: Prevent unnecessary autoscroll when buttons appear (#1280) (#2334)
* fix: Prevent unnecessary autoscroll when buttons appear (#1280)

* Remove commented out code

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-06 22:17:49 -04:00
Matt Rubens
0317374acb
Move .clinerules to .roorules (#2357) 2025-04-06 16:04:34 -04:00
Matt Rubens
393688c584
Add deep links to settings sections (#2355) 2025-04-06 14:31:14 -04:00
Greg Taylor
57d97319dc
fix: persist settings on api.setConfiguration (#2341)
Values weren't being saved to the settings store, preventing
switching to newly created profiles.

Co-authored-by: Greg Taylor <gregtaylor@netflix.com>
2025-04-06 08:19:30 -07:00
KJ7LNW
5fb9af40fb
feat: enhance Rust tree-sitter parser with advanced language structures (#2335)
* test: add comprehensive Rust Tree-sitter tests

Add test suite for Rust language support in Tree-sitter:
- Verify parsing of struct definitions
- Verify parsing of method definitions within impl blocks
- Verify parsing of standalone function definitions
- Add tests for complex Rust structures
- Include skipped debug test for future diagnostics

These tests confirm the existing Rust support in Tree-sitter is working correctly and provide a foundation for future enhancements to the Rust parser.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: enhance Rust tree-sitter parser with advanced language structures

- Add support for additional Rust language structures:
  - Enum definitions
  - Trait definitions
  - Impl trait for struct
  - Generic structs with lifetime parameters
  - Macro definitions
  - Module definitions
  - Union types
  - Closures
  - Match expressions
  - Where clauses
  - Async functions
  - Impl blocks with generic parameters
  - Complex trait bounds

- Update tests to verify capture of these structures
- Modify debug helper to use environment variables

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-05 22:11:43 -04:00
KJ7LNW
5e0c9a71e4
fix: clamp negative line numbers when reading files (#2337)
Improve handling of AI-generated line numbers:
- Clamp negative startLine values to 0 instead of throwing errors
- Convert non-integer line numbers to integers automatically
- Only reject when line numbers aren't numbers at all

These changes prevent unnecessary model retries by handling imperfect
AI-generated line numbers gracefully, making the system more robust
when interacting with AI models.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-05 22:10:11 -04:00
github-actions[bot]
7261efbdec
Update contributors list (#2317)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-05 18:22:40 -04:00
Diarmid Mackenzie
7661ef97cd
Tidy up following ClineProvider refactor (#2182)
* Remove unused imports

* Restore protected status for mcpHub property

* More mcpHub tidy-up

* Remove need for access to private "view" property

Increase type flexibility so we can directly use postMessageToWebview()

* Make ensureCacheDirectoryExists private again

expose new public writeDataToCache() method to commonize code.
also decided to leave updateApiConfiguration as public, since widely used in diverse ways.

* Match naming of readModelsFromCache.

Symmetric naming of functions that complement each other.

* Decision: Leave readModelsFromCache as public

* Make updateGlobalState and setGlobalState private again

Stop using deprecated (private) method.  Use contextProxy set/getValue methods instead.
Utility functions provided for brevity.

* Add clarifying comment to explain presence of utility functions

* Prefer this/provider.log over outputChannel.appendLine

log is already public, outputChannel should be private.
But also prefer log internally for the additional value of console logging, plus code brevity.

* Lock down access to properties as far as reasonably possible

* PR feedback - don't relax type checks

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-05 18:00:23 -04:00
R00-B0T
70528034bd
Changeset version bump (#2332)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-05 17:20:52 -04:00
Matt Rubens
e8624e821e
v3.11.8 (#2331) 2025-04-05 17:09:28 -04:00
Yu SERIZAWA
2a2bb8436b
fix: correct nodejs version format in .tool-versions file (#2307) 2025-04-05 16:54:05 -04:00
Yu SERIZAWA
d6d5670e38
feat: Add support for .roorules configuration files (#2309)
* feat: Add support for .roorules configuration files

- Add .roorules to the list of supported rule files
- Improve mode-specific rule file handling to prioritize .roorules over .clinerules
- Update file loading logic to track which rule file was successfully loaded
- Add test cases for .roorules functionality

This change maintains backward compatibility with existing .clinerules while
introducing support for the new .roorules format as the preferred configuration
method.

* refactor: simplify rule file loading by removing unused rules

- Removed .cursorrules and .windsurfrules from the list of rule files in loadRuleFiles function.

* refactor: update loadRuleFiles to return single rule file content

- Modified loadRuleFiles function to return content from the first available rule file instead of combining multiple rule files.
- Updated tests to reflect the new behavior of loading only the .roorules file content when available, ensuring clarity in rule file handling.

* fix: update prompts for deprecated rule file references

- Updated prompts in the English locale to reflect the deprecation of .clinerules in favor of .roorules.
- Added notes in the prompts indicating that .clinerules will stop working soon, ensuring users are aware of the upcoming changes.

* Translations

* Update links

* Revert README changes

* Add missing spans around links

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-05 14:55:07 -04:00
Kyle Hoskins
8fe70e36c3
Improve combineApiRequests performance (#2318)
* Improve combineApiRequests performance

* One more optimization, and more tests

---------

Co-authored-by: cte <cestreich@gmail.com>
2025-04-05 10:51:00 -07:00
Sam Hoang Van
c81d359064
fix: history search highlight (#2176)
* fix: history search hightlight

* fix: update history item highlight style to use underline
2025-04-05 11:06:16 -04:00
Sam Hoang Van
bf648856ba
feat: add workspace tracking to history items (#2054)
Track the current workspace path in history items to enable filtering and organization of history by workspace. This change adds the workspace property to the history schema and ensures it's saved with each history entry.
2025-04-05 08:23:10 -04:00
Sam Hoang Van
60f9221d69
feat(settings): add searchable dropdown to API config profiles setting page (#2221)
- Replace Select with Command+Popover components in ApiConfigManager
- Add search functionality to filter configuration profiles
- Add clear search button and selected item indicator
- Add internationalization support for all languages
- Match UX pattern from ModelPicker component for consistency
2025-04-05 00:56:54 -04:00
github-actions[bot]
39e4f498e5
Update contributors list (#2315)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-05 00:25:43 -04:00
R00-B0T
3bf79ca295
Changeset version bump (#2316)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-05 00:04:07 -04:00
Matt Rubens
b73b10c60f
v3.11.7 (#2314) 2025-04-04 23:58:56 -04:00
Hannes Rudolph
3f6e07adf1
refactor(mcp): Implement reference counting for McpHub lifecycle (#2310)
Problem:
Closing auxiliary windows (e.g., from "open in editor") could prematurely dispose the shared singleton McpHub instance, shutting down MCP servers unexpectedly while other panels (like the sidebar) might still be active.

Solution:
Implemented reference counting directly within the McpHub class to manage its own lifecycle based on active clients (ClineProvider instances).
- Added `refCount`, `registerClient()`, and `unregisterClient()` methods to McpHub.
- McpHub now disposes itself only when the last registered client unregisters (`refCount` reaches 0).
- ClineProvider instances now call `mcpHub.registerClient()` upon initialization and `mcpHub.unregisterClient()` upon disposal.
- Removed the direct `mcpHub.dispose()` call from ClineProvider.dispose.

Benefit:
This ensures the shared McpHub instance remains active as long as at least one ClineProvider instance is using it. Cleanup now correctly occurs only when the last provider is closed or during full extension deactivation. This centralizes the resource's lifecycle logic within the resource class itself.

Files Changed:
- src/services/mcp/McpHub.ts
- src/core/webview/ClineProvider.ts
2025-04-04 23:14:05 -04:00
Kyle Hoskins
6ece39e1d1
Updated buttons to @/components/ui/button (#2312) 2025-04-04 23:04:29 -04:00
System233
8d045a4c08
Improve Simplified Chinese translations (#2306) 2025-04-04 22:23:57 -04:00
Peter Dave Hello
359a2f5442
Improve zh-TW Traditional Chinese locale (#2305)
Continuously improve the translation for a better quality.
2025-04-04 22:22:48 -04:00
Hannes Rudolph
951cefc0fc
Refactor: Improve file tool context formatting and diff error guidance (#2278)
* refactor: Change read_file result format to XML

Modifies how the result of the `read_file` tool is presented
in the conversation history sent to the AI model.

Previously, the format was:
[read_file for 'path/to/file'] Result:
{content_or_error}

This commit changes the format to use XML tags for better
structure and potentially easier parsing by the model:
<file>
  <path>path/to/file</path>
  <content>
{content_or_error}
  </content>
</file>

This change only affects the `read_file` tool result formatting
within the user context message constructed in `src/core/Cline.ts`.
Other tool result formats remain unchanged.

* fix: Update error message for better clarity in multi-search-replace strategy

Refines the error message returned when no sufficiently similar match is found during the multi-search-replace operation. The message now includes a clearer instruction to use the read_file tool for obtaining the latest file content before attempting to apply the diff again.

* refactor: Update readFileTool to return results in XML format

Modifies the `readFileTool` function to format the output as XML, enhancing the structure of the returned file content. This change aligns with previous updates to ensure consistent result formatting across tools.

* refactor: Simplify result handling for tool responses in Cline

This update refines the handling of tool responses in the `Cline` class by removing the XML formatting for `read_file` results and consolidating the logic for pushing results to the user message content. The changes ensure that all tool results are processed uniformly, improving code clarity and maintainability.

* test: Update read_file tests to validate XML formatted results

This commit modifies the assertions in the `read_file` tool tests to check for the expected XML format in the results. The changes ensure that the output structure aligns with recent updates to the tool's response formatting, enhancing test accuracy and reliability.

* test: Refactor assertions in read_file tests to use expected XML variable

This commit updates the `read_file` tool tests to utilize a predefined variable for the expected XML output, improving readability and maintainability of the test code. The changes ensure consistency in the expected results across multiple test cases.
2025-04-04 18:26:25 -04:00
R00-B0T
44ad7b6690
Changeset version bump (#2301)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-04 15:14:24 -04:00
Matt Rubens
e2a8ec8d0e
Add the gemini 2.5 pro preview model with upper bound pricing (#2300) 2025-04-04 15:12:18 -04:00
Chris Estreich
f747215988
Improve evals settings import (#2298) 2025-04-04 10:33:32 -07:00
Chris Estreich
8f356711f1
Ironing out some kinks when running evals with high parallelism (#2280) 2025-04-04 09:08:12 -07:00
R00-B0T
72d1a90c50
Changeset version bump (#2284)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-04 02:23:52 -04:00
Matt Rubens
16c1ab9ab5
Revert "Better logic for choosing the view column when opening Roo in a tab" (#2285)
* Revert "Better logic for choosing the view column when opening Roo in a tab (…"

This reverts commit 7eea755703.

* Create hip-pumpkins-mate.md
2025-04-04 02:14:33 -04:00
github-actions[bot]
98b04eb8d1
Update contributors list (#2272)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-04 02:14:07 -04:00
Matt Rubens
664a424356
v3.11.5 (#2283)
* v3.11.5

* Update announcement
2025-04-04 01:42:26 -04:00
Povilas Kanapickas
50eed96087
fix: Improve handling of escaped markers in apply_diff (#2274)
* fix: Improve handling of escaped markers in apply_diff

unescapeMarkers() is supposed to fix escaped merge conflict markers so
that they match the code. However the function has a bug which requires
SEARCH and REPLACE strings in the markers to be replaced. This is not
part of merge conflict markers, so many valid cases were previously
missed.

* Revert test changes

* Add new test

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-04 00:46:51 -04:00
Matt Rubens
7eea755703
Better logic for choosing the view column when opening Roo in a tab (#2282)
* Better logic for choosing the view column when opening Roo in a tab

* PR feedback
2025-04-03 23:59:17 -04:00
Matt Rubens
5ef0a6a8ce
Update LICENSE (#2275) 2025-04-03 23:54:26 -04:00
Matt Rubens
1a0117b009
Show menu buttons in tab view (#2281)
* Show menu buttons in tab view

* PR feedback
2025-04-03 23:35:22 -04:00
Povilas Kanapickas
065c5ab222
fix: Improve error message when apply_diff structure is invalid (#2260)
Currently all errors in apply_diff diff structure are assumed to be
related to merge conflicts. This is unfortunate because it is way more
likely that LLM simply made an error structuring the diff. The LLM is
then directed to fix escaping in the diff from which it doesn't recover.

It is safe to assume that missing or extra "<<<<<<< SEARCH" or ">>>>>>>
REPLACE" strings are likely bad diff structure, because while "<<<<<<<"
and ">>>>>>>" are common merge conflict markers, no tools add "SEARCH"
and "REPLACE" strings after them. This is likely output of the LLM
itself.

LLM not recovering has been observed in Claude 3.5 Sonnet and Claude 3.7
Sonnet models.

To address the issue, error message now mentions merge conflict markers
and their escaping only if it's clear that errors may come from this
source. In the rest of cases the error message repeats the expected diff
structure back to the LLM.
2025-04-03 16:43:57 -04:00
Matt Rubens
d2f9970654
Roo Vet -> Roo Code (#2269) 2025-04-03 15:57:20 -04:00
jdavis
b38b40656c
mcp supports cwd config and defaults to workspace cwd (#2171)
* mcp supports cwd config and defaults to workspace cwd

* clean up

* Update src/services/mcp/McpHub.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-04-03 15:08:21 -04:00
github-actions[bot]
e7a1db83c0
Update contributors list (#2252)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-03 13:08:39 -04:00
Smartsheet-JB-Brown
919bb121d0
Jbbrown/bedrock caching (#2071)
* Bedrock prompt caching

* remove whitespace only change to src/api/providers/base-provider.ts

* remove integration test that calls bedrock

* PR prep cleanup

* test file and redundant code cleanup

* updated multi-cache-point

* optimized cache strategy

* cache logic updated. commit before trying to simplify newConversationPlacements

* simplified initial cachePoint logic

* fix the missing caching params for claude 3.7 on bedrock

* undo unintentional changes to README.md files

* fix merge bug that hid use prompt cache checkbox

* prep for PR

* remove unintended changes

* revert .gitignore change

* undo unintended changes

* Issue 1998 - Unable to use ARN. https://github.com/RooVetGit/Roo-Code/issues/1998 - Simplify region extraction from Arns. Change example of ARN use from the foundational model ARN to an inference profile ARN which is what is needed.

* small updates to error message

* more flexible support for ARNs and hardening of ARN handling

* update comment on regex use for platform indipendent cosideration

* small code comment update

* remove duplicative logic to add a region to the arn when cross-region is selected

* Update README files from main branch

* improve error handling when on-demand throughput is not avialable for a foundational model

* fix prompt router bug

* minor tweaks for simplicity

* error messgae formatting

* set new version of bedrock runtime package

* fixes: 2229 - complete prompt doesn't work and appears like a no-op

* remove commented out logger.debug blocks per PR review request

* localize new prompt cache UI inputs

* single source of truth for AWS Region information

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-03 13:05:29 -04:00
Diarmid Mackenzie
43d1ab33da
Fix for focus grabbing when follow-up returns + Unit Test (#2263) 2025-04-03 12:38:17 -04:00
Matt Rubens
3f5f8bb81f
Remove code for old diff strategies (#2262) 2025-04-03 11:09:02 -04:00
Povilas Kanapickas
552ed0e986
chore: Add more multi-block tests for apply_diff tool (#2261) 2025-04-03 10:55:05 -04:00
Greg Taylor
a3e6c912b0
Add profile management functions to API (#2251)
Co-authored-by: Greg Taylor <gregtaylor@netflix.com>
2025-04-03 01:40:07 -04:00
R00-B0T
6534f5afe4
Changeset version bump (#2204)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-03 00:52:04 -04:00
Matt Rubens
dbefa7262e
v3.11.4 (#2250) 2025-04-03 00:34:26 -04:00
Thomas Jeung
e9bcee5e2a
feat: Add support for Azure AI Inference Service with DeepSeek-V3 model (#2241)
* feat: Add support for Azure AI Inference Service with DeepSeek-V3 model

* refactor: extract Azure AI inference path to constant to avoid duplication

* fix(tests): update RequestyHandler tests to properly handle Azure inference and streaming

* fix(api): remove duplicate constant and update requesty tests

* refactor: remove unused isAzure property from OpenAiHandler

* refactor(openai): remove unused isAzure and extract Azure check
2025-04-03 00:29:56 -04:00
Chris Estreich
49a61ca30f
Support bash 3.x in our evals setup script (#2248) 2025-04-02 20:53:36 -07:00
github-actions[bot]
71bdd72ca8
Update contributors list (#2203)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-02 23:27:44 -04:00
Matt Rubens
3d53386f1e
Remove the experimental unified diff (#2246) 2025-04-02 23:13:46 -04:00
Chris Estreich
e050043e58
Typos + promisify exec calls (#2243) 2025-04-02 17:12:03 -07:00
Chris Estreich
d15f813514
Evals (#2238)
* Evals

* Remove redundant line

* Fix tsc error

* Disable debug mode

* Add option to kill run
2025-04-02 16:49:41 -07:00
Matt Rubens
24a46698f3
Fix tree sitter to output 1-based line numbers (#2236) 2025-04-02 17:29:52 -04:00
Chris Estreich
42f7465666
Add a mode switched event, better mode switch e2e test (#2237) 2025-04-02 14:25:11 -07:00
Peter Dave Hello
c4af8cadbd
Improve zh-TW Traditional Chinese locale (#2233) 2025-04-02 16:48:28 -04:00
Chris Estreich
a73fce9027
Allow processes to access the Roo Code API via a unix socket (#2232) 2025-04-02 12:42:00 -07:00
Smartsheet-JB-Brown
0409509002
fixes: 2229 - completePrompt doesn't work for bedrock. (#2230)
* fixes: 2229 - completePrompt doesn't work for bedrock.

* fix failing test
2025-04-02 15:35:14 -04:00
Smartsheet-JB-Brown
1b25190947
fixes: 2224 - Update AWS region drop down to be current. (#2225) 2025-04-02 11:59:51 -04:00
Matt Rubens
1de227e24e
Make the SelectDropdown use modal=false (#2215) 2025-04-02 11:37:03 -04:00
Kyle Hoskins
dc02bb2683
Enable model select when api fails (#2217)
* Enable model switching on API failure

Bug: Cannot change model selection after API error due to UI state #1657
UI Bug: OpenRouter ran out of credits prevents user from switching models #1206

* Remove irrelevant code
2025-04-02 11:36:51 -04:00
Peter Dave Hello
0759de218a
Update dependencies via npm audit fix (#2192)
npm warns me that there are 2 vulnerabilities (1 moderate, 1 high), so I
use `npm audit fix`, and the high severity one was fixed:
- tar-fs 3.0.0-3.0.6 https://github.com/advisories/GHSA-pq67-2wwv-3xjx

There is only one moderate vulnerability now:
- esbuild <=0.24.2 https://github.com/advisories/GHSA-67mh-4wv8-2f99
2025-04-01 22:15:14 -04:00
axmo
2cd4753e89
Limit DropdownMenu height to 80% of viewport (#2181)
make DropdownMenu scrollable with 80vh height limit

The DropdownMenu component now automatically becomes scrollable when its content
exceeds 80% of the viewport height. This enhances usability by:

- Limiting maximum height to 80vh using Tailwind's max-h-[80vh]
- Enabling vertical scrolling with overflow-y-auto
- Preserving dropdown positioning and accessibility
2025-04-01 18:48:22 -05:00
Kyle Hoskins
e189b265ca
Update History Selection Mode button spacing (#2196) 2025-04-01 18:43:48 -05:00
Hannes Rudolph
9255dc5df9
fix(diff): Handle line number stripping for deletions in apply_diff (#2193)
The multi-search-replace diff strategy previously did not correctly strip line numbers (`number | `) from the SEARCH block when the REPLACE block was empty. This occurred because the condition for stripping required both blocks to consistently have line numbers.

This prevented successful deletion operations when the SEARCH block content was copied from `read_file` output (which includes line numbers) and the REPLACE block was empty.

This commit updates the line number stripping condition in `applyDiff` to also trigger if the SEARCH block has line numbers and the REPLACE block is empty or contains only whitespace, resolving the bug.

Additionally, a new test case has been added to `multi-search-replace.test.ts` to specifically verify this deletion scenario. All tests now pass with this updated logic.
2025-04-01 15:33:27 -05:00
github-actions[bot]
7409c48835
Update contributors list (#2137)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-31 23:36:26 -05:00
KJ7LNW
d7ad9470e2
Tree-sitter Enhancements: TSX, TypeScript, JSON, and Markdown Support (#2169)
* feat: add Tree-sitter TSX query support

Added support for parsing TSX files with Tree-sitter:
- Created TSX query patterns for React components and functions
- Fixed field name issues by using direct node matching
- Added comprehensive documentation about TSX component structure
- Created a debug tool to inspect the actual tree structure
- Added test coverage for TSX parsing
- Embedded test fixture directly in the test file

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: combine TypeScript and TSX queries

Reduce duplication by:
- Import TypeScript queries from typescript.ts
- Keep only TSX-specific component and JSX queries
- Update documentation to reflect combined approach

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update integration for parse definitions

- Adjusted logParseResult to call the actual parse definitions function using WASM from initializeWorkingParser.
- Patched TreeSitter initialization to resolve the WASM path correctly and bypass redundant init() calls.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: should successfully call parseSourceCodeDefinitionsForFile

Mock loadRequiredLanguageParsers to use real parser instance from initializeTreeSitter,
ensuring proper interaction between parseSourceCodeDefinitionsForFile and its dependencies.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: improve test structure for parseSourceCodeDefinitions

- Combine component parsing tests into a single test case
- Update test assertions to match actual parser output
- Fix interface and component definition tests to use VSCodeCheckbox as sample

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: improve React component detection in tree-sitter

- Add tests for complex TSX structures (nested components, HOCs)
- Enhance TSX queries to better detect React components
- Document current limitations in test file

* feat: improve React component detection in TSX files

Make TSX/React component detection more generic and robust by:
- Implementing structural pattern matching instead of specific React wrapper functions
- Adding configurable line threshold for React component inclusion (MIN_COMPONENT_LINES)
- Adding robust HTML element filtering with regex patterns
- Improving React component name handling for nested components
- Ensuring proper context handling for multi-line React components

Also update mock captures in tree-sitter tests to span at least 4 lines
to meet the MIN_COMPONENT_LINES threshold.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: use testParseSourceCodeDefinitions in logParseResult

- Moved testParseSourceCodeDefinitions function to top level
- Updated logParseResult to use testParseSourceCodeDefinitions
- Removed duplicate function from describe block
- Added console.log for debugging output

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: improve React component detection output format

- Remove individual line output for components that don't meet MIN_COMPONENT_LINES threshold
- Update tests to match the new behavior where lines < MIN_COMPONENT_LINES are skipped
- Maintain range output (e.g., 1--4) for component definitions
- Preserve context for larger definitions as ranges only

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: add switch/case statement support to tree-sitter TypeScript parser

- Added node patterns in typescript.ts query to capture switch statements, case clauses, and default clauses
- Modified index.ts to avoid duplicate line ranges in the output
- Added test for switch/case statements with complex case blocks
- Fixed line range tracking to prevent duplicate output

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: add support for enum declarations in tree-sitter TypeScript parser

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: add support for namespace declarations in tree-sitter TypeScript parser

Added query pattern for namespace declarations (internal_module nodes) in the TypeScript parser.
This allows the parser to identify and extract namespace declarations from TypeScript code.

- Added test case to verify namespace parsing functionality
- Added query pattern to capture namespace declarations in typescript.ts

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: add decorator pattern support to tree-sitter TypeScript parser

- Added support for parsing complex decorators with arguments
- Added test case for Component decorator pattern
- Enhanced TypeScript queries to capture decorator definitions

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: add generic type declaration support to tree-sitter TypeScript parser

- Added support for parsing generic types with constraints
- Added test case for Dictionary<K extends string | number, V> pattern
- Enhanced TypeScript queries to capture generic type definitions

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: add conditional type support to tree-sitter TypeScript parser

- Added test case for conditional type patterns like ReturnType<T>
- Verified that conditional types with infer keyword are already supported
- Enhanced inspectTreeStructure with detailed node inspection for debugging

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: add template literal type support to tree-sitter TypeScript parser

- Added test case for template literal type patterns like EventName<T>
- Verified that template literal types are already partially supported
- Confirmed support for complex template literal patterns in conditional types

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: implement tree-sitter compatible markdown processor

Adds a special case implementation for markdown files that:
- Parses markdown headers and section line ranges
- Returns captures in a format compatible with tree-sitter
- Integrates with the existing parseFile function
- Includes comprehensive tests for the implementation

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: markdown parser not detecting sections with horizontal rules

The markdownParser was incorrectly interpreting horizontal rules (---) as setext headers when they appeared after non-header text. This caused some sections to be missed in the output.

This fix:
- Makes setext header detection more strict by requiring at least 3 = or - characters
- Adds validation for the text line before a potential setext header
- Ensures horizontal rules are not confused with setext headers

Added a test case to verify the fix works correctly with horizontal rules.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* refactor: move helper functions to dedicated file

Move test helper functions from parseSourceCodeDefinitions.test.ts to a new helpers.ts file.
Rename test file to parseSourceCodeDefinitions.tsx.test.ts to indicate it's for TSX tests.
This improves code organization by separating test helpers from test cases.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: enable JSON structure display in list_code_definitions

This change allows list_code_definitions to show JSON structures by:
- Moving JSON query patterns into the JavaScript query file
- Using the JavaScript parser for JSON files
- Removing the separate JSON parser implementation
- Adding comprehensive tests for JSON parsing

Example output for a JSON file:
# test.json
0--90 | {
1--9 |   "server": {
4--8 |     "ssl": {
10--45 |   "database": {
11--24 |     "primary": {
14--18 |       "credentials": {
19--23 |       "pool": {
25--44 |     "replicas": [
26--43 |       {
30--42 |         "status": {
33--41 |           "metrics": {
36--40 |             "connections": {
46--73 |   "features": {
47--72 |     "auth": {
48--71 |       "providers": {
49--53 |         "local": {
54--70 |         "oauth": {
56--69 |           "providers": [
57--68 |             {

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: Add compile step to CI workflow to ensure WASM files are available

The TreeSitter tests were failing in CI because the WASM files weren't being copied to the dist directory before running the tests. This adds an explicit compile step to ensure the WASM files are properly built and copied.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: improve tree-sitter test type safety and debug logging

- Replace 'any' types with proper Parser types in helpers.ts
- Add centralized DEBUG flag and debugLog function in helpers.ts
- Update all console.log statements to use debugLog across all test files
- This change appeases @ellipsis-dev by improving type safety and
  providing a clean way to control debug logging

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-31 23:34:06 -05:00
Steven T. Cramer
b9f4695d12
Fix Tests to run properly on Windows (#1963)
* fix: remove -p flag from test script to prevent git operation errors

The -p flag in npm-run-all was causing tests to run in parallel, which led to 'Cannot log after tests are done' errors with git operations. These errors don't appear when running test:extension alone.

The issue occurs because git-based tests create temporary directories and run async operations that can interfere with each other when executed in parallel. Running tests sequentially resolves this cleanly.

While it might increase total test time slightly, it ensures more reliable and consistent test results.

* refactor(terminal): improve mock streams and fix test issues

- Create shell-specific mock streams (bash, cmd, pwsh) with proper line ending handling
- Fix open handles in tests by properly managing timeouts
- Standardize stderr redirection across all shell implementations using stdio option
- Improve test reliability and output cleanliness

* fix(tests): add skipVerification option to PowerShell tests to debug Linux issues

* fix(tests): use explicit variable name in PowerShell test to fix Linux compatibility

* Refactor terminal tests to use purpose-based approach instead of command mapping

* Remove reference to non-existent test file

* fix: use printf instead of echo -e for more consistent behavior across platforms

* fix: use single quotes for PowerShell commands to preserve variables on Linux

* Update code-qa workflow to run tests on both Windows and Ubuntu

* fix: use platform-specific PowerShell command execution for Linux and Windows

* Fix toggleToolAlwaysAllow to handle path normalization for cross-platform compatibility

* Fix McpHub tests to handle normalized paths on Windows

* Suppress console.error messages in McpHub tests

* fix: make Bedrock ARN regex patterns Windows-compatible

Fixed an issue where AWS Bedrock tests were timing out on Windows but passing on Linux. The root cause was path separator handling in regex patterns used for model ID extraction from ARNs.

1. Updated model ID extraction regex to handle both forward slashes (Linux) and backslashes (Windows)
2. Modified ARN matching regex to be platform-independent
3. Ensured consistent region prefix handling for all supported regions

This change maintains functionality while ensuring cross-platform compatibility.

* fix: make WorkspaceTracker test cross-platform compatible

Fixed an issue where the WorkspaceTracker test 'should initialize with workspace files' was failing on Windows but passing on Linux. The problem was in the mock implementation of toRelativePath that only handled forward slashes.

- Updated the toRelativePath mock to use path.relative which properly handles platform-specific path separators
- Ensured all paths are converted to forward slashes for consistency in test assertions
- The fix maintains cross-platform compatibility while preserving the test's intent

* fix: make WorkspaceTracker tests cross-platform compatible

Fixed cross-platform compatibility issues in the WorkspaceTracker tests that were causing failures on Windows but passing on Linux:

1. Updated the toRelativePath mock implementation to:
   - Use path.relative which properly handles platform-specific path separators
   - Convert paths to forward slashes for consistency in test assertions

2. Enhanced the 'should not update file paths' test to be platform-agnostic by:
   - Using more flexible assertions that don't depend on specific path formats
   - Checking file path length and content rather than exact string matches
   - Properly typed the test assertions to fix TypeScript errors

These changes preserve the test intent while ensuring they run successfully across different operating systems.

* fix: make McpHub tests cross-platform compatible

Fixed cross-platform compatibility issues in the McpHub tests that were causing failures on Windows but passing on Linux:

1. Made the toggleToolAlwaysAllow tests more platform-agnostic by:
   - No longer relying on specific path formats which differ between Windows and Linux
   - Using the last write call instead of searching for a specific path string
   - Adding more robust assertions that verify structure instead of exact path matches
   - Properly handling array existence checks

2. These tests would fail on Windows because paths are formatted with backslashes instead of
   forward slashes, causing path equality checks to fail.

The changes maintain test intent while ensuring cross-platform compatibility.

* handle escaping of slash and quote

* fix: ensure consistent line endings in git fallback strategy

Fixed an issue where tests would fail on GitHub Windows runners but pass on local Windows machines due to line ending differences. The fix ensures consistent line ending handling by:

1. Normalizing CRLF to LF when reading files in the git fallback strategy
2. Disabling Git's automatic line ending conversion
3. Maintaining consistent line ending usage throughout text operations

* feat: run tests sequentially on Windows, parallel otherwise
2025-03-31 23:17:56 -05:00
Wojciech Kordalski
5d993845b7
We should post state to webview at the end of RooCodeAPI.clearCurrentTask() (#1874)
We should post state to webview at the end of RooCodeAPI.clearCurrentTask
2025-03-31 22:53:55 -05:00
Matt Rubens
aea9540cc0
Update app icon (#2166) 2025-03-31 22:24:48 -05:00
R00-B0T
c4d1d3483f
Changeset version bump (#2163)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-31 16:11:17 -05:00
Matt Rubens
b0b4240c8b
Revert "feat @-mention window path style & file with space (#1924)" (#2162)
* Revert "feat @-mention window path style & file with space (#1924)"

This reverts commit c62e8f2ee2.

* Add changeset
2025-03-31 15:56:47 -05:00
R00-B0T
9823628a53
Changeset version bump (#2154)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-31 14:01:26 -04:00
Matt Rubens
fe3e9325a5
Include inference-profile in Bedrock arnRegex (#2156) 2025-03-31 13:52:57 -04:00
Matt Rubens
136cf99885
Add requesty to connect-src (#2155) 2025-03-31 13:51:21 -04:00
Chris Estreich
a6ed5ce0ea
Update the webview when changing settings via the API (#2143)
* Update the webview when changing settings via the API

* Update src/exports/api.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-31 13:40:27 -04:00
Diarmid Mackenzie
73fe581868
Split webviewMessageHandler out of ClineProvider.ts (#2149) 2025-03-31 09:47:28 -04:00
R00-B0T
5bae398c44
Changeset version bump (#2141)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-31 02:15:47 -04:00
Chris Estreich
3322e08cb7
Relax provider profiles schema and log parse error to PostHog (#2139)
* Relax provider profiles schema and log parse error to PostHog

* Create wise-moose-shop.md

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-30 23:07:34 -07:00
R00-B0T
f25812d722
Changeset version bump (#1992)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-31 00:30:45 -04:00
Matt Rubens
e1ca1b93a6
v3.11.0 (#2136) 2025-03-31 00:19:56 -04:00
github-actions[bot]
3e77929e0d
Update contributors list (#2090)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-31 00:04:49 -04:00
Chris Estreich
23d1bbfd1a
Preserve existing provider profiles when importing (#2052) 2025-03-30 23:38:26 -04:00
Sam Hoang Van
48148e38d9
feat: Add shift-click to append suggestions to text area (#2081)
* feat: Add shift-click to append suggestions to text area

When a user shift-clicks a suggestion, the text is now appended to the current text area content instead of being sent immediately. This allows users to:
- Build complex prompts by combining multiple suggestions
- Edit suggestions before sending them
- Reuse parts of previous suggestions

The implementation passes the mouse event through the component chain and checks for the shift key before deciding whether to append or send the message.

* Tweak icon and internationalize

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-30 23:35:02 -04:00
Duong M. CUONG
af6753608f
Remove hard-coded o3-mini model when streaming is enabled, allowing custom o3-mini-<reasoning> model (#2134)
Remove hard-coded o3-mini model when streaming is enabled
2025-03-30 23:12:18 -04:00
Matt Rubens
9a13041186
Remove the single diff strategy and make multi-diff the default (#2133) 2025-03-30 23:07:31 -04:00
Matt Rubens
520326648b
Revert "Remove the ask promise error" (#2126)
Revert "Remove the ask promise error (#2123)"

This reverts commit b788aa1ec4.
2025-03-30 16:45:29 -04:00
Matt Rubens
b788aa1ec4
Remove the ask promise error (#2123) 2025-03-30 15:04:28 -04:00
Matt Rubens
60e122f2ca
Tweaks to support prompt line number format (#2121) 2025-03-30 14:28:34 -04:00
feifei
d3df954797
Fix switching profiles to ensure only the selected profile is switche… (#2119)
Fix switching profiles to ensure only the selected profile is switched for all modes, and optimize certain i18n keys.

Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-30 14:15:27 -04:00
Matt Rubens
b74e1e89da
Fix Gemini command escaping (#2120) 2025-03-30 14:07:00 -04:00
Matt Rubens
2c5f956162
Parse the retry out of the gemini 429 response (#2118) 2025-03-30 13:39:59 -04:00
Matt Rubens
a7d31aa9ba
Revert "Remove the ask promise error" (#2117)
Revert "Remove the ask promise error (#2107)"

This reverts commit 712ca71ee0.
2025-03-30 13:33:04 -04:00
Matt Rubens
592494fb29
Link to provider docs from the API options (#2112) 2025-03-30 13:12:18 -04:00
Matt Rubens
37ecf9648b
Link to the settings page from the auto approve toolbar (#2111) 2025-03-30 12:22:53 -04:00
Matt Rubens
712ca71ee0
Remove the ask promise error (#2107)
* Remove the ask promise error

* Send start_time along with checkpoints and use it to position in the messages
2025-03-30 12:04:34 -04:00
feifei
cf487fbfae
i18n Add translations for task pinning and unpinning (#2109)
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-30 11:42:48 -04:00
Chris Estreich
2303f67afb
Clean up the way we compute the current diff strategy (#2049)
* Clean up the way we compute the current diff strategy

* Add changeset
2025-03-30 02:08:37 -04:00
Matt Rubens
87b06476bb
Do a little code cleanup now that tools are refactored out (#2103) 2025-03-30 02:07:06 -04:00
Matt Rubens
253d0fecb2
Move new_task, switch_mode, attempt_completion, and ask_followup_question to tool files (#2102) 2025-03-30 01:58:35 -04:00
Matt Rubens
9b0790fce7
Move use_mcp_tool and access_mcp_resource to tool files (#2101) 2025-03-30 01:47:19 -04:00
Matt Rubens
937b1f3c90
Move execute_command to a tool file (#2100) 2025-03-30 01:40:16 -04:00
Matt Rubens
38365085d7
Move browser_action to a tool file (#2099) 2025-03-30 01:34:50 -04:00
Matt Rubens
9be36ddcf3
Move search_files to a tool file (#2098) 2025-03-30 01:28:58 -04:00
Matt Rubens
da2af71106
Move list_code_definition_names to a tool file (#2097) 2025-03-30 01:21:01 -04:00
Matt Rubens
bdb668b68b
Move search_and_replace to a tool file (#2096) 2025-03-30 01:15:43 -04:00
Matt Rubens
d5328770e7
Move insert_content to a tool file (#2095) 2025-03-30 01:10:26 -04:00
Matt Rubens
02f63fc522
Move apply_diff to a tool file (#2094) 2025-03-30 01:04:38 -04:00
Matt Rubens
26c3fe6535
Move write_to_file to a tool file (#2093) 2025-03-30 00:49:08 -04:00
Matt Rubens
1242ba808e
Fix a type in the listFiles tool (#2092) 2025-03-30 00:37:13 -04:00
Matt Rubens
72894c22a0
Remove switch from tools (#2091)
* HandleError returns a promise

* Remove unnecessary switch from tools
2025-03-30 00:31:56 -04:00
Bhavesh Ramburn
e95afc250b
Refactor/cline.ts/list files (#2067)
* "Refactor list_files tool to separate module (#2057)"

* Await

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-30 00:20:06 -04:00
github-actions[bot]
db66e8df49
Update contributors list (#2089)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-30 00:10:51 -04:00
Matt Rubens
40a0766161
Handle multiple API pages worth of contributors (#2088) 2025-03-30 00:08:48 -04:00
github-actions[bot]
ec01dd27ef
Update contributors list (#2023)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-29 15:49:32 -04:00
Matt Rubens
9bb50eaba3
Display info about partial reads in chat row (#2080) 2025-03-29 02:14:18 -04:00
Nico Bihan
e15fa227c5
Added Gemini 2.5 Pro model to GCP Vertex AI Provider (#2079) 2025-03-29 01:50:33 -04:00
Matt Rubens
bedb7de72b
Add missing awaits on refactored tools (#2078) 2025-03-29 01:05:06 -04:00
Afshawn Lotfi
cbe7075f4f
In-Editor Browser Improvements (#1601)
* Browser Automation Improvements
* Added multi-tab remote Chrome support
* Added support for hover
* Properly caching remote browser host in global state
* Cleanup functions

* Updated for changes after merge

* Added www. exception for common tabs

* Update src/core/webview/ClineProvider.ts

* Revert README changes

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-29 00:46:01 -04:00
aheizi
d7278d367e
Fix mention file name is not fully displayed (#2026)
Fixed path leading character handling to preserve language characters and remove specific punctuation marks
2025-03-29 00:09:28 -04:00
Hannes Rudolph
683ff2fd8a
Update bug_report.yml (#1994)
* Update bug_report.yml

* Update bug_report.yml

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-29 00:05:14 -04:00
Greg Taylor
5fbf563216
Add an activation command for other extensions (#2073)
Since VS Code provides no actionEvents that trigger when a specific
extension activates, extensions can't activate only once Roo is
activated and ready.

This commit introduces a new roo-cline.activationCompleted command
and fires it at the very end of extension activation. Other
extensions that use Roo's exported APIs can now activate when they
see this event.

Co-authored-by: Greg Taylor <gregtaylor@netflix.com>
2025-03-28 23:48:03 -04:00
Chris Estreich
105bc3c0d5
Require exactly node v20.18.1 (#2065) 2025-03-28 11:12:11 -07:00
Chris Estreich
dbe0ede9a7
Handle null [x]ModelInfo types, recover from settings schema parse errors (#2064) 2025-03-28 09:59:58 -07:00
Sam Hoang Van
e7e5511b65
feat: prioritize "Add to Context" and add line number tracking (#2063)
- Move "Add to Context" to the top of submenu and code actions for improved accessibility
- Add line number tracking (startLine/endLine) to EditorContext and code actions
- Update templates in support-prompt.ts to include line numbers in file references
- Ensure backward compatibility with existing code

This change improves the UX by making the frequently used "Add to Context" action more accessible and enhances context awareness by tracking and displaying line numbers for selected code.
2025-03-28 12:01:16 -04:00
Matt Rubens
b46f6adb78
Extract code for read_file from Cline (#2059) 2025-03-28 11:47:47 -04:00
Diarmid Mackenzie
62a7bc7959
Refactor fetch instructions to new file (#2056)
* Refactor fetch_instructions handling into separate module

* Use correct case for module name
2025-03-28 09:50:42 -04:00
KJ7LNW
317e5446fb
Fix list_code_definition_names to support files (#2046)
* feat: enhance list_code_definition_names to support files

Fix 'cwd option must be a path to a directory' error.
Add support for analyzing individual source files.
Update tool description to clarify file and directory usage.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: updated system instruction snapshots

Update system instruction snapshots for list_code_definition_names tool.
The snapshots now reflect enhanced documentation that clarifies
the tool can analyze both individual files and directories.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-28 09:39:29 -04:00
Chris Estreich
d4c7493674
Remove redundant zod schemas (#2051)
Add changeset
2025-03-27 21:59:51 -07:00
Chris Estreich
3d0fc3ccc5
Add config getters to RooCodeAPI (#2048) 2025-03-27 21:12:55 -07:00
Chris Estreich
7eb469f636
Re-enable ClineProvider tests (#2047) 2025-03-27 21:06:54 -07:00
Chris Estreich
0fd399de78
Automatically generate roo-code.d.ts (including type generation via zod-to-ts) (#2024) 2025-03-27 09:38:56 -07:00
Chris Estreich
e464c41970
Add tsup as a dev dependency (#2029) 2025-03-27 02:39:25 -07:00
Chris Estreich
b3efe3e4fb
Add execa, zod-to-ts, and tsx as dev dependencies (#2025) 2025-03-27 01:27:38 -07:00
KJ7LNW
3c75b81f0d
Fix: Restore file truncation backward compatibility and fix regressions (#2022)
* fix: restore file truncation backward compatibility and fix regressions

Fixes #1934

- Setting maxReadFileLine=-1 provides equivalent functionality for reading entire files
- Revert to system-controlled maxReadFileLine for file truncation, fixing regressions with:
  - Overridden system prompts lacking auto_truncate parameter information
  - Insufficient user control over truncation behavior
- Add 'Always read entire file' checkbox for easier access to full file reading
- Update translations across all locales with improved descriptions
- Update truncation notice to be more concise

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: add comprehensive tests for read_file maxReadFileLine settings

- Tests behavior when maxReadFileLine is -1 (reads entire file)
- Tests behavior when maxReadFileLine >= file length (reads entire file)
- Tests behavior when maxReadFileLine is 0 (shows only definitions)
- Tests behavior when maxReadFileLine < file length (truncates content)
- Verifies exact line counts in responses
- Adds helper functions for response validation
- Includes DEBUG flag for controlled logging

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-27 01:56:10 -04:00
github-actions[bot]
b6107c62b1
Update contributors list (#1991)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-27 00:29:51 -04:00
aheizi
c7ac0c5db5
Support project level mcp (#1841)
* support project-level mcp config

* switch the toasts to English

fix test

(cherry picked from commit 26941dcaae)

* add i18n for project mcp

(cherry picked from commit 792a8225c1)

* optimize McpHub.ts

* fix merge main into head

* fix project mcp

* partial update mcp config

* fix toggleToolAlwaysAllow

* Modify mcp to support project and global of the same name

* fix ut

* remove unused mcp log

* i18n for mcp

* Revert README changes

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-27 00:23:39 -04:00
Sam Hoang Van
c62e8f2ee2
feat @-mention window path style & file with space (#1924)
* feat @-mention window path style & file with space

* Update src/core/mentions/index.ts

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-27 00:10:06 -04:00
Matt Rubens
4d744bb94a
New icon (#2020) 2025-03-27 00:09:07 -04:00
Chris Estreich
a414c7d028
Wrangle our settings-related types and add support for settings import / export (#1997)
* Strongly type our settings use composition where possible

* Update src/core/contextProxy.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update src/core/contextProxy.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Add comment, tweak function name

* Add changeset

* Clean up toolGroup types

* Comments tweak

* Remove unused type

* More type safety

* Improve import / export, add translations

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-26 16:29:01 -07:00
jwc11
55bbe88e39
feat: add pinning and sorting for API configurations dropdown (#2001)
* feat: add pinning functionality for API configurations

Added the ability to pin/unpin API configurations, enabling prioritized appearance in dropdown menus.
- modified state management to support storing pinned configurations persistently.
- Updated UI components to display and toggle pin states
- Adjusted backend handling for syncing pinned configuration states across sessions.

* refactor: add support for loading API configurations by ID

- Introduced a new method `loadConfigById` in `ConfigManager` to load API configurations using their unique ID.
- Refactored the dropdown and pin logic to work with ID
- Added tests to verify the new functionality for loading configurations by ID.

* fix: preserve existing API config ID on updates

- Ensure that the existing ID is retained when updating an API config.
- Prevents unintentional ID changes during configuration updates.

* Fix theme issues

---------

Co-authored-by: james <james@systemslogiq.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-03-26 11:29:24 -07:00
Matt Rubens
1fb34b81fa
Show requesty key balance on the settings screen (#1995) 2025-03-26 11:25:24 -04:00
Matt Rubens
0fd0800ba9
Show openrouter key balance on the settings page (#1990) 2025-03-25 22:41:21 -04:00
R00-B0T
be8527c995
Changeset version bump (#1987)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-25 20:32:29 -04:00
Chris Estreich
599d451bd1
Fix task completion events (#1981)
* Fix task completion events

* Create polite-singers-greet.md

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-25 20:29:06 -04:00
github-actions[bot]
1f36694e2d
Update contributors list (#1984)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-25 20:28:58 -04:00
Matt Rubens
7d2b6b7d3d
v3.10.5 (#1986) 2025-03-25 20:27:41 -04:00
Eugène P.
f071a43b26
Updated value of max tokens for gemini-2.5-pro-03-25 to correct one (#1985)
Updated value of max tokens for gemini 2.5 to correct one
2025-03-25 20:25:07 -04:00
R00-B0T
1d1c33549c
Changeset version bump (#1947)
* changeset version bump

* Update package.json

* Update package-lock.json

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-25 19:14:00 -04:00
Matt Rubens
2c77043801
v3.10.4 (#1983) 2025-03-25 19:06:29 -04:00
github-actions[bot]
3cd549b811
Update contributors list (#1978)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-25 19:06:14 -04:00
Diarmid Mackenzie
f773bc3024
Remove "Enable Custom Mode Creation Through Prompts" toggle (#1980)
* Remove custom mode creation option

* Remove redundant code branch
2025-03-25 15:31:29 -04:00
Matt Rubens
b8549f1f26
Auto-approval logic for fetch_instructions (#1976) 2025-03-25 14:30:32 -04:00
github-actions[bot]
6258493f0d
Update contributors list (#1967)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-25 13:24:33 -04:00
Samuel
8613daf515
Added Gemini 2.5 Pro model to Google Gemini Provider (#1974)
* Added Gemini 2.5 Pro

* Update src/shared/api.ts

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-25 13:23:27 -04:00
Diarmid Mackenzie
ec423a715c
Fetch instructions (#1869)
* Code for new fetch_instructions tool

* Call parameter for fetch_instructions task, not text

* Additional places that fetch_instructions needs to be added.

* Pass necessary objects into create MCP server code

* Update snapshots to reflect changes to prompts

* Fixes from testing

* Move guidance on creating project modes to fetchable instructions

* i18n for new prompt

Translations suggested by Roo.

* Missing translation

* Another missing i18n update

* Missing Catalan translation

* Re-use content parameter on ClineSayTool

* Remove space from zh-TW translation

This is consistent with other translations

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* PR review - suggested changes to prompts

* Slightly more conservative in terms of text pruning from default prompt

* Move additional detail about mode creation into fetch_instructions instructions

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-25 13:08:17 -04:00
Peter Dave Hello
45299a9aea
Fix the supportsPromptCache value for OpenAI models (#1923)
Reference:
- https://platform.openai.com/docs/models
2025-03-25 13:07:10 -04:00
axb
0bc4f30c23
add new task command (#1648)
* add new task command

* Internationalize

* Revert README changes

* More i18n

* Fix tests

* Fix i18n

* Missing translations

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-25 11:08:11 -04:00
Matt Rubens
22d01ce67a
Add specific strings for read/edit outside of the workspace (#1970) 2025-03-25 10:10:38 -04:00
Matt Rubens
1810efe496
Additional checkbox for auto-approving reads and writes outside of the workspace (#1965) 2025-03-25 01:35:33 -04:00
github-actions[bot]
9442139112
Update contributors list (#1960)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-25 00:58:18 -04:00
黄远成
237ee329ee
Support mcp image resource (#1962)
handle mcp image resource
2025-03-25 00:55:28 -04:00
Matt Rubens
4fa4943d5f
Revert "[clinerules] search clinerule in parent folders which make it easier to share within a github repo" (#1959)
Revert "[clinerules] search clinerule in parent folders which make it easier …"

This reverts commit 2953baef97.
2025-03-24 23:09:25 -04:00
github-actions[bot]
fbc31c3d99
Update contributors list (#1958)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-24 21:54:20 -04:00
Jiayuan Chen
6d8e7bbfbd
Internationalization support for custom storage path functionality (#1957)
Co-authored-by: Your Name <your.email@example.com>
2025-03-24 21:48:26 -04:00
github-actions[bot]
fe4e73279c
Update contributors list (#1949)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-24 21:43:29 -04:00
Chad Gauthier
418694befa
Update UX for text area (#1953)
* update ux for text area

* fix z-index

* fix tests

* Update .changeset/bright-trains-crash.md

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* extract off drop method per code review bot

* address bot comment

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-24 17:46:34 -04:00
Mikhail Beliakov
d91467fbd6
fix: Readme docs links (#1951)
Fix Readme docs links
2025-03-24 17:16:44 -04:00
Rian Santos
809e8cd6bc
#906 - Add watchPaths option to McpHub for file change detection (#1755)
* #906 Add watchPaths option to McpHub for file change detection

* #906 Refactor file watcher management in McpHub

add support multiple watchers per server.

modified the setupFileWatcher method to properly handle asynchronous operations and prevent unhandled promise rejections.

error handling now includes specific error messages that identify exactly where the error occurred.

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-24 15:33:30 -04:00
Jiayuan Chen
1c9daf5a48
Support customize storage path (#1941)
Co-authored-by: Your Name <your.email@example.com>
2025-03-24 15:22:55 -04:00
Chris Estreich
92850023c9
Run 'npm audit fix' on everything (#1817) 2025-03-24 14:50:53 -04:00
cannuri
92dd8e36da
Fix browser tool visibility in system prompt preview (#1840)
fix sys prompt browser visibility
2025-03-24 14:48:36 -04:00
github-actions[bot]
c74c235d33
Update contributors list (#1936)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-24 14:36:53 -04:00
ying
2953baef97
[clinerules] search clinerule in parent folders which make it easier to share within a github repo (#1832)
* [clinerules] search clinerule in parent folders which make it easier to share common clinerules for a git repo

* fix indent

* Fix test

---------

Co-authored-by: Ying Liu <lying@microsoft.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-24 14:18:30 -04:00
Wojciech Kordalski
fdcc679f9f
Add taskCreated event to API and subscribe to Cline events earlier (#1942)
* Cline events are subscribed earlier, added `taskCreated` event to API

* Probably fix the ClineProvider test
2025-03-24 11:05:33 -07:00
KJ7LNW
953a9c777a
refactor: align tree-sitter output with other tools (#1859)
Use compact line number format matching read_file/search_files to:
- Reduce token usage in AI responses
- Simplify output parsing

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-24 13:59:18 -04:00
Steven T. Cramer
8ad4fff0d2
Removed hardcoded filenames to GlobalFileNames constants. (#1904)
* Replace hardcoded custom modes filename with GlobalFileNames constant

* Remove 'cline' prefix from mcpSettings filename

* Use GlobalFileNames.customModes in modes.ts

* replace two more `cline_mcp_settings` with `mcp_settings` in tests.

* feat: add settings file migration for new file naming convention

- Implement migrateSettings function to rename legacy settings files to new format
- Migrate cline_custom_modes.json to new custom modes filename
- Migrate cline_mcp_settings.json to new MCP settings filename
- Add TODO to remove migration code in September 2025 (6 months after implementation)
- Make activate function async to support migration on startup

* Add associated changeset

* removed unused import

* refactor: move migrateSettings to dedicated utility file

- Extract migrateSettings function from extension.ts to src/utils/migrateSettings.ts
- Update extension.ts to import and use the extracted function
- Update tests to use the real implementation
- Improve dependency injection by passing outputChannel as parameter
- Enhance maintainability by isolating temporary migration code (to be removed Sept 2025)

* Update src/extension.ts

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-24 13:32:44 -04:00
KJ7LNW
187979af2b
feat: add test declarations support in typescript tree-sitter queries (#1899)
Add parsing support for:
- Jest describe/test/it blocks
- npm test exports

This enables proper identification of test definitions in TypeScript files:

```
// File: multi-search-replace.test.ts (192 definitions)
│| 2 - 1565 ||describe("MultiSearchReplaceDiffStrategy", () => {
│| 3 - 632 ||	describe("exact matching", () => {
│| 10 - 28 ||		it("should replace matching content", async () => {
||    ||----
│| 30 - 48 ||		it("should match content with different surrounding whitespace", async () => {
||    ||----
│| 50 - 68 ||		it("should match content with different indentation in search block", async () => {
||    ||----
│| 70 - 88 ||		it("should handle tab-based indentation", async () => {
||    ||----
```

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-24 13:32:18 -04:00
Matt Rubens
15338ed76a
Bring back open files and git results in mention suggestions (#1946) 2025-03-24 11:53:00 -04:00
Matt Rubens
30f9d8f032
Better openrouter error handling (#1945) 2025-03-24 11:36:50 -04:00
aheizi
83ba22a44c
optimize context files (fix) (#1933)
optimize context files
2025-03-24 10:30:16 -04:00
Taiki Maekawa
2985172c61
feat: add bedrock application inference profile (#1938) 2025-03-24 10:17:47 -04:00
teddyOOXX
cc2420ea1a
fix qwq model in openai provider (#1940)
* feat: Add the openAiR1FormatEnabled field to enable this switch in OpenAI compatible mode to support the current QWQ and future additional classes of R1 models.

* feat: Add the openAiR1FormatEnabled field to enable this switch in OpenAI compatible mode to support the current QWQ and future additional classes of R1 models.

* fix: add miss i18n

* fix: add miss i18n

* fix: remove the redundant call

---------

Co-authored-by: xiong <yueminxiong.xym@alibaba-inc.com>
2025-03-24 10:14:44 -04:00
feifei
e8d6a552b3
i18n: Update numeric formatting suffixes to improve consistency (#1939)
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-24 07:49:53 -04:00
github-actions[bot]
89013ddd20
Update contributors list (#1914)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-24 01:13:21 -04:00
R00-B0T
7bf143e302
Changeset version bump (#1881)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-24 01:12:58 -04:00
Matt Rubens
5720b6b129
Tweaks to file read auto-truncate (#1934)
* Tweaks to file read auto-truncate

* Change to use a text input

* Changeset
2025-03-24 00:49:37 -04:00
Matt Rubens
29d7846701
Update suggestion button variant to make it work in all themes (#1932) 2025-03-23 23:15:00 -04:00
Matt Rubens
f07c7e6f0c
Fix question display logic when not streaming (#1931) 2025-03-23 22:37:56 -04:00
Sam Hoang Van
a866a1c271
fix add line wrong index (#1927) 2025-03-23 14:31:15 -04:00
Matt Rubens
e810a886d2
Welcome page OAuth (#1913)
* Add Requesty OAuth flow

* New 1-click onboarding flow

* Requesty: Use correct default model info

* When called from the onboard flow, created the default profile

Glama OAuth handler changed for consistency.

* Add router images

* Shuffle the routers

* Translate

* Appease knip

---------

Co-authored-by: Daniel Trugman <dtrugman@gmail.com>
2025-03-23 10:08:16 -04:00
pugazhendhi-m
003388a5c4
Fix maxTokens to 8192 only for compatible Anthropic models (#1862)
Fix maxTokens to 8096 only for compatible Anthropic models

Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-03-23 02:23:29 -04:00
Matt Rubens
3c3dd9d152
Merge pull request #1861 from KJ7LNW/roo-fix-apply-diff-collisions
Fix multiple `apply_diff` issues
2025-03-23 02:22:44 -04:00
Diarmid Mackenzie
2ab5aad183
Fixes for prompts suite unit tests on windows (#1879)
* Fixes for prompts suite unit tests on windows

* unixLike -> toPosix

Fix naming, and re-use code that already provides this function
2025-03-23 02:14:42 -04:00
Jason Owens
87b9b72b32
Corrected bug in openrouter.ts and pre-commit and pre-push husky scripts (#1853)
- Corrected error causing free models listed under openrouter to show pricing information
- Updated pre-push and pre-commit scripts to work in Windows environments when pushing to branch (windows requires npm/npx to include the ".cmd" extension to recognize and compile.
2025-03-23 02:12:53 -04:00
Matt Rubens
b41dd739f3
fix: prevent negative line index when maxReadFileLine is zero (#1915)
When maxReadFileLine setting was set to zero, the code would attempt to read lines with a negative end index
(maxReadFileLine - 1 = -1), causing the readLines function to reject the request.

This change:
- Checks if maxReadFileLine is greater than zero before calling readLines
- Returns an empty string when maxReadFileLine is zero
- Ensures content is only formatted with line numbers when it's not empty

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-23 02:09:48 -04:00
Matt Rubens
2597347e91
Use openrouter stream_options include_usage (#1905) 2025-03-23 01:52:43 -04:00
KJ7LNW
92dee31634
fix: make dropdown menu background fully opaque (#1907) 2025-03-22 16:01:27 -07:00
github-actions[bot]
4338f64ed9
Update contributors list (#1884)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-22 09:56:01 -04:00
Eric Wheeler
04854ea048 test: add tests for escaped marker handling in multi-search-replace
Add tests that validate:
- Original content with unescaped markers
- Search content with escaped markers to match unescaped markers in original content
- Proper validation of escaped search, separator, and replace markers in diff content
- Successful application of diffs with escaped markers in search content

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-21 20:55:51 -07:00
Eric Wheeler
2032c9e45f test: add validateMarkerSequencing test cases
Tests valid and invalid marker sequences:
- validates single and multiple complete sequences
- detects out-of-order markers (separator/replace before search)
- detects incorrect sequence termination
- validates state transitions between SEARCH/SEP/REPLACE markers

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-21 20:55:51 -07:00
Eric Wheeler
4b3f711746 fix: enforce newlines between diff section separators
Require newlines between diff section markers (SEARCH, ======, REPLACE)
to prevent content confusion when searching input contains separator
markers. Error message mentions required marker newlines.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-21 20:55:51 -07:00
Eric Wheeler
c7321b0107 fix: reject apply_diff when search matches replace content
Prevents attempting to apply diffs where search and replace content are identical,
which would result in no changes being made. Instead, provide a helpful error
message explaining why the operation was rejected.

Fixes: #1350

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-21 20:55:51 -07:00
Eric Wheeler
1b8bac66fd fix: pass multi-block flag to getDiffStrategy in system instructions
When previewing system instructions, getDiffStrategy was not receiving the
MULTI_SEARCH_AND_REPLACE flag, causing the instructions to show the wrong diff
strategy description. Now correctly passing the flag to ensure the proper diff
strategy description is shown in system instructions.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-21 20:55:51 -07:00
Eric Wheeler
81692a43c9 fix: escape section markers in apply_diff
Provide support for escaping section markers so that the model can
add or remove lines like:
	=======
by escaping them in the search or replace string:
	\=======

A state machine tracks apply_diff markers appear in correct sequence:
SEARCH -> SEPARATOR -> REPLACE. Prevents syntax corruption from interleaved or
malformed blocks by validating before processing matches.

If a model tries to interleave diff markers, then the state machine will
return a response to the model like this so it can correct. testing
shows that this works on Claude 3.5, 3.7 and gemini-2.0-flash-thinking:

```xml
    <error_details>
    ERROR: Special marker '=======' found in your diff content at line 7:

    When removing merge conflict markers like '=======' from files, you MUST escape them
    in your SEARCH section by prepending a backslash (\) at the beginning of the line:

    CORRECT FORMAT:

    <<<<<<< SEARCH
    content before
    \=======    <-- Note the backslash here in this example
    content after
    =======
    replacement content
    >>>>>>> REPLACE

    Without escaping, the system confuses your content with diff syntax markers.
    You may use multiple diff blocks in a single diff request, but ANY of ONLY the following separators that occur within SEARCH or REPLACE content must be must be escaped, as follows:
    \<<<<<<< SEARCH
    \=======
    \>>>>>>> REPLACE

    </error_details>
```

Fixes: #1557
Fixes: #1408

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-21 20:55:47 -07:00
Matt Rubens
def40180dc
Don't do partial reads on binary files (#1886) 2025-03-21 15:47:13 -04:00
Matt Rubens
e075fbfa90
Add roadmap to CONTRIBUTING (#1883)
* Add roadmap to CONTRIBUTING

* Update locales/zh-TW/CONTRIBUTING.md

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-21 12:27:48 -04:00
github-actions[bot]
daaba1c194
Update contributors list (#1851)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-21 11:35:50 -04:00
Matt Rubens
f5628e573f
Support mentioning binary files (#1880) 2025-03-21 10:51:44 -04:00
R00-B0T
8663e52e8d
Changeset version bump (#1878)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-21 10:12:04 -04:00
Matt Rubens
abf9bba888
v3.10.2 (#1877) 2025-03-21 10:03:19 -04:00
Matt Rubens
02081dedf9
Revert "feat(mentions): improve path handling for Windows and escaped spaces" (#1875) 2025-03-21 09:59:16 -04:00
Matt Rubens
7b56422449
Interpolate settings link in telemetry banner (#1873) 2025-03-21 09:58:25 -04:00
Matt Rubens
95ba760daf
Non-thinking sonnet has 8192 max tokens (#1860) 2025-03-21 00:24:57 -04:00
cannuri
000df18503
Enhance translate mode guidelines + informal speech in de locales (#1858)
* feat(i18n): Enhance Translate mode guidelines

This commit improves the Translate custom mode in .roomodes by adding:

- Clear requirement to use informal speech (e.g., "du" instead of "Sie")
- Guidance on preserving domain-specific terminology in English
- New section on common translation pitfalls to avoid
- Enhanced instructions for handling placeholders in translated strings
- Guidelines for UI element translation (buttons vs. tooltips)
- Directions for handling incomplete source strings
- Rules to preserve original perspective (user→system vs system→user)
- A translator's checklist for quality assurance

These improvements ensure more consistent, accurate, and natural
translations across supported languages while preventing common
localization errors.

* use informal speech in de locales
2025-03-20 20:47:27 -04:00
R00-B0T
465a96f1c1
Changeset version bump (#1852)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 18:40:11 -04:00
Matt Rubens
f9d2b4db97
Make the question follow-up suggestions optional (#1857)
Make the question follow-up optional
2025-03-20 18:37:09 -04:00
R00-B0T
4580ad3c7c
Changeset version bump (#1843)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 16:12:49 -04:00
github-actions[bot]
e1d3393e18
Update contributors list (#1825)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-20 16:07:15 -04:00
Yukky
b033082523
Reflect Cross-region inference option in ap-xx region (#1842)
* Fix: Enable cross-region inference for 'ap-xx' region in AwsBedrockHandler.completePrompt

* Fix: Enable cross-region inference for 'ap-xx' region in AwsBedrockHandler.createMessage

* Create itchy-waves-move.md

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 16:03:51 -04:00
Matt Rubens
842e69ceb8
v3.10 (#1850) 2025-03-20 16:00:04 -04:00
Matt Rubens
4f6dd74c29
Sort file search results shortest to longest (#1849) 2025-03-20 14:21:27 -04:00
Matt Rubens
dca4563b9a
Fixes to file search (#1846) 2025-03-20 12:14:32 -04:00
Matt Rubens
c7562a6a37
Try to avoid placeholders in follow-up questions (#1839)
* Try to avoid placeholders in follow-up questions

* Fix this too
2025-03-20 11:33:38 -04:00
Sam Hoang Van
f1efeca554
feat follow up suggest (#1783)
* feat follow up suggest

* Cleanup

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 10:42:11 -04:00
Sam Hoang Van
38d8a3d8dc
feat submenu (#1811)
* feat submenu

* Remove duplicative Roo Code: prefix

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 09:19:59 -04:00
aheizi
6bc81c2a0e
fix mcp stderr log (#1830) 2025-03-20 09:12:36 -04:00
pugazhendhi-m
e4c398d888
Discards temperature setting on o3-mini for Unbound (#1836)
* Discards temperature setting on o3-mini for Unbound

* Adds changeset

---------

Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
2025-03-20 09:11:22 -04:00
KJ7LNW
9fadd3dbe2
fix: ripgrep search result handling and formatting (#1831)
Problem:
- Previous implementation incorrectly grouped context lines with matches
- Context lines were split into beforeContext/afterContext arrays, making it difficult to maintain proper line order
- Output format was inconsistent with read_file output
- Non-contiguous search results were sometimes broken or incorrectly grouped
- Example of incorrect output:
  # bench/bundle-test/rollup.config.mjs
   16 |       file: 'dist/index-wasm.min.mjs',
   17 |       format: 'es',
   24 |     output: {
  ----
   25 |       file: 'dist/index-lite.min.mjs',
   26 |       format: 'es',
  ----

  # packages/rehype/package.json
  ----
   10 | it('run', async () => {
   27 |   "files": [
   28 |     "dist"
  ----

Solution:
- Replace separate context arrays with a single 'lines' array containing both matches and context
- Add isMatch flag to distinguish between match and context lines
- Improve contiguity detection by checking if line numbers are sequential
- Standardize output format to match read_file output
- Properly handle non-contiguous search results by creating new result groups
- Example of correct output:
  # bench/bundle-test/rollup.config.mjs
   16 |       file: 'dist/index-wasm.min.mjs',
   17 |       format: 'es',
  ----
   24 |     output: {
   25 |       file: 'dist/index-lite.min.mjs',
   26 |       format: 'es',
  ----

This change ensures search results are properly grouped and displayed with the correct context.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-20 09:10:22 -04:00
Matt Rubens
4a0c0b1116
Revert "Merge pull request #1682 from GitlyHallows/bug/old-task-deletion" (#1837)
This reverts commit bfd60097d0, reversing
changes made to 7459ac5dac.
2025-03-20 09:08:36 -04:00
Patrick Decat
e694a2b8b5
ci: fix changelog extraction (#1810) 2025-03-20 07:27:41 -04:00
Matt Rubens
78bc0c12af
Fix logic for spaces after context mentions (#1827) 2025-03-20 01:07:55 -04:00
Sam Hoang Van
70a476e722
feat read file range (#1440)
* feat read file range

feat: add file truncation with code structure preview

Add configurable line limit for large file handling with source code structure preview. This improves performance and memory usage while maintaining code readability.

Key changes:

Add maxReadFileLine setting (default: 4500) with UI controls
Create efficient line counter utility using streams
Add parseSourceCodeDefinitionsForFile for single file parsing
Show truncation notice with code structure for large files
Add comprehensive tests for new functionality
Move file extensions to shared constant

add line number

pr comment

Return definition ranges from tree-sitter

make treesitter always add line

add line number to rg search

enhance tree siter output & fix test

update snapshot

fix test

* Add translations, tweak range

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 00:55:47 -04:00
Matt Rubens
f181da1454
Move context-mention file/folder search to the server (#1824) 2025-03-20 00:45:27 -04:00
Wojciech Kordalski
499b8e4665
Fake AI provider (#1769)
* Fake AI

* Do not show Fake AI in Roo-Code settings

* Rename providers/fake-provider.ts to providers/fake-ai.ts
2025-03-19 19:07:59 -07:00
Chris Estreich
891a55d5f0
Theme tweaks (#1816) 2025-03-19 11:51:25 -07:00
Chris Estreich
70a5d2b48c
Require node v20 everywhere (#922) 2025-03-19 10:46:40 -07:00
Matt Rubens
65740b311f
Put the full language name in the system prompt (#1813) 2025-03-19 13:33:31 -04:00
github-actions[bot]
3b8e695984
Update contributors list (#1792)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-19 10:21:08 -04:00
R00-B0T
6320b9a1a9
Changeset version bump (#1795)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-19 10:17:49 -04:00
Matt Rubens
4b2a54e364
Allow manually selecting a model in the model picker (#1809) 2025-03-19 10:10:24 -04:00
Matt Rubens
b83c0b38a8
Fix missing translations for announcement header (#1808) 2025-03-19 09:25:41 -04:00
Patrick Decat
d8ab111043
ci: update GitHub Actions publish workflow to automatically create GitHub Releases (#1803) 2025-03-19 07:36:45 -04:00
arthur
daf9ae81d8
Update french README.md (#1802) 2025-03-19 01:16:11 -07:00
KJ7LNW
418c15d416
perf: optimize build process for parallel execution (#1801) 2025-03-19 01:15:55 -07:00
arthur
6b8010f50c
Update French locales (common.json) (#1800) 2025-03-19 00:45:29 -07:00
Seth Miller
de7cef29f1
FIX: Initialize tts speed state in ClineProvider (#1799) 2025-03-19 00:44:59 -07:00
Chris Estreich
0e036fbd9f
Clean up SelectDropdown component (#1796)
* Clean up SelectDropdown component

* Fix tests
2025-03-18 23:03:09 -07:00
Matt Rubens
4d695542f1
Internationalize the BrowserSessionRow (#1797) 2025-03-19 01:48:59 -04:00
Chris Estreich
fbb5cfcd11
More theme fixes for select, dropdown & command (#1789)
* More theme fixes

* Fix typo

* Add changeset

* Fix button variant

* More fixes

* More tweaks

* More tweaks

* Fix test

* Fix tsc errors
2025-03-18 22:07:19 -07:00
R00-B0T
454124c97e
Changeset version bump (#1794)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-19 01:07:03 -04:00
Matt Rubens
dc9fc13a22
Pass current language to system prompt correctly (#1793) 2025-03-19 01:03:54 -04:00
R00-B0T
b520b6f724
Changeset version bump (#1745)
* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-19 00:39:55 -04:00
Matt Rubens
aed55d799b
v3.9 (#1790) 2025-03-19 00:30:13 -04:00
Felix NyxJae
beb4cfbbf8
fix: Adjust the style of the HumanRelayDialog component to increase the maximum height and spacing of the content area (#1791)
* fix: Add special handling to human-relay providers, optimize configuration check logic

* fix: Remove the debug log in the checkExistKey function

* fix: Adjust the style of the HumanRelayDialog component to increase the maximum height and spacing of the content area
2025-03-19 00:09:04 -04:00
github-actions[bot]
3575274718
Update contributors list (#1762)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-18 22:06:33 -04:00
Matt Rubens
ff14efac81
Add total cost to environment details (#1788)
* Add total cost to environment details

* Update src/core/Cline.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update src/core/Cline.ts

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-18 22:04:51 -04:00
Chris Estreich
a15691dc1d
Add a way to stop TTS (#1787) 2025-03-18 17:05:05 -07:00
Chris Estreich
f4abdf4b95
Use the Slider component everywhere (#1786)
* Use the Slider component everywhere

* onValueCommit -> onValueChange

* More cleanup

* Fix tests

* Add missing translations

* Update webview-ui/src/components/settings/ContextManagementSettings.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* SelectDropdown fixes

* Fix tests

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-18 15:27:28 -07:00
Matt Rubens
2267cad93d
Revert "Merge pull request #1618 from aheizi/support_project_mcp" (#1784)
This reverts commit df80e9620d, reversing
changes made to dc302f72c2.
2025-03-18 16:10:12 -04:00
Chris Estreich
8b368e92c9
Simplify model picker, use default @shadcn/ui components (#1782)
* Simplify model picker, use default @shadcn/ui components

* Fix tests
2025-03-18 11:55:27 -07:00
Chris Estreich
923d4a56f9
Port all Dropdown components to Select in ApiOptions (#1780)
* Port all `Dropdown` components to `Select` in `ApiOptions`

* Fix tests
2025-03-18 10:15:36 -07:00
Matt Rubens
516f635595
Fix regex i18n (#1779) 2025-03-18 13:00:05 -04:00
Chris Estreich
fef4a1c8ed
Fix selection highlight color on VSCode dropdowns (#1776) 2025-03-18 09:44:19 -07:00
Chris Estreich
4d1b9d2ff6
Allow webviews to make OpenRouter API calls (#1778)
* Allow webviews to make OpenRouter API calls

* Update package-lock.json
2025-03-18 09:23:09 -07:00
Matt Rubens
7be3dee350
Translate the thinking budget (#1775) 2025-03-18 11:22:38 -04:00
Matt Rubens
f5958dbd93
Fix package lock (#1772) 2025-03-18 10:44:20 -04:00
Matt Rubens
38655825d4
Extension-side internationalization (#1757)
* Extension-side internationalization

* Update script

* Cleaner esbuild

* Turn off debugging

* PR feedback

* Update src/i18n/locales/en/common.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update src/i18n/locales/ca/common.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-18 10:39:21 -04:00
Felix NyxJae
3b116a2b21
I18n human relay (#1761)
* feat(i18n): Add i18n support for Human Relay dialog without monitoring

* feat(i18n): add humanRelay.json translations for all supported languages

- Created English version as base translation
- Added translations for: ca, de, es, fr, hi, it, ja, ko, pl, pt-BR, tr, vi, zh-TW
- Verified all translations are complete with no missing entries
2025-03-18 09:36:48 -04:00
aheizi
7ef4841914
feat: batch clear history (#1596)
* batch clear history

* catch Task not found error

* fix deleteMultipleTasksWithIds

* add i18n for batch clear history

* add i18n for history

* debug

* remove unused logs

* fix trans

* fix trans

* Cleanup

---------

Co-authored-by: aheizi <aheiz@outlook.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-18 09:33:25 -04:00
Sam Hoang Van
a56741f51e
fix for task history (#1765) 2025-03-18 08:54:39 -04:00
Chris Estreich
878b3820d2
Settings tweaks: add terminal & language sections, fix whell scroll in editor tab (#1763) 2025-03-18 00:11:57 -07:00
KJ7LNW
6301e90454
Fix shell integration race condition (and other minor fixup/cleanup) (#1660)
* fix: clarify PowerShell command completion workaround

The command completion detection approach in PowerShell requires an output
string to allow duplicate commands to execute in some versions of code.
Update the string to explicitly indicate it is a Roo PowerShell workaround,
making it clear in terminal output that this is intentional behavior rather
than a side effect.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* cleanup: improve terminal logging and error handling

No functional changes - purely improves error handling and logging clarity.

Terminal.ts:
- Handle undefined process state in setActiveStream without throwing
- Add terminal IDs to all log messages for better traceability
- Improve error message clarity in shell integration timeout

TerminalRegistry.ts:
- Reorganize shell execution event handlers for better flow
- Log shell execution events before processing for reliable debugging
- Add detailed context to terminal not found scenarios
- Include command and execution state in error messages

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* feat: make terminal shell integration timeout configurable

Users with long shell startup times were encountering "Shell Integration Unavailable" errors due to the hard-coded 4s timeout. The timeout is now configurable through Advanced Settings (1-60s).

Thanks @filthy for troubleshooting and @kiwina for suggesting making the timeout configurable.

Fixes #1654

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* critical fix: race condition that prevents command completion

Terminal running state is now managed in TerminalRegistry instead of Terminal to prevent race between stream close and shell completion.

While this race may not trigger on current VSCode versions, newer releases with additional terminal fixes may expose the issue. This proactively prevents "Shell execution end event received, but process is not running" errors.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: improve command execution path reporting

Enhance clarity of command execution context and error reporting:

- Check to see if the directory changed because of the command
- Clarify execution path message
- Add explicit message when command exits with non-zero code

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* system instructions: clarify terminal directory operations

Clear guidance for the AI system on:
- Working directory constraints
- Path handling requirements
- Tool vs terminal directory behavior

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* test: update snapshots for system prompt working directory instructions

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-03-17 23:57:20 -07:00
github-actions[bot]
d6d6e3508a
Update contributors list (#1743)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-03-18 02:17:55 -04:00
teddyOOXX
23af4c2609
add multiple workspaces support (#1725)
feat: add multiple workspaces support

- Add getWorkspacePath function to centralize workspace directory path retrieval
- Use the new workspace directory retrieval logic in Cline, Mentions, ClineProvider, and WorkspaceTracker
- Update WorkspaceFile on tab switch and prevent redundant updates by checking prevWorkSpacePath
- Fix the bug that loads the contents of the previous tab when quickly switching tabs
- Optimize getWorkspacePath return value for better reliability

Co-authored-by: xiong <yueminxiong.xym@alibaba-inc.com>
2025-03-18 02:14:39 -04:00
Felix NyxJae
a4853f2faa
fix Human Relay not working up on welcome screen (#1759)
* fix: Add special handling to human-relay providers, optimize configuration check logic

* fix: Remove the debug log in the checkExistKey function
2025-03-18 01:51:14 -04:00
Seth Miller
f16a49de87
Add text-to-speech functionality (#1412)
* Add text-to-speech functionality

* Add speed config option to text-to-speech

* Fix test case for tts speed slider

* Fix test case for tts speed slider (really)

* Disabled error message logging in tts.ts

* ignore markdown and mermaid diagrams in TTS

* add ttsEnabled and ttsSpeed to GlobalStateKey

* fix failing webview test for save button

* Translations

* Fix tests

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-18 01:47:16 -04:00
Chris Estreich
eb74f02094
Choose specific provider when using OpenRouter (#1753)
* Choose specific provider when using OpenRouter

* Add translations
2025-03-17 15:40:27 -07:00
im47cn
a17be0763a
fix: an issue in the HistoryView component where keywords in copied content contain html code (#1662)
* fix: an issue in the HistoryView component where keywords in copied content contain html code

* Update webview-ui/src/components/history/HistoryView.tsx

* Fix test

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-17 17:05:37 -04:00
Matt Rubens
56ff9ea77b
Merge pull request #1752 from RooVetGit/i18n_format
Localize formatting helpers
2025-03-17 16:29:04 -04:00
Matt Rubens
a8ef2e1347
Update webview-ui/src/i18n/locales/it/common.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 16:28:55 -04:00
Matt Rubens
76b37b11ca Localize formatting helpers 2025-03-17 16:22:47 -04:00
Chris Estreich
72f9162beb
Merge pull request #1667 from franekp/flake-use-direnv
Fix infinite loop that happens when using direnv
2025-03-17 13:17:20 -07:00
Chris Estreich
bfd60097d0
Merge pull request #1682 from GitlyHallows/bug/old-task-deletion
Fix old task deletion bug
2025-03-17 13:16:26 -07:00
Matt Rubens
7459ac5dac
Merge pull request #1751 from RooVetGit/i18n_more_chat
More chat i18n
2025-03-17 16:09:07 -04:00
Matt Rubens
7bedb02573 Translate thinking seconds 2025-03-17 16:06:03 -04:00
Matt Rubens
f97a51da38
Update webview-ui/src/i18n/locales/ca/chat.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 15:57:10 -04:00
Matt Rubens
a926b5a575 Fix tests 2025-03-17 15:55:15 -04:00
Matt Rubens
7780957fed Fix language passing 2025-03-17 15:50:18 -04:00
Matt Rubens
41bd36c29a More chat i18n 2025-03-17 15:49:59 -04:00
Chris Estreich
69cc6c1f7f
Merge pull request #1750 from RooVetGit/cte/settings-scroll-cleanup
Clean up CSS for settings view wheel scroll
2025-03-17 12:28:52 -07:00
cte
7d1d5581a4 Clean up CSS for settings view wheel scroll 2025-03-17 12:28:08 -07:00
Chris Estreich
d1fa1e9650
Merge pull request #1666 from GitlyHallows/provider-settings-scroll-bug
Added support for scrolling in the ‘Open in Editor’ instance, similar…
2025-03-17 12:21:52 -07:00
Chris Estreich
4f15b5d9b7
Merge pull request #1616 from qdaxb/remove_at_when_add_context
remove '@' when add selection to context
2025-03-17 11:40:42 -07:00
Matt Rubens
1b37a713df
Merge pull request #1746 from RooVetGit/fix_update_contributors
Add all changed files in update-contributors
2025-03-17 13:24:40 -04:00
Matt Rubens
d644c9de5a Add all changed files in update-contributors 2025-03-17 13:21:07 -04:00
Chris Estreich
6d591fad6c
Merge pull request #689 from RooVetGit/cte/benchmarks
Aider-inspired polyglot benchmarks
2025-03-17 10:17:32 -07:00
Chris Estreich
e2bdce0961
Update benchmark/prompts/cpp.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 10:10:08 -07:00
cte
f108dfaeb8 Evals 2025-03-17 10:09:19 -07:00
Matt Rubens
8569c46b0f
Merge pull request #1742 from RooVetGit/single_update_contributors_branch
Change update-contributors script to use a single branch
2025-03-17 13:02:41 -04:00
Matt Rubens
94f176b9bc Change update-contributors script to use a single branch 2025-03-17 12:58:26 -04:00
Chris Estreich
9d8c8c7a7c
Merge pull request #1739 from franekp/main
fix(RooCodeAPI): re-add clineAskResponded event that got lost in rebase
2025-03-17 09:50:45 -07:00
Matt Rubens
01a847e293
Merge pull request #1738 from feifei325/i18n/fix_missing_settings_key
fix missing settings key and add find i18n key scripts
2025-03-17 12:49:56 -04:00
Franciszek Piszcz
2270c72275 fix(RooCodeAPI): re-add clineAskResponded event that got lost in rebase 2025-03-17 17:46:54 +01:00
feifei
fddb611c88 fix missing settings key and add find i18n key scripts
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-18 00:46:38 +08:00
Chris Estreich
4fd5e441fa
Merge pull request #1671 from franekp/all-tasks-events-in-api
feat(RooCodeAPI): emit events from all tasks, not only those started via startNewTask
2025-03-17 09:41:38 -07:00
Chris Estreich
a06119a40c
Merge branch 'main' into all-tasks-events-in-api 2025-03-17 09:35:14 -07:00
Matt Rubens
df80e9620d
Merge pull request #1618 from aheizi/support_project_mcp
feat: support project-level mcp config
2025-03-17 12:32:11 -04:00
Chris Estreich
dc302f72c2
Merge pull request #1670 from franekp/ask-response-event
feat(RooCodeAPI): add event that user responded to "ask" request
2025-03-17 09:32:02 -07:00
Chris Estreich
5cd084de6f
Merge pull request #1669 from franekp/public-api-current-task-ids
feat(RooCodeAPI): add getCurrentTaskStack() returning stack of task IDs
2025-03-17 09:31:39 -07:00
aheizi
6d70b8aeba fix translations 2025-03-18 00:23:40 +08:00
Matt Rubens
19dbf3e49b
Merge pull request #1735 from RooVetGit/split_readme_locales
Split README locales into two lines
2025-03-17 12:16:41 -04:00
Matt Rubens
a16005e284 Split README locales into two lines 2025-03-17 12:09:05 -04:00
Matt Rubens
30d6d94851
Merge pull request #1728 from RooVetGit/i18n_readme
Localize README files
2025-03-17 11:59:12 -04:00
aheizi
8f4145efd2 optimize McpHub.ts 2025-03-17 23:57:59 +08:00
Matt Rubens
0fa6a4d5fe
Update locales/tr/README.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 11:56:02 -04:00
Matt Rubens
fe618e294c
Update locales/tr/CODE_OF_CONDUCT.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 11:55:55 -04:00
Matt Rubens
42b6ed43f3
Update locales/ja/README.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 11:55:47 -04:00
Matt Rubens
a9ad877e8a
Update locales/ja/CODE_OF_CONDUCT.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 11:55:37 -04:00
Matt Rubens
0b9e8679cc
Update locales/es/CONTRIBUTING.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-17 11:55:22 -04:00
Matt Rubens
7bfdcbe64e
Merge pull request #1705 from RooVetGit/cte/context-proxy-fixes
Fix API configuration profile switching
2025-03-17 11:52:08 -04:00
Matt Rubens
cd3e68db45 Localize README files 2025-03-17 11:47:44 -04:00
aheizi
c948e811db Merge branch 'main' into support_project_mcp
# Conflicts:
#	src/services/mcp/McpHub.ts
2025-03-17 23:37:20 +08:00
Matt Rubens
1c7d239130
Merge pull request #1721 from aheizi/sse_mcp_support
Add sse mcp support
2025-03-17 11:09:32 -04:00
Matt Rubens
7ba02da0e0
Merge pull request #1726 from RooVetGit/language_cleanup
Remove some deprecated language files
2025-03-17 09:43:42 -04:00
Matt Rubens
61339ee855 Add find-missing-translations as a CI check 2025-03-17 09:36:39 -04:00
Matt Rubens
21715287fc Add missing translations 2025-03-17 09:32:17 -04:00
Matt Rubens
246e838351 Remove some deprecated language files 2025-03-17 09:25:21 -04:00
Matt Rubens
e2251a3453
Merge pull request #1723 from feifei325/i18n/fix_missing_settings_and_api
Fix internationalization issues on settings and prompt pages, and resolve rules file accessibility
2025-03-17 09:22:56 -04:00
feifei
05c7245c05 Resolving Conflicts
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-17 20:15:02 +08:00
feifei
104292e19b Resolving Conflicts
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-17 20:14:17 +08:00
feifei
02b7843b08 fix missing settings and apiOptions
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-17 19:17:03 +08:00
aheizi
1f200882d0 fix test 2025-03-17 17:30:38 +08:00
aheizi
47747d67c2 validate server config 2025-03-17 17:30:37 +08:00
aheizi
e2182eb64f fix initializeMcpServers 2025-03-17 17:30:37 +08:00
aheizi
362359cc3c fix ut
(cherry picked from commit b4f808d7dc)
2025-03-17 14:41:18 +08:00
aheizi
3975c8d8a9 replace eventsource with reconnecting-eventsource to optimize the code.
(cherry picked from commit 505f86d75c)
2025-03-17 14:39:48 +08:00
aheizi
6f5ce14586 upgrade @modelcontextprotocol/sdk to latest version
(cherry picked from commit f9cc13cb1e)
2025-03-17 14:39:39 +08:00
aheizi
78b3130c93 remove rejectUnauthorized
(cherry picked from commit 5e788fc5f1)
2025-03-17 14:39:06 +08:00
aheizi
686a31d6c6 update MCP prompt instructions
(cherry picked from commit 8b76206cc1)
2025-03-17 14:38:35 +08:00
aheizi
a7eac55a2b simpler way of setting up
(cherry picked from commit f13d28ad45)
2025-03-17 14:37:59 +08:00
aheizi
5a491672c4 add sseOptions
(cherry picked from commit f9a1cd0b52)
2025-03-17 14:37:14 +08:00
aheizi
a77be3feb7 feat: add sse mcp support
(cherry picked from commit 549b06f46d)
2025-03-17 14:36:28 +08:00
aheizi
bda929b4f6 Merge branch 'main' into support_project_mcp
# Conflicts:
#	webview-ui/src/i18n/locales/ar/mcp.json
#	webview-ui/src/i18n/locales/cs/mcp.json
#	webview-ui/src/i18n/locales/hu/mcp.json
#	webview-ui/src/i18n/locales/pt/mcp.json
#	webview-ui/src/i18n/locales/ru/mcp.json
2025-03-17 12:07:03 +08:00
aheizi
c201baa4d1 fix mcp connection 2025-03-17 12:05:23 +08:00
aheizi
792a8225c1 add i18n for project mcp 2025-03-17 11:14:33 +08:00
Matt Rubens
8265520f0f
Merge pull request #1717 from RooVetGit/fix_language_dropdown
Fix language dropdown
2025-03-16 23:06:42 -04:00
Matt Rubens
650fcb21a4 Fix language dropdown 2025-03-16 23:04:21 -04:00
Matt Rubens
74c895cea7
Merge pull request #1716 from RooVetGit/i18n_adjust_languages
Adjust languages to align with userbase
2025-03-16 22:57:20 -04:00
Matt Rubens
e91d49ca23 Adjust languages to align with userbase 2025-03-16 22:53:13 -04:00
Matt Rubens
6a700f3ad2
Merge pull request #1714 from RooVetGit/add_language_code_to_settings
Add language code to settings footer
2025-03-16 21:26:51 -04:00
Matt Rubens
a9a203a725 Add language code to settings footer 2025-03-16 21:19:58 -04:00
Matt Rubens
e67ed9c8e8
Merge pull request #1708 from RooVetGit/language_settings
Add a language picker
2025-03-16 16:53:36 -04:00
Matt Rubens
79e1d11b2e Add a language picker 2025-03-16 16:49:07 -04:00
Matt Rubens
1749197241
Merge pull request #1707 from RooVetGit/i18n_tool_names
Localize tool group names
2025-03-16 14:58:36 -04:00
Matt Rubens
534f6fa505 Localize tool group names 2025-03-16 14:55:38 -04:00
Matt Rubens
39d24ffe80
Merge pull request #1706 from RooVetGit/i18n_model_picker
Localize ModelPicker
2025-03-16 14:43:03 -04:00
Matt Rubens
f6f4ec475b Localize ModelPicker 2025-03-16 14:39:22 -04:00
cte
1abf8c1dcc Fix API configuration profile switching 2025-03-16 11:24:58 -07:00
Matt Rubens
7d38c2d7da
Merge pull request #1704 from RooVetGit/add_language_to_telemetry
Add language to telemetry
2025-03-16 14:08:04 -04:00
Matt Rubens
c9d4a8fcef
Merge pull request #1703 from RooVetGit/i18n_experiments
Localize experimental checkboxes
2025-03-16 14:06:48 -04:00
Matt Rubens
129020ea00 Add language to telemetry 2025-03-16 14:05:25 -04:00
Matt Rubens
f0ac4ab8bf Localize experimental checkboxes 2025-03-16 14:03:01 -04:00
Matt Rubens
29bab0a1c3
Merge pull request #1701 from RooVetGit/fix_footer_i18n
Fix i18n of footer
2025-03-16 13:38:50 -04:00
Matt Rubens
7e29011b79 Fix i18n of footer 2025-03-16 13:36:18 -04:00
Matt Rubens
f9f82052eb
Merge pull request #1700 from RooVetGit/fix_translations
Clean up some translations
2025-03-16 13:14:31 -04:00
Matt Rubens
c18eeffaa5 Clean up some translations 2025-03-16 13:11:00 -04:00
Matt Rubens
57f91fdea3
Merge pull request #1699 from RooVetGit/i18n_settings
Localize the settings tab
2025-03-16 12:50:28 -04:00
Matt Rubens
db618ce377 Localize the settings tab 2025-03-16 12:46:28 -04:00
Matt Rubens
85814d9bad
Merge pull request #1698 from RooVetGit/find_missing_translations
Add script to find missing translations
2025-03-16 11:28:48 -04:00
Matt Rubens
2df634c836 Add script to find missing translations 2025-03-16 11:26:49 -04:00
aheizi
19ba9ee65e Merge branch 'main' into support_project_mcp
# Conflicts:
#	webview-ui/src/components/mcp/McpView.tsx
2025-03-16 19:57:14 +08:00
aheizi
d3a09787d8 Merge branch 'main' into support_project_mcp 2025-03-16 19:53:39 +08:00
Matt Rubens
be191ab81d
Merge pull request #1692 from RooVetGit/i18n_mcp
Localize the MCP tab
2025-03-16 03:46:44 -04:00
Matt Rubens
ca8c6f69c3 Localize the MCP tab 2025-03-16 03:43:16 -04:00
Matt Rubens
a2bd668024
Merge pull request #1691 from RooVetGit/i18n_prompts_tab
Localize the prompts tab
2025-03-16 02:54:35 -04:00
Matt Rubens
06341fd7b4 Localize the prompts tab 2025-03-16 02:48:44 -04:00
Matt Rubens
ca1d18d417
Merge pull request #1690 from RooVetGit/i18n_auto_approve_menu
Localize the auto-approve menu
2025-03-16 01:19:58 -04:00
Matt Rubens
74bf83316a Localize the auto-approve menu 2025-03-16 01:16:23 -04:00
Matt Rubens
5af07d2461
Merge pull request #1689 from RooVetGit/i18n_history
Translate history preview and view
2025-03-16 00:53:50 -04:00
Matt Rubens
6cdd10251a Translate history preview and view 2025-03-16 00:51:38 -04:00
Matt Rubens
747c3bd552 Remove memo that was interfering with translations 2025-03-16 00:12:29 -04:00
Matt Rubens
8f4d56c054
Merge pull request #1688 from RooVetGit/chat_text_area_i18n
i18n for chattextarea
2025-03-15 23:52:18 -04:00
aheizi
4363c26fd9 Merge branch 'main' into support_project_mcp 2025-03-16 11:51:48 +08:00
Matt Rubens
a2be45e27e i18n for chattextarea 2025-03-15 23:49:09 -04:00
Matt Rubens
ec621cb862
Merge pull request #1686 from RooVetGit/await_problems
Fix getWorkspaceProblems to use an await
2025-03-15 23:21:19 -04:00
Matt Rubens
c7868cf111 Fix getWorkspaceProblems to use an await 2025-03-15 23:17:53 -04:00
Matt Rubens
d45275f3ba
Merge pull request #1683 from RooVetGit/update-contributors-1742093765
Update contributors list
2025-03-15 23:00:27 -04:00
Matt Rubens
7a5abae479
Merge pull request #1684 from RooVetGit/fix_paren
Fix paren in i18n
2025-03-15 22:59:43 -04:00
Matt Rubens
435e135481 Fix paren 2025-03-15 22:56:44 -04:00
mrubens
51abb860a0 docs: update contributors list [skip ci] 2025-03-16 02:56:05 +00:00
Matt Rubens
dea3db7cea
Merge pull request #1676 from feifei325/i18n/chatview_buttron
refactor(i18n): Internationalization of Button and tooltip in ChatView
2025-03-15 22:55:31 -04:00
GitlyHallows
2a2e467ba4 1. Added validation for task history and added option for user to remove/keep task in history 2025-03-16 00:07:21 +00:00
Matt Rubens
1f5f668032
Merge pull request #1678 from RooVetGit/update-contributors-1742065025
Update contributors list
2025-03-15 14:58:43 -04:00
mrubens
d7a63e1a26 docs: update contributors list [skip ci] 2025-03-15 18:57:04 +00:00
Matt Rubens
47f592fb16
Merge pull request #1677 from benzntech/main
update the readme discord link was broken on the bottom fixed
2025-03-15 14:56:25 -04:00
Benson
44e308815d
Merge pull request #1 from benzntech/benzntech-patch-1
Update README.md
2025-03-16 00:13:00 +05:30
Benson
0ca64a95e2
Update README.md
Discord link in the bottom was broken now fixed with the correct link
2025-03-16 00:11:52 +05:30
feifei
66c6dbb680 implemented i18n for Internationalization of Conversation Buttons and Prompts
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-16 01:26:34 +08:00
Wojciech Kordalski
c4559b7d0f
Add the getCurrentTaskStack method to public API interface 2025-03-15 13:17:50 +01:00
Wojciech Kordalski
67f6dab782
Forward events from all running Cline instances to the exposed API 2025-03-15 12:51:47 +01:00
Wojciech Kordalski
bf497119c8
Expose event that informs that user responded to "ask" request 2025-03-15 12:16:18 +01:00
Wojciech Kordalski
3b5b34012f
Expose task IDs on the Cline stack 2025-03-15 12:05:55 +01:00
aheizi
70600d7077 Merge remote-tracking branch 'origin/main' into support_project_mcp 2025-03-15 18:40:22 +08:00
aheizi
26941dcaae switch the toasts to English
fix test
2025-03-15 18:39:39 +08:00
Wojciech Kordalski
a53206912c
Did you know about https://direnv.net/
It is a nice tool that activates nix flake dev shells when entering project directory.
Unfortunatelly it enters infinite loop when shellHook executes another inner zsh shell.
2025-03-15 11:27:33 +01:00
GitlyHallows
70b19a4b6b Added support for scrolling in the ‘Open in Editor’ instance, similar to how scrolling functions in the main instance. 2025-03-15 08:08:19 +00:00
Matt Rubens
677e145a56
Merge pull request #1652 from RooVetGit/contributor_guidelines
Contributor guidelines
2025-03-14 12:35:03 -04:00
Matt Rubens
443946af0f
Merge pull request #1651 from RooVetGit/update-contributors-1741968715
Update contributors list
2025-03-14 12:33:46 -04:00
Matt Rubens
b1615a3735 Add plug for Discord 2025-03-14 12:30:57 -04:00
Matt Rubens
27499433de Updating instructions for contributing 2025-03-14 12:28:14 -04:00
Matt Rubens
687d880bde Update email and attribution 2025-03-14 12:16:04 -04:00
Matt Rubens
ce28b4418a CODE_OF_CONDUCT and CONTRIBUTING from Cline 2025-03-14 12:12:40 -04:00
mrubens
76d4cf514a docs: update contributors list [skip ci] 2025-03-14 16:11:54 +00:00
Matt Rubens
7165d7f602
Merge pull request #1650 from RooVetGit/context_management
Context management
2025-03-14 12:11:18 -04:00
Matt Rubens
9bbbaf2288 Add a new setting to control the number of workspace files included in the system prompt 2025-03-14 12:06:56 -04:00
Matt Rubens
a679c95412 Create new context management section in settings 2025-03-14 11:11:24 -04:00
Matt Rubens
7dcd10593a
Merge pull request #1647 from feifei325/i18n/welcome_page
refactor(i18n): enhance welcome page text for internationalization
2025-03-14 09:58:23 -04:00
aheizi
f77606996f Merge branch 'main' into support_project_mcp 2025-03-14 20:59:21 +08:00
aheizi
5d8a456374 Merge branch 'main' into support_project_mcp 2025-03-14 20:48:47 +08:00
feifei
4273f00dea refactor(i18n): enhance welcome page text for internationalization
Signed-off-by: feifei <liuyansheng1121@gmail.com>
2025-03-14 17:56:48 +08:00
Matt Rubens
99f64cada1
Merge pull request #1640 from RooVetGit/update-contributors-1741927321
Update contributors list
2025-03-14 00:42:38 -04:00
mrubens
6969ac6e3a docs: update contributors list [skip ci] 2025-03-14 04:42:00 +00:00
Matt Rubens
00af34002d
Merge pull request #1639 from RooVetGit/mrubens-patch-4
Update update-contributors.yml
2025-03-14 00:41:25 -04:00
Matt Rubens
dc4efd6a1a
Update update-contributors.yml 2025-03-14 00:40:47 -04:00
Matt Rubens
262046d761
Merge pull request #1638 from RooVetGit/disable_husky_in_update_contributors
Disable husky when updating contributors
2025-03-14 00:38:07 -04:00
Matt Rubens
9bfd0c9c1b Disable husky when updating contributors 2025-03-14 00:35:38 -04:00
Matt Rubens
d1f69fda33
Merge pull request #1637 from RooVetGit/mrubens-patch-4
Update update-contributors.js
2025-03-14 00:29:58 -04:00
Matt Rubens
363dbc5702
Update update-contributors.js 2025-03-14 00:26:12 -04:00
Matt Rubens
26acb171dc
Merge pull request #1636 from RooVetGit/format_contributor_images
Only set width on contributor images
2025-03-14 00:21:32 -04:00
Matt Rubens
b3f51bfcf7 Only set width on contributor images 2025-03-14 00:18:56 -04:00
Matt Rubens
b893eea252
Merge pull request #1635 from RooVetGit/contributors_prettier
Run prettier before checking for contributor changes
2025-03-14 00:13:55 -04:00
Matt Rubens
68cbce8017 Run prettier before checking for contributor changes 2025-03-14 00:09:57 -04:00
Matt Rubens
afb8b05553
Merge pull request #1634 from RooVetGit/contributors_use_create_pull_request_more
Use create pull request action more
2025-03-13 23:53:05 -04:00
Matt Rubens
0bf07f46e3 Use create pull request action more 2025-03-13 23:49:58 -04:00
Matt Rubens
91dab5fb55
Merge pull request #1633 from RooVetGit/better_contributors_pr_logic
Better git logic for updating contributors in readme
2025-03-13 23:44:37 -04:00
Matt Rubens
b0ab8e0758
Update .github/workflows/update-contributors.yml
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-13 23:44:28 -04:00
Matt Rubens
548f25b005 Better git logic for updating contributors in readme 2025-03-13 23:40:20 -04:00
Matt Rubens
b9d3596865
Merge pull request #1632 from RooVetGit/update_contributors_pr
Open a PR to update contributors
2025-03-13 23:28:12 -04:00
Matt Rubens
d9ffda56ed Open a PR to update contributors 2025-03-13 23:24:48 -04:00
Matt Rubens
954eb314c8
Merge pull request #1630 from RooVetGit/contributors
Contributors
2025-03-13 23:21:40 -04:00
Matt Rubens
e068bd6a96 Add CI step to update contributors 2025-03-13 22:45:23 -04:00
Matt Rubens
1e6327b028 Add script to update a Contributors section in the README 2025-03-13 22:45:23 -04:00
Matt Rubens
fbdf758ff5
Merge pull request #1604 from Smartsheet-JB-Brown/jbbrown/bedrock_cost_intelligent_prompt_routing
Cost display updating for Bedrock custom ARNs that are prompt routers
2025-03-13 17:23:48 -04:00
Matt Rubens
4ada518e58
Merge branch 'main' into jbbrown/bedrock_cost_intelligent_prompt_routing 2025-03-13 17:17:44 -04:00
Smartsheet-JB-Brown
6c74e9ba7b PR review cleanup 2025-03-13 13:04:16 -07:00
Matt Rubens
cd9fb24007
Merge pull request #1622 from RooVetGit/fix_see_less
Fix 'See less' style
2025-03-13 15:25:12 -04:00
Matt Rubens
3ad198b8e6 Fix 'See less' style 2025-03-13 15:15:28 -04:00
Smartsheet-JB-Brown
613370a13b
Delete pr-description.md 2025-03-13 10:52:04 -07:00
Matt Rubens
6eb648bb3a
Merge pull request #1621 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-13 13:11:54 -04:00
Matt Rubens
ba3d1e7334
Update CHANGELOG.md 2025-03-13 13:07:14 -04:00
R00-B0T
148bca7fdb Updating CHANGELOG.md format 2025-03-13 17:06:02 +00:00
github-actions[bot]
d8879516aa changeset version bump 2025-03-13 17:05:35 +00:00
Matt Rubens
9d4d82cf13
Merge pull request #1620 from RooVetGit/revert-1495-feature/add_sse_mcp
Revert "feat: add sse mcp support"
2025-03-13 13:04:34 -04:00
Matt Rubens
b25c7ed9f6
Create loud-bugs-hope.md 2025-03-13 13:01:20 -04:00
Matt Rubens
b29f94ae65
Revert "feat: add sse mcp support" 2025-03-13 13:00:32 -04:00
Smartsheet-JB-Brown
8d30b6f44a Update src/api/providers/bedrock.ts
agree, sorry old Javascript habits

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-13 09:56:07 -07:00
Smartsheet-JB-Brown
f7675244bd
Update src/api/providers/bedrock.ts
yes, unneeded remnant

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-13 08:09:21 -07:00
Matt Rubens
66c1007d87
Merge pull request #1619 from RooVetGit/mrubens-patch-4
Update git config for marketplace publish
2025-03-13 10:43:55 -04:00
Matt Rubens
b449bb66dc
Update .github/workflows/marketplace-publish.yml
Co-authored-by: Patrick Decat <pdecat@gmail.com>
2025-03-13 10:39:10 -04:00
Matt Rubens
ef944a6870
Update git config for marketplace publish 2025-03-13 10:32:31 -04:00
aheizi
4106ca4a19 support project-level mcp config 2025-03-13 21:07:24 +08:00
axb
5916a4d0a6 remove '@' when add selection to context 2025-03-13 17:43:41 +08:00
Chris Estreich
de85cc558d
Merge pull request #1617 from RooVetGit/cte/fix-e2e
Fix e2e tests
2025-03-13 00:58:14 -07:00
cte
c609856302 Fix e2e tests 2025-03-13 00:54:05 -07:00
Chris Estreich
7845f96788
Merge pull request #1612 from RooVetGit/cte/task-events
Add Cline events and roofactor subtasks slightly
2025-03-12 22:56:13 -07:00
cte
4b23644683 Add Cline events and roofactor subtasks slightly 2025-03-12 22:52:37 -07:00
Matt Rubens
d34b5e0821
Merge pull request #1527 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-12 22:17:30 -04:00
Matt Rubens
5ad287c43d
Update CHANGELOG.md 2025-03-12 22:17:00 -04:00
github-actions[bot]
2f64e75c3d changeset version bump 2025-03-13 02:04:18 +00:00
Matt Rubens
d76479ad53
Merge pull request #1611 from RooVetGit/v3.8.5
v3.8.5
2025-03-12 22:03:20 -04:00
Matt Rubens
8454c52d59 v3.8.5 2025-03-12 22:00:53 -04:00
Matt Rubens
acac9e9d79
Merge pull request #1607 from Smartsheet-JB-Brown/jbbrown/update_bedrock_prices_to_current
updated prices to match US-West-2 list price shown at https://aws.ama
2025-03-12 16:42:10 -04:00
Smartsheet-JB-Brown
179d97c92e updated prices to match US-West-2 list price shown at https://aws.amazon.com/bedrock/pricing/
// including older models that are part of the default prompt routers AWS enabled for GA of the promot router feature
2025-03-12 13:24:53 -07:00
Matt Rubens
b63c136806
Merge pull request #1603 from RooVetGit/more_open_router_base_url_fixing
Fix more hard-coded openrouter urls
2025-03-12 15:10:56 -04:00
Matt Rubens
774248be1e Fix more hard-coded openrouter urls 2025-03-12 14:08:17 -04:00
Matt Rubens
3cd6c7416a
Merge pull request #1599 from RooVetGit/diff_strategy_telemetry
Add diffStrategy name to telemetry
2025-03-12 13:54:28 -04:00
Matt Rubens
0d8c6e7ae0 Add diffStrategy name to telemetry 2025-03-12 13:46:46 -04:00
Matt Rubens
705b3ba11f
Merge pull request #1534 from dqroid/support-custom-baseUrl-for-google-ai-studio-gemini
support custom base url for gemini in google AI studio
2025-03-12 12:22:16 -04:00
Matt Rubens
7ece065f33 Indentation fix 2025-03-12 12:16:18 -04:00
Matt Rubens
973acf9034 Add googleGeminiBaseUrl to roo-code.d.ts 2025-03-12 12:13:42 -04:00
Matt Rubens
5b7ed8e157
Merge pull request #1495 from aheizi/feature/add_sse_mcp
feat: add sse mcp support
2025-03-12 12:01:44 -04:00
Matt Rubens
93611ea6b5 Merge remote-tracking branch 'origin/main' into support-custom-baseUrl-for-google-ai-studio-gemini 2025-03-12 11:55:14 -04:00
Matt Rubens
cad274176c Merge remote-tracking branch 'origin/main' into feature/add_sse_mcp 2025-03-12 11:51:25 -04:00
Chris Estreich
4ce2664fc4
Merge pull request #1585 from KJ7LNW/roo-fix-win32-terminal-dup-command-issue 2025-03-12 08:46:24 -07:00
Matt Rubens
c8b3095d93
Merge pull request #1566 from lightrabbit/feature/openai-compatible-deepseek-reasoning-support
feat: openai-compatible deepseek/qwq reasoning support
2025-03-12 11:39:49 -04:00
Matt Rubens
0d81c0d801
Merge pull request #1584 from RooVetGit/i18n
I18n
2025-03-12 11:38:00 -04:00
Matt Rubens
9b5ee27320
Merge pull request #1587 from dleen/cache
feat: Add prompt caching to OpenAI-compatible custom models
2025-03-12 11:35:42 -04:00
Matt Rubens
6fb61a2def
Merge pull request #1590 from ATempsch/add_deepseek_r1_to_bedrock
Add Deepseek R1 On-Demand to Bedrock
2025-03-12 11:30:32 -04:00
Matt Rubens
28e745124a PR cleanup 2025-03-12 11:23:06 -04:00
Matt Rubens
00bf91470b Add i18n 2025-03-12 11:23:06 -04:00
Matt Rubens
baa346dc46 Remove preferredLanguage and just rely on VSCode language 2025-03-12 11:23:04 -04:00
Chris Estreich
ae6903b26c
Merge pull request #1579 from RooVetGit/cte/context-proxy-fixes
ContextProxy fix - constructor should not be async
2025-03-12 08:16:30 -07:00
aheizi
505f86d75c replace eventsource with reconnecting-eventsource to optimize the code. 2025-03-12 19:25:50 +08:00
aheizi
e45f515e62 Merge branch 'main' into feature/add_sse_mcp 2025-03-12 19:09:07 +08:00
aheizi
f9cc13cb1e upgrade @modelcontextprotocol/sdk to latest version 2025-03-12 18:57:59 +08:00
Andreas Tempsch
d3d1a27460 Add Deepseek R1 On-Demand to Bedrock 2025-03-12 09:16:22 +01:00
David Leen
10c1e7df2f Add cache control key to messages in OpenAI compatible provider 2025-03-11 22:43:33 -07:00
Matt Rubens
421e1972ad Add prompt caching to OpenAI-compatible custom model info 2025-03-11 22:43:33 -07:00
Smartsheet-JB-Brown
d8df9a5e2c Cost display updating for Bedrock custom ARNs that are prompt routers 2025-03-11 21:58:07 -07:00
Chris Estreich
0fafe06e15
Merge pull request #1586 from RooVetGit/cte/fix-tests-macos
Fix terminal process unit tests on MacOS
2025-03-11 21:48:14 -07:00
Chris Estreich
13d54ad1c1
Merge pull request #1583 from cannuri/cannuri/fix-markdownblock-text-color
Fix MarkdownBlock text color for Dark High Contrast theme
2025-03-11 21:38:01 -07:00
Chris Estreich
30770ede77
Update src/integrations/terminal/__tests__/TerminalProcessExec.test.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-11 21:35:18 -07:00
cte
0d55593fa8 Remove references to base64 from comments 2025-03-11 21:33:01 -07:00
cte
7806829ef0 Fix unit tests on MacOS 2025-03-11 21:29:22 -07:00
Eric Wheeler
50b7326aa0 fix: add workspace configuration mock to TerminalProcess test
Add VSCode workspace configuration mock to TerminalProcess.test.ts to handle PowerShell detection in terminal tests, matching the fix in TerminalProcessExec.test.ts

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-11 21:08:53 -07:00
Eric Wheeler
f29a5fa9a4 test: add workspace configuration mock for terminal tests
Mock VSCode workspace configuration to handle PowerShell detection in terminal tests. This prevents TypeError when accessing getConfiguration() in TerminalProcess.run()

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-11 21:03:13 -07:00
Eric Wheeler
a25f1d949d fix: add PowerShell-specific command handling
PowerShell requires special handling for command output due to two issues:
- A sleep delay is required to prevent the ]633;D marker from losing the
  original output
- A counter is needed to work around a bug where identical commands are not executed

Changes:
- Add cmdCounter to Terminal class for unique command tracking
- Add PowerShell detection via platform and default shell profile
- Add sleep delay to ensure output is captured before command completion

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-11 20:54:15 -07:00
cannuri
49fca1074f Fix MarkdownBlock text color for Dark High Contrast theme 2025-03-12 02:32:59 +01:00
Chris Estreich
80d1fae033
Update src/shared/globalState.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-11 14:27:18 -07:00
cte
4b6def5f31 ContextProxy fix - constructor should not be async 2025-03-11 14:24:21 -07:00
Chris Estreich
b73bc39c8d
Merge pull request #1365 from KJ7LNW/roo-fix-terminal-undefined-exit-code
refactor terminal architecture to address critical issues with the current design
2025-03-11 13:59:04 -07:00
Matt Rubens
3b2d6bce64
Merge pull request #1564 from cannuri/cannuri/fix_subtask_cancel_resume_bug
fix: Preserve parent-child relationship when cancelling subtasks
2025-03-11 14:47:17 -04:00
aheizi
5e788fc5f1 remove rejectUnauthorized 2025-03-12 01:11:22 +08:00
aheizi
f534e80f78 fix ut 2025-03-12 00:46:04 +08:00
Matt Rubens
99258e4a9c
Merge pull request #1572 from RooVetGit/fix_openrouter_generation_check
Use baseURL in OpenRouter generation check
2025-03-11 12:00:37 -04:00
aheizi
29aa464ce3 Merge remote-tracking branch 'origin/main' into feature/add_sse_mcp 2025-03-11 23:06:12 +08:00
aheizi
8b76206cc1 update MCP prompt instructions 2025-03-11 22:58:57 +08:00
Matt Rubens
b5f6e37982
Merge pull request #1543 from shohei-ihaya/vertex
add gemini-2.0-pro-exp-02-05 model to vertex
2025-03-11 09:57:24 -04:00
Matt Rubens
76f91819c1 Use baseURL in OpenRouter generation check 2025-03-11 09:41:57 -04:00
dongqing
9d0b824b90 fix test error for wrong arguments after additional base url added 2025-03-11 17:37:07 +08:00
dongqing
a3a5592654 add config for gemini custom base url 2025-03-11 16:46:40 +08:00
dqroid
8b0956666c
Merge branch 'main' into support-custom-baseUrl-for-google-ai-studio-gemini 2025-03-11 16:15:52 +08:00
lightrabbit
7114cef03e feat: openai-compatible deepseek/qwq reasoning support 2025-03-11 14:13:17 +08:00
Matt Rubens
ff54c63ffa
Merge pull request #1526 from qdaxb/fix_progress_status
Fix progress status
2025-03-11 01:23:45 -04:00
axb
8917ab7591 fix duplicate ask 2025-03-11 13:08:02 +08:00
axb
621fc0e867 Revert "Merge pull request #1518 from RooVetGit/revert_tool_progress_for_now"
This reverts commit dba9116d26, reversing
changes made to 85dd1a1977.
2025-03-11 13:07:55 +08:00
cannuri
6ce8e56db5 fix: Preserve parent-child relationship when cancelling subtasks
This commit fixes an issue where subtasks weren't properly reporting back to parent tasks when cancelled and resumed. Previously, when a subtask was cancelled and a new task was started with the same message, the parent task would incorrectly resume, causing unexpected behavior.

The fix:
1. Stores parent-child relationship information before cancelling a task
2. Restores this relationship after task reinitialization
3. Ensures parent tasks only resume when explicitly instructed to do so

This approach maintains the correct task hierarchy throughout the cancellation and resumption process, preventing parent tasks from automatically resuming when unrelated tasks with similar messages are started.
2025-03-11 06:05:48 +01:00
Eric Wheeler
701b5a7d87 test: align terminal tests with shell integration safeguards
Update TerminalProcessExec tests to properly handle shell integration
event sequences:

- Set terminal.running=true before command execution
- Remove duplicate command execution that could trigger extra events
- Replace arbitrary timeout with event-based waiting for output
- Ensure proper event sequence (run -> start -> output -> end)

This aligns the tests with the safeguards added in 62ffa797 that
prevent spurious shell integration events from corrupting terminal
state.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 21:22:19 -07:00
Eric Wheeler
62ffa7973c fix: prevent spurious onDidEndTerminalShellExecution from breaking terminal output
Add explicit checks and error logging to handle problematic event sequence:

0. terminal.running=false
1. terminal.shellIntegration.executeCommand(command)
2. onDidEndTerminalShellExecution  // from unexpected 'OSC 633 D' sequence
3. onDidStartTerminalShellExecution
4. stream begins
5. onDidEndTerminalShellExecution

The first onDidEndTerminalShellExecution (from unexpected OSC 633 D) is
ignored because terminal.running is false, preventing process=undefined
from being set prematurely. After the stream begins and sets
terminal.running to true, the second onDidEndTerminalShellExecution
proceeds normally.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
e3adee4f15 fix: allow background terminals to broadcast output across tasks
Fix issue where background processes (like compilers) couldn't broadcast their
output to new tasks after the launching task was closed. Previously commit
851a4cd prevented terminals from responding to any task except the one that
started them.

The fix allows background terminals (taskId undefined) to act as broadcast
sources that can update any task through getEnvironmentDetails, while still
maintaining proper isolation for task-specific terminals. This enables common
workflows where:

1. A task launches a background compiler
2. That task is closed and a new task is started
3. The new task can still receive compiler errors when making changes

This gives us the best of both worlds:
- Task isolation: Active tasks only see their own terminal output
- Background broadcasting: Background processes can inform any task that needs
  their output

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
0b4fa0b1d6 feat: compress repeated terminal output lines
Add Terminal.compressTerminalOutput static method to apply run-length encoding
before truncating terminal output. This significantly reduces output size for
repeated lines while maintaining readability.

- Add compressTerminalOutput static method to Terminal class
- Replace all truncateOutput calls with Terminal.compressTerminalOutput
- Import required functions from extract-text

Test program demonstrating compression:
```python
def generate_repeats():
    patterns = [
        ("A\n", 10),          # 10 lines
        ("AA\n", 100),        # 100 lines
        ("AAA\n", 1000),      # 1K lines
        ("AAAA\n", 10000),    # 10K lines
        ("AAAAA\n", 100000),  # 100K lines
        ("AAAAAA\n", 1000000) # 1M lines
    ]

    for text, count in patterns:
        print(text * count, end="")
```

Sample output showing compression:
```
A
A
A
A
A
A
A
A
A
A
AA
<previous line repeated 99 additional times>
AAA
<previous line repeated 999 additional times>
AAAA
<previous line repeated 9999 additional times>
AAAAA
<previous line repeated 99999 additional times>
AAAAAA
<previous line repeated 999999 additional times>
```

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
131f9ad0d9 feat: add run-length encoding for repeated lines
Implement applyRunLengthEncoding function to compress repeated lines in text output:
- Add line repetition compression with count message
- Focus on single line repetitions
- Only compress when beneficial
- Add tests for empty input and single line repetitions

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
269ddf9a0e fix: avoid duplicate terminal output accumulation
Optimize terminal output handling to reduce memory pressure by:
- Remove continuous result accumulation during line processing
- Only store the same final output from the "completed" event that came from TerminalProcess

Also:
- Add clear error messages for undefined exit details

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
5be49e1d15 fix: apply terminal output line limits consistently
Apply terminalOutputLineLimit to command output lines as they are received,
rather than only at the end of command execution. Also apply the limit to
terminal output shown in environment details.

This ensures consistent output truncation behavior across all terminal
output paths, preventing potential memory issues from large outputs.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
c31a5e5bcd perf: optimize truncateOutput for large inputs
Use string indices to find line boundaries instead of splitting into array.
This avoids creating large arrays in memory when truncating big inputs.

- Replace split/join with indexOf/lastIndexOf for line counting
- Use slice to extract start/end sections directly from string
- Maintain same 20/80 ratio for before/after content

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
8b8c4fde50 fix: handle undefined exit codes in terminal output
When a terminal command completes with an undefined exit code:

- Add explicit handling for undefined exit code case
- Include clear message in output that exit code is undefined
- Notify user to help diagnose potential terminal issues

This helps identify and debug cases where the terminal process
completes but the exit code is not properly captured.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
4e0f868261 fix: improve error handling when start sequence not received but stream started
When VSCE start sequence (]633;C or ]133;C) is not received, but the
stream has started:

- Emit no_shell_integration event with clear error message
- Include preOutput in completed event for bug reporting
- Call continue() to ensure proper cleanup
- Return early to prevent further processing

This helps diagnose potential upstream VSCE bugs by providing more context
in the error messages and ensuring proper cleanup of terminal state.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
8de202ba09 fix: prevent UI freeze when terminal stream is unavailable
Add timeout and error handling to terminal stream initialization to prevent
UI from freezing when a stream is unavailable or never starts. This ensures
that if the VSCE shell integration stream does not start within 3 seconds:

- The streamAvailable promise is rejected with a clear error
- Event listeners are cleaned up to prevent memory leaks
- Terminal state is properly reset
- Execution continues rather than hanging indefinitely

This fixes a potential deadlock where the UI could freeze waiting for a
stream that never becomes available.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
f2891d7bc6 test: update no_shell_integration event test
Update test to handle string message parameter in no_shell_integration event

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
a867595a6a doc: enhance shell integration error messages
Add descriptive messages to shell integration failures to help users
understand and resolve integration issues more effectively. This improves
the debugging experience by providing specific details about why shell
integration failed.

- Add message parameter to no_shell_integration event
- Update UI to display specific error messages
- Update troubleshooting documentation link

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
7dadf4cd1b refactor: remove redundant terminal ID from event handling
As pointed out by @cte, passing and checking terminal IDs in events is
unnecessary since a TerminalProcess instance can never be associated with a
different Terminal instance. The event handling is already properly scoped
to the specific TerminalProcess instance.

- Remove terminal ID parameter from shell_execution_complete event
- Remove terminal ID parameter from stream_available event
- Update all event handlers to remove ID checks
- Update all test cases to match new event signatures

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
1601401888 cleanup: remove unused stream property from Terminal
@cte reported that the stream property is not used anywhere in the codebase.
The stream is passed directly to the process via event emitter and does not need to be stored.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
5de0133929 docs: fix test file path in comment
Update the test file path in the comment to match the actual test file name,
making it easier to run the specific test file directly.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
e3b682f119 perf: use string instead of array for terminal output
Use a string instead of array for terminal output since it is faster
than splitting and joining. Also note that 'line' events may contain
multiple lines, so concatenating directly is more efficient.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
5c9f7722b6 docs: document TerminalProcess stability guidelines
The TerminalProcess class is a critical component for VSCode shell integration.
This documentation explains why changes must be minimal and carefully considered:

- Performance optimizations using index-based operations and zero-copy implementation
- Accuracy requirements for handling terminal output and escape sequences
- Complex integration with VSCode shell features and command execution
- Careful handling of stream data and escape sequence processing
- Backwards compatibility considerations for VSCode releases

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
2319f968e2 test: update Terminal constructor calls
Notice: this comment required updating system test snapshots with new
execute_command XML schema feature `cwd`

- Add required cwd parameter to Terminal constructor calls in tests
  - Use './' for TerminalProcess.test.ts
  - Use '/test/path' for TerminalProcessExec.test.ts to match shellIntegration.cwd

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
1a1432d1d1 fix: remove forced directory changes that break shell integration
Forcing terminals to `cd` back to the project directory was disrupting
shell state without providing feedback to the model. This caused issues
with capturing output from subsequent commands, particularly with custom
shell prompts.

Instead of forcing directory changes, we now track terminal state
through shell integration with a fallback mechanism, and provide
explicit working directory feedback to the model. This allows terminals
to maintain their natural state while ensuring accurate command output
capture.

Changes:
- Remove forced `cd` commands that were disrupting terminal state
- Add getCurrentWorkingDirectory() method with shell integration fallback
- Add customCwd parameter to executeCommandTool for flexible directory handling
- Add requiredCwd parameter to control terminal selection behavior
- Refactor terminal selection logic for more consistent state management
- Modify environment details to include terminal working directory feedback
- Update XML schema to include optional working directory parameter in execute_command

The environment details now provide explicit feedback about terminal state:
Command executed in terminal N from '/path/to/dir'. Exit code: 0

Fixes: #1388
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
e27c6aadc1 fix: terminal process isolation between parallel Cline tasks
These changes ensure proper isolation by preventing terminal process
output from one Cline task appearing in another task's context when
multiple Cline instances are running in parallel.

- Add taskId parameter to TerminalRegistry.getTerminals to filter terminals by Cline task ID
- Update Cline.ts to use taskId-filtered terminals

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
25e46a244d fix: terminal output not showing after command completion
Fix an issue where background running terminals that complete their
execution do not report the final output of their command. Previously,
output was reported while the command was active, but after termination
the remaining output was not provided within the 'inactive terminals'
section of environment details.

- Implement terminal process queue system to track completed processes
- Store command and output retrieval state per process
- Add helper methods to manage the process queue efficiently
- Update getEnvironmentDetails to properly display output from completed processes

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
24d8ef91ce fix: emit line event when command output starts
This fixes an issue where commands that wait for input (like 'cat'
without arguments) would hang indefinitely because no 'line' event was
emitted. The terminal would receive the VSCode shell integration marker
indicating command output has started, but since there was no actual
output yet, the UI would not proceed.

By emitting an empty line event when command output starts, we ensure
the UI can proceed even when a command is waiting for input, preventing
the task from hanging.

Thank you @cte for pointing this out in the PR development process.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
d25bcb1913 test: suppress stderr output in TerminalProcessExec tests
Redirect stderr to /dev/null when executing test commands to prevent
'command not found' messages from appearing in test output. This improves
test output readability while maintaining the same test functionality.

The test still verifies that nonexistent commands return exit code 127,
but does so without printing potentially confusing error messages.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
9f5a67ecf8 refactor: remove TerminalManager after migration
- Delete TerminalManager.ts as functionality has been migrated
- Remove TerminalManager import and usage from tests
- Remove outdated TerminalManager references from comments
- Fix TypeScript types in TerminalRegistry event handlers

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
bc8cfc919f fix: prevent terminal sharing between Roo tasks
This change improves terminal management by tracking which task owns
each terminal and prioritizing terminal selection based on task
ownership.

Terminal selection now follows a priority order:

1. First try to find a terminal already assigned to this task with matching directory
2. If not found, try to find any available terminal with matching directory
3. If still not found, try to find any non-busy terminal
4. Only create a new terminal as a last resort

When a task ends, all terminals associated with it are released for use
by other tasks.

This prevents the issue where multiple Roo task instances could
inadvertently share terminals, which could lead to confusion when
terminal output from one task appears in another task's context.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
bf2ce7e1ee refactor: move terminal functionality to Terminal class
Move terminal lifecycle management to improve organization:

1. Move runCommand to Terminal class
2. Move getOrCreateTerminal to TerminalRegistry

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
1973f87c6b fix: prevent duplicate terminal handler registration
Move terminal shell execution handlers from TerminalManager to TerminalRegistry to
permanently solve duplicate handler registration issue. Previously handlers were
registered per-task, now they are registered once at extension startup:

- Initialize handlers when extension loads
- Add safety check to prevent multiple initializations by throwing an
  error if initialize() is called more than once.
- Add cleanup on extension deactivation
- Remove handler registration from TerminalManager

Fixes: #1364
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
3157bf29a8 refactor: move interpretExitCode from TerminalManager to TerminalProcess
- Make interpretExitCode a static method in TerminalProcess
- Update all references to use the static method
- Add comprehensive unit tests for exit code interpretation
- Test with real shell commands for different exit conditions

This change improves code organization by moving the exit code interpretation
logic to the appropriate class, making it more maintainable and reusable.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
2412986f65 test: properly handle exit codes in terminal tests
Improved exit code handling in TerminalProcessExec.test.ts:
- Modified createRealCommandStream to capture real exit codes from execSync
- Added signal handling to convert signal names to exit codes (128 + signal number)
- Added tests for various exit code scenarios (normal, signals, command not found)
- Ensured exit codes flow correctly through terminal events
- Added minimal debug output for unrecognized signals

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
59745a7058 refactor: establish natural terminal hierarchy
Move terminal state access from TerminalManager to TerminalRegistry to establish
a clear hierarchical relationship between components. This change centralizes
terminal management in TerminalRegistry and eliminates duplicate state tracking
in TerminalManager.

The hierarchy flows from TerminalRegistry (managing all terminals) to Terminal
(encapsulating a terminal instance) to TerminalProcess (running within a terminal).

Key changes:
- Remove `processes` map from TerminalManager
- Add static getUnretrievedOutput and isProcessHot methods to TerminalRegistry, which manages all terminals globally

Test updates:
- Modify test setup to create Terminal instances
- Remove processes map usage from tests
- Update process creation and command execution flow in tests

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
304fcf2fbc fix: improve terminal execution with shell integration status
When shell integration is not available, the system now provides clear feedback
about command execution status and maintains consistent event flow.

- Removed waitForShellIntegration property to simplify code flow
- Consolidated event emission to ensure consistent behavior
- Updated tests to verify correct event sequence
- Simplified shell integration detection with pWaitFor
2025-03-10 20:55:05 -07:00
Eric Wheeler
0e41241faa fix: replace echo -e with printf in terminal tests
Replace echo -e with printf command in terminal tests for better portability.

- Replace echo -e with printf to ensure consistent behavior across different shell implementations
- Not all implementations of echo support the -e flag for interpreting backslash escapes
- Using printf provides a more reliable way to handle escape sequences

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
e24e5b24d4 refactor: move getTerminalContents to Terminal class
This commit partially addresses the issue of duplicate handler calls by
removing an unnecessary instantiation of TerminalManager in
registerTerminalActions.ts.

Move the getTerminalContents method from TerminalManager to Terminal
class as a static method and update all references to use the new
location.

Fixes: #1380

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
daf36f38ea refactor: move interpretExitCode from TerminalManager to TerminalProcess
This commit moves the interpretExitCode method from TerminalManager to
TerminalProcess class, as part of the terminal refactoring effort. The
method is responsible for translating exit codes into detailed results,
including signal information.

Changes include:
- Moved interpretExitCode method to TerminalProcess class
- Updated imports in TerminalManager and Cline to reference
  ExitCodeDetails from TerminalProcess
- Added findTerminalIdByVscodeTerminal helper method in TerminalManager
- Added comprehensive unit tests for interpretExitCode in
  TerminalProcess
- Tests cover undefined exit codes, normal exit codes (0-127), and
  signal exit codes (128+)

This change improves code organization by placing the exit code
interpretation logic closer to where it's primarily used, in the
TerminalProcess class.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
3a950bbc15 refactor: Rename TerminalInfo to Terminal and relocate to Terminal.ts
Transformed the TerminalInfo interface into a proper Terminal class and
moved it to its own file. This improves code organization and
encapsulation by centralizing terminal-related functionality.

The change establishes a clearer object model for terminal management,
setting the foundation for a more maintainable terminal architecture.
All references throughout the codebase have been updated to use the new
Terminal class while preserving existing functionality.

Tests have been updated and verified to ensure compatibility with the
new structure.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
60c14d8f5e test: add comprehensive terminal command execution testing
This commit combines three related improvements to terminal testing:

- Create a reusable function for testing terminal commands with real output
- Update tests to properly invoke terminal shell execution handlers
- Add microsecond timing to measure execution performance

Key improvements:
- Added testTerminalCommand function that takes command and expected output
- Use child_process.execSync to run real commands and feed output into mock terminal stream
- Properly trigger VSCode onDidStartTerminalShellExecution and onDidEndTerminalShellExecution events
- Add timeout mechanism to prevent hanging tests
- Measure execution time from terminal process creation to command completion
- Display both microseconds and milliseconds in test output
- Add test for base64 encoded zeros with configurable line count
- Increase buffer size for execSync to handle large outputs
- Limit output display to avoid cluttering the terminal

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
070a36baa2 Revert "Smart truncation for terminal output"
This reverts commit 7eee3e0878.

Middle-out truncation is a really great feature and it should still be
implemented, however it unnecessarily interferes with #1365 because it
hooked into the low-level chunk management that comes directly from VSCE
shell integration.

The best place to hook OutputBuilder is as follows depending on the
state of terminal interaction:

1. Foreground terminals:

Cline.ts:
	 executeCommandTool(...) {
	     process.on("line", (line) => {
		    lines.push(line)
		    ...
	    }
	 }

2. For background terminals: hook in at the point that getUnretrievedOutput is consumed for active or
   inactive terminals in Cline.ts:getEnvironmentDetails()

Please note:

The Terminal classes are very sensitive to change, partially because of
the complicated way that shell integration works with VSCE, and
partially because of the way that Cline interacts with the Terminal*
class abstractions that make VSCE shell integration easier to work with.

At the point that PR#1365 is merged, it is unlikely that any Terminal*
classes will need to be modified substantially.  Generally speaking, we
should think of this is a stable interface and minimize changes.

Reverts: #1390
2025-03-10 20:54:53 -07:00
Eric Wheeler
13c75a19d1 Revert "Disable terminal actions for now"
This reverts commit 93a394dd93 which has
been fixed by PR #1365.

Fixes: #1380
2025-03-10 20:53:39 -07:00
Eric Wheeler
75de043ded Revert "Remove terminal actions"
This reverts commit 75dcc2ffcf which has
been fixed by PR #1365.

Fixes: #1380
2025-03-10 20:53:36 -07:00
Eric Wheeler
384b469bf1 Revert "Handle outputless commands"
This reverts commit 710284cc3d which has
been superseded by PR #1365.

Fixes: #1416
2025-03-10 20:50:10 -07:00
Eric Wheeler
7e0a4dd426 Revert "Try to prevent additional cases in which terminal commands lock the task UI"
This reverts commit eee7bbe104 which has
been superseded by PR #1365.

Fixes: #1435
2025-03-10 20:50:10 -07:00
Chris Estreich
edb53bf433
Merge pull request #1546 from RooVetGit/cte/roo-code-api
Rename ClineAPI to RooCodeAPI and improve types
2025-03-10 20:45:39 -07:00
Chris Estreich
33f232ab67
Merge pull request #1548 from RooVetGit/cte/npm-install-all
Simplify `npm install` by automatically installing npm-run-all
2025-03-10 20:30:25 -07:00
Matt Rubens
ebb5a571d9
Merge pull request #1558 from RooVetGit/fix_open_ai_usage
Fix usage tracking for SiliconFlow etc
2025-03-10 23:29:45 -04:00
Chris Estreich
90a607f111
Merge branch 'main' into cte/roo-code-api 2025-03-10 20:29:36 -07:00
Chris Estreich
13be66fd53
Merge pull request #1560 from cannuri/cannuri/fix-alert-dialog-theme
refactor alert dialog styles, use vscode theme
2025-03-10 20:25:25 -07:00
cannuri
8c21f0ece3 refactor alert dialog styles, use vscode theme 2025-03-11 03:59:46 +01:00
Matt Rubens
f306461276 Fix usage tracking for SiliconFlow etc 2025-03-10 22:59:08 -04:00
Matt Rubens
9eab941d5c
Merge pull request #1550 from Smartsheet-JB-Brown/jbbrown/aws_custom_arn_for_intelligent_prompt_routing
Users need the ability to use custom ARNs (Amazon Resource Names) with AWS Bedrock for intelligent prompt routing.
2025-03-10 22:21:36 -04:00
Matt Rubens
77186e8ee0 Cleanup 2025-03-10 22:15:52 -04:00
Matt Rubens
d6a9e0fbe9
Merge pull request #1552 from RooVetGit/mcp-home-dir
fix: update MCP servers directory path for platform compatibility
2025-03-10 21:47:08 -04:00
Chris Estreich
00bca30695
Merge pull request #1545 from RooVetGit/cte/action-registraion-cleanup 2025-03-10 18:45:00 -07:00
Matt Rubens
6cfc1cd4c9
Merge pull request #1528 from afshawnlotfi/chrome-remote-webtools
Chrome remote webtools
2025-03-10 21:37:20 -04:00
Hannes Rudolph
7462906b7a
Update ClineProvider.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-10 18:49:25 -06:00
Matt Rubens
9dfdc424c6
Merge pull request #1556 from cannuri/cannuri/fix-browser-system-prompt
fix browser system prompt inclusion rules
2025-03-10 20:45:11 -04:00
cannuri
a9773b70c8 fix browser_action system prompt 2025-03-11 01:03:18 +01:00
Hannes Rudolph
abcb7c18b4
Update src/core/webview/ClineProvider.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-10 16:23:43 -06:00
Afshawn Lotfi
ce3e22ecfe Refactor Docker gateway IP retrieval to use a dedicated shell command execution function 2025-03-10 21:40:08 +00:00
Smartsheet-JB-Brown
171037a938 Add enhanced error handling and logging for AWS Bedrock custom ARNs 2025-03-10 14:25:52 -07:00
hannesrudolph
102a996875 fix: update MCP servers directory path for platform compatibility 2025-03-10 15:18:19 -06:00
cte
2187369ba4 Remove benchmark 2025-03-10 11:39:23 -07:00
cte
7681a98842 Simplify npm install by automatically installing npm-run-all 2025-03-10 11:36:11 -07:00
Chris Estreich
0a03c88e92
Update src/exports/README.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-10 11:24:21 -07:00
cte
f8a592aac9 Rename ClineAPI to RooCodeAPI and improve types 2025-03-10 11:16:38 -07:00
cte
5a3c20764a Follow the established pattern for command registration 2025-03-10 11:12:11 -07:00
shohei-ihaya
f4b3c44371 add gemini-2.0-pro-exp-02-05 model to vertex 2025-03-11 02:09:18 +09:00
cannuri
42287ad1a0
Merge pull request #2 from cannuri/feature/update-main
Feature/update main
2025-03-10 17:52:24 +01:00
aheizi
f13d28ad45 simpler way of setting up 2025-03-11 00:50:27 +08:00
cannuri
4a542940ba Merge remote-tracking branch 'upstream/main' 2025-03-10 17:49:34 +01:00
aheizi
643508c3b0 Merge remote-tracking branch 'origin/feature/add_sse_mcp' into feature/add_sse_mcp 2025-03-10 23:33:25 +08:00
Matt Rubens
89b8b10bba Merge remote-tracking branch 'origin/main' into feature/add_sse_mcp 2025-03-10 10:47:26 -04:00
Matt Rubens
224303660b
Merge pull request #1533 from pdecat/ci/publish_tags
ci: publish git tags to Github (resolves #444)
2025-03-10 10:38:50 -04:00
Patrick Decat
f99fc59460
ci: tag after packaging but before publishing 2025-03-10 15:29:14 +01:00
Matt Rubens
6644202b55
Merge pull request #1451 from dtrugman/feat/add-openai-style-cost-calculation
Add openai style cost calculation
2025-03-10 10:11:30 -04:00
Matt Rubens
03045d8e75
Update src/core/Cline.ts 2025-03-10 09:54:45 -04:00
Matt Rubens
01b822e73f
Merge pull request #1524 from RooVetGit/checkpoint_telemetry
Add telemetry for checkpoint save/restore/diff
2025-03-10 07:45:53 -04:00
dongqing
85b54b33ba support custom base url for gemini in google AI studio 2025-03-10 19:06:58 +08:00
Patrick Decat
70d6658ca4
ci: publish git tags to Github (resolves #444) 2025-03-10 11:56:24 +01:00
Afshawn Lotfi
71795d5487 Enhance BrowserSettings component with VSCodeTextField for remote browser URL input 2025-03-10 06:51:35 +00:00
Chris Estreich
0b2abee923
Merge pull request #1516 from RooVetGit/cte/layout-fixes
App tab layout fixes
2025-03-09 21:53:51 -07:00
cte
9fdc546f01 Fix portal stuff 2025-03-09 21:49:29 -07:00
aheizi
0d0f7e37a6 Merge branch 'main' into feature/add_sse_mcp 2025-03-10 12:46:11 +08:00
aheizi
f9a1cd0b52 add sseOptions 2025-03-10 12:36:46 +08:00
Afshawn Lotfi
66e3b9610c Add remote browser connection support and related state management 2025-03-10 03:41:38 +00:00
Matt Rubens
732eeddc6c Add model telemetry too 2025-03-09 23:18:44 -04:00
Matt Rubens
9c08d044b3 Add telemetry for checkpoint save/restore/diff 2025-03-09 22:55:23 -04:00
Matt Rubens
85775ce0a5
Merge pull request #573 from Szpadel/fix-listing-exclude
Do not exclude whole project dir when listing in case where project i…
2025-03-09 21:59:54 -04:00
Matt Rubens
f4734dedb9
Merge pull request #721 from kohii/kotlin
feat: Add Kotlin support in list_code_definition_names
2025-03-09 21:49:54 -04:00
Matt Rubens
e5ac33a146
Merge pull request #996 from qdaxb/optimize_diagnostics
Reduce the probability of errors when the model tries to fix the problems
2025-03-09 21:38:03 -04:00
cannuri
58532bc6db
Merge pull request #1 from cannuri/update-from-upstream
Update from upstream
2025-03-10 00:51:35 +01:00
Matt Rubens
7722489aa9
Merge pull request #1519 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-09 19:48:08 -04:00
Matt Rubens
831371cfa9
Update CHANGELOG.md 2025-03-09 19:47:22 -04:00
github-actions[bot]
847d8f57f0 changeset version bump 2025-03-09 23:44:37 +00:00
Matt Rubens
cff4577e43
Merge pull request #1522 from RooVetGit/v3.8.4
v3.8.4
2025-03-09 19:43:41 -04:00
Matt Rubens
6b0e377afc v3.8.4 2025-03-09 19:42:33 -04:00
Matt Rubens
c70595b9f0
Merge pull request #1507 from hannesrudolph/optional-mode-creation
feat: Add toggle for custom mode creation
2025-03-09 18:54:49 -04:00
Hannes Rudolph
ad07336d09
Update webview-ui/src/components/prompts/PromptsView.tsx
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-09 16:45:53 -06:00
Matt Rubens
dba9116d26
Merge pull request #1518 from RooVetGit/revert_tool_progress_for_now
Revert tool progress for now
2025-03-09 18:45:52 -04:00
Hannes Rudolph
6bcb39f0a1
Update webview-ui/src/components/prompts/PromptsView.tsx
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-09 16:45:47 -06:00
Matt Rubens
c9794d2452 Changeset 2025-03-09 18:36:42 -04:00
Matt Rubens
183e47b1bd Revert "support tool progress status"
This reverts commit 80139d88d7.
2025-03-09 18:35:56 -04:00
Matt Rubens
78be1b8977 Revert "Clean up the tool progress UX"
This reverts commit 1c8071bbb3.
2025-03-09 18:35:48 -04:00
cte
5f20fbbf44 Add changeset 2025-03-09 15:08:36 -07:00
cte
9f40c4d57a App tab layout fixes 2025-03-09 15:07:59 -07:00
hannesrudolph
445066c430 refactor: Move custom mode creation setting to a more appropriate location in PromptsView component 2025-03-09 15:56:23 -06:00
Afshawn Lotfi
22f51304a2 Add support for remote browser connection and settings 2025-03-09 20:11:52 +00:00
Matt Rubens
85dd1a1977
Merge pull request #1512 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-09 09:52:26 -04:00
Matt Rubens
a05d7c1c8e
Update CHANGELOG.md 2025-03-09 09:51:44 -04:00
R00-B0T
edec39b98e Updating CHANGELOG.md format 2025-03-09 13:47:05 +00:00
github-actions[bot]
b57fcf2094 changeset version bump 2025-03-09 13:46:40 +00:00
Matt Rubens
a1c63870f6
Merge pull request #1511 from RooVetGit/fix_vscode_lm_dropdown
Fix the VSCode LM model picker
2025-03-09 09:45:47 -04:00
Matt Rubens
68cfdc985e Fix the VSCode LM model picker 2025-03-09 09:38:55 -04:00
hannesrudolph
cc4f6dd675 style: Update margin styling for checkbox in PromptsView component 2025-03-08 22:40:43 -07:00
Hannes Rudolph
47294dec56
Update webview-ui/src/components/prompts/PromptsView.tsx
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-08 22:32:40 -07:00
Hannes Rudolph
74a0dcebf6
Update webview-ui/src/components/prompts/PromptsView.tsx
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-08 22:32:14 -07:00
Hannes Rudolph
bb87b7896b
Update src/shared/globalState.ts
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-08 22:31:20 -07:00
Hannes Rudolph
f6efa2b589
Update src/core/prompts/sections/modes.ts
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-08 22:31:10 -07:00
Matt Rubens
d31b3b67e7
Merge pull request #1502 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-09 00:06:44 -05:00
Roo Code
2a08c7c3db feat: Add toggle for custom mode creation
This commit adds a new setting to allow users to disable custom mode creation,
which can help reduce token usage in Roo's prompts.

Key changes:

Add enableCustomModeCreation setting to global state
Conditionally include custom modes documentation in prompt only when enabled
Add UI toggle in PromptsView with explanatory text
Default the setting to enabled (true) for backward compatibility
Update necessary interfaces and message handlers for the new setting
The setting is placed in PromptsView rather than SettingsView since it directly
relates to the modes functionality managed in that component.
2025-03-08 22:05:27 -07:00
Matt Rubens
f4df55f020
Update CHANGELOG.md 2025-03-09 00:04:30 -05:00
github-actions[bot]
148e0560a1 changeset version bump 2025-03-09 05:02:18 +00:00
Matt Rubens
c992552241
Merge pull request #1505 from RooVetGit/v3.8.2
V3.8.2
2025-03-09 00:01:28 -05:00
Matt Rubens
91d16896b1 Changeset 2025-03-08 23:46:49 -05:00
Matt Rubens
e10757d6fa Iterate on subtasks UX 2025-03-08 23:46:28 -05:00
Matt Rubens
1c8071bbb3 Clean up the tool progress UX 2025-03-08 22:55:04 -05:00
Matt Rubens
e2bdee3366
Merge pull request #1494 from qdaxb/support_tool_progress_status
support tool progress status
2025-03-08 21:17:35 -05:00
Matt Rubens
e945dcf94f
Merge pull request #1491 from shaybc/sbc_subtasks_approve_btn
Sbc subtasks approve button
2025-03-08 21:16:44 -05:00
Matt Rubens
10fca7b404
Merge pull request #1501 from RooVetGit/strip_all_boms
Strip all BOMs
2025-03-08 18:48:47 -05:00
Matt Rubens
585d5aba5a Strip all BOMs 2025-03-08 18:44:03 -05:00
Matt Rubens
3806ea9f69
Merge pull request #1500 from RooVetGit/strip_bom_string
Strip BOM twice when applying diffs
2025-03-08 17:56:17 -05:00
Matt Rubens
4cf7754e65 Strip BOM when applying diffs 2025-03-08 17:50:49 -05:00
aheizi
b4f808d7dc fix ut 2025-03-09 01:26:10 +08:00
axb
80139d88d7 support tool progress status 2025-03-09 00:21:09 +08:00
aheizi
bb42fb63a1 Merge branch 'main' into feature/add_sse_mcp 2025-03-09 00:16:50 +08:00
aheizi
549b06f46d feat: add sse mcp support 2025-03-09 00:15:23 +08:00
Matt Rubens
73f43509ca
Merge pull request #1489 from yt3trees/roocode-openaicompat-o3-mini
Add o3-mini support to openai compatible
2025-03-08 10:32:01 -05:00
ShayBC
27624a25a5 fixed the missing case of cmd execution at the end of a subyask and added auto aprove option for finish task (and continue to the next task) 2025-03-08 16:25:45 +02:00
Yuto
a186537a7f
Create wild-dragons-leave.md 2025-03-08 20:38:27 +09:00
yt3trees
9246cf8f6d Add o3-mini support to openai compatible 2025-03-08 20:23:53 +09:00
Matt Rubens
9fcf69c268
Merge pull request #1486 from RooVetGit/mrubens-patch-4
Update CHANGELOG.md
2025-03-08 01:38:34 -05:00
Matt Rubens
471d832c7a
Update CHANGELOG.md 2025-03-08 01:34:23 -05:00
Chris Estreich
91041738c0
Merge pull request #1484 from RooVetGit/cte/settings-dropdown-z-index
Fix settings dropdown issues
2025-03-07 21:58:19 -08:00
cte
998cd3c32e Fix tests 2025-03-07 21:52:11 -08:00
cte
ebacc14b48 Fix settings dropdown issues 2025-03-07 21:36:03 -08:00
Matt Rubens
07d9c22be1
Merge pull request #1481 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-08 00:35:20 -05:00
Matt Rubens
a74c0f37df
Update CHANGELOG.md 2025-03-08 00:35:01 -05:00
Matt Rubens
8e9110f446
Update CHANGELOG.md 2025-03-08 00:34:01 -05:00
R00-B0T
bb8e12724e Updating CHANGELOG.md format 2025-03-08 05:27:29 +00:00
github-actions[bot]
256f400c5d changeset version bump 2025-03-08 05:27:04 +00:00
Matt Rubens
a25cb4cb88
Merge pull request #1480 from RooVetGit/v3.8.1
v3.8.1
2025-03-08 00:26:17 -05:00
Matt Rubens
7f20a95e06 v3.8.1 2025-03-08 00:25:28 -05:00
Matt Rubens
70fa490a59
Merge pull request #1479 from RooVetGit/fix_checkpoints_default
Turn checkpoints on by default
2025-03-07 23:46:18 -05:00
Matt Rubens
441f54d792 Turn checkpoints on by default 2025-03-07 23:36:46 -05:00
Matt Rubens
e5d764ccba
Merge pull request #1476 from RooVetGit/sliding_window_logging
Fix logic for default modelMaxTokens for thinking models
2025-03-07 23:03:01 -05:00
ShayBC
1456db9502 added approve finish task button and auto approve button for subtasks 2025-03-08 06:01:49 +02:00
Matt Rubens
da286c45ed Fix logic for default modelMaxTokens for thinking models 2025-03-07 22:58:45 -05:00
Matt Rubens
2a65db61cf
Merge pull request #1444 from moqimoqidea/patch-1
fix claude 3.7 think enhance prompt problem.
2025-03-07 21:39:56 -05:00
Matt Rubens
46814df33b
Merge pull request #1464 from System233/patch-input-output-price-2
Fix: Input/output prices are parsed too early
2025-03-07 21:38:23 -05:00
Matt Rubens
ea9191610f
Merge pull request #1468 from System233/patch-custom-temperature
Fix: Custom temperature cannot be unchecked
2025-03-07 21:37:15 -05:00
System233
9ceccdec32 Fix: Custom temperature cannot be unchecked 2025-03-08 06:03:19 +08:00
Matt Rubens
b761c241ba
Merge pull request #1467 from RooVetGit/add_app_version_to_telemetry
Add app version to telemetry
2025-03-07 17:00:24 -05:00
Matt Rubens
4c6f0628e3 Add vscodeVersion and platform too 2025-03-07 16:41:35 -05:00
Matt Rubens
082045ec66 Add app version to telemetry 2025-03-07 16:30:19 -05:00
Matt Rubens
3a54a990a7
Merge pull request #1466 from RooVetGit/mrubens-patch-4
Update .clinerules
2025-03-07 16:28:12 -05:00
Matt Rubens
980479e4f1
Update .clinerules 2025-03-07 16:27:53 -05:00
Matt Rubens
29f8cde5ee
Merge pull request #1457 from DeXtroTip/feat/api-config-manager-dropdown-full-width
Use full width for Configuration Profile dropdown
2025-03-07 16:20:42 -05:00
Matt Rubens
ec8145f956
Merge pull request #1458 from RooVetGit/show_output_tokens
Show the reserved output tokens in the context window bar
2025-03-07 16:20:16 -05:00
Matt Rubens
a1aa00328e
Merge pull request #1465 from RooVetGit/mrubens-patch-4
Update README.md
2025-03-07 16:16:45 -05:00
Matt Rubens
8acc5831ee
Update README.md 2025-03-07 16:16:02 -05:00
Matt Rubens
671064a45f Show the reserved output tokens in the context window bar 2025-03-07 16:12:50 -05:00
System233
13563ef0c5 Fix: Input/output prices are parsed too early 2025-03-08 04:59:39 +08:00
Matt Rubens
ee88c1ee11
Merge pull request #1395 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-07 15:56:21 -05:00
Matt Rubens
0020db1282
Update CHANGELOG.md 2025-03-07 15:55:43 -05:00
Matt Rubens
f444fbb382
Update CHANGELOG.md 2025-03-07 15:55:24 -05:00
github-actions[bot]
77da5e6fb1 changeset version bump 2025-03-07 20:47:06 +00:00
Matt Rubens
fd4d52fb1f
Merge pull request #1459 from RooVetGit/v3.8
v3.8
2025-03-07 15:46:13 -05:00
Matt Rubens
9a340178fc v3.8 2025-03-07 14:37:51 -05:00
Gonçalo Antunes
03d4c7f359
feat(settings): add full width to API config manager dropdown
Add a CSS class to make the API config dropdown take up the full
width of its container. This improves the layout and appearance
of the settings page.
2025-03-07 17:39:37 +00:00
Chris Estreich
9ad8aaf300
Merge pull request #1454 from RooVetGit/cte/disable-repo-per-workspace-checkpoints
Disable repo per workspace checkpoints
2025-03-07 09:28:17 -08:00
cte
8f85dbe991 Add changeset 2025-03-07 09:11:04 -08:00
cte
820092cfc3 Disable repo-per-workspace checkpoints 2025-03-07 09:09:03 -08:00
Daniel Trugman
c51f59e50b Requesty: Correctly calculate request costs 2025-03-07 16:41:09 +00:00
Matt Rubens
f92817ac99
Merge pull request #1453 from RooVetGit/rooignore_settings
Add setting for whether to include ignored files in lists
2025-03-07 11:35:49 -05:00
Matt Rubens
f9d162e157 Add setting for whether to include ignored files in lists 2025-03-07 11:28:28 -05:00
Matt Rubens
71f1ab01aa
Merge pull request #1452 from RooVetGit/task_header_fixes
UI tweaks to task header
2025-03-07 10:16:09 -05:00
Matt Rubens
25d41a59a8 UI tweaks to task header 2025-03-07 10:08:23 -05:00
Daniel Trugman
e14b1b2dab Add OpenAI-style cost calculation 2025-03-07 13:53:32 +00:00
Matt Rubens
05edd972b9
Merge pull request #1449 from dtrugman/feat/requesty-image-and-computer-use-flags
Requesty: Correctly set image and computer use support
2025-03-07 08:03:11 -05:00
Daniel Trugman
129f15884f Requesty: Correctly set image and computer use support 2025-03-07 13:00:37 +00:00
Chris Estreich
2d87b86caa
Merge pull request #1448 from tgfjt/patch-1 2025-03-07 03:01:51 -08:00
Takashi Fujita
1235db6c49
fix: adjust font size of code elements within headings to ensure consistent styling
Apply :has() selector to make code elements inherit font size from their heading parents.
This ensures visual consistency in markdown headings containing code blocks.
2025-03-07 19:49:07 +09:00
moqimoqidea
aa70d755f8
fix claude 3.7 think enhance prompt problem. 2025-03-07 16:28:44 +08:00
Matt Rubens
43a36c1a0a
Merge pull request #1438 from RooVetGit/telemetry
Opt-in telemetry
2025-03-07 03:07:46 -05:00
Matt Rubens
50f76584bc Add telemetry and privacy policy 2025-03-07 03:03:44 -05:00
Chris Estreich
9fd145aa9b
Merge pull request #1435 from RooVetGit/cte/terminal-reliability
Theoretical handling of stream non-availability or delayed availability
2025-03-06 23:57:41 -08:00
Matt Rubens
c3065663b2 Subtask logic fix 2025-03-07 02:27:19 -05:00
Matt Rubens
f86396b3a6
Merge pull request #1439 from RooVetGit/revert-1436-mrubens-patch-4
Revert "Turn off ellipsis quiet mode"
2025-03-07 02:26:46 -05:00
Matt Rubens
d6d43b24f4
Revert "Turn off ellipsis quiet mode" 2025-03-07 02:26:25 -05:00
Matt Rubens
3510c3e1ec
Merge pull request #1436 from RooVetGit/mrubens-patch-4
Turn off ellipsis quiet mode
2025-03-07 02:05:33 -05:00
Matt Rubens
73bb4f9cfc
Update ellipsis.yaml 2025-03-07 02:04:35 -05:00
cte
eee7bbe104 Try to prevent additional cases in which terminal commands lock the task UI 2025-03-06 21:34:03 -08:00
Chris Estreich
0a19fb547e
Merge pull request #1429 from RooVetGit/cte/resume-task-checkpoints-config
Choose the correct checkpoint storage strategy when resuming tasks
2025-03-06 21:31:21 -08:00
Matt Rubens
70a88aee4d
Merge pull request #1392 from eonghk/feature/vertex-credentials-auth
Add credentials auth for Google vertex
2025-03-06 16:45:45 -05:00
cte
f685932d63 Fix tests 2025-03-06 11:31:08 -08:00
cte
1901a0dbfc Choose the correct checkpoint storage strategy when resuming tasks 2025-03-06 11:23:00 -08:00
Chris Estreich
ae7601bbfc
Merge pull request #1420 from RooVetGit/cte/checkpoints-fixes
Improve file excludes for checkpoints service
2025-03-06 11:12:37 -08:00
Matt Rubens
d9e0310641
Merge pull request #1427 from olweraltuve/fix-deepseek-cache-official-api
Fix deepseek cache official api
2025-03-06 11:33:21 -05:00
Olwer Altuve
21101e25bf refactor(deepseek): update test expectations
- Update test case to reflect current object reference behavior for model info
2025-03-06 12:29:13 -04:00
Olwer Altuve
e75fdc1ef6 only info 2025-03-06 11:51:11 -04:00
Olwer Altuve
566fa0f154 Merge branch 'fix-deepseek-cache-official-api' of https://github.com/olweraltuve/Roo-Code into fix-deepseek-cache-official-api 2025-03-06 11:31:04 -04:00
Olwer Altuve
89cf2c4c58 feat(api): Add DeepSeek provider support for prompt caching and detailed usage metrics
- Update DeepSeekHandler to support prompt caching
- Add cache token tracking in usage metrics
- Update DeepSeek model configurations with cache-related pricing
- Enhance test coverage for cache and usage metric handling
2025-03-06 11:26:15 -04:00
Matt Rubens
b11230ce56
Merge pull request #1425 from RooVetGit/mrubens-patch-4
Update README.md
2025-03-06 08:07:25 -05:00
Matt Rubens
e31cbbebc4
Update README.md 2025-03-06 08:05:57 -05:00
Olwer Altuve
1711d6c04d feat(deepseek): enhance model support with prompt caching and detailed usage metrics
- Add support for prompt caching in DeepSeek models
- Update model configurations to reflect caching capabilities
- Implement detailed usage metrics tracking cache write and read tokens
- Extend test coverage for new usage metrics and model parameters
- Update pricing information for DeepSeek models to include cache-related costs
2025-03-06 08:26:03 -04:00
Matt Rubens
7cdecddb63
Merge pull request #1421 from RooVetGit/cte/task-header
Remove (Main) from task header
2025-03-06 06:52:46 -05:00
cte
845cba4842 Remove (Main) from task header 2025-03-06 00:56:33 -08:00
cte
2325d8be46 Improve file excludes for checkpoints service 2025-03-06 00:52:28 -08:00
Chris Estreich
eea09c595d
Merge pull request #1417 from RooVetGit/cte/remove-history-preview-item-number
Remove item number from history preview cards
2025-03-05 21:44:46 -08:00
cte
1cc57c47ce Remove item number from history preview cards 2025-03-05 21:39:30 -08:00
Chris Estreich
aa0e277e08
Merge pull request #1416 from RooVetGit/cte/handle-outputless-commands
Handle outputless commands
2025-03-05 21:32:25 -08:00
cte
710284cc3d Handle outputless commands 2025-03-05 21:28:42 -08:00
Chris Estreich
2a2ba7417c
Merge pull request #1415 from samhvw8/fix/reset-all-state-context-proxy
fix reset all state
2025-03-05 21:08:25 -08:00
Chris Estreich
c9e21eb091
Merge pull request #1414 from websentry-ai/pm/add-unbound-metadata
Adds Unbound metadata for non-streaming requests
2025-03-05 21:07:27 -08:00
sam hoang
e21953e443 fix reset all state 2025-03-06 11:56:11 +07:00
Chris Estreich
aa57ae926e
Merge pull request #1390 from RooVetGit/cte/terminal-middle-out
Terminal "middle-out": smart truncation for terminal output
2025-03-05 20:14:20 -08:00
cte
7eee3e0878 Smart truncation for terminal output 2025-03-05 19:36:52 -08:00
eong
e3ffd1337a Merge branch 'main' into feature/vertex-credentials-auth 2025-03-06 15:17:49 +13:00
Matt Rubens
d2c202977a
Merge pull request #1407 from olweraltuve/fix-deepseek-official-api-2
fix(deepseek): update base URL to remove /v1 endpoint
2025-03-05 16:03:05 -05:00
Olwer Altuve
2e78662e9e fix(deepseek): update base URL to remove /v1 endpoint 2025-03-05 16:57:44 -04:00
Chris Estreich
0d4a15ebab
Merge pull request #1399 from RooVetGit/cte/fix-sidebar-section-headers
Fix settings colors for themes that use color transparency
2025-03-05 12:31:40 -08:00
cte
dd7d9824ba Fix tests 2025-03-05 12:28:17 -08:00
cte
66e036eaa2 Fix settings colors for themes that use color transparency 2025-03-05 12:18:00 -08:00
Matt Rubens
ee997c8669
Merge pull request #1404 from RooVetGit/fix_cline_provider
Missed a spot in ClineProvider
2025-03-05 14:56:35 -05:00
Matt Rubens
fb53d331cc Missed a spot in ClineProvider 2025-03-05 14:53:51 -05:00
Matt Rubens
6a0f22185b
Merge pull request #1367 from RooVetGit/rooignore
Add support for a .rooignore file
2025-03-05 13:59:24 -05:00
Matt Rubens
e6f4764602
Merge pull request #1401 from RooVetGit/diff_chooser
Better UX for choosing between diff strategies
2025-03-05 13:59:16 -05:00
Matt Rubens
57cf9610ba Better UX for choosing between diff strategies 2025-03-05 13:04:21 -05:00
Matt Rubens
620c39cd68
Merge pull request #1234 from qdaxb/support_edit_multi_locations_in_apply_diff
Supports updating multiple locations of a file in one call of the apply_diff tool
2025-03-05 12:36:21 -05:00
Matt Rubens
81b45074ee
Merge pull request #1123 from shaybc/sbc_add_subtasks
subtasks alpha version (still in development)
2025-03-05 12:35:33 -05:00
Matt Rubens
b46da7b8cf Revert README changes 2025-03-05 12:33:13 -05:00
Matt Rubens
a9d971e437
Update src/core/webview/ClineProvider.ts 2025-03-05 12:26:58 -05:00
Matt Rubens
426e03ba13
Update src/core/Cline.ts 2025-03-05 12:25:46 -05:00
Matt Rubens
8d2ba12698
Update src/core/Cline.ts 2025-03-05 12:25:33 -05:00
Matt Rubens
d4f0f53be8 Merge remote-tracking branch 'origin/main' into sbc_add_subtasks 2025-03-05 12:23:15 -05:00
Matt Rubens
f3b3058615
Merge pull request #1397 from RooVetGit/fix_context_proxy_tests
fix test
2025-03-05 12:22:57 -05:00
sam hoang
e0c267d7d9 fix test 2025-03-05 12:20:16 -05:00
Matt Rubens
279df6e7a4 Merge remote-tracking branch 'origin/main' into sbc_add_subtasks 2025-03-05 12:16:37 -05:00
Chris Estreich
e1fb929f38
Merge pull request #1396 from samhvw8/refactor-context-proxy-more
feat(contextProxy): add setValue and setValues methods to simplify
2025-03-05 09:06:40 -08:00
sam hoang
b1b51f8f14 feat(contextProxy): add setValue and setValues methods to simplify state management
- Added new setValue method to ContextProxy to route keys to either secrets or global state
- Added setValues method to process multiple key-value pairs at once
- Updated ClineProvider to use new methods, reducing code duplication
- Added comprehensive test coverage for new methods

This change is part of the larger ClineProvider refactoring effort to improve state management and reduce complexity, as outlined in the refactoring plan documents.
2025-03-06 00:01:52 +07:00
Matt Rubens
180740813f
Merge pull request #1315 from monotykamary/style/context-window-padding
style(task-header): add padding to align task header values
2025-03-05 11:39:31 -05:00
Matt Rubens
08a449eb8f
Merge pull request #1267 from NyxJae/human-relay
Human relay
2025-03-05 11:13:16 -05:00
Matt Rubens
7e4761f4c0
Merge pull request #1394 from RooVetGit/fix_context_proxy
Revert "Better encapsulation for API config"
2025-03-05 11:08:33 -05:00
Matt Rubens
f4441e31e1
Update webview-ui/src/components/settings/ApiOptions.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-05 11:06:54 -05:00
Matt Rubens
f683e4530f Revert "Better encapsulation for API config"
This reverts commit 86401faa37.
2025-03-05 11:05:05 -05:00
Matt Rubens
e4fb0081b1 Update commands to roo-cline to be consistent with others 2025-03-05 10:39:36 -05:00
Matt Rubens
73ac64924e Merge remote-tracking branch 'origin/main' into human-relay 2025-03-05 10:34:03 -05:00
Matt Rubens
957d022a0a
Merge pull request #1300 from refactorthis/chore/observability-openai
feat: add x-title and http-referer header to all openai providers
2025-03-05 10:28:22 -05:00
Matt Rubens
7e0e3d0f1f Add support for a .rooignore file 2025-03-05 10:17:43 -05:00
Matt Rubens
fcf09260b8
Merge pull request #1235 from samhvw8/feat/context-proxy
Feat ContextProxy to improve state management
2025-03-05 10:16:52 -05:00
Matt Rubens
86401faa37 Better encapsulation for API config 2025-03-05 10:04:48 -05:00
Matt Rubens
c3da5b0aa3 More cleanup 2025-03-05 09:49:15 -05:00
Matt Rubens
96945cd004 Merge remote-tracking branch 'origin/main' into feat/context-proxy 2025-03-05 09:33:33 -05:00
Matt Rubens
f1de71429f PR feedback 2025-03-05 09:22:40 -05:00
Matt Rubens
6b487d6a49 Merge remote-tracking branch 'origin/main' into feat/context-proxy 2025-03-05 09:18:51 -05:00
eong
01f83b4d17 Add credentials auth for Google vertex 2025-03-06 00:51:38 +13:00
Pugazhendhi
4073bdcb20 Fixes tests 2025-03-05 16:53:26 +05:30
ShayBC
9658363b5a Resolved merge conflicts 2025-03-05 13:14:33 +02:00
ShayBC
30d630fea5 Resolved merge conflicts 2025-03-05 13:08:50 +02:00
Pugazhendhi
a489a8b1e4 Removes print statements 2025-03-05 16:29:10 +05:30
Pugazhendhi
10dd931eb7 Adds unbound metadata to non streaming requests 2025-03-05 16:28:04 +05:30
ShayBC
5bc1e50dae Resolved merge conflicts 2025-03-05 12:50:05 +02:00
refactorthis
589387ba65 feat: add x-title and http-referer header to all openai providers
- Provides the ability for Open AI compatible gateways, such as LiteLLM, Open Router, Requesty to determine originating app.
 - Uses standard set by Open Router.
2025-03-05 19:16:23 +11:00
Chris Estreich
2e41376f0c
Merge pull request #1379 from RooVetGit/cte/checkpoints-settings 2025-03-04 18:51:42 -08:00
Chris Estreich
69c029e1d2
Merge pull request #1380 from RooVetGit/cte/disable-terminal-actions 2025-03-04 18:23:36 -08:00
cte
75dcc2ffcf Remove terminal actions 2025-03-04 15:38:14 -08:00
cte
93a394dd93 Disable terminal actions for now 2025-03-04 15:32:32 -08:00
cte
e1ccb70269 Checkpoint storage setting + settings view redesign 2025-03-04 15:18:29 -08:00
Matt Rubens
9ffd389f23
Merge pull request #1378 from RooVetGit/select_dropdown_cleanup
Fix issues with select dropdown
2025-03-04 17:43:30 -05:00
Matt Rubens
74d52aafcb Fix issues with select dropdown 2025-03-04 17:35:43 -05:00
sam hoang
9bbd902d5d update new way to manage state 2025-03-05 00:06:30 +07:00
sam hoang
0a0634488a update api config key list to match with api key and global state key 2025-03-04 22:34:13 +07:00
sam hoang
b4094a6281 refactor by pr comment 2025-03-04 21:56:22 +07:00
sam hoang
167229fa73 Refactor checkExistKey to use centralized SECRET_KEYS array 2025-03-04 21:55:05 +07:00
sam hoang
381b07849a Feat ContextProxy to improve state management
- Add ContextProxy class as a wrapper around VSCode's ExtensionContext
- Implement batched state updates for performance optimization
- Update ClineProvider to use ContextProxy instead of direct context access
- Add comprehensive test coverage for ContextProxy
- Extract SECRET_KEYS and GLOBAL_STATE_KEYS constants for better maintainability
2025-03-04 21:55:04 +07:00
Matt Rubens
541b54e015
Merge pull request #1368 from adamwlarson/speculative_decoding
Adding support for Speculative Decoding for LMStudio Local Models
2025-03-04 09:32:58 -05:00
Felix NyxJae
d6ae95a227 Merge branch 'main' of github.com:NyxJae/Roo-Code into human-relay 2025-03-04 21:44:19 +08:00
axb
8a51a6c0b0 Supports updating multiple locations of a file in one call of the apply_diff tool 2025-03-04 21:44:05 +08:00
Chris Estreich
fd60c9466b
Merge pull request #1357 from RooVetGit/cte/checkpoint-per-task
Add a repo-per-workspace checkpoint service in addition to repo-per-task
2025-03-04 01:41:41 -08:00
cte
d7fb9980e6 Revert logging in ClineProvider 2025-03-04 01:39:20 -08:00
cte
0bd56ad165 Checkpoints: one-branch-per-task / one-repo-per-workspace 2025-03-04 01:37:05 -08:00
Adam Larson
1c8f9ed683 first pass on speculative decoding with LMStudio 2025-03-04 01:48:40 -05:00
Felix NyxJae
4040978ea3 Merge branch 'main' into human-relay 2025-03-04 13:39:33 +08:00
Matt Rubens
2a4756aecd
Merge pull request #1329 from RooVetGit/chat_custom_dropdown
Custom dropdowns for mode/api profile
2025-03-03 23:12:20 -05:00
Matt Rubens
9c3e477bf2 PR cleanup 2025-03-03 23:08:34 -05:00
Felix NyxJae
40dd7ac532 Merge branch 'main' of github.com:NyxJae/Roo-Code into human-relay 2025-03-04 11:23:04 +08:00
Matt Rubens
c84b639872 Custom dropdowns for mode/api profile 2025-03-03 17:52:53 -05:00
Matt Rubens
3168b1e1c2
Merge pull request #1348 from RooVetGit/mrubens-patch-4
Set Vertex maxTokens to 64000
2025-03-03 16:08:42 -05:00
Matt Rubens
af06af136c
Set Vertex maxTokens to 64000 2025-03-03 16:03:22 -05:00
Chris Estreich
939e4fc21e
Merge pull request #1346 from RooVetGit/cte/async-checkpoints
Async checkpoints
2025-03-03 12:39:51 -08:00
cte
e227a9e86e Remove unused method 2025-03-03 12:35:00 -08:00
cte
9e471444de Async checkpoints 2025-03-03 12:28:16 -08:00
Chris Estreich
464d440560
Merge pull request #1319 from samhvw8/feat/windown-path-and-escape-space-path
feat(mentions): improve path handling for Windows and escaped spaces
2025-03-03 08:56:35 -08:00
Matt Rubens
7d6ee53fe2
Merge pull request #1343 from RooVetGit/mrubens-patch-4
Update CHANGELOG.md
2025-03-03 11:45:26 -05:00
Matt Rubens
a910dd45f7
Update CHANGELOG.md 2025-03-03 11:45:06 -05:00
Matt Rubens
bb3c8c904a
Merge pull request #1326 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-03 11:39:48 -05:00
github-actions[bot]
a16c6da5cc changeset version bump 2025-03-03 16:32:15 +00:00
Matt Rubens
9f374ab69c
Merge pull request #1342 from RooVetGit/checkpoint_delay_warning
Show a warning if checkpoints are taking too long to load
2025-03-03 11:21:01 -05:00
Matt Rubens
cd46ab5af3 Show a warning if checkpoints are taking too long to load 2025-03-03 11:12:08 -05:00
Matt Rubens
261bfd053c
Merge pull request #1341 from RooVetGit/update_lm_api_red_text
Update the warning text for the VS LM API
2025-03-03 11:04:35 -05:00
sam hoang
41a1c82fc5 add test from pr comment 2025-03-03 22:59:13 +07:00
Matt Rubens
17da9f0511
Update .changeset/tidy-donuts-rhyme.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-03 10:56:22 -05:00
Matt Rubens
56761ec418
Merge pull request #1340 from RooVetGit/exclude_mcp_from_modes_where_not_supported
Exclude MCP from system prompt if mode does not support it
2025-03-03 10:51:55 -05:00
Matt Rubens
c3e36deed6 Update the warning text for the VS LM API 2025-03-03 10:51:45 -05:00
Matt Rubens
003cd1bce1 Exclude MCP from system prompt if mode does not support it 2025-03-03 10:46:54 -05:00
Matt Rubens
dba32ef117
Merge pull request #1338 from RooVetGit/openrouter_think_big
Support 128k max tokens for openrouter and vertex thinking
2025-03-03 09:48:34 -05:00
Matt Rubens
2b7df5e106 Update max tokens for vertex too 2025-03-03 09:44:02 -05:00
Matt Rubens
63cecf8b22 Support 128k max tokens for openrouter thinking 2025-03-03 09:37:55 -05:00
Matt Rubens
6cf420235d
Merge pull request #1327 from monotykamary/feat/claude-extended-output
feat: update virtual id for extended output 128k claude
2025-03-03 09:29:28 -05:00
Matt Rubens
9faed0e0dc
Merge pull request #1332 from aheizi/fix_switch_mode
fix: switch mode state
2025-03-03 01:55:35 -05:00
aheizi
62677071e8 fix: switch mode state 2025-03-03 14:44:56 +08:00
Matt Rubens
bf77f46bba
Merge pull request #1331 from RooVetGit/browser_tool_enabled
Add a checkbox to enable/disable the browser tool
2025-03-03 00:44:49 -05:00
Matt Rubens
6b0347e0bd Add a checkbox to enable/disable the browser tool 2025-03-03 00:34:20 -05:00
Tom X Nguyen
ef93f5d422 refactor: always enable 128k for simplification 2025-03-03 11:17:01 +07:00
Felix NyxJae
bb2133c0f7 Merge branch 'human-relay' of github.com:NyxJae/Roo-Code into human-relay 2025-03-03 12:12:44 +08:00
Felix NyxJae
b47de72cec Add countTokens method to HumanRelayHandler class in human-relay.ts 2025-03-03 12:11:43 +08:00
Felix NyxJae
ee7650cd0f Merged temp-branch into origin/human-relay and resolved conflicts 2025-03-03 12:07:00 +08:00
Felix NyxJae
626827ab3f
Merge branch 'RooVetGit:main' into human-relay 2025-03-03 10:19:02 +08:00
Tom X Nguyen
38cf054391 chore: add missing 3.7 sonnet modelid 2025-03-03 09:11:18 +07:00
Matt Rubens
82b6fe684d
Merge pull request #1323 from RooVetGit/default_on_middle_out_compression
Default middle-out compression to on
2025-03-02 21:10:36 -05:00
Matt Rubens
9b91ab21b6 Default middle-out compression to on 2025-03-02 20:57:53 -05:00
Tom X Nguyen
d2b4a83605 fix: simplify logic and allow for multiple betas 2025-03-03 08:33:35 +07:00
Chris Estreich
a253a37567
Merge pull request #1325 from KJ7LNW/roo-update-readme 2025-03-02 17:03:36 -08:00
Tom X Nguyen
aec03d71c3 feat: add virtual id for extended output capabilities 2025-03-03 07:47:12 +07:00
Chris Estreich
8e8079d528
Merge pull request #1322 from RooVetGit/cte/fix-extension-state
ExtensionStateContext does not correctly merge state
2025-03-02 16:42:49 -08:00
cte
e201ee8fdc Selectively deep merge rather than deep merging everything 2025-03-02 16:37:44 -08:00
Eric Wheeler
475b6e2c72 docs: add fallback npm install:ci instructions to README
Add instructions to use 'npm run install:ci' as a fallback option if 'npm run install:all' fails. This addresses the dependency issue where npm-run-all needs to be installed before running the install:all script, providing clearer guidance for developers setting up the project locally.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-02 16:08:51 -08:00
Chris Estreich
2bd310bc92
Update webview-ui/src/context/ExtensionStateContext.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-02 15:20:34 -08:00
cte
b0f1eb6d62 ExtensionStateContext does not correctly merge state 2025-03-02 15:17:15 -08:00
Matt Rubens
773e5560db
Merge pull request #1312 from RooVetGit/count_tokens
Infrastructure to support calling token count APIs, starting with Anthropic
2025-03-02 14:46:34 -05:00
sam hoang
dd961d18a8 feat(mentions): improve path handling for Windows and escaped spaces
Enhance the mention regex to properly support:
- Windows paths with drive letters (C:\folder\file.txt)
- Windows network shares (\\server\share\file.txt)
- Windows relative paths (folder\file.txt)
- Paths with escaped spaces in both Unix and Windows formats
- Maintain compatibility with existing URL, git hash, and keyword patterns
- Add comprehensive test suite with 200+ test cases validating all path formats
and edge cases to ensure reliable pattern matching across platforms.
2025-03-02 23:56:35 +07:00
Tom X Nguyen
7a2a08aaa4 style(context-window): add padding to align 2025-03-02 19:42:00 +07:00
Matt Rubens
7e62d34570 PR cleanup 2025-03-02 02:12:21 -05:00
Matt Rubens
e8de7dea19 Merge remote-tracking branch 'origin/main' into count_tokens 2025-03-02 02:02:05 -05:00
Matt Rubens
8a1d66732a Infrastructure to support calling token count APIs, starting with Anthropic 2025-03-02 01:47:55 -05:00
Chris Estreich
a2d441c5a0
Merge pull request #1307 from RooVetGit/cte/dry-get-model
DRY up getModel
2025-03-01 22:04:43 -08:00
cte
9b646eb2bc DRY up getModel 2025-03-01 21:51:17 -08:00
Matt Rubens
2c0b162616
Merge pull request #1306 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-02 00:21:05 -05:00
Matt Rubens
609ba9cf8c
Update CHANGELOG.md 2025-03-02 00:17:41 -05:00
github-actions[bot]
30677d9cae changeset version bump 2025-03-02 05:16:08 +00:00
Matt Rubens
11387bdecd
Merge pull request #1304 from RooVetGit/support_read_only_modes_that_can_run_commands
Clearer instructions for read-only modes that can run commands
2025-03-02 00:15:19 -05:00
Chris Estreich
15a4c4c68c
Merge pull request #1305 from RooVetGit/cte/max-tokens-fix
Custom max tokens fix for non-thinking models
2025-03-01 21:13:51 -08:00
Matt Rubens
108e97843f
Merge pull request #1303 from RooVetGit/cycle_custom_modes_too
Include custom modes in mode switching keyboard shortcut
2025-03-02 00:13:35 -05:00
Matt Rubens
41b0ddecb4 Clearer instructions for read-only modes that can run commands 2025-03-02 00:13:14 -05:00
cte
8a8319d3b6 Add changeset 2025-03-01 21:06:40 -08:00
cte
62385ba4c7 Custom max tokens fix for non-thinking models 2025-03-01 21:05:03 -08:00
Matt Rubens
cd910c3435 Include custom modes in mode switching keyboard shortcut 2025-03-01 23:53:50 -05:00
Matt Rubens
6ff88383a2
Merge pull request #1298 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-01 21:25:33 -05:00
Matt Rubens
0a096097d5
3.7.10 2025-03-01 21:24:38 -05:00
github-actions[bot]
4a7316a9de changeset version bump 2025-03-02 01:49:55 +00:00
Matt Rubens
87aa4888fc
Merge pull request #1299 from RooVetGit/3_7_10
v3.7.10
2025-03-01 20:49:02 -05:00
Matt Rubens
fd4ce8fe6a v3.7.10 2025-03-01 20:48:25 -05:00
Matt Rubens
00bf6a3b96
Merge pull request #1297 from RooVetGit/fix_mermaid
Add type='module' to webview script
2025-03-01 20:47:03 -05:00
Matt Rubens
e6a49ddc5c Add type='module' to webview script 2025-03-01 20:42:10 -05:00
Matt Rubens
d70c3e038a
Merge pull request #1270 from aheizi/feature/add-shortcut-to-switch-modes
feat: add shortcut to switch modes
2025-03-01 18:52:56 -05:00
Matt Rubens
22c8a683d8
Merge pull request #1296 from RooVetGit/mermaids
Mermaids
2025-03-01 18:51:40 -05:00
Matt Rubens
8c8210ef50
Merge pull request #1282 from ashktn/feat/vertex-gemini
feat: Add support for Gemini models on Vertex AI
2025-03-01 18:48:54 -05:00
Matt Rubens
45eef8e37f Update snapshots 2025-03-01 18:46:35 -05:00
Matt Rubens
c8b72fa730 Update ask prompt 2025-03-01 18:19:16 -05:00
Matt Rubens
65a2a2cbd1 Update architect prompt 2025-03-01 18:10:33 -05:00
Matt Rubens
2a7edc9a40 Add support for Mermaid diagrams 2025-03-01 18:03:28 -05:00
ShayBC
b7be8ba897 Merge remote-tracking branch 'upstream/main' into sbc_add_subtasks 2025-03-01 21:15:43 +02:00
ShayBC
44185198e6 added 500ms delay after modeSwitch to avoid a bug of running subtask before mode switch is actualy performed, also treated state of command execution where a call to finishSubtask was missing 2025-03-01 20:00:29 +02:00
Chris Estreich
520d467b04
Merge pull request #1291 from RooVetGit/cte/fix-marketplace-publish 2025-03-01 08:34:28 -08:00
Chris Estreich
f4a6f06a28 Fix "install dependencies" section of marketplace-publish 2025-03-01 08:18:43 -08:00
Matt Rubens
d7e8c2e0a1
Merge pull request #1264 from RooVetGit/changeset-release/main
Changeset version bump
2025-03-01 10:24:56 -05:00
Matt Rubens
574348d963
Update CHANGELOG.md 2025-03-01 10:22:13 -05:00
github-actions[bot]
163528eee9 changeset version bump 2025-03-01 15:15:46 +00:00
Matt Rubens
a242eedf67
Merge pull request #1290 from RooVetGit/dynamic_buffer
Add a dynamic token buffer
2025-03-01 10:14:47 -05:00
Matt Rubens
a0684454a2 Add a dynamic token buffer 2025-03-01 10:10:24 -05:00
aheizi
251b83629a feat: add shortcut to switch modes 2025-03-01 22:58:55 +08:00
Matt Rubens
8df6bdf0a7
Merge pull request #1289 from RooVetGit/truncation_token_buffer
Add a 5k token buffer before the end of the context window
2025-03-01 09:37:17 -05:00
ShayBC
c8ec2b6b70 Merge remote-tracking branch 'upstream/main' into sbc_add_subtasks 2025-03-01 16:32:18 +02:00
ShayBC
997f7bbe8a Improve error handling and messaging in Cline class and ClineProvider, removed unnecessary resume_task ask, added abandond=true flag to the abort() call. no more error in log due to resume task 2025-03-01 16:30:46 +02:00
Matt Rubens
764d963c10 Add a 5k token buffer before the end of the context window 2025-03-01 08:49:10 -05:00
Matt Rubens
2a7be4b0fc
Merge pull request #1277 from RooVetGit/mrubens-patch-4
Update ChatView.tsx
2025-03-01 07:25:10 -05:00
Chris Estreich
9be2f06b13
Merge pull request #1275 from RooVetGit/last_message_tokens
Estimate the number of tokens in the last message for sliding window math
2025-02-28 21:44:18 -08:00
Chris Estreich
e009d5f14c Fix e2e test paths 2025-02-28 21:40:47 -08:00
Chris Estreich
481d613bc8 Estimate the number of tokens in the last message for sliding window math 2025-02-28 21:34:53 -08:00
Chris Estreich
b3c1a9f89c
Merge pull request #1279 from RooVetGit/cte/decouple-integration-tests
Move integration tests into its own module
2025-02-28 21:27:18 -08:00
Chris Estreich
1d3f5380a8 Move integration tests into its own module 2025-02-28 21:23:11 -08:00
ashktn
4caa49228f feat: Add support for Gemini models on Vertex AI 2025-02-28 18:59:26 -05:00
ShayBC
41ddb7d583 Resolved merge conflicts 2025-03-01 01:10:27 +02:00
Matt Rubens
4570ead71f
Update ChatView.tsx 2025-02-28 17:17:19 -05:00
Chris Estreich
2773208d06
Merge pull request #1276 from RooVetGit/cte/re-enable-tests 2025-02-28 12:07:32 -08:00
Chris Estreich
55466c9d6a
Merge pull request #1268 from feifei325/optimize-task-id-init
Optimize Task ID Initialization Order
2025-02-28 11:15:07 -08:00
Chris Estreich
e49d886d63 Re-enable tests 2025-02-28 10:21:52 -08:00
Chris Estreich
21b883b59b
Merge pull request #1236 from RooVetGit/cte/fix-terminal-output-parsing
Fix TerminalProcess output parsing
2025-02-28 10:18:07 -08:00
Chris Estreich
390932ea68
Merge pull request #1262 from RooVetGit/cte/lower-default-max-tokens
Fix maxTokens defaults for Claude 3.7 Sonnet models
2025-02-28 09:51:13 -08:00
Chris Estreich
4b66ce8255 Improve terminal command execution output parsing 2025-02-28 09:38:48 -08:00
Matt Rubens
7d60cc6f60
Merge pull request #1272 from RooVetGit/pr-template
Update pull_request_template.md
2025-02-28 12:31:05 -05:00
Matt Rubens
87785bb750
Update pull_request_template.md 2025-02-28 10:35:38 -05:00
Matt Rubens
6bdca5e69d
Update pull_request_template.md 2025-02-28 10:30:37 -05:00
Matt Rubens
1750247bca
Merge pull request #1271 from SamirSaji/bug/light-mood-dropdown-hover-color-fix
Fix: Resolve issue #1146 - UI color in 'light' mode causes dark background on dark text (context menu)
2025-02-28 10:22:11 -05:00
samir-nimbly
2773d39153 fix: dropdown hover color fix for white themes 2025-02-28 20:05:31 +05:30
yansheng3
0a81853d84 Optimize Task ID Initialization Order
Signed-off-by: yansheng3 <yansheng3@staff.weibo.com>
2025-02-28 19:28:45 +08:00
Felix NyxJae
8a5f16cbf2
Merge branch 'RooVetGit:main' into human-relay 2025-02-28 17:41:05 +08:00
Chris Estreich
31d2d17847 Fix maxTokens defaults for Claude 3.7 Sonnet models 2025-02-28 01:15:44 -08:00
Chris Estreich
e1836f81d7
Merge pull request #1248 from RooVetGit/cte/consistent-history-copy
Make the copy action on history and history preview consistent
2025-02-28 01:12:53 -08:00
Chris Estreich
9b30065231 Make the copy action on history and history preview consistent 2025-02-28 08:25:04 -08:00
Chris Estreich
8fa770e9ea
Merge pull request #1256 from RooVetGit/cte/pretty-thinking
Prettier thinking blocks
2025-02-28 01:10:51 -08:00
Chris Estreich
360e47d641 Add changeset 2025-02-28 09:09:42 -08:00
Chris Estreich
b3fd1a2e23 Prettier thinking blocks 2025-02-28 09:08:58 -08:00
Chris Estreich
b6a9bc9d98
Merge pull request #1245 from RooVetGit/cte/delete-confirmation-enhancements
Delete task confirmation enhancements
2025-02-27 23:47:51 -08:00
Felix NyxJae
aceeb0b5c5 chore: Restore .gitignore, remove unnecessary file rules 2025-02-28 14:53:54 +08:00
Chris Estreich
21fed4cb79 Delete task confirmation enhancements 2025-02-27 22:26:13 -08:00
Felix NyxJae
db65520adb fix: Fixed human relay dialog message processing, optimized type use 2025-02-28 12:32:06 +08:00
ShayBC
c04adc6dcb added error message back to the parent task in cases user stops, cancel or delete the subtask, to allow the parent task to resume and think how to continue 2025-02-28 06:19:13 +02:00
Felix NyxJae
156fe0d9fb fix: Optimize panel management, support panel references for sidebar and tab types 2025-02-28 12:06:39 +08:00
ShayBC
2c813663f2 added connection between task to its parent and root parent + adjusted cline mock in the provider test 2025-02-28 05:43:27 +02:00
Felix NyxJae
1ae4eaa80e fix: Update comments to the human relay 2025-02-28 11:42:45 +08:00
Felix NyxJae
38c09d09d6 fix: Fix the human relay dialog function and optimize user interaction experience 2025-02-28 10:54:25 +08:00
ShayBC
b1dae213c5 removed cline instance type check to allow mocks 2025-02-28 04:54:14 +02:00
ShayBC
5651b35f89 added logs, error handling, and added console.log to the provider log method 2025-02-28 04:41:19 +02:00
ShayBC
03e0aa545b Resolved merge conflicts in Cline.ts and ClineProvider.ts 2025-02-28 03:33:13 +02:00
Chris Estreich
8fae1ca975
Merge pull request #1257 from RooVetGit/cte/unify-thinking-budget-setting 2025-02-27 17:04:45 -08:00
cte
8cbce2ded0 Add provider-agnostic modelMaxThinkingTokens setting 2025-02-27 16:06:47 -08:00
Chris Estreich
54c687485b
Merge pull request #1254 from lupuletic/added-new-thinking-support
Added support for Claude Sonnet 3.7 thinking via Vertex AI
2025-02-27 15:51:58 -08:00
Catalin Lupuleti
dd4fb6b309
Update src/shared/globalState.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-27 22:45:12 +00:00
Catalin Lupuleti
87b70cef83 Removed unnecessary comment 2025-02-27 22:20:35 +00:00
Catalin Lupuleti
2b3d23ebd7
Update src/shared/globalState.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-27 22:17:09 +00:00
Catalin Lupuleti
5eba1d53fb Added tests for Claude Sonnet Thinking 2025-02-27 22:15:17 +00:00
Catalin Lupuleti
3514f6506b Added support for Claude Sonnet 3.7 thinking via Vertex AI 2025-02-27 21:56:56 +00:00
ShayBC
c8b78dc7bf add support ro save paused tasks mode and change back to it once the task is resumed, also added subtasks logging 2025-02-27 23:33:54 +02:00
Matt Rubens
277175f375
Merge pull request #1253 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-27 16:10:12 -05:00
Matt Rubens
75e7ef728d
Update CHANGELOG.md 2025-02-27 16:09:28 -05:00
Matt Rubens
3d0e054c56
Merge pull request #1249 from RooVetGit/custom_system_prompt
Allow users to set custom system prompts
2025-02-27 15:57:16 -05:00
R00-B0T
ca7d746990 Updating CHANGELOG.md format 2025-02-27 20:41:50 +00:00
github-actions[bot]
820ebc97c5 changeset version bump 2025-02-27 20:41:23 +00:00
Matt Rubens
203b1add84
Merge pull request #1250 from RooVetGit/gpt_4_5_preview
Add gpt-4.5-preview
2025-02-27 15:40:36 -05:00
Matt Rubens
e7769cea57 Add gpt-4.5-preview 2025-02-27 15:30:04 -05:00
Chris Estreich
22ec3b21fe
Merge pull request #1244 from lupuletic/add-cache-costs-vertex-ai
Added cache costs for Claude Sonnet 3.7 via Vertex AI
2025-02-27 12:03:55 -08:00
Matt Rubens
1f0211ee64 Allow users to set custom system prompts 2025-02-27 15:03:26 -05:00
Chris Estreich
02c955e1e6
Merge pull request #961 from aitoroses/feat/vertex-prompt-caching
Add Vertex AI prompt caching support for Claude models
2025-02-27 12:03:20 -08:00
Catalin Lupuleti
eec1769b6b Added cache costs for Claude Sonnet 3.7 via Vertex AI 2025-02-27 18:56:28 +00:00
Matt Rubens
2c535d948b
Merge pull request #1230 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-27 11:02:33 -05:00
Matt Rubens
4786815fe8
Update CHANGELOG.md 2025-02-27 11:02:13 -05:00
github-actions[bot]
8612ab574b changeset version bump 2025-02-27 15:56:03 +00:00
Matt Rubens
58f47deec4
Merge pull request #1242 from RooVetGit/v3.7.7
v3.7.7
2025-02-27 10:55:12 -05:00
Matt Rubens
5efb3c10d8
Merge pull request #1240 from RooVetGit/revert-1228-stop_removing_commas_from_terminal_output
Revert "Stop removing commas from terminal output"
2025-02-27 09:51:38 -05:00
Matt Rubens
dc83617b4d
Revert "Stop removing commas from terminal output" 2025-02-27 09:51:05 -05:00
Matt Rubens
210afc681e v3.7.7 2025-02-27 09:44:50 -05:00
Matt Rubens
8f7814be92
Merge pull request #1237 from RooVetGit/cte/fix-anthropic-complete-prompt
Fix AnthropicHandler#completePrompt
2025-02-27 09:41:11 -05:00
Matt Rubens
2e9c808e63
Merge pull request #1232 from RooVetGit/enable_checkpoints
Graduate checkpoints out of beta
2025-02-27 09:37:52 -05:00
cte
d66b5d2db6 Fix tests 2025-02-27 02:40:39 -08:00
cte
0b583ed15e Fix AnthropicHandler#completePrompt 2025-02-27 02:34:14 -08:00
Felix NyxJae
3bb1d78c17 feat: Added human relay function and related message processing initial version 2025-02-27 18:08:05 +08:00
Aitor Oses
ea38d9ebba Enable prompt caching for Claude Sonnet 3.7 Vertex AI model 2025-02-27 09:04:54 +01:00
Aitor Oses
4d22ae53fb Merge remote-tracking branch 'upstream/main' into feat/vertex-prompt-caching 2025-02-27 08:55:06 +01:00
Matt Rubens
0c44241b87
Merge pull request #1231 from dleffel/bugfix/missing-tooltips
Fix missing tooltips in several components.
2025-02-27 01:48:16 -05:00
Matt Rubens
10c6f8fb67 Graduate checkpoints out of beta 2025-02-27 01:35:50 -05:00
dleffel
4806ab5420 Fix missing tooltips in several components. 2025-02-26 21:34:56 -08:00
Matt Rubens
44308630eb
Merge pull request #1228 from RooVetGit/stop_removing_commas_from_terminal_output
Stop removing commas from terminal output
2025-02-27 00:05:02 -05:00
Matt Rubens
5c5bf85020 Stop removing commas from terminal output 2025-02-26 21:36:19 -05:00
Matt Rubens
931af8fcc4
Merge pull request #1218 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-26 18:48:00 -05:00
Matt Rubens
4f578dc826
Update CHANGELOG.md 2025-02-26 18:47:22 -05:00
github-actions[bot]
247a50a6dc changeset version bump 2025-02-26 23:17:23 +00:00
Matt Rubens
75ecca925e
Merge pull request #1224 from RooVetGit/fix_search_files
Truncate results from search_files to 500 chars max
2025-02-26 18:16:30 -05:00
Chris Estreich
4fac3daad1
Merge pull request #1217 from RooVetGit/cte/control-max-tokens 2025-02-26 15:12:30 -08:00
ShayBC
f835b8c3e2 Merge remote-tracking branch 'upstream/main' into sbc_add_subtasks 2025-02-27 01:03:44 +02:00
Matt Rubens
dfa019e7f4 Truncate results from search_files to 500 chars max 2025-02-26 17:50:04 -05:00
Chris Estreich
cf69b0fff9 Add changeset 2025-02-26 14:26:27 -08:00
ShayBC
73c7fe777b refactored ClineProvider.test 2025-02-27 00:24:54 +02:00
Chris Estreich
5e53d00ebc Allow control over maxTokens for thinking models 2025-02-26 14:23:11 -08:00
Matt Rubens
28cdf0e838
Merge pull request #1221 from RooVetGit/multi_file_drag_drop
Support multiple files in drag-and-drop
2025-02-26 16:13:54 -05:00
Matt Rubens
a4e58700ce Support multiple files in drag-and-drop 2025-02-26 16:04:32 -05:00
Matt Rubens
8faac4f734
Merge pull request #1219 from RooVetGit/better_open_router_error_handling
Better OpenRouter error handling
2025-02-26 14:00:06 -05:00
Matt Rubens
d7266be3fe Better OpenRouter error handling 2025-02-26 13:52:59 -05:00
Chris Estreich
0c884f13ea
Merge pull request #1216 from RooVetGit/jm/fix-overflow
Fix long strings correctly in ChatRow
2025-02-26 09:46:56 -08:00
Joe Manley
f7d59e0fbc Add changeset 2025-02-26 09:41:57 -08:00
Joe Manley
78d5af491a Fix long strings correctly in ChatRow 2025-02-26 09:32:13 -08:00
ShayBC
bf710fbe93 Merge branch 'main' into sbc_add_subtasks 2025-02-26 13:42:47 +02:00
shaybc
a8d1fbbbf0
Merge pull request #1 from RooVetGit/main
Syncing sbc-roo-code main branch
2025-02-26 13:41:01 +02:00
ShayBC
4095c16d32 Merge branch 'main' of https://github.com/RooVetGit/Roo-Code into sbc_add_subtasks 2025-02-26 12:49:19 +02:00
ShayBC
36cfa31d20 try to fix test 2025-02-26 12:28:01 +02:00
Chris Estreich
12f0e4206b
Merge pull request #1196 from RooVetGit/changeset-release/main
v3.7.5
2025-02-25 23:28:37 -08:00
cte
da1b31765e Update CHANGELOG 2025-02-25 23:13:52 -08:00
cte
319f16eb0a Update CHANGELOG 2025-02-25 23:11:42 -08:00
github-actions[bot]
44724e5881 changeset version bump 2025-02-26 07:06:25 +00:00
Chris Estreich
bdc96a0681
Merge pull request #1202 from RooVetGit/cte/fix-model-picker
Fix model picker
2025-02-25 23:05:37 -08:00
Chris Estreich
904f369574
Merge pull request #1198 from RooVetGit/v3.7.5
V3.7.5
2025-02-25 23:04:59 -08:00
cte
41e75bc989 Model picker fixes 2025-02-25 23:02:43 -08:00
Chris Estreich
3860abf855
Merge pull request #1122 from System233/patch-model-picker
fix: ModelID cannot be saved and refactor ModelPicker
2025-02-25 19:18:36 -08:00
Matt Rubens
6d38e346d6
Merge pull request #1201 from System233/patch-input-output-price
Fix: Input/output prices should be parsed using parseFloat
2025-02-25 19:53:10 -05:00
System233
f3d02030ac Fix: Input/output prices should be parsed using parseFloat 2025-02-26 08:37:28 +08:00
Chris Estreich
ebe294bec1
Merge pull request #1200 from RooVetGit/cte/thinking-tweaks
Thinking settings tweaks
2025-02-25 16:31:06 -08:00
cte
33fd3bd6b3 Fix budgetTokens 2025-02-25 16:26:40 -08:00
cte
8971e47b96 Add changeset 2025-02-25 15:53:32 -08:00
cte
e56908f6c1 Thinking settings tweaks 2025-02-25 15:48:20 -08:00
Matt Rubens
1f868007a9
Merge pull request #1199 from RooVetGit/mrubens-patch-4
Update package.json
2025-02-25 18:31:28 -05:00
Matt Rubens
05151ed225
Update package.json 2025-02-25 18:30:37 -05:00
System233
48975003af Remove ModelInfo related exports from ExtensionStateContext 2025-02-26 06:59:32 +08:00
System233
1a3b8700ba Improved error message feedback in settings panel 2025-02-26 06:59:23 +08:00
System233
f065f039be Fixed the issue that Model ID cannot be saved 2025-02-26 06:58:17 +08:00
Matt Rubens
8ec903dd8d Fix typo 2025-02-25 17:58:04 -05:00
Matt Rubens
8a189aff2c v3.7.5 2025-02-25 17:57:33 -05:00
Chris Estreich
06f98ca13a
Merge pull request #1195 from RooVetGit/cte/openrouter-claude-thinking
Support Claude 3.7 Sonnet "Thinking" in OpenRouter
2025-02-25 13:30:27 -08:00
Chris Estreich
69bcd2e340 Merge branch 'main' into cte/openrouter-claude-thinking 2025-02-25 13:28:27 -08:00
Chris Estreich
17f0a5d961
Merge pull request #1192 from RooVetGit/cte/move-model-fetchers
Move & clean up model fetchers
2025-02-25 13:26:39 -08:00
Chris Estreich
28e18a6192 Remove logging 2025-02-25 13:22:24 -08:00
Chris Estreich
7f1c6d7079 Merge branch 'cte/move-model-fetchers' into cte/openrouter-claude-thinking 2025-02-25 13:21:08 -08:00
Chris Estreich
50ce955048 Merge branch 'main' into cte/move-model-fetchers 2025-02-25 13:06:30 -08:00
Matt Rubens
199b6eaec1
Merge pull request #1190 from RooVetGit/file_drag_drop
File drag and drop
2025-02-25 16:02:50 -05:00
Chris Estreich
392a237985 Support Claude 3.7 Sonnet "Thinking" in OpenRouter 2025-02-25 12:58:03 -08:00
Matt Rubens
8a3b8d1b3c Changeset 2025-02-25 15:54:15 -05:00
Matt Rubens
3592539fe5 PR feedback 2025-02-25 15:53:30 -05:00
Matt Rubens
46576e00aa
Merge pull request #1194 from RooVetGit/fix_context_window_truncation_math
Fix context window truncation math
2025-02-25 15:52:48 -05:00
Matt Rubens
77a6e2be6d File drag and drop 2025-02-25 15:49:38 -05:00
Matt Rubens
91ef9fbdb3 Clean up maxTokens logic 2025-02-25 15:29:57 -05:00
Matt Rubens
d8cafbc67e Simplify the context truncation math 2025-02-25 15:29:56 -05:00
Chris Estreich
159621cea6 Move & clean up model fetchers 2025-02-25 11:35:24 -08:00
System233
d5b796263d Add a combobox component with auto-complete functionality 2025-02-26 02:44:57 +08:00
Aitor Oses
9b267e9afc Add Vertex AI prompt caching support and enhance streaming handling
- Implemented comprehensive prompt caching strategy for Vertex AI models
- Added support for caching system prompts and user message text blocks
- Enhanced stream processing to handle cache-related usage metrics
- Updated model configurations to enable prompt caching
- Improved type definitions for Vertex AI message handling
2025-02-25 15:30:10 +01:00
Matt Rubens
82b282ba01
Merge pull request #1183 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-25 09:20:37 -05:00
R00-B0T
df4d2a549c Updating CHANGELOG.md format 2025-02-25 14:19:45 +00:00
github-actions[bot]
53ead4c886 changeset version bump 2025-02-25 14:19:17 +00:00
Matt Rubens
64baa95868
Merge pull request #1180 from RooVetGit/cte/fix-thinking-setting
Properly reset thinking setting when changing profiles
2025-02-25 09:15:40 -05:00
cte
3621deb725 Add changeset 2025-02-25 01:04:31 -08:00
cte
c6092ce170 Properly reset thinking setting when changing profiles 2025-02-25 01:03:12 -08:00
Chris Estreich
30c1c2549a
Merge pull request #1176 from RooVetGit/changeset-release/main
v3.7.3
2025-02-25 00:07:33 -08:00
Chris Estreich
613f74b717
Update CHANGELOG.md 2025-02-25 00:05:04 -08:00
Chris Estreich
be7f71c498
Update CHANGELOG.md 2025-02-24 23:58:45 -08:00
R00-B0T
8ba179d3b0 Updating CHANGELOG.md format 2025-02-25 07:58:01 +00:00
github-actions[bot]
2655bebc8f changeset version bump 2025-02-25 07:57:37 +00:00
Chris Estreich
37a9f657c2
Merge pull request #1175 from RooVetGit/cte/v3.7.3
v3.7.3
2025-02-24 23:56:42 -08:00
cte
6c6087e9a2 v3.7.3 2025-02-24 23:53:01 -08:00
ShayBC
1ff403d5ea fixed 2 more places in ClineProvider.test that needed cline mocks (setTaskNumber, getTaskNumber) 2025-02-25 09:31:04 +02:00
ShayBC
4744f7f231 fixed ClineProvider.test.ts to include cline.getTaskNumber and cline.setTaskNumber mock 2025-02-25 09:20:43 +02:00
ShayBC
8dc8ec32d3 Fix dependencies and update TaskHeader 2025-02-25 09:01:50 +02:00
ShayBC
dcde2e06f8 Merge branch 'main' of https://github.com/RooVetGit/Roo-Code into sbc_add_subtasks 2025-02-25 08:48:00 +02:00
Chris Estreich
6763824b5b
Merge pull request #1167 from RooVetGit/cte/claude-3.7-thinking
Claude 3.7 thinking
2025-02-24 22:27:59 -08:00
Chris Estreich
37cc993399
Update webview-ui/src/components/settings/SettingsView.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-24 22:22:07 -08:00
Chris Estreich
4dd9972c41
Update webview-ui/src/components/settings/ApiOptions.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-24 22:21:44 -08:00
cte
fc4d50100e Remove console.log 2025-02-24 22:19:05 -08:00
cte
52030b12e1 Remove unused code 2025-02-24 22:13:45 -08:00
cte
09902904f3 Persist anthropicThinking 2025-02-24 22:08:14 -08:00
cte
849f8bf8e8 Add tests 2025-02-24 21:13:23 -08:00
cte
42108193c7 Add tests, remove unused code 2025-02-24 21:08:08 -08:00
cte
bf1aa4c7b2 Add settings 2025-02-24 16:47:27 -08:00
Matt Rubens
8ae4fb0198
Merge pull request #1166 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-24 18:17:19 -06:00
cte
543b68f785 Fix tests 2025-02-24 16:09:31 -08:00
Matt Rubens
83a9097136
Update CHANGELOG.md 2025-02-24 18:00:03 -06:00
Matt Rubens
f69e9c16b3
Update CHANGELOG.md 2025-02-24 17:58:48 -06:00
cte
22391e5011 Fix type errors 2025-02-24 15:55:04 -08:00
R00-B0T
6a4e4ec8b2 Updating CHANGELOG.md format 2025-02-24 23:53:47 +00:00
github-actions[bot]
972b5424ec changeset version bump 2025-02-24 23:53:22 +00:00
Matt Rubens
1fa4fad68d
Merge pull request #1164 from RooVetGit/3.7.2
v3.7.2
2025-02-24 17:52:30 -06:00
cte
b2b135c05c [WIP] Claude 3.7 Sonnet (Thinking) 2025-02-24 15:45:26 -08:00
Matt Rubens
aa98734cba v3.7.2 2025-02-24 17:44:45 -06:00
Chris Estreich
9a56e15e6e
Merge pull request #1162 from RooVetGit/cte/sliding-window-fix
Sliding window fix
2025-02-24 15:42:10 -08:00
cte
6245aa7629 Add tests 2025-02-24 15:40:31 -08:00
cte
c9713ea40a Fix labels for anthropic/claude-3.7-sonnet:beta 2025-02-24 15:10:53 -08:00
cte
1d67f88aba Sliding window fix 2025-02-24 15:09:46 -08:00
Matt Rubens
4c5045dd92
Merge pull request #1153 from hannesrudolph/tweak-system-prompt
Changes to increase adherence to diff edits
2025-02-24 16:32:48 -06:00
Roo Code
de54a55d22 Update test cases for capabilities section to match new tool order 2025-02-24 15:15:48 -07:00
Matt Rubens
70c9cbdbfc
Merge pull request #1160 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-24 15:59:57 -06:00
Matt Rubens
076861f8de
Update CHANGELOG.md 2025-02-24 15:59:22 -06:00
R00-B0T
d01370370e Updating CHANGELOG.md format 2025-02-24 21:58:34 +00:00
github-actions[bot]
a890d3d131 changeset version bump 2025-02-24 21:58:10 +00:00
Matt Rubens
ad342e2b60
Merge pull request #1158 from RooVetGit/v3.7.1
v3.7.1
2025-02-24 15:57:27 -06:00
Matt Rubens
3f68a9c3c6 v3.7.1 2025-02-24 15:56:29 -06:00
Matt Rubens
99bc132a35
Merge pull request #1157 from RooVetGit/readme_updates
README updates
2025-02-24 15:52:37 -06:00
Matt Rubens
2f877c5ffe
Merge pull request #1156 from RooVetGit/add_claude_3_7_to_bedrock
Add Claude 3.7 to Bedrock
2025-02-24 15:51:10 -06:00
Chris Estreich
2612c6a4c1
Merge pull request #1154 from RooVetGit/cte/claude-3.7-default
Default to Claude 3.7 where appropriate
2025-02-24 13:50:46 -08:00
Matt Rubens
cb9077f7dc README updates 2025-02-24 15:49:50 -06:00
cte
b24a335503 Set maxTokens to 64K for Anthropic / 3.7 Sonnet 2025-02-24 13:48:47 -08:00
cte
1d1f5c9c3b Integration test cleanup 2025-02-24 13:43:47 -08:00
Matt Rubens
92131adc6d Add Claude 3.7 to Bedrock 2025-02-24 15:35:00 -06:00
cte
a130e656f1 Fix tests 2025-02-24 13:07:00 -08:00
ShayBC
01765995ad added task no indicator + improved deleteTask code 2025-02-24 23:00:11 +02:00
cte
d94067aba8 Revert maxTokens change for now 2025-02-24 12:54:05 -08:00
cte
0e644f102f Default to Claude 3.7 where appropriate 2025-02-24 12:48:55 -08:00
Roo Code
35a56a9918 Reorder tool groups and update tool usage instructions to always mention apply_diff before write_to_file 2025-02-24 13:27:05 -07:00
Matt Rubens
9897442571
Merge pull request #1136 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-24 13:53:33 -06:00
Matt Rubens
3845338702
Update package-lock.json 2025-02-24 13:48:53 -06:00
Matt Rubens
8b28189850
Update package.json 2025-02-24 13:48:10 -06:00
Matt Rubens
9a41763dbb
Update CHANGELOG.md 2025-02-24 13:47:55 -06:00
github-actions[bot]
158b9d4659 changeset version bump 2025-02-24 19:42:40 +00:00
Matt Rubens
c17d54e272
Merge pull request #1152 from RooVetGit/3.7
3.7
2025-02-24 13:41:50 -06:00
Matt Rubens
30b10c4e26 3.7 2025-02-24 13:39:08 -06:00
Matt Rubens
e36d2e3588
Merge pull request #1150 from RooVetGit/revert_tool_changes
Revert "Merge pull request #1125 from hannesrudolph/change_order_appl…
2025-02-24 13:35:37 -06:00
Chris Estreich
645d069c08
Merge pull request #1149 from RooVetGit/cte/claude-3.7
Add Claude 3.7
2025-02-24 11:35:00 -08:00
cte
c677a450d1 Fix maxTokens 2025-02-24 11:30:15 -08:00
Matt Rubens
08aa911e13 Revert "Merge pull request #1125 from hannesrudolph/change_order_apply_diff"
This reverts commit dddac90721, reversing
changes made to 1c9dcaddc4.
2025-02-24 13:25:33 -06:00
Matt Rubens
4bc02da1c4
Merge pull request #1148 from lupuletic/add-sonnet-3.7-vertex-ai
Added support for Claude Sonnet 3.7 via VertexAI
2025-02-24 13:16:28 -06:00
cte
92ac610366 Add Claude 3.7 2025-02-24 11:14:08 -08:00
Catalin Lupuleti
39715f13e1 Added support for Claude sonnet 3.7 via VertexAI 2025-02-24 19:05:05 +00:00
Chris Estreich
656ab2f7a0
Merge pull request #1100 from mosleyit/improvement/task_delete_confirmation_854
Improvement/task delete confirmation 854
2025-02-24 10:03:51 -08:00
EMSHVAC
1922b8aea9 test: update HistoryView delete task test to handle confirmation dialog 2025-02-24 11:54:10 -06:00
mosleyit
fc660a52e5
Merge branch 'RooVetGit:main' into improvement/task_delete_confirmation_854 2025-02-24 11:50:55 -06:00
Chris Estreich
91ca35ddc8
Merge pull request #1139 from RooVetGit/cte/cline-options
Add a ClineOptions type
2025-02-23 22:20:05 -08:00
cte
b82a81c826 Add a ClineOptions type 2025-02-23 21:59:21 -08:00
Chris Estreich
9dbfeefa72
Merge pull request #1131 from RooVetGit/cte/debug-tests
Debug test flakes
2025-02-23 21:40:53 -08:00
cte
40a86b1f70 Debug test flakes 2025-02-23 21:16:43 -08:00
Matt Rubens
3994d81599
Merge pull request #1137 from RooVetGit/revert-1135-add_task_to_power_steering
Revert "Include the original task in the power steering content"
2025-02-24 00:06:44 -05:00
Matt Rubens
5a6ca2bef1
Revert "Include the original task in the power steering content" 2025-02-23 23:04:22 -06:00
Matt Rubens
5186b27e3e
Merge pull request #1135 from RooVetGit/add_task_to_power_steering
Include the original task in the power steering content
2025-02-23 23:30:30 -05:00
Matt Rubens
86896a8865 Include the original task in the power steering content 2025-02-23 22:09:12 -06:00
ShayBC
655930cf5f added getClineStackSize() to ClineProvider and fixed its tests 2025-02-24 00:27:40 +02:00
Chris Estreich
e413a59ae0
Merge pull request #1128 from RooVetGit/cte/stabilize-tests-in-ci 2025-02-23 08:45:02 -08:00
Matt Rubens
02f17b5532
Merge pull request #1130 from RooVetGit/chore/updateCodeOwners
Updating CODEOWNERS to better reflect the current state
2025-02-23 11:17:47 -05:00
John Stearns
873720f0a7 Updating CODEOWNERS to better reflect the current state 2025-02-23 08:12:03 -08:00
cte
f11c0afa1e Stabilize tests in CI 2025-02-23 02:28:10 -08:00
Matt Rubens
20f9073204 Change response to be a user message 2025-02-23 02:20:36 -05:00
Matt Rubens
47fc679413
Merge pull request #1126 from RooVetGit/knip
Add Knip check for unused files
2025-02-23 01:06:16 -05:00
Matt Rubens
816847c5c0 Add Knip check for unused files 2025-02-23 01:01:51 -05:00
Matt Rubens
dddac90721
Merge pull request #1125 from hannesrudolph/change_order_apply_diff
Improved diff editing use consistency
2025-02-23 00:54:51 -05:00
ShayBC
87f6ac4d06 pass last message of a subtask to parent task 2025-02-23 05:15:23 +02:00
Roo Code
6225994a7c Rename 'write_to_file' tool to 'create_file' across codebase and fixed tests 2025-02-22 20:02:17 -07:00
Roo Code
e134e544a6 Rename 'apply_diff' tool to 'edit_file' across codebase 2025-02-22 18:30:10 -07:00
Roo Code
24d52809d7 Reorder tool groups and update tool usage instructions to always mention apply_diff before write_to_file 2025-02-22 16:38:46 -07:00
ShayBC
c3c3874593 subtasks alpha version (still in development) 2025-02-22 23:52:13 +02:00
Matt Rubens
1c9dcaddc4
Merge pull request #1117 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-22 00:13:11 -05:00
Matt Rubens
0f457632df
Update CHANGELOG.md 2025-02-22 00:12:28 -05:00
R00-B0T
336b822d8e Updating CHANGELOG.md format 2025-02-22 05:10:19 +00:00
github-actions[bot]
b06d4b2a8a changeset version bump 2025-02-22 05:09:52 +00:00
Matt Rubens
d9edf9477b
Merge pull request #1116 from RooVetGit/tweak_debug_prompt
Tweak the debug prompt
2025-02-22 00:09:08 -05:00
Matt Rubens
6e55470155 Tweak the debug prompt 2025-02-22 00:06:48 -05:00
Matt Rubens
99a97f379b
Merge pull request #1114 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-21 20:20:07 -05:00
Matt Rubens
b3229a9018
Update CHANGELOG.md 2025-02-21 20:19:17 -05:00
R00-B0T
e86e2a9047 Updating CHANGELOG.md format 2025-02-22 00:57:47 +00:00
github-actions[bot]
ec7f11a592 changeset version bump 2025-02-22 00:57:22 +00:00
Matt Rubens
655b3a11a0
Merge pull request #1113 from RooVetGit/debugger_mode
Debugger mode
2025-02-21 19:56:32 -05:00
Matt Rubens
c0090952d6
Update experiments.test.ts 2025-02-21 19:53:05 -05:00
Matt Rubens
6d7f4d92fc
Update experiments.ts 2025-02-21 19:48:37 -05:00
Matt Rubens
7f1579a74d Changeset 2025-02-21 19:46:01 -05:00
Matt Rubens
97b67928f0 Add tests 2025-02-21 19:45:29 -05:00
Matt Rubens
df46f60117 Power steering 2025-02-21 19:45:29 -05:00
Matt Rubens
c4bc1c0861 Add debugger mode 2025-02-21 19:45:29 -05:00
Matt Rubens
ba3c29f1cc
Merge pull request #1112 from RooVetGit/skip_flaky_tests
Skip flaky tests and suppress logging to get back to clean output
2025-02-21 17:58:51 -05:00
Matt Rubens
68aee001fc Skip flaky tests and suppress logging to get back to clean output 2025-02-21 17:51:48 -05:00
Matt Rubens
03cc62e2f0
Merge pull request #1111 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-21 17:35:16 -05:00
Matt Rubens
6e7085aad3
Update CHANGELOG.md 2025-02-21 17:32:54 -05:00
github-actions[bot]
04009e5e26 changeset version bump 2025-02-21 22:31:48 +00:00
Matt Rubens
f8250f5749
Merge pull request #1110 from RooVetGit/v3.3.24
v3.3.24
2025-02-21 17:29:47 -05:00
Matt Rubens
2f608f736c v3.3.24 2025-02-21 17:29:10 -05:00
Matt Rubens
7bbec792be
Merge pull request #1104 from oprstchn/fix/awsbedrock-region-update
fix: Update AWS Bedrock region options
2025-02-21 11:13:28 -05:00
EMSHVAC
5a43f867fb This commit replaces the VSCode native dialog with a Radix AlertDialog component for task deletion confirmation. The change provides a more consistent user experience by using the same design system as the rest of the application.
Changes:

Add new DeleteTaskDialog component using Radix UIs AlertDialog
Update HistoryView to manage dialog state and task deletion flow
Remove VSCode native dialog from ClineProvider.ts
2025-02-21 08:46:56 -06:00
oprstchn
97b8ee3b56 fix: Update AWS Bedrock region options 2025-02-21 20:01:03 +09:00
Matt Rubens
79e5f56ccf
Merge pull request #1098 from marvijo-code/feature/gpt-4o-price-update
gpt 4o price update
2025-02-20 22:28:10 -05:00
EMSHVAC
2fd3431621 no duplicated cancel button 2025-02-20 19:04:15 -06:00
EMSHVAC
6a29a8bd99 Prevents accidental task deletions by requiring explicit user confirmation through a modal dialog. This improves the user experience by adding a safety check before performing irreversible actions. 2025-02-20 18:56:05 -06:00
Matt Rubens
de1519ad39
Merge pull request #1095 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-20 17:53:22 -05:00
Matt Rubens
05988a9212
Update CHANGELOG.md 2025-02-20 17:50:57 -05:00
Marvin Thobejane
a7c842fd9d gpt 4o price update 2025-02-21 00:11:18 +02:00
github-actions[bot]
fa8d970217 changeset version bump 2025-02-20 21:40:36 +00:00
Joe Manley
ca45c88e46
Merge pull request #1096 from RooVetGit/jm/add-changeset
Add changeset for #1093
2025-02-20 13:39:42 -08:00
Matt Rubens
259c2195e2
Merge pull request #1097 from System233/patch-setting-done
Fix settings done button with unsaved changes
2025-02-20 16:26:14 -05:00
System233
7d58fe76bb Fix settings done button with unsaved changes 2025-02-21 05:08:58 +08:00
System233
5a2f2eadc6 Revert "Fix settings done button with unsaved changes"
This reverts commit e69f27d319.
2025-02-21 05:07:02 +08:00
Joe Manley
27bff04801 Add changeset for #1093 2025-02-20 13:01:26 -08:00
Joe Manley
6ae11dddfd
Merge pull request #1093 from RooVetGit/jm/handle-directory
Handle errors more gracefully when reading custom instructions from files
2025-02-20 12:56:25 -08:00
Joe Manley
007bf18a90
Update src/core/prompts/sections/__tests__/custom-instructions.test.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-20 12:52:43 -08:00
Matt Rubens
d327c21828
Merge pull request #1090 from RooVetGit/fix_settings_done_button_with_unsaved_changes
Fix settings done button with unsaved changes
2025-02-20 15:50:22 -05:00
Joe Manley
053671e235 Appease ellipsis 2025-02-20 12:50:17 -08:00
Joe Manley
9dce0e88cd Handle errors more gracefully when reading custom instructions from files 2025-02-20 12:33:11 -08:00
Matt Rubens
e69f27d319 Fix settings done button with unsaved changes 2025-02-20 13:20:11 -05:00
Matt Rubens
7171a0ed6e
Merge pull request #1060 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-20 10:57:45 -05:00
Matt Rubens
b66685a20f
Update CHANGELOG.md 2025-02-20 10:55:59 -05:00
Matt Rubens
2461cbade3
Update CHANGELOG.md 2025-02-20 10:55:10 -05:00
github-actions[bot]
aa4e22bea5 changeset version bump 2025-02-20 15:42:53 +00:00
Matt Rubens
78521378cc
Merge pull request #1088 from RooVetGit/v3_3_22
v3.3.22
2025-02-20 10:42:00 -05:00
Matt Rubens
7738b7651a v3.3.22 2025-02-20 10:32:02 -05:00
Matt Rubens
db33696283
Merge pull request #1080 from System233/feat-ollama-deepseek-reasoning
feat: ollama-deepseek reasoning support
2025-02-20 09:39:18 -05:00
Matt Rubens
bfd5024027
Merge pull request #1082 from RooVetGit/switch_tab_unsaved_check
Warn when switching tabs with unsaved content
2025-02-19 23:33:04 -05:00
Matt Rubens
e9e8c748e8 Warn when switching tabs with unsaved content 2025-02-19 23:25:03 -05:00
Matt Rubens
e6f3bb7051
Merge pull request #1051 from System233/patch-settings-panel-rename
Fix settings panel reset during state update
2025-02-19 22:54:11 -05:00
System233
0eecda2dc3 feat: ollama-deepseek reasoning support 2025-02-20 11:50:14 +08:00
System233
eeb1e45907 Improve UI experience 2025-02-20 11:28:25 +08:00
System233
b732005d23 fix: getunbound.ai may return null 2025-02-20 10:28:29 +08:00
System233
2d34cda0ea Add icon feedback for apiErrorMessage/modelIdErrorMessage 2025-02-20 10:28:28 +08:00
System233
e5f5cbc79c Fix the sticky background color of the welcome view 2025-02-20 10:28:28 +08:00
System233
1fcdd33339 Add confirmation dialog for discarding changes. 2025-02-20 10:28:28 +08:00
System233
2036e84d9d Fix settings panel reset during state update 2025-02-20 10:28:23 +08:00
Matt Rubens
e04e41cf9b
Merge pull request #1070 from RooVetGit/custom_languages
Support entering custom languages in the preferred language chooser
2025-02-19 12:27:07 -05:00
Matt Rubens
f710ce077f Support entering custom languages in the preferred language chooser 2025-02-19 12:24:55 -05:00
Matt Rubens
ebfe57b1ee
Merge pull request #1069 from RooVetGit/auto_approve_wildcard
Allow setting a wildcard for auto-approve commands
2025-02-19 12:21:24 -05:00
Matt Rubens
c5aa775b98
Merge pull request #1072 from alarno/feature/locale-ca
Added Catalan language support
2025-02-19 11:41:38 -05:00
Albert Arnó
b415fd3d54 Added Catalan language support 2025-02-19 17:23:23 +01:00
Matt Rubens
e3ae2c41d3 Allow setting a wildcard for auto-approve commands 2025-02-19 09:39:42 -05:00
Matt Rubens
39173711ce
Merge pull request #1056 from hannesrudolph/add-delete-mcp-button
Added MCP server deletion with confirmation dialog
2025-02-18 23:35:16 -05:00
Roo Code
bfa73fb69d Does that work? 2025-02-18 21:16:16 -07:00
Matt Rubens
0b89d87a12
Merge pull request #1061 from RooVetGit/fix_copy_system_prompt
Copy the system prompt of the current mode
2025-02-18 22:34:25 -05:00
Matt Rubens
3524378bf2 Copy the system prompt of the current mode 2025-02-18 22:21:01 -05:00
Matt Rubens
89388e210c
Merge pull request #1059 from RooVetGit/create_roomodes_file_if_needed
Create .roomodes file if needed
2025-02-18 22:14:23 -05:00
Matt Rubens
1cbe7228da Create .roomodes file if needed 2025-02-18 22:09:36 -05:00
Roo Code
7bb8edf720 Added MCP server deletion with confirmation dialog
- Added delete button with trash icon to MCP server rows
- Implemented confirmation dialog using existing Dialog component
- Added "deleteMcpServer" message type to WebviewMessage interface
- Added handler in ClineProvider to process deletion:
  - Removes server from MCP settings file
  - Closes server connection
  - Updates UI to reflect changes
- Added user feedback with success/error notifications
- Ensured consistent modal design with rest of application
2025-02-18 11:19:08 -07:00
Matt Rubens
9df50b4c8d
Merge pull request #1049 from RooVetGit/update_vscodeignore
Add to .vscodeignore
2025-02-18 07:05:02 -05:00
Matt Rubens
6df2b20f2d Add to .vscodeignore 2025-02-17 23:52:40 -05:00
Matt Rubens
2e52b1c368
Merge pull request #1048 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-17 22:07:55 -05:00
Matt Rubens
9b469683a6
Update CHANGELOG.md 2025-02-17 22:07:35 -05:00
Matt Rubens
68e6694920
Update CHANGELOG.md 2025-02-17 22:06:58 -05:00
R00-B0T
811c62c7e2 Updating CHANGELOG.md format 2025-02-18 03:04:51 +00:00
github-actions[bot]
3f0a0fa66e changeset version bump 2025-02-18 03:04:22 +00:00
Matt Rubens
948d88b7ed
Merge pull request #1047 from RooVetGit/v3.3.21
v3.3.21
2025-02-17 22:02:45 -05:00
Matt Rubens
774a122b57 v3.3.21 2025-02-17 21:31:40 -05:00
Matt Rubens
a55939e731
Merge pull request #1042 from System233/patch-default-preferred-language
Fix default value assignment for preferredLanguage.
2025-02-17 21:02:07 -05:00
Matt Rubens
17be7c18f8
Merge pull request #979 from System233/patch-input-boxes
Fix input box revert issue and configuration loss during profile switch #955
2025-02-17 17:05:38 -05:00
System233
bb38b4aed3 Fix default value assignment for preferredLanguage. 2025-02-18 06:00:28 +08:00
System233
7316f82838 Fix the DialogContent/DialogTitle error displayed in the console. 2025-02-18 01:14:47 +08:00
System233
d69b91082b Upgrade vscrui to 0.2.2 to fix the Dropdown component 2025-02-18 01:02:55 +08:00
System233
2943d655cf Fix input box revert issue and configuration loss during profile switch #955 2025-02-18 01:02:51 +08:00
Chris Estreich
f3d4c37b2d
Merge pull request #1025 from RooVetGit/cte/app-tabs 2025-02-17 08:20:01 -08:00
System233
2dcde02839 Revert "Add delay on submitting from welcome view"
This reverts commit 602c6efbd8.
2025-02-17 22:40:20 +08:00
System233
c4465dee8a Revert "Make sure to blur fields when user hits Done in settings"
This reverts commit 2caa320fac.
2025-02-17 22:40:16 +08:00
System233
c366a6e26e Revert "Update API options on blur instead of on input"
This reverts commit 6a8902fae4.
2025-02-17 22:37:26 +08:00
Chris Estreich
753a7acdac
Update webview-ui/src/App.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-16 12:13:09 -08:00
cte
911eb92045 Clean up tab logic in App component 2025-02-16 12:09:18 -08:00
Chris Estreich
567130bea0
Merge pull request #1012 from RooVetGit/cte/chat-ui
Chat UI
2025-02-16 10:56:01 -08:00
Matt Rubens
bc3af52e25
Merge pull request #1022 from d-oit/mistral
API Provider: Mistral
2025-02-16 11:13:42 -05:00
d.o.it
9724a8024d Add system prompt to Mistral message creation and update API key link text 2025-02-16 16:19:37 +01:00
Dominik Oswald
07fa6cc940
Merge branch 'RooVetGit:main' into mistral 2025-02-16 15:05:02 +01:00
Matt Rubens
fc6f19f0a8
Merge pull request #1008 from RooVetGit/improve_modes_prompt
Make sure the agent knows about all available modes with the correct overrides
2025-02-16 08:40:10 -05:00
Dominik Oswald
5bb1692374
Merge branch 'RooVetGit:main' into mistral 2025-02-15 20:15:36 +01:00
cte
81565ec072 Use Virtuoso 2025-02-15 10:46:26 -08:00
cte
a58ccf2c23 Merge branch 'main' into cte/chat-ui 2025-02-15 18:04:13 +00:00
Chris Estreich
38f1092b5a
Merge pull request #1009 from RooVetGit/cte/additional-shadcn-components 2025-02-15 08:36:47 -08:00
Dominik Oswald
e9f6cb4f75
Merge branch 'RooVetGit:main' into mistral 2025-02-15 14:14:12 +01:00
d.o.it
b5b6a587de fix: Set default model ID in MistralHandler options if not provided 2025-02-15 14:08:32 +01:00
cte
4898b4bb9e More cleanup 2025-02-15 02:41:15 -08:00
cte
347c69ebe6 Add GitHub-flavored Markdown support 2025-02-15 02:39:59 -08:00
cte
45bf2a0230 Composable, reusable chat interface with Markdown support + VSCode theme syntax highlighting 2025-02-15 02:11:22 -08:00
cte
d056bb89a8 Revert this 2025-02-14 23:42:13 -08:00
cte
17b9c4f968 Additional @shadcn/ui components 2025-02-14 23:41:39 -08:00
Matt Rubens
e66b0853b3 Make sure the agent knows about all available modes with the correct overrides 2025-02-15 01:13:21 -05:00
Matt Rubens
ffec4c60d4
Merge pull request #1006 from RooVetGit/terminal_context_mention
Terminal context mention
2025-02-14 22:53:39 -05:00
Matt Rubens
36bbfd917d
Merge pull request #1003 from RooVetGit/o1_streaming
Enable streaming for o1
2025-02-14 22:33:00 -05:00
Matt Rubens
fde9d9b660 Update test 2025-02-14 22:28:35 -05:00
Saoud Rizwan
17157c46cb Add terminal context mention 2025-02-14 22:27:38 -05:00
Matt Rubens
5ffb145c13 Enable streaming for o1 2025-02-14 20:58:18 -05:00
Matt Rubens
7eada8bb6d
Merge pull request #999 from d-oit/mistral
Mistral
2025-02-14 12:26:08 -05:00
d.o.it
0573643797 Merge branch 'mistral' of https://github.com/d-oit/Roo-CodeMistral into mistral 2025-02-14 17:49:00 +01:00
d.o.it
b4cf69793e feat: Add completePrompt method to MistralHandler for chat completions 2025-02-14 17:48:46 +01:00
axb
fbf65bfc6c Reduce the probability of errors when the model tries to fix the problem due to mismatched line numbers after applying diff 2025-02-15 00:04:17 +08:00
d.o.it
8842497f20 fix: Update ApiOptions to handle default model ID for codestral URLs 2025-02-14 17:03:19 +01:00
d.o.it
2fa8dc7291 fix: Set default model ID in MistralHandler if not provided 2025-02-14 17:03:05 +01:00
Matt Rubens
6c371e1152
Merge pull request #997 from RooVetGit/add_doc_link
Add link to docs to readme
2025-02-14 11:02:43 -05:00
Matt Rubens
e74b807dee Add link to docs to readme 2025-02-14 11:00:36 -05:00
Matt Rubens
e0d45ddfb0
Merge pull request #981 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-14 10:29:49 -05:00
Matt Rubens
37e3b08f69
Update CHANGELOG.md 2025-02-14 10:21:13 -05:00
github-actions[bot]
071165ce8d changeset version bump 2025-02-14 15:16:59 +00:00
Matt Rubens
0e1405e4fc
Merge pull request #995 from RooVetGit/v3.3.20
v3.3.20
2025-02-14 10:16:07 -05:00
Matt Rubens
67f428ffdb
Merge pull request #994 from RooVetGit/mrubens-patch-4
Update package.json
2025-02-14 10:14:13 -05:00
Matt Rubens
20ffdf36d7
Update package.json 2025-02-14 10:13:49 -05:00
Matt Rubens
e8c799bb26
Merge pull request #993 from RooVetGit/welcome_submit_delay
Add delay on submitting from welcome view
2025-02-14 09:59:03 -05:00
Matt Rubens
0baf259b1e v3.3.20 2025-02-14 09:58:27 -05:00
Matt Rubens
602c6efbd8 Add delay on submitting from welcome view 2025-02-14 09:51:50 -05:00
Matt Rubens
2928c802fc
Merge pull request #977 from d-oit/mistral
Additional models for mistral api provider
2025-02-14 09:28:34 -05:00
Matt Rubens
a9d8a1d00d
Merge branch 'main' into mistral 2025-02-14 09:25:34 -05:00
Matt Rubens
c815ea72a8
Merge pull request #992 from RooVetGit/new_mode_role_validation
Validate custom modes schema before creation from the UI
2025-02-14 09:14:40 -05:00
Matt Rubens
5c9fea93f5 Fix some test warnings 2025-02-14 09:10:38 -05:00
Matt Rubens
7bbf097fa8 Validate custom modes schema before creation from the UI 2025-02-14 08:54:11 -05:00
Matt Rubens
998beeed52
Merge pull request #983 from RooVetGit/roomodes
Add support for project-specific .roomodes
2025-02-13 23:40:13 -05:00
Matt Rubens
1b56be0efc Convert PromptsView to tailwind 2025-02-13 23:32:47 -05:00
Matt Rubens
7c6fe52c80 Add support for project-specific .roomodes 2025-02-13 23:14:59 -05:00
Matt Rubens
2b574fb5e1
Merge pull request #896 from nissa-seru/patch-3
Provide lint-local commands to enable use of .eslintrc.local.json supported by #871
2025-02-13 23:10:05 -05:00
Matt Rubens
0ef4cc0781
Merge pull request #986 from RooVetGit/open_tabs_context_limit
Setting for the max number of open tabs to include in context
2025-02-13 22:39:37 -05:00
Matt Rubens
0855159f70 Setting for the max number of open tabs to include in context 2025-02-13 22:23:20 -05:00
Mike C
1cea41dd13
Merge pull request #943 from RooVetGit/feature/gradingTestResponse
Feature/grading vscode test response
2025-02-13 16:30:06 -06:00
ColemanRoo
4886cb7e7d ellipsis comment update to test document 2025-02-13 16:21:34 -06:00
ColemanRoo
937c3b6c49 Remove test files list from index.ts
Update documentation
Update modes.test.ts to use PR comment suggestion for pulling out reponse grade
2025-02-13 16:08:52 -06:00
Matt Rubens
b933ce44e4
Merge pull request #985 from RooVetGit/fix_abort_mock
Fix mock of Cline.abort in tests
2025-02-13 16:41:49 -05:00
Matt Rubens
d6e775002f Fix mock of Cline.abort in tests 2025-02-13 16:38:03 -05:00
Matt Rubens
a780d70cd2
Merge pull request #975 from RooVetGit/disable_writing_in_ask_mode
Disable writing in ask mode
2025-02-13 09:11:38 -05:00
Matt Rubens
5f3ff25d6b Disable writing in ask mode 2025-02-13 01:09:45 -05:00
Matt Rubens
4a55e1439e
Merge pull request #953 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-12 23:50:39 -05:00
Matt Rubens
705adc5ece
Update CHANGELOG.md 2025-02-12 23:42:54 -05:00
github-actions[bot]
b9233f802b changeset version bump 2025-02-13 04:27:08 +00:00
Matt Rubens
f27a607d6d
Merge pull request #973 from RooVetGit/help_button
Add a help button
2025-02-12 23:26:22 -05:00
Matt Rubens
a96443090a Add a help button 2025-02-12 23:14:55 -05:00
Matt Rubens
88e3662393
Merge pull request #965 from RooVetGit/cte/logging-tweaks
Checkpoints logging tweaks
2025-02-12 19:33:27 -05:00
cte
7de31e10b0 Checkpoints logging tweaks 2025-02-12 13:27:19 -08:00
Chris Estreich
97ed646845
Merge pull request #958 from RooVetGit/cte/shadow-repo-checkpoints
Shadow repo checkpoints
2025-02-12 13:21:09 -08:00
cte
90b019f55c Shadow git checkpoints 2025-02-12 13:17:43 -08:00
ColemanRoo
1e279b4728 ellipsis comment on regex format 2025-02-12 09:09:03 -06:00
ColemanRoo
eb826b1c90 Change index.ts to always run all tests
Add regex look for grade in in modes.test.ts
2025-02-12 09:05:29 -06:00
d.o.it
8a5563b520 Add MistralHandler constructor validation and unit tests 2025-02-12 15:47:14 +01:00
d.o.it
19c38a3668 Add mistralCodestralUrl to global state management in ClineProvider 2025-02-12 15:21:35 +01:00
d.o.it
95078a6bc9 add mistral latest api models 2025-02-12 15:04:02 +01:00
d.o.it
4497e42206 Add Mistral API configuration and models 2025-02-12 14:22:40 +01:00
Matt Rubens
75f4a6ce10
Merge pull request #952 from RooVetGit/allow_emptying_out_built_in_custom_instructions
Allow users to clear out custom instructions for the built-in modes
2025-02-11 18:54:15 -05:00
Matt Rubens
9e5c6b170c Allow users to clear out custom instructions for the built-in modes 2025-02-11 18:00:49 -05:00
Chris Estreich
4a867895d4
Merge pull request #951 from RooVetGit/cte/fix-themed-background-for-dialogs
Honor the VSCode theme for dialog backgrounds
2025-02-11 13:08:14 -08:00
cte
0b8fd14d26 Honor the VSCode theme for dialog backgrounds 2025-02-11 13:04:25 -08:00
Chris Estreich
d264befa32
Merge pull request #949 from RooVetGit/cte/fix-diff-editor-revert-on-abort
Fix file revert on abort
2025-02-11 12:54:17 -08:00
cte
6119cb1aaf Update comment 2025-02-11 12:48:19 -08:00
cte
901adc580f Fix file revert on abort 2025-02-11 12:44:32 -08:00
ColemanRoo
a41fb07adc task.test.ts fix to check for messages before assersion instead of tokens used 2025-02-11 14:34:03 -06:00
ColemanRoo
63346fbc6e update task.test.ts to run in any order with other tests 2025-02-11 14:21:33 -06:00
Matt Rubens
e39b006330
Merge pull request #913 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-11 14:49:12 -05:00
Matt Rubens
742b0440e1
Update CHANGELOG.md 2025-02-11 14:48:45 -05:00
github-actions[bot]
517e82fce9 changeset version bump 2025-02-11 19:47:13 +00:00
Matt Rubens
b36a446698
Merge pull request #927 from RooVetGit/v3.3.18
v3.3.18
2025-02-11 14:46:32 -05:00
Matt Rubens
86ecb69397
Merge pull request #947 from RooVetGit/fix_welcome_sticky
Fix sticky positioning on welcome screen
2025-02-11 14:40:38 -05:00
Matt Rubens
fb47ae0ec6 Fix sticky positioning on welcome screen 2025-02-11 14:36:39 -05:00
Chris Estreich
28cd4ebac4
Merge pull request #945 from RooVetGit/cte/checkpoints-logging
Checkpoints logging tweaks + defensive catches
2025-02-11 11:27:55 -08:00
Matt Rubens
351d461a04
Merge pull request #944 from RooVetGit/hide_advanced_openrouter_config_in_welcome_view
Hide advanced openrouter config in the welcome view
2025-02-11 14:25:26 -05:00
cte
94cb09f6cd Log restoreCheckpoint duration 2025-02-11 11:24:33 -08:00
cte
d9ac8efb1f Complete the comment 2025-02-11 11:19:00 -08:00
Chris Estreich
be2e0b775e
Merge pull request #946 from RooVetGit/cte/store-initial-checkpoint
Store initial checkpoint
2025-02-11 11:17:19 -08:00
cte
d8960788b4 Store initial checkpoint 2025-02-11 11:10:47 -08:00
cte
37c2a1760b Check for empty stash commits 2025-02-11 10:24:51 -08:00
Matt Rubens
c97eef753c Fix the width of checkboxes 2025-02-11 13:23:51 -05:00
cte
6b351876e7 Add duration logging 2025-02-11 10:16:51 -08:00
cte
68ea2e8588 Checkpoints logging tweaks 2025-02-11 10:14:36 -08:00
Matt Rubens
873cb1fcc5 Make let's go button sticky 2025-02-11 12:52:54 -05:00
Matt Rubens
3715a70f72 Hide advanced openrouter config in the welcome view 2025-02-11 12:37:39 -05:00
ColemanRoo
21f04f580a Fix typo for test list
Modify where we log messages to the console for the test
2025-02-11 11:06:11 -06:00
ColemanRoo
d7b44a2828 Converting modes.test.ts to use grading to measure if the test passes
Add documentation for VSCode Integration Tests
Use explicit list of tests instead of searching ot make it easier to run 1 test at time locally.
2025-02-11 10:55:04 -06:00
Matt Rubens
a3bb0edeae
Merge pull request #942 from RooVetGit/fix_retry_delay_bugs
Fix logic error in retry delays
2025-02-11 11:31:28 -05:00
Matt Rubens
052903bfb5 Fix logic error in retry delays 2025-02-11 11:19:51 -05:00
Matt Rubens
630c2e59eb
Merge pull request #941 from RooVetGit/bring_back_checkpoints_for_windows
Bring back checkpoints on Windows
2025-02-11 11:19:23 -05:00
Matt Rubens
85768097d7 Bring back checkpoints on Windows 2025-02-11 10:25:50 -05:00
Matt Rubens
43d4c5c167
Merge pull request #939 from RooVetGit/cte/stashless-checkpoints
New checkpoints algorithm
2025-02-11 09:59:48 -05:00
Matt Rubens
e4a1b35606
Merge pull request #928 from mamertofabian/add-copy-system-prompt
Add 'copySystemPrompt' icon button next to Preview System Prompt
2025-02-11 09:47:03 -05:00
cte
6dbb59642f Revert debugging 2025-02-11 03:25:33 -08:00
cte
a985494b95 Remove unused type 2025-02-11 03:23:59 -08:00
cte
971d29b1fb Revert debugging 2025-02-11 03:23:22 -08:00
cte
9d8360663e New checkpoints algorithm 2025-02-11 03:16:49 -08:00
cte
ca54d1e2fe Stashless checkpoints 2025-02-10 23:51:51 -08:00
Matt Rubens
145819f8e4
Merge pull request #931 from RooVetGit/fix_model_loading_flicker
Fix issue where Ollama/LMStudio URLs would flicker back to previous while entering
2025-02-10 23:50:09 -05:00
Matt Rubens
febf434fc1 Fix issue where Ollama/LMStudio URLs would flicker back to previous while entering 2025-02-10 23:30:05 -05:00
Mamerto Fabian Jr
18fe01baf3 Add 'copySystemPrompt' functionality and refactor system prompt generation 2025-02-11 09:17:45 +08:00
Matt Rubens
2e7934ec31 v3.3.18 2025-02-10 18:10:51 -05:00
Mike C
4aa43d0b5e
Merge pull request #926 from RooVetGit/feature/enhanceFullIntegrationTests
Modify Full Integration Test Structure to allow for multiple tests th…
2025-02-10 16:28:16 -06:00
Matt Rubens
7ebf3fadb4
Merge pull request #923 from samhvw8/fix/fail-to-get-model-list
refactor: unify model picker components
2025-02-10 17:22:01 -05:00
ColemanRoo
41704791ea adding comment on long timeout 2025-02-10 16:00:25 -06:00
ColemanRoo
20dea5caac increase test timeout 2025-02-10 15:16:07 -06:00
ColemanRoo
481d54bf92 package.json update for integration test command in CI/CD
ellipsis change
2025-02-10 13:19:35 -06:00
Mike C
a9c43065d2
Delete .env.e2e 2025-02-10 13:14:05 -06:00
sam hoang
1653263adf pr comment 2025-02-11 02:09:07 +07:00
sam hoang
bbc9555036 feat: add custom model input support to ModelPicker
- Add allowCustomModel prop to control custom model feature
- Implement custom model input dialog with proper VSCode theming
- Enable custom model support in OpenAiModelPicker
- Fix z-index issues with modal dialog
2025-02-11 02:08:49 +07:00
sam hoang
fabaf07a3f pr comment 2025-02-11 01:51:50 +07:00
sam hoang
e9d9e03b72 fix: improve model picker refresh handling and API config updates
- Add proper change detection for refreshValues using deep comparison
- Increase debounce timing from 50ms to 100ms for better performance
- Add proper error handling for missing Requesty API key
- Fix apiConfiguration update to properly merge with existing state
- Remove debug console logs
2025-02-11 01:48:55 +07:00
ColemanRoo
4585281dc8 Modify Full Integration Test Structure to allow for multiple tests that start new tasks
Add test for mode switching functionality
2025-02-10 12:32:51 -06:00
sam hoang
793b13ea28 remove verbose 2025-02-11 00:43:45 +07:00
sam hoang
26a315b946 refactor: unify model picker components
- Extend ModelPicker to support OpenAI models and refreshValues
- Refactor OpenAiModelPicker to use unified ModelPicker component
- Add refreshValues support for Requesty API key
2025-02-11 00:36:31 +07:00
Matt Rubens
1f07a77ff7
Merge pull request #921 from RooVetGit/welcome_screen_tweaks
Hide custom temp on welcome view and make submit button more intuitive
2025-02-10 12:15:24 -05:00
Matt Rubens
439c46cf7f PR feedback 2025-02-10 12:11:57 -05:00
Matt Rubens
f25fb35732 Hide custom temp on welcome view and make submit button more intuitive 2025-02-10 11:58:23 -05:00
Matt Rubens
b194408d03
Merge pull request #919 from RooVetGit/cte/vite-process-platform
Pass process.platform through with Vite
2025-02-10 11:26:13 -05:00
cte
577ebcd8fc Pass process.platform through with Vite 2025-02-10 08:15:58 -08:00
Matt Rubens
c78fbed319
Merge pull request #658 from samhvw8/feat/roo-code-requesty-provider
feat: add Requesty API provider support
2025-02-10 10:58:45 -05:00
Matt Rubens
2449c49358 Merge remote-tracking branch 'origin/main' into feat/roo-code-requesty-provider 2025-02-10 10:53:51 -05:00
Matt Rubens
059de0f6af
Merge pull request #915 from jcbdev/openroute_api_usage_data_failures
add retries to openrouter generation endpoint to prevent failures on …
2025-02-10 10:50:15 -05:00
Matt Rubens
ceec089745
Merge pull request #863 from RooVetGit/temperature_control
Configure per-configuration temperature
2025-02-10 10:48:54 -05:00
James Barker
b85960ba2a
updated to fix no break condition on loop and to use the same number of retries and delay as the glama provider (for consistency)
Signed-off-by: James Barker <james@jcbdevelopment.co.uk>
2025-02-10 14:58:44 +00:00
Matt Rubens
cbf47aa05c
Merge pull request #914 from RooVetGit/cte/disable-checkpoints-on-windows
Disable checkpoints on Windows
2025-02-10 08:18:01 -05:00
sam hoang
d6e55afb51 using ModelPicker for Requesty Model Picker 2025-02-10 20:14:50 +07:00
sam hoang
41fcf85c48 refactor(api): improve OpenAI handler inheritance
- Add OpenAiHandlerOptions interface for configuration
- Extract processUsageMetrics to base class for reuse
- Update RequestyHandler to extend OpenAiHandler
- Add proper type safety for metrics handling
- Clean up code duplication across handlers
2025-02-10 20:14:23 +07:00
sam hoang
91fe764cb8 feat: add Requesty API provider support
- Add RequestyHandler implementation for API integration
- Add RequestyModelPicker component for model selection
- Update shared types and messages for Requesty support
- Update API options to include Requesty provider
2025-02-10 20:13:43 +07:00
James Barker
9c480aaac2
add retries to openrouter generation endpoint to prevent failures on slow usage stat updates server side
Signed-off-by: James Barker <james@jcbdevelopment.co.uk>
2025-02-10 09:13:55 +00:00
cte
3aed7d14cf Fix tests on win32 systems 2025-02-10 00:24:25 -08:00
cte
f447356d81 Disable checkpoints on Windows 2025-02-09 23:53:47 -08:00
Joe Manley
bcd54d5f78 Merge branch 'main' into temperature_control 2025-02-09 21:26:45 -08:00
Matt Rubens
60ea3c25c0
Merge pull request #912 from RooVetGit/blur_on_save_settings
Make sure to blur fields when user hits Done in settings
2025-02-10 00:12:53 -05:00
Matt Rubens
2caa320fac Make sure to blur fields when user hits Done in settings 2025-02-10 00:09:03 -05:00
Matt Rubens
d8eeed3b6d Merge remote-tracking branch 'origin/temperature_control' into temperature_control 2025-02-09 23:14:22 -05:00
Matt Rubens
be9a90489a Change input from a slider to a text input 2025-02-09 23:13:37 -05:00
Joe Manley
d4b7a60138 Bring back changes 2025-02-09 20:09:37 -08:00
Joe Manley
194b574b02 Back to main 2025-02-09 20:09:21 -08:00
Matt Rubens
2ccab1444b Merge remote-tracking branch 'origin/main' into temperature_control 2025-02-09 22:53:44 -05:00
Matt Rubens
d8274aca70
Merge pull request #902 from MuriloFP/fix-disabled-mcp-list
fix: ensure disabled MCP servers appear in settings UI
2025-02-09 22:34:50 -05:00
Matt Rubens
9f1063a77c
Merge pull request #911 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-09 22:28:29 -05:00
Matt Rubens
9a06b83aa9
Update CHANGELOG.md 2025-02-09 22:28:00 -05:00
R00-B0T
1735578161 Updating CHANGELOG.md format 2025-02-10 03:26:44 +00:00
github-actions[bot]
89fc0597de changeset version bump 2025-02-10 03:26:22 +00:00
Matt Rubens
778f0ccfb8
Merge pull request #910 from RooVetGit/v3.3.17
v3.3.17
2025-02-09 22:25:35 -05:00
Matt Rubens
d5203c6aa0 v3.3.17 2025-02-09 22:24:13 -05:00
Matt Rubens
3802791156
Merge pull request #909 from RooVetGit/cte/delete-local-git-config-if-necessary
Delete local git config when appropriate
2025-02-09 22:19:49 -05:00
Chris Estreich
f3a8f828a5
Merge pull request #908 from RooVetGit/cte/fix-restore-checkpoint-dropdown
Fix restore checkpoint popover
2025-02-09 18:39:40 -08:00
cte
ffd0e97b32 Delete local git config when appropriate 2025-02-09 18:34:01 -08:00
Roo Code
50f6e3ea65 Fix "Restore Checkpoint" popover 2025-02-09 17:50:22 -08:00
MuriloFP
0bb6112257 fix: ensure disabled MCP servers appear in settings UI
When the MCP server was initialized before opening RooCode, disabled servers
would not appear in the settings UI. This was fixed by:

1. Using getAllServers() instead of getServers() in ClineProvider.ts for UI
   state updates, ensuring all servers (including disabled ones) are shown
2. Maintaining getServers() for operational use (AI prompts, tool calls)
   where disabled servers should be filtered out

The fix maintains clean separation between UI display and operational
server filtering.
2025-02-09 19:15:01 -03:00
Matt Rubens
c6c70c2479
Merge pull request #890 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-09 12:48:09 -05:00
Matt Rubens
07cd9e10df
Update CHANGELOG.md 2025-02-09 12:46:06 -05:00
Matt Rubens
78f3be88db
Update CHANGELOG.md 2025-02-09 12:42:03 -05:00
github-actions[bot]
27724e6459 changeset version bump 2025-02-09 17:33:33 +00:00
Matt Rubens
9cb30f37a3
Merge pull request #900 from RooVetGit/v3.3.16
v3.3.16
2025-02-09 12:32:47 -05:00
Matt Rubens
f26973f7a8 v3.3.16 2025-02-09 12:31:27 -05:00
Matt Rubens
ec527f79e6
Merge pull request #893 from RooVetGit/cte/safer-git-config
Don't clobber existing user.name and user.email git config values
2025-02-09 08:28:58 -05:00
Nissa Seru
ff70926015
Provide lint-local commands to enable use of .eslintrc.local.json supported by #871 2025-02-09 06:06:36 -07:00
Roo Code
96ab5dcb1f Don't clobber existing user.name and user.email git config values 2025-02-09 00:28:17 -08:00
Matt Rubens
c66f685e03
Merge pull request #878 from RooVetGit/mrubens-patch-4
Update CheckpointService.test.ts
2025-02-09 01:04:21 -05:00
Matt Rubens
99f2333154
Merge pull request #873 from nissa-seru/create-logging-util
Implement logging utility
2025-02-09 00:55:36 -05:00
Roo Code
e38d9ecb22 Merge remote-tracking branch 'origin/main' into mrubens-patch-4 2025-02-09 00:53:18 -05:00
Matt Rubens
dc463349e8
Merge pull request #886 from RooVetGit/ark_support
Support the Ark provider when used through OpenAI compatible
2025-02-09 00:43:00 -05:00
Matt Rubens
ff7b3e0374
Merge pull request #889 from RooVetGit/update_api_options_on_blur
Update API options on blur instead of on input
2025-02-09 00:39:39 -05:00
Roo Code
6a8902fae4 Update API options on blur instead of on input 2025-02-09 00:25:33 -05:00
Roo Code
2ddf54de5d Support the Ark provider when used through OpenAI compatible 2025-02-08 23:53:19 -05:00
Chris Estreich
9d588e3c18
Merge pull request #881 from RooVetGit/cte/shadcn-tooltips
Add tooltips on checkpoint actions
2025-02-08 14:31:19 -08:00
Roo Code
0daab656f1 Add tooltips on checkpoint actions 2025-02-08 14:27:09 -08:00
Matt Rubens
e70248c34c
Merge pull request #879 from RooVetGit/cte/remove-checkpoint-debugging
Remove simple-git debugging
2025-02-08 12:31:11 -05:00
Matt Rubens
d1000f2c40
Merge pull request #861 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-08 12:30:30 -05:00
Matt Rubens
f83e6a5a41
Update CHANGELOG.md 2025-02-08 12:29:55 -05:00
Matt Rubens
e28eac3751
Update CHANGELOG.md 2025-02-08 12:29:15 -05:00
Matt Rubens
2fa4343005
Update CHANGELOG.md 2025-02-08 12:25:02 -05:00
cte
152c5a026a Remove simple-git debugging 2025-02-08 09:09:14 -08:00
Matt Rubens
674a50d5f3
Update CHANGELOG.md 2025-02-08 12:08:38 -05:00
Nissa Seru
b194bcea4d Merge branch 'create-logging-util' of https://github.com/nissa-seru/Roo-Code into create-logging-util 2025-02-08 12:06:34 -05:00
Nissa Seru
6ae6535201 Fix meta spreading order 2025-02-08 12:06:12 -05:00
Matt Rubens
719331385b
Update CheckpointService.test.ts 2025-02-08 12:00:11 -05:00
github-actions[bot]
de10c132d7 changeset version bump 2025-02-08 16:57:01 +00:00
Matt Rubens
b5f568fb40
Merge pull request #877 from RooVetGit/settings_updates
Settings updates
2025-02-08 11:56:13 -05:00
Roo Code
c3012e3a72 Style and copy updates to advanced settings 2025-02-08 11:53:11 -05:00
Matt Rubens
fffc9f7311
Merge pull request #848 from websentry-ai/pm/unbound-fetch-models
Fetches Unbound models from api
2025-02-08 11:52:23 -05:00
Roo Code
dab592f103 Check in package.lock changes 2025-02-08 11:49:00 -05:00
Vignesh Subbiah
5995923daf
Merge branch 'main' into pm/unbound-fetch-models 2025-02-08 22:11:22 +05:30
Nissa Seru
c49f685cbf
Merge branch 'main' into create-logging-util 2025-02-08 09:08:03 -07:00
Chris Estreich
47bdab0365
Merge pull request #651 from RooVetGit/cte/use-checkpoints 2025-02-08 08:04:27 -08:00
Matt Rubens
1d65824c84
Merge pull request #866 from RooVetGit/cte/checkpoints-ui-tweaks
Checkpoint UI tweaks
2025-02-08 10:59:17 -05:00
Matt Rubens
d65e9efc89
Merge pull request #868 from RooVetGit/cte/current-checkpoint-indicator
Current checkpoint indicator
2025-02-08 10:57:27 -05:00
Matt Rubens
68cc942482
Merge pull request #871 from nissa-seru/fix-vsix-add-lint-fix
Fix vsix command; add lint-fix; add .gitignore entry for .eslintrc.local.json
2025-02-08 10:51:50 -05:00
Nissa Seru
41d18bdaaa
Update src/utils/logging/index.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-08 09:52:07 -05:00
Nissa Seru
f403a336dc Implement logging utility 2025-02-08 09:41:29 -05:00
Vignesh Subbiah
17f3a314f5 Changes recommendedModel to be same as default model 2025-02-08 19:11:36 +05:30
Vignesh Subbiah
c049436101 DRYs up read model from cache logic 2025-02-08 18:44:32 +05:30
Nissa Seru
987fabb2ca Typo fix 2025-02-08 07:44:16 -05:00
Vignesh Subbiah
a8f764983f DRYs up model picker for Unbound 2025-02-08 18:12:19 +05:30
Nissa Seru
c84551f1e6 Add lint-fix command; existing lint command is unchanged 2025-02-08 07:31:48 -05:00
Nissa Seru
b6eb80e10d Use rimraf and mkdirp in vsix command to avoid misparsing of -p arg and build failure if bin dir exists. 2025-02-08 07:26:13 -05:00
Nissa Seru
3c5dde2a03 Add local eslintrc config to .gitignore to enable local use of additional linting rules 2025-02-08 07:23:54 -05:00
Vignesh Subbiah
70ed217149
Merge branch 'main' into pm/unbound-fetch-models 2025-02-08 17:46:35 +05:30
cte
a0993a3ba0 Remove "Restore" option on current checkpoint 2025-02-08 01:19:12 -08:00
cte
59ddaa9f00 Current checkpoint indicator 2025-02-08 01:07:31 -08:00
cte
1a527fca12 Checkpoint UI tweaks 2025-02-07 23:54:21 -08:00
Joe Manley
f8f571414a
Add aria-lable for temperature control range input
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-02-07 23:32:27 -08:00
Joe Manley
71d344d0a8 Fix tests 2025-02-07 23:17:02 -08:00
Joe Manley
88fb6ec15a Remove magic numbers 2025-02-07 23:09:06 -08:00
Joe Manley
adedc1c2c6 Remove magic numbers 2025-02-07 23:08:26 -08:00
Joe Manley
e3fbfb7186 Add tests 2025-02-07 22:54:18 -08:00
Joe Manley
dd8214897b Fix bug 2025-02-07 22:49:57 -08:00
cte
121f3ab7fa Checkpoint service integration 2025-02-07 22:27:27 -08:00
Chris Estreich
910bdf19d5
Merge pull request #626 from RooVetGit/cte/checkpoints
Checkpoint service
2025-02-07 22:26:28 -08:00
cte
2bff829816 Checkpoints service 2025-02-07 22:23:54 -08:00
Matt Rubens
edaa04db83
Merge pull request #865 from RooVetGit/v3.3.15
v3.3.15
2025-02-08 01:19:08 -05:00
Roo Code
6e8153eae0 v3.3.15 2025-02-08 01:18:17 -05:00
Joe Manley
ce8cdd8dac Better UX similar to our experimental diffs 2025-02-07 21:49:27 -08:00
Joe Manley
ce858aa34e
Update src/api/providers/ollama.ts
Suggestion from Matt

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-02-07 21:22:18 -08:00
Roo Code
bc9773ff9a Configure per-configuration temperature 2025-02-08 00:21:13 -05:00
Matt Rubens
e29ce276c5
Merge pull request #838 from hannesrudolph/patch-4
Move MCP Restart Button
2025-02-07 22:32:00 -05:00
Matt Rubens
324c5c8728
Merge pull request #852 from MuriloFP/mcp-server-fixes
MCP Server Bug Fixes Issues #833 and #834
2025-02-07 22:31:02 -05:00
Matt Rubens
da2fe80a9b
Merge pull request #855 from hannesrudolph/patch-5
Add copy button to prompt preview view
2025-02-07 22:28:17 -05:00
Roo Code
44e00fa9ed Add changeset 2025-02-07 22:25:40 -05:00
Roo Code
19a213f323 Add aria-label 2025-02-07 22:24:20 -05:00
Roo Code
ecb4509bf8 Centralize clipboard functionality 2025-02-07 22:23:04 -05:00
Matt Rubens
9bace965df
Merge pull request #853 from RooVetGit/add_profile_modal
Better UX for adding new API config profiles
2025-02-07 20:31:43 -05:00
Roo Code
69d58720db Ellipsis feedback 2025-02-07 20:28:24 -05:00
Roo Code
b85ebbc89a Change to useState to match the rest of the codebase 2025-02-07 20:21:15 -05:00
Hannes Rudolph
30cf0d5319
Update HistoryPreview.tsx
Added a copy button to the history preview view
2025-02-07 15:50:28 -07:00
Roo Code
85dacb03a3 Better UX for adding new API config profiles 2025-02-07 16:23:27 -05:00
Chris Estreich
14d7691ded
Merge pull request #831 from RooVetGit/cte/improve-model-picker
Model picker improvements
2025-02-07 12:28:50 -08:00
Roo Code
0bc9e17c1a Better model picker 2025-02-07 12:25:52 -08:00
MuriloFP
c9be470319 fix: prevent race conditions in McpServerManager singleton initialization
Added thread-safe initialization to the McpServerManager singleton pattern to
prevent potential race conditions when getInstance is called concurrently.
The changes include:

1. Added initializationPromise to track ongoing initialization
2. Implemented double-checked locking pattern:
   - First check: Return existing instance if available
   - Second check: Wait for any ongoing initialization
   - Third check: Double-check inside initialization block
3. Added proper cleanup in finally block to prevent deadlocks

This ensures that:
- Only one McpHub instance is ever created
- Concurrent calls wait for initialization to complete
- Resources are properly initialized and cleaned up
- No memory leaks from incomplete initialization

The fix maintains the existing functionality while making it safe for
concurrent access in VS Code's multi-window environment.
2025-02-07 17:12:39 -03:00
MuriloFP
ef95562dfe fix: ensure MCP server list appears in settings when server starts first
When the MCP server was initialized before opening RooCode, the server list
would not appear in the settings. This was fixed by:

1. Adding proper server list initialization in ClineProvider.ts when the
   webview launches, checking if mcpHub exists and sending its current
   servers to the webview:

   ```typescript
   if (this.mcpHub) {
     this.postMessageToWebview({
       type: "mcpServers",
       mcpServers: this.mcpHub.getServers()
     })
   }
   ```

2. Using the public getServers() method from McpHub instead of relying on
   internal state updates, ensuring consistent server list state across
   the application.

The fix maintains clean separation of concerns and follows existing patterns
for state management between the extension and webview.
2025-02-07 16:57:21 -03:00
MuriloFP
b2b5e1ffa6 fix: Implement singleton pattern for MCP server management to prevent multiple instances
Problem:
- Multiple instances of the Roo Code application were launching separate MCP server instances
- This led to unnecessary resource consumption and potential conflicts between instances

Solution:
1. Created new McpServerManager singleton class to manage MCP server instances:
   - Static getInstance() method ensures only one McpHub instance exists
   - Tracks registered ClineProvider instances
   - Handles cleanup on extension deactivation

2. Modified ClineProvider class:
   - Changed mcpHub from private to protected
   - Added getMcpHub() public getter method
   - Updated initialization to use McpServerManager
   - Added unregister logic in dispose()

3. Updated extension.ts to handle cleanup:
   - Added McpServerManager cleanup in deactivate()

Technical Implementation:
- Uses WeakRef for provider tracking to allow proper garbage collection
- Maintains global state to track instance IDs
- Implements proper cleanup of resources on disposal
- Ensures backward compatibility with existing code

This change significantly improves resource usage and prevents potential conflicts
between multiple instances of the application while maintaining all existing
functionality.
2025-02-07 15:51:30 -03:00
Pugazhendhi
4c8577c8a2 Reads unbound model ID from configuration 2025-02-07 19:41:09 +05:30
Pugazhendhi
64a579e965 Fixes default model in test file 2025-02-07 19:31:36 +05:30
Pugazhendhi
ddc6b9c63f Changed default model to sonnet 3.5 2025-02-07 18:57:58 +05:30
Matt Rubens
c641c59160
Merge pull request #846 from RooVetGit/cte/catch-openai-provider-error
Prevent *all* provider clients from throwing
2025-02-07 07:55:40 -05:00
Roo Code
4b3ea07033 Prevent provider client instantiations from throwing 2025-02-07 03:06:01 -08:00
Pugazhendhi
7710df85f5 Fixed warnings 2025-02-07 16:31:32 +05:30
Pugazhendhi
1268db59a3 Fixes imports 2025-02-07 14:08:31 +05:30
Pugazhendhi
01be0389ee Fixed indentation 2025-02-07 14:06:57 +05:30
Pugazhendhi
e0417e99f8 Fixed indentation 2025-02-07 14:05:56 +05:30
Pugazhendhi
5955c01ce8 Removed AutoApproveMenu.test.tsx 2025-02-07 14:05:08 +05:30
pugazhendhi-m
26baaf89a3
Merge branch 'main' into WEB-1756 2025-02-07 13:02:46 +05:30
Matt Rubens
c14de4f232
Merge pull request #845 from RooVetGit/mrubens-patch-4
Update CHANGELOG.md
2025-02-07 01:32:18 -05:00
Matt Rubens
483feabb15
Update CHANGELOG.md
Oops, left out a few things in 3.3.12. Sorry!
2025-02-07 01:10:05 -05:00
Hannes Rudolph
4fe2eefeb9
Update McpView.tsx
Moved the restart button to the top
2025-02-06 21:22:07 -07:00
Matt Rubens
003d4e43a6
Merge pull request #837 from RooVetGit/mrubens-patch-4
Update CHANGELOG.md
2025-02-06 23:14:31 -05:00
Matt Rubens
9b4a9391ee
Update CHANGELOG.md 2025-02-06 23:03:25 -05:00
Chris Estreich
5622272e75
Merge pull request #829 from RooVetGit/cte/shadcn-combobox
Add `@shadcn/ui` components required for the combobox
2025-02-06 16:13:12 -08:00
Roo Code
f05dd88369 Add Storybook story 2025-02-06 16:07:48 -08:00
Roo Code
4a1f5b96bc Add @shadcn/ui components required for the combobox 2025-02-06 15:06:16 -08:00
Matt Rubens
1d85424320
Merge pull request #828 from hannesrudolph/patch-3
Update README.md
2025-02-06 17:25:14 -05:00
Hannes Rudolph
3a058aa90f
Update README.md
Removed the badges for now
2025-02-06 15:24:16 -07:00
Matt Rubens
593afaccc1
Merge pull request #825 from hannesrudolph/patch-2
Fixed rate limited by upstream error
2025-02-06 17:01:53 -05:00
Hannes Rudolph
c0a61065b1
Fixed rate limited by upstream error 2025-02-06 13:48:47 -07:00
Chris Estreich
1c87cf3ba4
Merge pull request #823 from RooVetGit/cte/partially-reapply-00ec57a
Re-apply part of 00ec57a, npm script changes omitted
2025-02-06 08:58:35 -08:00
Chris Estreich
29773377fe
Merge pull request #822 from RooVetGit/cte/ensure-vsix-correctly-built
Validate vsix in publish GHA
2025-02-06 08:57:51 -08:00
cte
36dd8c9ce4 PR feedback 2025-02-06 08:53:21 -08:00
cte
5c55515959 Re-apply part of 00ec57a, npm script changes omitted 2025-02-06 08:51:34 -08:00
cte
327e764d85 Validate vsix in publish GHA 2025-02-06 08:38:31 -08:00
Matt Rubens
92561aae5b
Merge pull request #820 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-06 09:52:27 -05:00
Matt Rubens
70d9ba2fbd
Update CHANGELOG.md 2025-02-06 09:52:13 -05:00
R00-B0T
c095f0cec9 Updating CHANGELOG.md format 2025-02-06 14:51:26 +00:00
github-actions[bot]
0715b1e5b0 changeset version bump 2025-02-06 14:50:40 +00:00
Matt Rubens
d6c5eba6e7
Merge pull request #819 from RooVetGit/3.3.14
3.3.14
2025-02-06 09:49:49 -05:00
Matt Rubens
ada9c4bfb5 Changeset 2025-02-06 09:48:43 -05:00
Matt Rubens
c0306e3e8e Revert "Merge pull request #799 from RooVetGit/cte/package-json-cleanup"
This reverts commit 00ec57afee, reversing
changes made to b83442e899.
2025-02-06 09:48:06 -05:00
Matt Rubens
56a7b8f73f
Merge pull request #818 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-06 09:18:17 -05:00
Matt Rubens
aaedd15652
Update CHANGELOG.md 2025-02-06 09:14:44 -05:00
Matt Rubens
fa0823a0ee
Update CHANGELOG.md 2025-02-06 09:13:49 -05:00
R00-B0T
1cbaccd7f5 Updating CHANGELOG.md format 2025-02-06 14:11:19 +00:00
github-actions[bot]
a2d57cb0bb changeset version bump 2025-02-06 14:10:44 +00:00
Matt Rubens
2dc3939dfe
Merge pull request #817 from RooVetGit/v3.3.13
v3.3.13
2025-02-06 09:09:58 -05:00
Matt Rubens
96a3e6e24c v3.3.13 2025-02-06 09:09:11 -05:00
Matt Rubens
8f410b7bbf
Merge pull request #812 from RooVetGit/cte/catch-openai-handler-exception
Don't throw when `openAiBaseUrl` is not a valid URL
2025-02-06 07:42:38 -05:00
cte
e0336b5ad8 Don't throw when openAiBaseUrl is not a valid URL 2025-02-06 01:25:08 -08:00
Pugazhendhi
18f15559e3 Fixes test file 2025-02-06 13:03:03 +05:30
Pugazhendhi
286386315e Updates to prod url 2025-02-06 12:57:43 +05:30
Pugazhendhi
915d173720 Reverts changes 2025-02-06 12:53:24 +05:30
Pugazhendhi
32f91b6291 Merged with main branch 2025-02-06 12:44:22 +05:30
Matt Rubens
6037140c4f
Merge pull request #808 from sammcj/deepseek_r1_ollama
fix(r1): Ensure the DeepSeek r1 model works with Ollama
2025-02-06 02:09:24 -05:00
Sam
a87502e94d
Merge branch 'main' into deepseek_r1_ollama 2025-02-06 16:48:57 +11:00
Matt Rubens
517b5450f2
Merge pull request #807 from samhvw8/feat/terminal-menu-context
feat: add terminal context menu command
2025-02-05 23:41:32 -05:00
sam hoang
679866ca52 add user input 2025-02-06 10:48:34 +07:00
sam hoang
0ceb370008 feat: add terminal integration commands
- Add terminal context menu commands for:
  - Adding terminal content to context
  - Fixing failed commands
  - Explaining commands
- Implement terminal content selection and retrieval
- Add support prompts for terminal actions
- Register terminal action handlers
2025-02-06 10:27:12 +07:00
Matt Rubens
e0f0aa7529
Merge pull request #806 from RooVetGit/mrubens-patch-4
Update README.md
2025-02-05 22:26:44 -05:00
Matt Rubens
7207e94a9c
Update README.md 2025-02-05 22:23:58 -05:00
Sam
f2c96b89c0 fix(r1): ensure r1 works with ollama 2025-02-06 14:21:29 +11:00
Matt Rubens
54681f811a
Merge pull request #805 from hannesrudolph/patch-1
Update README.md
2025-02-05 19:15:02 -05:00
Hannes Rudolph
e4e4e184d8
Update README.md
Fixed Header Area
2025-02-05 17:12:49 -07:00
Matt Rubens
4a42feca72
Merge pull request #675 from nissa-seru/truncation-updates
Enable separate config for truncation for models without context caching
2025-02-05 15:37:25 -05:00
Chris Estreich
00ec57afee
Merge pull request #799 from RooVetGit/cte/package-json-cleanup
Better organize package.json, optimize tasks.json, split extension and webview linting
2025-02-05 12:17:44 -08:00
Roo Code
f913d567fa Better organize package.json, optimize tasks.json, split extension and webview linting 2025-02-05 12:15:18 -08:00
Matt Rubens
b83442e899
Merge pull request #797 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-05 12:11:02 -05:00
R00-B0T
a2ba1033c5 Updating CHANGELOG.md format 2025-02-05 17:08:33 +00:00
github-actions[bot]
4c0556aaac changeset version bump 2025-02-05 17:08:01 +00:00
Matt Rubens
32b7dde1fd
Merge pull request #796 from RooVetGit/v3.3.12
V3.3.12
2025-02-05 12:07:16 -05:00
Matt Rubens
dd174b9019
Merge pull request #795 from RooVetGit/gemini_update
Add new Gemini models
2025-02-05 12:07:06 -05:00
Matt Rubens
49c21b6c69 Add new gemini models 2025-02-05 12:04:36 -05:00
Matt Rubens
80f6d20319 Changeset 2025-02-05 11:47:00 -05:00
Matt Rubens
1f492d5a16 Revert "Don't change the actual mode when you view different mode configurations on the prompts tab"
This reverts commit af0cd5b0fc.
2025-02-05 11:44:55 -05:00
Chris Estreich
d3f10989ce
Merge pull request #788 from RooVetGit/cte/jest-webview-ui 2025-02-05 08:27:40 -08:00
Nissa Seru
98c8cc9624 Updated sliding window logic to be inverse of trigger criteria 2025-02-05 04:53:21 -05:00
Nissa Seru
5e49421bad Merge https://github.com/RooVetGit/Roo-Code into truncation-updates 2025-02-05 04:49:37 -05:00
Roo Code
4948e52779 Jest fixes for webview-ui 2025-02-05 00:51:59 -08:00
Matt Rubens
fa80f4e160
Merge pull request #783 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-05 00:37:19 -05:00
Matt Rubens
b5a8398d22
Update CHANGELOG.md 2025-02-05 00:34:24 -05:00
github-actions[bot]
c32d3057d6 changeset version bump 2025-02-05 05:31:24 +00:00
Matt Rubens
4b52d640bd
Merge pull request #784 from RooVetGit/v3.3.11
v3.3.11
2025-02-05 00:30:43 -05:00
Matt Rubens
f3bbf34a90 v3.3.11 2025-02-05 00:27:26 -05:00
Matt Rubens
2141d8492f
Merge pull request #771 from RooVetGit/slash_command_autocomplete
Slash command autocomplete
2025-02-05 00:22:04 -05:00
Matt Rubens
ebd9084e56 Use autocomplete instead for switching modes 2025-02-05 00:13:04 -05:00
Matt Rubens
5297cad5e2 Revert "Merge pull request #764 from RooVetGit/slash_switch_modes"
This reverts commit e3d7f25d26, reversing
changes made to 55e8170369.
2025-02-05 00:09:29 -05:00
Matt Rubens
08ce4826b3
Merge pull request #782 from RooVetGit/safer_profile_path_check
Safer profile path check
2025-02-05 00:02:11 -05:00
Matt Rubens
d145039d72 Safer profile path check 2025-02-04 23:59:36 -05:00
Matt Rubens
43f19d9110
Merge pull request #781 from RooVetGit/remove_docs
Removing docs (moving to another repo)
2025-02-04 23:24:13 -05:00
Matt Rubens
111020bb50 Removing docs (moving to another repo) 2025-02-04 23:14:57 -05:00
Matt Rubens
81285c3774
Merge pull request #715 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-04 22:25:12 -05:00
Matt Rubens
92cd81d66b
Update CHANGELOG.md 2025-02-04 22:22:03 -05:00
github-actions[bot]
1f3b07d627 changeset version bump 2025-02-05 02:52:52 +00:00
Chris Estreich
686e3c77d4
Merge pull request #774 from RooVetGit/cte/shadcn-portals 2025-02-04 18:52:10 -08:00
Matt Rubens
d4454b719c
Merge pull request #777 from RooVetGit/v3.3.10
v3.3.10
2025-02-04 13:31:58 -05:00
Matt Rubens
14975311f5 v3.3.10 2025-02-04 13:29:47 -05:00
cte
11fc6da392 VSCode styling for shadcn/ui + expose container prop in dropdown portals 2025-02-04 08:27:05 -08:00
Matt Rubens
e3d7f25d26
Merge pull request #764 from RooVetGit/slash_switch_modes
Slash commands for switching modes
2025-02-04 01:14:35 -05:00
Matt Rubens
97128bc144 Slash commands for switching modes 2025-02-04 01:08:53 -05:00
Matt Rubens
55e8170369
Merge pull request #763 from RooVetGit/improve_default_roles
Improve the default prompts for Architect and Ask
2025-02-04 00:49:02 -05:00
Matt Rubens
624c449fc1 Improve the prompts for Architect and Ask 2025-02-04 00:34:59 -05:00
Matt Rubens
4c494ca55c
Merge pull request #762 from RooVetGit/fix_webview_lints
Fix webview lints
2025-02-03 23:53:39 -05:00
Matt Rubens
053a9400fd
Merge pull request #712 from samhvw8/fix/api-config-error-when-switch-provider
fix(api-config) error when creation of api config
2025-02-03 23:53:00 -05:00
Matt Rubens
3d2ba7b361 Code cleanup 2025-02-03 23:48:22 -05:00
Matt Rubens
f9299a98df Merge remote-tracking branch 'origin/main' into fix/api-config-error-when-switch-provider 2025-02-03 23:22:59 -05:00
Matt Rubens
ee2e7193d8 Fix webview lints 2025-02-03 23:09:12 -05:00
Matt Rubens
8472ae093a
Merge pull request #728 from nissa-seru/add-command-fixes-from-cline
Add command fixes
2025-02-03 22:41:43 -05:00
Matt Rubens
7e5d78d398 Update snapshots 2025-02-03 22:36:11 -05:00
Matt Rubens
ec3df254a3 Merge remote-tracking branch 'origin/main' into add-command-fixes-from-cline 2025-02-03 22:35:35 -05:00
Chris Estreich
6f64975e22
Merge pull request #760 from RooVetGit/cte/dropdown-menu
Add shadcn/ui dropdown menu component
2025-02-03 12:42:06 -08:00
Chris Estreich
bf7ec3180d
Merge pull request #757 from RooVetGit/cte/hmr-dx
Fall back to js bundle when local webview app not running in development
2025-02-03 12:31:34 -08:00
cte
684f89c1b1 Fix typo 2025-02-03 12:30:17 -08:00
cte
e57e795a06 Fix test:integration 2025-02-03 12:28:53 -08:00
cte
0e02a89da4 Bring most of Tailwind's preflight.css back 2025-02-03 12:18:28 -08:00
cte
41f25f0996 Button tweaks 2025-02-03 12:16:35 -08:00
Matt Rubens
f2d7cbebbe
Merge pull request #753 from RooVetGit/visual_fixes
Slight visual fixes
2025-02-03 15:09:45 -05:00
cte
a7101a9b94 Add shadcn/ui dropdown menu component 2025-02-03 11:48:20 -08:00
Matt Rubens
a67ba8326b Fix mock 2025-02-03 13:35:02 -05:00
Chris Estreich
3f9b6678ca
Merge pull request #759 from samhvw8/feat/make-easy-to-run-debug-mode
feat: make easy to run debug mode
2025-02-03 10:02:57 -08:00
cte
51f5f10974 PR feedback 2025-02-03 09:52:21 -08:00
sam hoang
0b17a5f3fb feat: make easy to run debug mode 2025-02-04 00:39:03 +07:00
cte
2ad57ba057 Fall back to js bundle when local webview app not running in development 2025-02-03 09:19:52 -08:00
Matt Rubens
644194aa21 PR feedback 2025-02-03 12:15:59 -05:00
Matt Rubens
d1971b79f8 Update snapshots 2025-02-03 12:14:07 -05:00
Matt Rubens
af0cd5b0fc Don't change the actual mode when you view different mode configurations on the prompts tab 2025-02-03 12:05:29 -05:00
Matt Rubens
55966146b3 Cleaner approach to prompt checkboxes 2025-02-03 10:39:01 -05:00
Matt Rubens
2c2d1843df Slight visual fixes 2025-02-03 09:20:25 -05:00
Pugazhendhi
ea3d384e48 Fetches all models from gateway during init 2025-02-03 12:18:15 +05:30
sam hoang
081faf34a0 update test for test currently fail in upsertApiConfiguration 2025-02-03 12:57:59 +07:00
sam hoang
9406a273da fix(api-config) error when creation of api config 2025-02-03 12:57:59 +07:00
Matt Rubens
6da05598bf
Merge pull request #730 from nissa-seru/fix-editorutils
Update EditorUtils
2025-02-03 00:10:51 -05:00
Matt Rubens
3e303ea22e
Merge pull request #742 from RooVetGit/discord_fix_again
Discord fix again
2025-02-02 15:15:40 -05:00
Matt Rubens
0bcfbd46f3 Different approach to escaping 2025-02-02 15:12:25 -05:00
Matt Rubens
7e237df2e8 Revert "Merge pull request #740 from RooVetGit/discord_fix"
This reverts commit e16e132470, reversing
changes made to 0e7e5c50be.
2025-02-02 15:03:41 -05:00
Matt Rubens
e16e132470
Merge pull request #740 from RooVetGit/discord_fix
More secure webhook
2025-02-02 15:00:31 -05:00
Matt Rubens
dfee716ff0 More secure webhook 2025-02-02 14:59:38 -05:00
Matt Rubens
0e7e5c50be
Merge pull request #739 from RooVetGit/discord_pr_threads
Post PRs to a thread instead
2025-02-02 14:56:44 -05:00
Matt Rubens
bf799d72db Post PRs to a thread instead 2025-02-02 14:54:44 -05:00
Nissa Seru
5bec6297f1 Add JSDocs 2025-02-02 03:04:47 -05:00
Nissa Seru
fb3f60703e Merge branch 'main' of https://github.com/RooVetGit/Roo-Code into fix-editorutils 2025-02-02 03:00:25 -05:00
Nissa Seru
3492f79f37 Remove unnecessary variable, add JSDocs 2025-02-02 02:56:30 -05:00
Matt Rubens
cddd92b0ad
Merge pull request #732 from RooVetGit/fix_mode_wrapping
Make list of modes multi-line on the prompts page
2025-02-02 02:55:35 -05:00
Matt Rubens
a01d923f2f Make list of modes multi-line on the prompts page 2025-02-02 02:32:36 -05:00
Matt Rubens
fef95e10b8 Fix type 2025-02-02 01:34:45 -05:00
Matt Rubens
6770f0410c Merge remote-tracking branch 'origin/main' into truncation-updates 2025-02-02 01:23:59 -05:00
Matt Rubens
9da39e42e1 Fix conflict 2025-02-02 01:23:45 -05:00
Matt Rubens
f493619c0b
Merge pull request #731 from RooVetGit/mrubens-patch-1
Discord message cleanup
2025-02-02 01:19:59 -05:00
Matt Rubens
1c5d6f33b3
Discord message cleanup 2025-02-02 01:18:20 -05:00
Matt Rubens
cdbc7c52a5
Merge pull request #725 from nissa-seru/fix-o3-formatting
Refactor openai-native, prepend string to developer instructions so t…
2025-02-02 01:08:02 -05:00
Nissa Seru
e8a5e280b3 Update EditorUtils 2025-02-02 01:03:27 -05:00
Matt Rubens
27976b791c Merge remote-tracking branch 'origin/main' into fix-o3-formatting 2025-02-02 00:53:15 -05:00
Matt Rubens
730bf8de97
Merge pull request #729 from RooVetGit/mrubens-patch-1
Run discord GHA against pull_request_target
2025-02-02 00:39:34 -05:00
Matt Rubens
e036c1e33b
Exclude changeset PRs 2025-02-02 00:38:28 -05:00
Matt Rubens
e37692c241
Run discord GHA against pull_request_target 2025-02-02 00:33:26 -05:00
Matt Rubens
fb596ff5fa
Merge pull request #724 from nissa-seru/dedupe-levenshtein
use fastest-levenshtein
2025-02-02 00:15:26 -05:00
Matt Rubens
9bbac80515
Merge pull request #727 from RooVetGit/mrubens-patch-1
Create a webhook for Discord
2025-02-02 00:12:12 -05:00
Matt Rubens
58111432da Make runnable on workflow dispatch 2025-02-02 00:04:27 -05:00
Matt Rubens
1d81d871bf Try a link without a preview 2025-02-01 23:56:14 -05:00
Matt Rubens
7440f86d2d
Create discord-pr-notify.yml 2025-02-01 23:39:44 -05:00
Nissa Seru
f8b29e718d Add command fixes 2025-02-01 23:25:44 -05:00
Nissa Seru
5a1299c57f use fastest-levenshtein 2025-02-01 22:54:31 -05:00
Nissa Seru
df932935cf Refactor openai-native, prepend string to developer instructions so that o1/o3 will use md 2025-02-01 22:53:54 -05:00
kohii
1cd90a655b feat: Add Kotlin support in list_code_definition_names 2025-02-02 10:17:57 +09:00
Matt Rubens
4040e934b2
Merge pull request #718 from MuriloFP/fix-context-calculation
fix: update context token calculation
2025-02-01 16:17:44 -05:00
Murilo Pires
26cc335cd3
Merge branch 'RooVetGit:main' into fix-context-calculation 2025-02-01 18:00:41 -03:00
MFPires
70af1d2cb3 fix: update context token calculation to match upstream
The context token calculation has been updated to:
- Include cache tokens (cacheWrites + cacheReads) in the total context size
- Use a cleaner approach to find the last valid API request
- Fix issue where placeholder messages without token info were being counted
- Match upstream's implementation of getTotalTokensFromMessage

This fixes the issue where context size was incorrectly showing as 139 tokens
without any API requests being made.
2025-02-01 17:38:52 -03:00
Matt Rubens
94b831c6ab
Merge pull request #714 from RooVetGit/opened_tabs_and_selection_mentions
Mention shortcuts to open tabs
2025-02-01 12:23:39 -05:00
Matt Rubens
70ad037016 Fix tests 2025-02-01 12:21:13 -05:00
Matt Rubens
14683cc3c5 Cleanup and release 2025-02-01 12:05:39 -05:00
Matt Rubens
1e5a257e52 Removed active selection for now 2025-02-01 11:57:36 -05:00
Chris Estreich
a568577c78
Merge pull request #702 from RooVetGit/cte/activation-cleanup 2025-02-01 08:39:39 -08:00
loup
064dc4e52f feat: opened tabs and selection in the @ menu 2025-02-01 11:16:38 -05:00
Matt Rubens
90ba9e18e1 Remove annoying test 2025-02-01 11:16:38 -05:00
Matt Rubens
edd0ac8eb0
Merge pull request #711 from hesara/fix-o1-mini-price
fix: Update pricing for OpenAI o1-mini
2025-02-01 09:49:37 -05:00
Matt Rubens
ce34dcdef8
Merge pull request #706 from RooVetGit/cte/dropdown-fix
Fix vscrui double scrollbar in Dropdown
2025-02-01 09:00:20 -05:00
Henri Sara
18e1bbf00d fix: Update pricing for OpenAI o1-mini
Together with o3-mini release, OpenAI reduced the price of o1-mini to match it.
2025-02-01 12:06:54 +02:00
cte
03b7763d53 Fix vscrui double scrollbar in Dropdown 2025-01-31 22:33:03 -08:00
Chris Estreich
780b9e0511
Merge pull request #703 from RooVetGit/cte/conditionally-disable-integration-tests
Don't run the `integration-test` job if there's no API key
2025-01-31 22:10:36 -08:00
cte
5c8df59889 Confirmed that check-openrouter-api-key works; remove debugging 2025-01-31 22:08:02 -08:00
cte
ab2dd09ac6 Test what happens if the secret does not exist 2025-01-31 22:06:25 -08:00
cte
de7f67f71e One more attempt 2025-01-31 22:03:33 -08:00
Matt Rubens
60e63a9041
Merge pull request #705 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-01 00:57:03 -05:00
R00-B0T
1683ff82f1 Updating CHANGELOG.md format 2025-02-01 05:56:41 +00:00
github-actions[bot]
2c98c5586f changeset version bump 2025-02-01 05:55:59 +00:00
Matt Rubens
65257dae7d
Merge pull request #704 from RooVetGit/o3_reasoning_effort
Add o3-mini-high and o3-mini-low
2025-02-01 00:55:16 -05:00
Matt Rubens
d047c8beae Add o3-mini-high and o3-mini-low 2025-02-01 00:52:41 -05:00
cte
17fb94cb1b Secrets can't be used in conditionals, apparently 2025-01-31 21:50:06 -08:00
cte
b7cd98da54 Don't run the integration-test job if there's no API key 2025-01-31 21:44:50 -08:00
cte
aa806fdc17 Extension activation cleanup 2025-01-31 21:23:07 -08:00
Matt Rubens
7d6cce6d9c
Merge pull request #701 from RooVetGit/changeset-release/main
Changeset version bump
2025-02-01 00:01:31 -05:00
Matt Rubens
0a5417e549
Update CHANGELOG.md 2025-01-31 23:58:52 -05:00
R00-B0T
08ae84d989 Updating CHANGELOG.md format 2025-02-01 04:51:15 +00:00
github-actions[bot]
f9d3e5b022 changeset version bump 2025-02-01 04:50:34 +00:00
Matt Rubens
95fc86f1b8
Merge pull request #700 from RooVetGit/v3.3.8
v3.3.8
2025-01-31 23:49:54 -05:00
Matt Rubens
27b7444045 v3.3.8 2025-01-31 23:48:33 -05:00
Matt Rubens
83fd05c950
Merge pull request #699 from RooVetGit/move_mcp_creation_checkbox_to_mcp_screen
Move MCP creation checkbox to MCP view
2025-01-31 23:47:02 -05:00
Matt Rubens
5abf5e3aa6 Move MCP creation checkbox to MCP view 2025-01-31 23:40:43 -05:00
Matt Rubens
3d67133435
Merge pull request #698 from RooVetGit/more_o3_mini_fixes
Make o3-mini work in glama
2025-01-31 23:22:43 -05:00
Matt Rubens
0cd1642612 PR feedback 2025-01-31 23:19:50 -05:00
Matt Rubens
11fd3607ea
Merge pull request #697 from samhvw8/fix/config-profile-rename-bug
fix: prevent unnecessary config operations when renaming to same name
2025-01-31 23:04:02 -05:00
Matt Rubens
0050daf746 Make o3-mini work in glama 2025-01-31 22:54:35 -05:00
sam hoang
ab556286f1 fix: prevent unnecessary config operations when renaming to same name
- Add validation in UI to early return when renaming config to current name
- Add server-side validation to prevent config save/delete operations
2025-02-01 10:49:09 +07:00
Matt Rubens
feaa7abace
Merge pull request #696 from samhvw8/feat/mcp-creatation-toggle
feat: add setting to enable/disable MCP server creation
2025-01-31 22:18:26 -05:00
Matt Rubens
27e864d04c
Update webview-ui/src/components/settings/SettingsView.tsx 2025-01-31 22:13:28 -05:00
sam hoang
1c247ed8bc revert not intentional change 2025-02-01 09:59:34 +07:00
sam hoang
f906755d90 feat: add setting to enable/disable MCP server creation
- Add enableMcpServerCreation setting to control whether MCP server creation is allowed
- Add UI toggle in settings view for this feature
- Update system prompt to conditionally include MCP server creation documentation
- Add tests for new functionality
2025-02-01 09:34:53 +07:00
Chris Estreich
8ce5f9a890
Merge pull request #691 from RooVetGit/cte/integration-tests 2025-01-31 16:51:31 -08:00
cte
2e094b409d Switch to Ubuntu; we can enable the full matrix in the future if we care 2025-01-31 16:47:43 -08:00
cte
75bf341057 Try ubuntu-latest 2025-01-31 16:43:01 -08:00
cte
bb3bdf8121 Oops 2025-01-31 16:39:13 -08:00
cte
79c248be2a Get rid of type change, improve detection of webview initialization 2025-01-31 16:37:23 -08:00
cte
5fd8d8911a Fix ENV var name 2025-01-31 15:18:20 -08:00
Matt Rubens
424e6d5ce5
Merge pull request #670 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-31 18:12:10 -05:00
cte
d481a5ae15 Check env.integration file 2025-01-31 14:56:57 -08:00
Matt Rubens
eaef1e40c5
Update CHANGELOG.md 2025-01-31 17:56:26 -05:00
github-actions[bot]
b43044f570 changeset version bump 2025-01-31 22:54:14 +00:00
Matt Rubens
0c795ec555
Merge pull request #693 from RooVetGit/fix_o3_streaming
Streaming version of o3-mini
2025-01-31 17:53:33 -05:00
cte
fea3daa98a Create env.integration file 2025-01-31 14:52:25 -08:00
Matt Rubens
7d28ff516c Streaming version of o3-mini 2025-01-31 17:51:03 -05:00
cte
6761012db2 Run check-types and lint in husky 2025-01-31 14:38:47 -08:00
cte
b80f73bc40 Fix test script 2025-01-31 14:36:53 -08:00
Matt Rubens
dba9f344d8
Merge pull request #692 from RooVetGit/v3.3.7
v3.3.7
2025-01-31 17:30:18 -05:00
Matt Rubens
8e320af54c v3.3.7 2025-01-31 17:26:49 -05:00
cte
85d1d4a77b Run integration tests in CI 2025-01-31 14:12:21 -08:00
Matt Rubens
e8f0b35860
Merge pull request #688 from RooVetGit/rate_limiting
Add optional rate limiting between API calls
2025-01-31 16:49:12 -05:00
Matt Rubens
9aeb498f99 Add optional rate limiting between API calls 2025-01-31 16:44:32 -05:00
Matt Rubens
9acc21c372
Merge pull request #687 from RooVetGit/o3-mini-fixes
Make o3-mini work
2025-01-31 16:36:21 -05:00
Matt Rubens
af9231d22d Make o3-mini work 2025-01-31 16:35:32 -05:00
Matt Rubens
d1f23d2520
Merge pull request #686 from shpigunov/origin/feature/support-o3-mini
support o3-mini
2025-01-31 16:26:34 -05:00
Anton Shpigunov
7329e945b4 Add expectation to match actual API response in tests 2025-01-31 23:19:17 +02:00
Anton Shpigunov
58fdb6f9ef support o3-mini 2025-01-31 23:09:05 +02:00
Matt Rubens
2bcc7c6e53
Merge pull request #685 from RooVetGit/mrubens-patch-1
Serve docs from subfolder
2025-01-31 16:02:47 -05:00
Matt Rubens
98f17088b5
Update pages.yml 2025-01-31 16:01:58 -05:00
Matt Rubens
30198aa3b9
Update _config.yml 2025-01-31 16:01:02 -05:00
Matt Rubens
e71a7e9310
Merge pull request #684 from RooVetGit/mrubens-patch-1
Set jekyll baseurl
2025-01-31 15:56:31 -05:00
Matt Rubens
4393269486
Set jekyll baseurl 2025-01-31 15:56:11 -05:00
Matt Rubens
f4ce65e2ff
Merge pull request #682 from RooVetGit/pages_gha_fixes
Pages gha fixes
2025-01-31 15:32:38 -05:00
Matt Rubens
4333b2726a Update gitignore 2025-01-31 15:28:30 -05:00
Matt Rubens
b8ab396d3f Try to fix pages gha 2025-01-31 15:27:44 -05:00
Matt Rubens
2a141405cc
Merge pull request #680 from shanemmattner/add_docs
Add docs initial setup
2025-01-31 15:21:06 -05:00
Matt Rubens
49375cf3ce Updates 2025-01-31 15:18:17 -05:00
Shane Mattner
a276b1b361 Add Gemfile for GitHub Pages 2025-01-31 11:42:35 -08:00
Shane Mattner
6737a3e86d change config 2025-01-31 11:32:59 -08:00
Shane Mattner
005ac8b7c3 fix errors 2025-01-31 11:29:14 -08:00
Shane Mattner
136672914a add workflow 2025-01-31 11:26:49 -08:00
Shane Mattner
edb03d569a Initial documentation setup with Jekyll and Just the Docs 2025-01-31 11:25:59 -08:00
Matt Rubens
047ddf7afe
Merge pull request #676 from RooVetGit/revert_lint_changes_again
Revert lint changes again
2025-01-31 09:50:11 -05:00
Matt Rubens
1a40050814 Add @cte as codeowner 2025-01-31 09:47:52 -05:00
Matt Rubens
9d1d726751 Remove webview-specific lint rules 2025-01-31 09:46:05 -05:00
Matt Rubens
1496b232f5 Revert "Revert lint rules in webview-ui too"
This reverts commit ab4d717211.
2025-01-31 09:45:53 -05:00
Matt Rubens
a43bc8877e Revert "Fix boolean logic for cost, apiReqCancelReason (they are never null)"
This reverts commit b5340915f7.
2025-01-31 09:45:41 -05:00
Nissa Seru
d154d059a6 Enable separate config for truncation for models without context caching 2025-01-31 06:17:20 -05:00
Chris Estreich
d78da19a4a
Merge pull request #664 from RooVetGit/cte/shadcn-ui-storybook
Add shadcn/ui + Storybook
2025-01-30 22:23:00 -08:00
cte
eefb7218d9 Update to Vite 6 (HMR issue fixed by adding permissive CORS rules) 2025-01-30 22:16:22 -08:00
cte
b5340915f7 Fix boolean logic for cost, apiReqCancelReason (they are never null) 2025-01-30 21:50:19 -08:00
cte
5b6c6be022 Update README 2025-01-30 21:35:56 -08:00
cte
275dab042e Merge branch 'main' into cte/shadcn-ui-storybook 2025-01-30 21:28:05 -08:00
cte
901d769bfd Fix tests 2025-01-30 21:26:29 -08:00
Matt Rubens
bedd6fd2a8
Merge pull request #656 from samhvw8/feat/add-to-context-code-action
Feat add to context code action & Fix some code action error
2025-01-31 00:24:38 -05:00
Matt Rubens
7614048ed4
Update src/shared/support-prompt.ts 2025-01-31 00:22:26 -05:00
Matt Rubens
099447d06b
Update src/shared/support-prompt.ts 2025-01-31 00:22:20 -05:00
Matt Rubens
308eab0563
Update src/shared/support-prompt.ts 2025-01-31 00:22:15 -05:00
cte
7282e02de3 Merge main 2025-01-30 21:15:34 -08:00
Matt Rubens
81a5e805b2
Merge pull request #638 from napter/approval-feedback
Allow the user to send context with approval or rejection
2025-01-30 23:36:43 -05:00
Matt Rubens
652773d619
Merge pull request #671 from RooVetGit/revert_webview_ui_lint_changes
Revert lint rules in webview-ui too
2025-01-30 23:29:20 -05:00
Matt Rubens
ab4d717211 Revert lint rules in webview-ui too 2025-01-30 23:06:42 -05:00
Matt Rubens
a10bb20af2
Merge pull request #669 from RooVetGit/revert_lint_changes
Revert "chore: update eslint config and quiet lint output"
2025-01-30 22:48:29 -05:00
Matt Rubens
69d05a3296
Merge pull request #668 from RooVetGit/clearer_modes_prompt
Clearer modes prompt section
2025-01-30 22:48:14 -05:00
Matt Rubens
810bbb449f Revert "chore: update eslint config and quiet lint output"
This reverts commit 6db3ecf73e.
2025-01-30 22:40:27 -05:00
Matt Rubens
ce072d99d2 Clearer modes prompt section 2025-01-30 22:29:57 -05:00
Matt Rubens
4aff01240b
Merge pull request #667 from RooVetGit/cte/vite-hmr
Enable HMR for the webview, complements of vite
2025-01-30 20:15:28 -05:00
cte
97367951a2 Enable HMR for the webview, complements of vite 2025-01-30 16:25:13 -08:00
Matt Rubens
e2a8a7aa5c
Merge pull request #665 from Szpadel/r1-derivatives-support
Relax deepseek-r1 detection so it also includes distilled models
2025-01-30 18:03:40 -05:00
cte
a5dac3f0a1 Remove lucide 2025-01-30 14:47:59 -08:00
Piotr Rogowski
161a6a5d9e Relax deepseek-r1 detection so it also includes distilled models 2025-01-30 23:43:15 +01:00
cte
69a2e36b2b Remove CRA cruft 2025-01-30 14:38:41 -08:00
cte
ed97c95bb6 Revert this 2025-01-30 14:16:21 -08:00
cte
4cf455ed39 Add shadcn/ui + Storybook 2025-01-30 12:50:09 -08:00
Matt Rubens
29dfe11303
Merge pull request #662 from RooVetGit/use_exponential_retry_for_api_failures
Use an exponential delay for API retries
2025-01-30 11:51:53 -05:00
Matt Rubens
e10004d865 Use an exponential delay for API retries 2025-01-30 11:46:26 -05:00
Matt Rubens
886070de2d
Merge pull request #636 from samhvw8/feat/vite-tailwind
refactor: migrate from CRA to Vite and improve testing
2025-01-30 11:40:27 -05:00
Matt Rubens
b543bd9489
Merge pull request #654 from psv2522/better-border-on-input-focus
fix:Made the main inputbox focus styling better, added better spacing in openai compatible section
2025-01-30 09:57:49 -05:00
sam hoang
bb5d506679 refactor: extract editor utilities into EditorUtils module and add tests 2025-01-30 17:42:11 +07:00
sam hoang
2e56149620 feat: add 'Add To Context' code action
- Add new command registration and menu item
- Add new code action type and command ID
- Add support prompt config for adding code to context
- Add message handling in webview for setting chat box content
- Add logic to append selected code to existing chat input
2025-01-30 17:23:12 +07:00
sam hoang
35a7e433f2 refactor: centralize editor utilities and unify command handling
- Create EditorUtils class to centralize shared editor functionality
- Remove duplicated code between CodeActionProvider and command handlers
- Improve command handling to work consistently for both code actions and direct commands
- Add better type safety and error handling for editor operations
2025-01-30 16:26:44 +07:00
Prathmesh Vhatkar
cd09571683
fix:padding improved, removed scrollbar in inputbox 2025-01-30 13:40:35 +05:30
Matt Rubens
d1bfbc6d62
Merge pull request #632 from psv2522/sliders-on-newline
fix: Move sliders to newline in settings to avoid horizontal scroll.
2025-01-30 01:15:49 -05:00
Prathmesh Vhatkar
fec57e30a8
fix:Made the main inputbox focus styling better, added better spacing in openai compatible section 2025-01-30 11:21:54 +05:30
Matt Rubens
bc5b00ea0b
Merge pull request #648 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-29 23:12:35 -05:00
Matt Rubens
74f4f96d83
Update CHANGELOG.md 2025-01-29 23:10:16 -05:00
github-actions[bot]
b914d1f5ee changeset version bump 2025-01-30 03:51:29 +00:00
Matt Rubens
0335abf57a
Merge pull request #650 from RooVetGit/v3.3.6
Add v3.3.6
2025-01-29 22:50:31 -05:00
Matt Rubens
6985bd2734 Add v3.3.6 2025-01-29 22:28:43 -05:00
Joe Manley
1edb939bde
Merge pull request #647 from RooVetGit/jm/add-keywords
Add keywords for search - roocode, roo code
2025-01-29 13:59:26 -08:00
Joe Manley
0de9b29a92 Add new changeset 2025-01-29 13:23:18 -08:00
Joe Manley
a0cbb1e4a5 Add keywords for search - roocode, roo code 2025-01-29 13:13:24 -08:00
Nathan Apter
fe82500e94 Send the text when the buttons are clicked 2025-01-29 15:28:46 -05:00
Nathan Apter
3aa5b3f9be Allow the user to send context with approval or rejection 2025-01-29 15:28:46 -05:00
Matt Rubens
fc688bbe8e
Merge pull request #644 from Szpadel/oai-delta-und
Fix crash when delta in openai api handling could be empty in some ca…
2025-01-29 13:50:00 -05:00
Piotr Rogowski
60cb550db7 Fix crash when delta in openai api handling could be empty in some cases.
Fixes #641
2025-01-29 19:43:10 +01:00
Matt Rubens
449b9ef610
Merge pull request #642 from websentry-ai/vs/fix-anthropic-cache-tokens
Fixes the cached token count for unbound provider models
2025-01-29 12:32:51 -05:00
Vignesh Subbiah
d6433591b2 Add typing for usageData and adds some unit tests 2025-01-29 22:53:43 +05:30
Vignesh Subbiah
6ccb061d33 Refactors the cached token code for all models 2025-01-29 22:25:01 +05:30
sam hoang
6db3ecf73e chore: update eslint config and quiet lint output
- Add recommended TypeScript ESLint rules and configurations
- Configure explicit function return types and member accessibility
- Add environment settings for Node.js and ES2021
- Update parser options and ignore patterns
- Add --quiet flag to lint commands to reduce noise
2025-01-29 23:42:15 +07:00
kinandan
26369ca48b Fixing anthropic model caching in roo-code 2025-01-29 21:44:47 +05:30
Matt Rubens
117c4abfee
Merge pull request #640 from RooVetGit/new_task_tool
Add a new_task tool
2025-01-29 10:59:35 -05:00
Matt Rubens
5c17f79bcc
Merge pull request #633 from Szpadel/r1-perplexity-support
Add support for perplexity/sonar-reasoning
2025-01-29 10:57:50 -05:00
Matt Rubens
13de490c3b Add a new_task tool 2025-01-29 10:56:44 -05:00
sam hoang
477daf8f64 update css variable for shadcn component 2025-01-29 21:35:14 +07:00
sam hoang
43bcfe38a8 Roo Cline -> Roo Code 2025-01-29 21:21:20 +07:00
sam hoang
12dd54671a refactor: migrate from CRA to Vite and improve testing
Replace Create React App with Vite build system
Add ESLint configuration and improve TypeScript types
Create VSCode UI component mocks for better testing
Update test files with proper async handling
Add Tailwind CSS integration
Fix accessibility by adding ARIA roles
2025-01-29 21:15:28 +07:00
Piotr Rogowski
1534a9c047 Add support for perplexity/sonar-reasoning 2025-01-29 09:54:19 +01:00
Prathmesh Vhatkar
a07f94fa19
fix: Move sliders to newline in settings to avoid horizontal scroll at normal(20-25%) window size 2025-01-29 11:57:24 +05:30
Matt Rubens
4026a87d2c
Merge pull request #631 from samhvw8/fix/config-profile-dropdown-zindex
fix config-profile-dropdown-zindex
2025-01-29 00:50:48 -05:00
sam hoang
e8ff70ebf0 fix config-profile-dropdown-zindex 2025-01-29 12:40:24 +07:00
Matt Rubens
76278ed99e
Merge pull request #616 from websentry-ai/vs/support-unbound
Supports unbound API provider
2025-01-29 00:10:21 -05:00
Matt Rubens
e07d2aa892
Merge pull request #599 from samhvw8/refactor/change-console-log-to-output-channel
refactor: improve error logging in ClineProvider
2025-01-28 23:48:07 -05:00
Matt Rubens
a968cc3b58
Merge pull request #615 from psv2522/change-select-to-dropdown
fix: Use Dropdown instead of select in settings for more UI consistency
2025-01-28 23:43:56 -05:00
Prathmesh Vhatkar
7e38e50d79
fix: Mock dropdown in tests correctly 2025-01-29 09:14:16 +05:30
Matt Rubens
76694777ea
Merge pull request #625 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-28 22:15:20 -05:00
Matt Rubens
289e9031b5
Update CHANGELOG.md 2025-01-28 22:12:06 -05:00
Matt Rubens
ae86fffc5d
Update CHANGELOG.md 2025-01-28 22:11:25 -05:00
Matt Rubens
8ae01b4d15 Merge remote-tracking branch 'origin/main' into changeset-release/main 2025-01-28 21:55:02 -05:00
Matt Rubens
b20af10845
Merge pull request #629 from MuriloFP/fix/stable-context-counter
fix: prevent context token counter flickering during API requests
2025-01-28 19:54:36 -05:00
MFPires
86eb383227 fix: prevent context token counter flickering during API requests
Maintains the last valid context token count between API requests by:
- Adding tracking of last valid context tokens
- Using last known value as fallback when current request lacks token data
- Only updating when new valid token counts are available

This prevents the context counter from flickering to "-" during tool calls
and API request transitions, improving the UI stability.
2025-01-28 21:49:26 -03:00
R00-B0T
7b57f0fca7 Updating CHANGELOG.md format 2025-01-28 20:33:55 +00:00
github-actions[bot]
a11cb5c46c changeset version bump 2025-01-28 20:33:11 +00:00
Matt Rubens
9056a5916a
Merge pull request #624 from RooVetGit/v3.3.5
V3.3.5
2025-01-28 15:32:14 -05:00
Matt Rubens
93f43bea43 More renaming 2025-01-28 15:24:45 -05:00
Matt Rubens
15c2b49671 Merge remote-tracking branch 'origin/main' into v3.3.5 2025-01-28 15:03:03 -05:00
Matt Rubens
6dc1a036dd
Merge pull request #623 from Szpadel/r1-variants
handle other deepseek-r1 variants on openrouter
2025-01-28 15:01:33 -05:00
Piotr Rogowski
9710fd1110 handle other deepseek-r1 variants on openrouter 2025-01-28 20:53:07 +01:00
Matt Rubens
b17f435e56 Merge remote-tracking branch 'origin/main' into v3.3.5 2025-01-28 14:41:07 -05:00
Matt Rubens
5bee585620
Merge pull request #622 from MuriloFP/feature/add-context-to-environment
Feature/add context to environment
2025-01-28 14:39:22 -05:00
Matt Rubens
d836548c19 insert_code_block -> insert_content 2025-01-28 14:36:12 -05:00
MFPires
ea6dc7c16e feat(ui): add context window percentage to task header
Display the percentage of total context window used alongside token count in the task header. This helps users better understand their context usage relative to the model's capacity.

Implementation details:
- Retrieve model's context window size from normalized API configuration
- Calculate percentage of context window used based on current context tokens
- Display percentage in parentheses next to token count (e.g. "40,000 (20%)")
- Default to context window size of 1 if model info is unavailable
- Format numbers with commas for better readability
2025-01-28 16:33:06 -03:00
MFPires
f7cf08c607 feat: Add context tokens to environment details
Adds the current conversation's context token count to the environment details section by:
- Using existing getApiMetrics() to retrieve contextTokens from the last API request
- Adding a new "Context Tokens" section between "Current Time" and "Current Mode"
- Formatting the token count with toLocaleString() for better readability
- Showing "(Not available)" when no context tokens are present

This provides visibility into the current conversation's token usage directly in the environment details, helping track context window utilization.
2025-01-28 15:49:36 -03:00
Matt Rubens
68035507af v3.3.5 2025-01-28 13:22:16 -05:00
pugazhendhi-m
ea30563cca
Merge branch 'main' into vs/support-unbound 2025-01-28 21:58:23 +05:30
Matt Rubens
f2ac56917c
Merge pull request #538 from samhvw8/feat/insert_and_search_replace_tools
New Roo Tool insert and search replace tools
2025-01-28 11:23:06 -05:00
Pugazhendhi
63b8e8972f Adds button to get unbound api key 2025-01-28 21:52:12 +05:30
Matt Rubens
50eb2e2c93
Merge pull request #617 from RooVetGit/mode_switch_delay
Add a delay to allow auto approved mode changes to take effect
2025-01-28 11:21:57 -05:00
Matt Rubens
bd0a613be1 Add a delay to allow auto approved mode changes to take effect 2025-01-28 11:11:28 -05:00
Vignesh Subbiah
5329c712de Yields the usage tokens 2025-01-28 21:11:16 +05:30
Matt Rubens
800ec10684
Merge pull request #613 from samhvw8/fix/OpenAiModelPicker.tsx
fix missing set search term in make input lag in openai picker
2025-01-28 10:29:30 -05:00
Matt Rubens
5579922f98 Sneak in a change to apply_diff error message 2025-01-28 10:24:16 -05:00
sam hoang
003bb5cabc fix diffview for search-and-replace tool and insert tool 2025-01-28 22:13:51 +07:00
Matt Rubens
eef34c03dc Update prompts and fix tests 2025-01-28 10:11:00 -05:00
sam hoang
e7ff4ed397 fix missing in make input lag 2025-01-28 21:47:24 +07:00
Prathmesh Vhatkar
db0339b228
fix: Use Dropdown instead of select in settings for more ui consistency 2025-01-28 20:15:52 +05:30
Vignesh Subbiah
4008a1a53e Modifying the usage of unbound.ts in compliance with all providers 2025-01-28 19:43:52 +05:30
sam hoang
411182a5d9 fix error in search and replace, update rule to utilize multiple operation 2025-01-28 21:06:38 +07:00
sam hoang
9b175a736e update prompt for search and replace tool 2025-01-28 21:06:37 +07:00
sam hoang
4e3ea695d8 update rule & prompt for insert-code-block 2025-01-28 21:06:37 +07:00
sam hoang
179ea7904b update with comment in pr 2025-01-28 21:06:37 +07:00
sam hoang
0fa6fd4ddb chore: remove unused 2025-01-28 21:06:36 +07:00
sam hoang
8fa1d5a2f9 refactor(experiments): simplify experiment config structure
- Remove redundant id field from ExperimentConfig interface
- Update UI components to use experiment keys directly
- Improve type safety by using key-based mapping instead of object values
2025-01-28 21:06:36 +07:00
sam hoang
7dd161824b refactor: remove redundant experimentConfigs array, use experimentConfigsMap directly 2025-01-28 21:06:35 +07:00
sam hoang
681fe4a956 chore: update description for exp tool 2025-01-28 21:06:35 +07:00
sam hoang
3ed8540eba refactor(experiments): improve type safety for experiment configuration
Change ExperimentId type to be value-based rather than key-based
Make experiment record types more strict with proper typing
Pass full experiment config object instead of single boolean flag
Update type definitions and usages across codebase
2025-01-28 21:06:35 +07:00
sam hoang
bb84d79af1 chore: remove unused 2025-01-28 21:06:34 +07:00
sam hoang
ad552ea026 feat: implement experimental features system
- Add experiments.ts to manage experimental features
- Refactor experimental diff strategy into experiments system
- Add UI components for managing experimental features
- Add tests for experimental tools
- Update system prompts to handle experiments
2025-01-28 21:06:33 +07:00
Matt Rubens
2c97b59ed1 Checkpoint on insert and search/replace tools 2025-01-28 21:05:44 +07:00
Matt Rubens
f07109b686
Merge pull request #606 from Szpadel/extend-r1-support
Extend deepseek-r1 support
2025-01-28 07:30:31 -05:00
Matt Rubens
18c7f57afb Add test 2025-01-28 00:15:14 -05:00
Matt Rubens
f70e3fc08b
Merge pull request #610 from MuriloFP/feature/auto-approve-switch-modes
Feature/auto approve switch modes
2025-01-28 00:07:44 -05:00
MFPires
f50214b017 feat(settings): Add auto-approve mode switching option to Settings UI
Add the ability to configure automatic mode switching approval in the Settings UI.

Implementation:
- Added alwaysAllowModeSwitch checkbox in the Auto-Approve Settings section
- Added state management integration with useExtensionState
- Added vscode.postMessage handler for state updates
- Placed the setting logically between MCP tools and execute operations settings

The new setting allows users to:
- Enable/disable automatic approval of mode switching operations
- Configure mode switching approval independently of other auto-approve settings
- Maintain consistent UX with other auto-approve settings

This completes the mode switching auto-approval feature, working in conjunction with:
- Previously added state management in ExtensionStateContext
- Core logic changes in ClineProvider
- WebviewMessage type updates
- Existing test coverage in ChatView.auto-approve.test.tsx
2025-01-28 01:48:47 -03:00
Murilo Pires
5bc1a5062a
Merge branch 'RooVetGit:main' into feature/auto-approve-switch-modes 2025-01-28 01:22:01 -03:00
MFPires
b3be00c050 feat: Add auto-approval for mode switching
Implements automatic approval for mode switching operations when enabled, following
existing auto-approval patterns in the codebase.

Implementation:
- Added `alwaysAllowModeSwitch` to state management
- Updated `isAutoApproved` function in ChatView to handle mode switch requests
- Added mode switch option to AutoApproveMenu with appropriate handler
- Integrated with existing auto-approval flow

Tests:
- Added three test cases in ChatView.auto-approve.test.tsx:
  1. Verifies mode switch auto-approval when enabled
  2. Verifies no auto-approval when mode switch setting is disabled
  3. Verifies no auto-approval when global auto-approval is disabled

The implementation follows existing patterns for other auto-approve features
(read, write, browser, etc.) to maintain consistency in the codebase.
2025-01-28 01:20:19 -03:00
Matt Rubens
3862057a4d
Merge pull request #608 from MuriloFP/feature/context-token-counter
Feature/context token counter
2025-01-27 22:46:21 -05:00
Murilo Pires
1ba632fe89
Update webview-ui/src/components/chat/TaskHeader.tsx
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-01-28 00:39:40 -03:00
MFPires
5311e0c8ab fix: Make context token counter more reliable
- Only consider API requests with valid token information
- Skip messages with invalid/missing token data
- Prevent counter from resetting on action approval messages
- Ensure both tokensIn and tokensOut are valid numbers

This makes the context token counter more stable and accurate
by only updating on valid API responses with complete token data.
2025-01-28 00:27:17 -03:00
MFPires
97fe13dcb1 fix: Prevent context token counter from resetting on failed API calls
- Only update context tokens when both input and output tokens are non-zero
- Keep previous context token count when API calls fail
- Avoid resetting counter on partial or failed responses

This makes the context token counter more resilient against edge cases
and provides more accurate context size tracking during API failures.
2025-01-27 23:12:01 -03:00
MFPires
e668169ed9 feat: Add conversation context token counter
- Add contextTokens to ApiMetrics interface
- Calculate context size using last API request's tokens
- Display context token count in TaskHeader below total tokens
- Use exact token counts instead of character estimation

This helps users track the total size of their conversation context,
which is useful for managing context window limits.
2025-01-27 23:02:25 -03:00
Matt Rubens
86d4a10a9a
Merge pull request #605 from eltociear/patch-2
chore: update CodeBlock.tsx
2025-01-27 15:35:21 -05:00
Piotr Rogowski
cb23be6346 Extend deepseek-r1 support 2025-01-27 21:27:24 +01:00
Ikko Eltociear Ashimine
bfe935e5f5
chore: update CodeBlock.tsx
langauge -> language
2025-01-28 03:13:14 +09:00
Matt Rubens
73532e4b12
Merge pull request #591 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-27 09:54:55 -05:00
Matt Rubens
3f47802538
Update CHANGELOG.md 2025-01-27 09:54:41 -05:00
Matt Rubens
39eab08080
Update CHANGELOG.md 2025-01-27 09:51:28 -05:00
github-actions[bot]
f153bf5b8f changeset version bump 2025-01-27 14:46:27 +00:00
Matt Rubens
67f470ef0b
Merge pull request #600 from RooVetGit/v3.3.4
v3.3.4
2025-01-27 09:45:26 -05:00
Matt Rubens
f542aa47d8 v3.3.4 2025-01-27 09:44:41 -05:00
Matt Rubens
ed1f656258
Merge pull request #594 from samhvw8/feat/code-action-with-current-task
feat(code-actions): add "Fix Code in Current Task" action
2025-01-27 09:43:46 -05:00
Matt Rubens
9627551716
Merge pull request #595 from RooVetGit/simpler_apply_diff_speedup
Speed up diff edits
2025-01-27 09:42:01 -05:00
Matt Rubens
61fb096f96 Add new/existing task for all three actions 2025-01-27 09:40:04 -05:00
sam hoang
0a19745c23 fix pr comment 2025-01-27 21:28:58 +07:00
Pugazhendhi
31ec687768 Adds provider names to dropdown 2025-01-27 19:48:43 +05:30
Pugazhendhi
aed51a2bc5 Updates error reading 2025-01-27 19:48:31 +05:30
Pugazhendhi
f222e8341c Added mistral and deepseek models 2025-01-27 19:48:23 +05:30
Pugazhendhi
336f76baa9 Changes production url 2025-01-27 19:48:17 +05:30
Pugazhendhi
d78c6a6862 Updates test file 2025-01-27 19:48:10 +05:30
Pugazhendhi
270105bac8 Adds test file 2025-01-27 19:48:04 +05:30
Pugazhendhi
698ae6566d Handles error messages 2025-01-27 19:47:52 +05:30
Pugazhendhi
20d9a88bb4 Removed comments 2025-01-27 19:47:40 +05:30
Pugazhendhi
02ccd77004 Fixed model mismatch 2025-01-27 19:47:34 +05:30
Pugazhendhi
62dcfbe549 Adds unbound provider to roo cline 2025-01-27 19:47:28 +05:30
sam hoang
17c0deaf6b refactor: improve error logging in ClineProvider
- Replace console.error with outputChannel.appendLine for better error visibility
- Add detailed error information using JSON.stringify with full error properties
- Improve error message formatting and consistency across all error handlers
2025-01-27 21:12:53 +07:00
Matt Rubens
db0ec64d1c
Merge pull request #597 from RooVetGit/mrubens-patch-1
Update README.md
2025-01-27 03:22:37 -05:00
Matt Rubens
f81c2378e0
Update README.md 2025-01-27 03:21:19 -05:00
Matt Rubens
1c1810ebdc
Merge pull request #596 from RooVetGit/readme-links
Update README.md
2025-01-27 03:19:01 -05:00
Matt Rubens
407fe8f6f3
Update README.md 2025-01-27 03:14:40 -05:00
Matt Rubens
2ffb009e6a Speed up diff edits 2025-01-27 02:52:05 -05:00
sam hoang
85c49d8eff feat(code-actions): add "Fix Code in Current Task" action
Adds ability to fix code within the context of an active task instead of starting a new one. This allows for more efficient workflow when already working with Roo.

Add new FIX_IN_CURRENT_TASK code action and command
Enhance ClineProvider to support context-aware code fixing
Update tests to verify new action functionality
2025-01-27 14:24:26 +07:00
Matt Rubens
f47dd2d0db
Merge pull request #584 from RooVetGit/mcp_timeouts
Add per-server MCP network timeout configuration
2025-01-26 22:54:26 -05:00
Matt Rubens
57518e10b3 Add per-server MCP network timeout configuration 2025-01-26 22:49:21 -05:00
Matt Rubens
3deeb0c28b
Merge pull request #579 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-26 14:23:08 -05:00
Matt Rubens
96dc4f58fd
Update CHANGELOG.md 2025-01-26 14:19:21 -05:00
github-actions[bot]
efd599e3e5 changeset version bump 2025-01-26 19:17:46 +00:00
Matt Rubens
ffa7d34f0b
Merge pull request #582 from RooVetGit/v3.3.3
v3.3.3
2025-01-26 14:16:51 -05:00
Matt Rubens
3c5019dec4 v3.3.3 2025-01-26 14:14:59 -05:00
Matt Rubens
601ede7482
Merge pull request #577 from psv2522/fix-issue-562
fix:Added correct styling for the select options
2025-01-26 08:46:38 -05:00
Prathmesh Vhatkar
2d65b8aabe
fix:Using optionStyle everywhere correctly 2025-01-26 19:10:16 +05:30
Matt Rubens
6b3fffce3e
Merge pull request #574 from RooVetGit/better_file_suffix_check
Throw FileRestrictionErrors sooner
2025-01-26 08:21:11 -05:00
Prathmesh Vhatkar
63787d1f7b
fix:Added correct styling for the select options 2025-01-26 18:00:10 +05:30
Matt Rubens
5d20477785 Throw FileRestrictionErrors sooner 2025-01-26 02:44:59 -05:00
Piotr Rogowski
048863e039 Do not exclude whole project dir when listing in case where project is places inside excluded dir (like /tmp or ~/tmp) 2025-01-26 08:31:07 +01:00
Matt Rubens
813c607440
Merge pull request #565 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-26 00:59:30 -05:00
Matt Rubens
a6ff8d250b
Update CHANGELOG.md 2025-01-26 00:57:00 -05:00
Matt Rubens
3af81a7ae5
Update CHANGELOG.md 2025-01-26 00:54:57 -05:00
github-actions[bot]
7f92f1ca11 changeset version bump 2025-01-26 05:47:50 +00:00
Matt Rubens
74d30904a2
Merge pull request #570 from RooVetGit/v3.3.2
v3.3.2
2025-01-26 00:46:47 -05:00
Matt Rubens
8f5b9405fb v3.3.2 2025-01-26 00:42:43 -05:00
Matt Rubens
241ee6ed37
Merge pull request #568 from RooVetGit/bug-report-version-required
Update bug_report.yml
2025-01-26 00:40:48 -05:00
Matt Rubens
ffd0829757
Update bug_report.yml
Add required app version input (thanks for the suggestion @nissa-seru!)
2025-01-26 00:37:25 -05:00
Matt Rubens
2fbf276f00
Merge pull request #555 from dairui1/feat/openrouter_base_url
feat: Add openRouterBaseUrl option
2025-01-26 00:35:11 -05:00
Matt Rubens
3d5780f44e Fix 2025-01-26 00:31:53 -05:00
Matt Rubens
1bf0145099
Merge pull request #541 from PretzelVector/indent_collapsed_settings
[cosmetic] indent collapsing settings
2025-01-26 00:19:58 -05:00
Matt Rubens
1101992e3a
Merge pull request #563 from Szpadel/r1-display-reason
Display reasoning for supported openrouter models
2025-01-26 00:19:11 -05:00
Matt Rubens
60749237ff Merge remote-tracking branch 'origin/main' into r1-display-reason 2025-01-26 00:16:55 -05:00
Matt Rubens
af4161d777
Merge pull request #567 from RooVetGit/fix_mcp_chat_checkboxes
Fix bug where always allow wasn't showing up for MCP tools
2025-01-25 23:53:57 -05:00
Matt Rubens
d052bebed6 Fix bug where always allow wasn't showing up for MCP tools 2025-01-25 23:47:46 -05:00
Matt Rubens
3b2424965c
Merge pull request #564 from RooVetGit/small_fixes
Add API configuration picker in the mode configuration section
2025-01-25 22:32:49 -05:00
Matt Rubens
90d6ab7e2e Add configuration picker on the modes page 2025-01-25 22:30:35 -05:00
Matt Rubens
66909b5c36 Hardcode version in announcement 2025-01-25 21:41:03 -05:00
Piotr Rogowski
c6607065b9 Add support for displaying reasoning for openrouter models 2025-01-26 02:11:56 +01:00
Piotr Rogowski
663747eb2d Use deepseek-r1 recommended temperature 2025-01-25 23:34:50 +01:00
dairui1
4a75f85eac feat: Add openRouterBaseUrl option 2025-01-25 16:48:21 +08:00
Matt Rubens
7b668277fa
Merge pull request #551 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-24 23:52:56 -05:00
Matt Rubens
0b0653aae9
Update CHANGELOG.md 2025-01-24 23:49:36 -05:00
github-actions[bot]
e7728d8189 changeset version bump 2025-01-25 04:48:18 +00:00
Matt Rubens
2dfe2c5797
Merge pull request #552 from RooVetGit/fix_multiple_terminals_created
Fix multiple terminals created
2025-01-24 23:47:21 -05:00
Matt Rubens
68712ea0f6 Changeset 2025-01-24 23:40:49 -05:00
Evan
674216cc8a reuse existing non-busy terminals 2025-01-24 23:39:29 -05:00
Matt Rubens
bf49b3ea61
Merge pull request #550 from RooVetGit/fix_switch_mode_command
Do a more complete mode switch from switch_mode command
2025-01-24 23:30:06 -05:00
Matt Rubens
8c929ba16a Do a more complete mode switch from switch_mode command 2025-01-24 23:04:57 -05:00
~PV
e90d46ef1b indent collapsed settings 2025-01-24 11:26:39 -08:00
Matt Rubens
f5021993ea
Merge pull request #536 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-24 14:15:44 -05:00
Matt Rubens
8c0199f45c
Update CHANGELOG.md 2025-01-24 14:13:17 -05:00
github-actions[bot]
1f902ec31b changeset version bump 2025-01-24 19:04:37 +00:00
Matt Rubens
91b82f8c50
Merge pull request #540 from RooVetGit/v3.3
V3.3
2025-01-24 14:03:37 -05:00
Matt Rubens
e2241286f3 Fix test 2025-01-24 13:39:31 -05:00
Matt Rubens
d4110dca8e Docs 2025-01-24 13:25:47 -05:00
Matt Rubens
cda44d52d4 Don't allow setting a retry period below 5 seconds, default to 10 2025-01-24 12:59:49 -05:00
Matt Rubens
9279904366 v3.3 changeset 2025-01-24 12:57:30 -05:00
Matt Rubens
fd7034c3d3
Merge pull request #537 from samhvw8/fix/model-name-524
fix #524
2025-01-24 12:57:15 -05:00
sam hoang
4e8f7ca396 fix #524 2025-01-25 00:54:09 +07:00
Matt Rubens
7c41a9cbf8
Merge pull request #526 from RooVetGit/switch_mode_tool
Add a tool to switch modes
2025-01-24 12:50:57 -05:00
Matt Rubens
9464a1bae9
Merge pull request #523 from RooVetGit/allow_architect_mode_to_write_markdown
Allow architect and ask modes to write md files
2025-01-24 12:50:08 -05:00
Matt Rubens
5f8a8887fb Validation fixes 2025-01-24 12:46:10 -05:00
Matt Rubens
a83d8dacbf
Merge pull request #534 from samhvw8/feat/code-action-user-prompt
feat: user prompt in code action
2025-01-24 10:23:37 -05:00
sam hoang
a7ae6c46d1 feat: user prompt in code action 2025-01-24 22:19:10 +07:00
Matt Rubens
b8fd389e07
Merge pull request #392 from Lunchb0ne/aws-profile-support
Add support for using AWS Profile
2025-01-24 09:14:40 -05:00
Matt Rubens
0cfc095544 Merge remote-tracking branch 'origin/main' into aws-profile-support 2025-01-24 09:10:11 -05:00
Matt Rubens
d1754cace0 Add a tool to switch modes 2025-01-24 03:05:03 -05:00
Matt Rubens
569e104bf2 Updated role definition for ask 2025-01-24 01:46:46 -05:00
Matt Rubens
ba69cd756f Cleanup 2025-01-24 01:32:48 -05:00
Matt Rubens
980189460d Update system prompt 2025-01-24 00:39:45 -05:00
Matt Rubens
6c3c216034 Add test to confirm this works with custom modes 2025-01-24 00:30:24 -05:00
Matt Rubens
7413d6494e Let ask mode write markdown too 2025-01-23 23:48:38 -05:00
Matt Rubens
4e77fb93bb Allow architect mode to write md files 2025-01-23 23:41:47 -05:00
Matt Rubens
0a32e24c6d
Merge pull request #329 from samhvw8/feat/roo-cline-code-action
New Feature code action
2025-01-23 17:19:45 -08:00
Matt Rubens
030575aaf9
Merge pull request #514 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-23 17:01:14 -08:00
Matt Rubens
47635fd640
Update CHANGELOG.md 2025-01-23 16:53:12 -08:00
github-actions[bot]
045dd13675 changeset version bump 2025-01-24 00:32:54 +00:00
Matt Rubens
5cd28abff7
Merge pull request #521 from RooVetGit/v3.2.8
v3.2.8
2025-01-23 16:32:02 -08:00
Matt Rubens
a18843bdfd v3.2.8 2025-01-23 16:24:07 -08:00
Matt Rubens
3257dffa56 Review feedback 2025-01-23 15:56:24 -08:00
Matt Rubens
039590d2c3
Merge pull request #520 from Premshay/feat/add-llama-model
feat(api): add Llama 3.3 70B Instruct to AWS Bedrock model options
2025-01-23 15:16:53 -08:00
Matt Rubens
45aa069f39
Merge pull request #501 from punkpeye/add-polling
feat: poll usage
2025-01-23 15:16:10 -08:00
root
d93a7a74d5 feat(api): add Llama 3.3 70B Instruct to AWS Bedrock model options 2025-01-23 21:12:59 +02:00
sam hoang
f86e96d157 refactor: separate mode and support prompts
- Rename customPrompts to customModePrompts for mode-specific prompts
- Add new customSupportPrompts type for support action prompts
- Update types to be more specific (CustomModePrompts and CustomSupportPrompts)
- Fix all related tests and component implementations
2025-01-24 01:46:33 +07:00
sam hoang
085d42873c refactor: generalize prompt enhancement into single completion handler
- Rename enhance-prompt.ts to single-completion-handler.ts for better clarity
- Refactor enhancement logic to be more generic and reusable
- Update prompt template handling to use template literals
- Adjust tests and imports accordingly
2025-01-24 01:14:48 +07:00
sam hoang
149e86ed0a fix comment on pr 2025-01-24 00:51:35 +07:00
Matt Rubens
40c0457b3a
Merge pull request #518 from samhvw8/revert-onChange-onInput
Revert onChange back to onInput
2025-01-23 09:48:01 -08:00
sam hoang
55a5a97d8b refactor: consolidate code action and enhance prompts into unified support prompts system
- Rename codeActionPrompt to supportPrompt for better clarity
- Move enhance prompt functionality into support prompts system
- Add ENHANCE tab alongside other support prompt types
- Update UI to show enhancement configuration in ENHANCE tab
- Update tests to reflect new unified structure

This change simplifies the prompt system by treating enhancement as another type of support prompt rather than a separate system.
2025-01-24 00:46:20 +07:00
sam hoang
22907a0578 refactor: consolidate prompt functionality into support-prompt module
- Move code action prompts from core/prompts to shared/support-prompt
- Migrate enhance prompt functionality from modes to support-prompt
- Add UI for managing code action prompts in PromptsView
- Update types and interfaces for better prompt management
2025-01-24 00:46:19 +07:00
sam hoang
7845791720 feat(code-actions): add user input and customizable templates
Add ability to provide custom input when using code actions
Make code action templates customizable and resettable
Refactor code action handling for better maintainability
Add state management for utility prompts
2025-01-24 00:46:19 +07:00
sam hoang
1b26f91ea7 refactor(code-actions): implement parameter object pattern for prompt generation
- Extract prompt templates into constants
- Add createPrompt utility for template string handling
- Consolidate code action handling in ClineProvider
- Update tests to use new parameter object pattern
2025-01-24 00:46:19 +07:00
sam hoang
02a8eb96f1 feat: integrate code actions into extension activation 2025-01-24 00:46:19 +07:00
sam hoang
273bfc410b feat: register new code action commands in package manifest 2025-01-24 00:46:18 +07:00
sam hoang
86b051df35 feat: implement code action provider for VS Code integration 2025-01-24 00:46:18 +07:00
sam hoang
7c875f1fea feat: add code action prompt handlers for explain, fix and improve code 2025-01-24 00:46:18 +07:00
sam hoang
0c81f427cb Revert onChange back to onInput 2025-01-24 00:40:53 +07:00
Matt Rubens
343d3fa687
Merge pull request #516 from samhvw8/feat/use-azure-openai
feat: add explicit Azure OpenAI flag
2025-01-23 09:25:41 -08:00
sam hoang
f745f080f4 feat: add explicit Azure OpenAI flag and setup memory bank docs
- Add openAiUseAzure flag to force Azure OpenAI client initialization
- Add "Use Azure" checkbox in API settings UI

This change improves Azure OpenAI configuration flexibility by allowing users to explicitly opt-in to Azure client, regardless of the base URL pattern.
2025-01-24 00:14:55 +07:00
Matt Rubens
1555a4f055
Merge pull request #513 from RooVetGit/fix_custom_modes_settings_button
Fix button to open custom modes settings
2025-01-23 08:26:37 -08:00
Matt Rubens
2b059c6d15 Fix button to open custom modes settings 2025-01-23 08:14:15 -08:00
Frank
576c92ff4c feat: poll usage 2025-01-22 16:17:31 -06:00
Matt Rubens
0d6f928f9f
Merge pull request #498 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-22 13:04:07 -08:00
R00-B0T
4a39eaf401 Updating CHANGELOG.md format 2025-01-22 21:03:46 +00:00
github-actions[bot]
0cfb388382 changeset version bump 2025-01-22 21:03:04 +00:00
Matt Rubens
42cf557198
Merge pull request #497 from RooVetGit/3_2_7
3 2 7
2025-01-22 13:02:04 -08:00
Matt Rubens
8e6b38870d Release 2025-01-22 12:58:55 -08:00
Matt Rubens
fc03237a4f Revert "fix: avoid deleting configs if the currentApiConfigName hasn't been changed"
This reverts commit 8ad904a13c.
2025-01-22 12:56:54 -08:00
Matt Rubens
d6ebfb981a
Merge pull request #493 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-22 08:49:36 -08:00
R00-B0T
447400fecc Updating CHANGELOG.md format 2025-01-22 16:48:43 +00:00
github-actions[bot]
28df0ab004 changeset version bump 2025-01-22 16:48:01 +00:00
Matt Rubens
d479d8417c
Merge pull request #492 from RooVetGit/fix_built_in_role_definition_overrides
Fix bug with role definition overrides for built-in modes
2025-01-22 08:47:03 -08:00
Matt Rubens
8e48b734a5 Fix bug with role definition overrides for built-in modes 2025-01-22 08:42:28 -08:00
Matt Rubens
e211d83ba9
Merge pull request #489 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-22 08:24:54 -08:00
R00-B0T
6e17442ed8 Updating CHANGELOG.md format 2025-01-22 16:22:53 +00:00
github-actions[bot]
212f609709 changeset version bump 2025-01-22 16:22:09 +00:00
Matt Rubens
34205d9b9f
Merge pull request #487 from RooVetGit/v3_2_5
V3 2 5
2025-01-22 08:21:14 -08:00
Matt Rubens
82a6d13c20 Change default 2025-01-22 08:18:29 -08:00
Matt Rubens
c021c3d2ff v3.2.5 2025-01-22 08:09:11 -08:00
Matt Rubens
b4594d36f6
Merge pull request #484 from monotykamary/style/clean-up-chat-row-double-scroll
style: clean up chat row and api provider double scroll
2025-01-22 08:07:18 -08:00
Tom X Nguyen
ece63103c7 style: align chatrow through padding and keep flex-start for the trash 2025-01-22 23:02:32 +07:00
Tom X Nguyen
4b24564087 style: remove double scroll bar through unsetting overflow 2025-01-22 23:01:52 +07:00
Matt Rubens
b91bffb61c
Merge pull request #480 from monotykamary/chore/gemini-flash-thinking-01-21
chore: add gemini flash thinking 01-21
2025-01-22 07:39:11 -08:00
Tom X Nguyen
93a571038f fix: update output length to 65536 2025-01-22 22:35:15 +07:00
Matt Rubens
21c7ac7046
Merge pull request #481 from monotykamary/fix/noop-on-no-renames
fix: avoid deleting configs if the currentApiConfigName is the same
2025-01-22 07:32:38 -08:00
Matt Rubens
851e8ced51
Merge pull request #478 from monotykamary/style/align-chat-input-elements
style: Align text and button in user input box
2025-01-22 07:31:50 -08:00
Tom X Nguyen
8ad904a13c fix: avoid deleting configs if the currentApiConfigName hasn't been changed 2025-01-22 20:24:03 +07:00
Tom X Nguyen
5d5e69fe21 chore: add gemini flash thinking 01-21 2025-01-22 19:14:19 +07:00
Tom X Nguyen
8d0acfa987 style: Align text and button in user input box 2025-01-22 15:47:37 +07:00
Matt Rubens
e333bfa84f
Merge pull request #474 from RooVetGit/mrubens-patch-1
Update README.md
2025-01-21 23:15:38 -05:00
Matt Rubens
5a06dea7d3
Update README.md 2025-01-21 21:13:50 -07:00
Matt Rubens
2b17eeb7c5
Merge pull request #468 from RooVetGit/mrubens-patch-1
Update openrouter.ts
2025-01-21 19:34:55 -05:00
Matt Rubens
2a11bcabfd
Update openrouter.test.ts 2025-01-21 19:32:59 -05:00
Matt Rubens
53af972579
Update openrouter.ts 2025-01-21 19:23:27 -05:00
Matt Rubens
fd4998eb3a
Merge pull request #466 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-21 18:42:32 -05:00
R00-B0T
00f0945c27 Updating CHANGELOG.md format 2025-01-21 23:39:05 +00:00
github-actions[bot]
309fc7def3 changeset version bump 2025-01-21 23:38:22 +00:00
Matt Rubens
3166a1041f
Merge pull request #464 from RooVetGit/only_allow_diffs_if_enabled
Only allow usage of diff tool if enabled in settings
2025-01-21 18:37:20 -05:00
Matt Rubens
b8e2dac2b9 Only allow usage of diff tool if enabled in settings 2025-01-21 18:35:14 -05:00
Matt Rubens
269ada48f2
Merge pull request #463 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-21 15:59:14 -05:00
R00-B0T
f028de82ba Updating CHANGELOG.md format 2025-01-21 20:58:49 +00:00
github-actions[bot]
4edd659201 changeset version bump 2025-01-21 20:58:08 +00:00
Matt Rubens
4fb72c46fb
Merge pull request #462 from RooVetGit/fix_language_selector
Fix language selector
2025-01-21 15:57:14 -05:00
Matt Rubens
8bbb64d27f Fix language selector 2025-01-21 15:39:59 -05:00
Matt Rubens
5dcb96739b
Merge pull request #277 from samhvw8/feat/roo-custom-model-info-openai-compatible
feat: custom model info in openai compatible
2025-01-21 11:44:49 -05:00
sam hoang
95fa1e400d update: Improve model configuration UI text and styling
- Clarify model capabilities description and impact on Roo Code
- Update max tokens description to mention server dependency
- Rename 'Computer Interaction' to 'Computer Use' for clarity
- Add spacing after model info configuration section
2025-01-21 23:42:31 +07:00
Matt Rubens
af1699a3b1
Merge pull request #458 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-21 11:20:18 -05:00
Matt Rubens
5ae2c64826
Update CHANGELOG.md 2025-01-21 11:20:04 -05:00
Matt Rubens
1e5f4ba856
Update CHANGELOG.md 2025-01-21 11:19:32 -05:00
R00-B0T
61e663a2f0 Updating CHANGELOG.md format 2025-01-21 16:15:14 +00:00
github-actions[bot]
18f029b8e8 changeset version bump 2025-01-21 16:14:31 +00:00
Matt Rubens
97022618c2
Merge pull request #457 from RooVetGit/add_diffs_to_preview
Add diff strategy to system prompt preview
2025-01-21 11:13:35 -05:00
Matt Rubens
77fa8b1b31 Add diff strategy to system prompt preview 2025-01-21 11:11:00 -05:00
sam hoang
d1a65f4de0 refactor: rename openAiCusModelInfo to openAiCustomModelInfo for better clarity
- Rename openAiCusModelInfo to openAiCustomModelInfo across all files for better readability
- Update related variable names and references to maintain consistency
- Affects OpenAI provider, ClineProvider, WebviewMessage, API interfaces, and UI components
2025-01-21 23:06:07 +07:00
sam hoang
ca5d3c0ab0 feat(openai-compatible): tune UI UX custom model info 2025-01-21 22:46:22 +07:00
sam hoang
9d5e6a2082 fix ui and some error my has 2025-01-21 22:46:22 +07:00
sam hoang
d50e075c75 feat(openai): add custom model info configuration
Adds support for configuring custom OpenAI-compatible model capabilities and pricing, including:

Max output tokens
Context window size
Image/computer use support
Input/output token pricing
Cache read/write pricing
2025-01-21 22:46:21 +07:00
Matt Rubens
9a2bfcce64
Merge pull request #455 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-21 10:04:57 -05:00
Matt Rubens
3dddd7c155
Update CHANGELOG.md 2025-01-21 10:04:43 -05:00
R00-B0T
5be63bce86 Updating CHANGELOG.md format 2025-01-21 15:04:19 +00:00
github-actions[bot]
44543b2c1e changeset version bump 2025-01-21 15:03:31 +00:00
Matt Rubens
49de94697f
Merge pull request #454 from RooVetGit/announcement_fix
Fix announcement
2025-01-21 10:02:30 -05:00
Matt Rubens
323af09269 Fix announcement 2025-01-21 09:59:50 -05:00
Matt Rubens
7c91098334
Merge pull request #453 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-21 09:49:31 -05:00
Matt Rubens
96c0e0df65
Update CHANGELOG.md 2025-01-21 09:46:01 -05:00
Matt Rubens
4ae6c7fae8
Update CHANGELOG.md 2025-01-21 09:45:20 -05:00
R00-B0T
57a9c06ddd Updating CHANGELOG.md format 2025-01-21 14:44:48 +00:00
github-actions[bot]
45c396137b changeset version bump 2025-01-21 14:44:07 +00:00
Matt Rubens
419e2cd4b5
Merge pull request #452 from RooVetGit/v3.2
Custom modes
2025-01-21 09:43:12 -05:00
Matt Rubens
b8e0aa0cde Custom modes 2025-01-21 09:39:54 -05:00
Matt Rubens
332245c33a
Merge pull request #445 from punkpeye/feature-metadata-2
fix: correct X-Glama-Metadata placement
2025-01-20 21:58:04 -05:00
Frank
d995a6a3a2 fix: correct X-Glama-Metadata placement 2025-01-20 20:48:18 -06:00
Abhishek Aryan
7f0550ae19
Merge branch 'main' into aws-profile-support 2025-01-20 20:29:43 +00:00
Matt Rubens
439fc58e2b
Merge pull request #427 from RooVetGit/settings_page_cleanup
Clean up the settings page
2025-01-20 13:56:21 -05:00
Matt Rubens
993ebaf999 Clean up the settings page 2025-01-20 13:29:45 -05:00
Matt Rubens
55852c41fe
Merge pull request #434 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-20 12:18:39 -05:00
Matt Rubens
ef3584097c
Update CHANGELOG.md 2025-01-20 12:05:58 -05:00
R00-B0T
368021c750 Updating CHANGELOG.md format 2025-01-20 17:00:09 +00:00
github-actions[bot]
07fbeb8693 changeset version bump 2025-01-20 16:59:26 +00:00
Matt Rubens
32e54c0dff
Merge pull request #433 from RooVetGit/v3_1_7
V3 1 7
2025-01-20 11:58:29 -05:00
Matt Rubens
88b60001a7 Changeset 2025-01-20 11:47:55 -05:00
Matt Rubens
37c2bae0eb Remove mode chooser from settings 2025-01-20 11:41:38 -05:00
Matt Rubens
a13da25dd1 Deepseek fixes 2025-01-20 11:41:38 -05:00
Matt Rubens
eff636aef0 Remove test modes 2025-01-20 11:41:38 -05:00
Matt Rubens
0f1f4f737f
Merge pull request #432 from samhvw8/fix/config-profile-and-input-lagging
fix: config-manager
2025-01-20 11:16:21 -05:00
sam hoang
01c858c0b9 chore: remove verbose log 2025-01-20 23:10:45 +07:00
sam hoang
eff72eea3f fix: config-manager 2025-01-20 23:07:40 +07:00
Matt Rubens
2ba64d68f2
Merge pull request #428 from samhvw8/fix/roo-config-profile
fix: config-manager
2025-01-20 09:36:30 -05:00
Matt Rubens
8d463a456a
Merge pull request #431 from philipnext/support/deepseek-reasoner
add: deepseek-reasoner model support
2025-01-20 09:33:55 -05:00
philipnext
cab095aef2 add: deepseek-reasoner model info 2025-01-20 22:52:24 +09:00
sam hoang
7646a2e33d fix: config-manager 2025-01-20 15:59:46 +07:00
Matt Rubens
87b1a4d268
Merge pull request #416 from daniel-lxs/improve_diff_prompt
Improve apply_diff prompt to encourage the model to generate better diffs
2025-01-19 00:29:34 -05:00
Matt Rubens
012ca095a2
Merge pull request #417 from punkpeye/feature-metadata-2
feat: identify consumer using tags
2025-01-18 23:43:17 -05:00
Frank
a66fb7b7fe feat: identify consumer using tags 2025-01-18 22:38:30 -06:00
Daniel Riccio
54fb38f76c fix: correct the type of arguments for the getToolDescription 2025-01-18 17:10:26 -05:00
Daniel Riccio
7bb1f3ebb4 test: fix failing test due to new tool description 2025-01-18 17:06:53 -05:00
Daniel
cea4d163b2
Merge branch 'main' into improve_diff_prompt 2025-01-18 17:01:21 -05:00
Daniel Riccio
5f348d531e refactor: improve the apply_diff tool to be concise and include step by step guide on how to generate a good diff 2025-01-18 16:56:20 -05:00
Matt Rubens
431ff57435
Merge pull request #405 from vincentsong/feature/vscode-debug
feat: Added VS Code debugging support with webview build and changed output channel from 'Cline' to 'Roo-Cline'
2025-01-18 10:27:42 -05:00
Lunchb0ne
4c16f7a1a3 Remove extra mock from test 2025-01-18 13:31:53 +00:00
Lunchb0ne
7a61e6ab74 Support AWS profile to configure Bedrock Authentication
Added support for configurations under ~/.aws/credentials or ~/.aws/config.
2025-01-18 12:41:46 +00:00
vincentsong
f6f7b51583 fix: make watch non-default task and stress sourcemap true 2025-01-18 19:22:31 +11:00
vincentsong
95b6326ca0 feat: Added VS Code debugging support with webview build 2025-01-18 09:41:54 +11:00
Matt Rubens
084599c9d0
Merge pull request #404 from RooVetGit/prettier
Prettier
2025-01-17 14:41:05 -05:00
Joe Manley
6caca03615 Ignore SHAs from prettifying to make blaming easier 2025-01-17 11:34:34 -08:00
Joe Manley
579bdd9dbf Prettier for package-lock.json too 2025-01-17 11:33:36 -08:00
Matt Rubens
891214f363 Remove eslint curly rule 2025-01-17 14:30:11 -05:00
Joe Manley
b158f379eb Set up ignoring revisions for git blame 2025-01-17 11:21:25 -08:00
Matt Rubens
60a0a824b9 Prettier backfill 2025-01-17 14:11:28 -05:00
Matt Rubens
3bcb4ff8c5 Add pre-commit hook to auto-run/fix prettier and eslint 2025-01-17 14:04:37 -05:00
Matt Rubens
4a6fdf2b18
Merge pull request #403 from RooVetGit/tester_and_reviewer
Add test and review modes
2025-01-17 13:48:07 -05:00
Matt Rubens
055998472a Add test and review modes 2025-01-17 13:40:27 -05:00
Matt Rubens
49d6254649
Merge pull request #402 from RooVetGit/refactor_modes
Refactor modes
2025-01-17 13:00:48 -05:00
Matt Rubens
72fe12d096 Refactor modes 2025-01-17 10:03:23 -05:00
Matt Rubens
b35206bc9d
Merge pull request #364 from daniel-lxs/new_unified
New unified edit strategy
2025-01-17 02:12:32 -05:00
Daniel Riccio
82a0ffe67a feat: add tests for the git fallback strategy 2025-01-17 02:04:34 -05:00
Daniel Riccio
5a35d7fb2a test: add comprehensive tests for applyContextMatching and applyDMP functions 2025-01-17 02:00:22 -05:00
Daniel Riccio
b089e7ff7c style: format code 2025-01-17 01:41:41 -05:00
Daniel Riccio
fa9e055ea9 refactor: streamline edit result validation and format code 2025-01-17 01:40:42 -05:00
Daniel Riccio
fa49bd804b refactor: standardize code formatting 2025-01-17 01:39:31 -05:00
Daniel Riccio
71fdf88672 refactor: simplify indentation inference and enhance edit strategies
- Refactored the `inferIndentation` function to streamline indentation handling for context and added lines.
- Improved the `applyContextMatching` and `applyDMP` functions for better clarity and efficiency in processing changes.
- Code was formatted
2025-01-17 01:38:44 -05:00
Matt Rubens
8a47d286e6
Merge pull request #401 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-17 01:35:34 -05:00
Matt Rubens
f8c8ee06cc
Update CHANGELOG.md 2025-01-17 01:30:49 -05:00
R00-B0T
30301a8c0d Updating CHANGELOG.md format 2025-01-17 06:29:32 +00:00
github-actions[bot]
b0e6f02fe3 changeset version bump 2025-01-17 06:28:51 +00:00
Matt Rubens
188be9d82e
Merge pull request #400 from RooVetGit/mistral
Add the Mistral provider
2025-01-17 01:27:52 -05:00
Matt Rubens
2c06aea3de Release 2025-01-17 01:11:37 -05:00
Saoud Rizwan
077fa84374 Add Mistral API provider 2025-01-17 01:11:16 -05:00
Daniel Riccio
9857e31e9c fix: use actual confidence threshold 2025-01-17 00:57:56 -05:00
Daniel Riccio
c710f558f6 test: add comprehensive tests for search strategies 2025-01-17 00:42:03 -05:00
Daniel Riccio
df654f0284 refactor: enhance anchor-based search strategy in Levenshtein match
- Improved the `identifyAnchors` function to return the first and last non-empty lines of the search string.
- Updated the `findAnchorMatch` function to validate anchor uniqueness and context more effectively.
- Removed unused complexity calculations and streamlined the anchor validation process.
2025-01-17 00:40:33 -05:00
Matt Rubens
4e57bfbcbe
Merge pull request #398 from bannzai/fix-issue-bag-report-template
Update bug_report template
2025-01-17 00:29:33 -05:00
bannzai
2b896d8c57 Update bug_report template 2025-01-17 14:21:41 +09:00
Daniel Riccio
815c266fec refactor: remove experimental diff from history since we are using the state 2025-01-16 23:49:11 -05:00
Matt Rubens
808fa5f8e0 Merge remote-tracking branch 'origin/main' into new_unified 2025-01-16 21:53:36 -05:00
Matt Rubens
5de419532c
Merge pull request #394 from samhvw8/fix/api-config-vscode-lm
fix(vscode-lm) fix api-config profile update for vscode lm
2025-01-16 20:42:41 -05:00
sam hoang
3ecc0e66ec fix(vscode-lm) fix api-config profile update for vscode lm 2025-01-17 08:18:57 +07:00
Daniel Riccio
ab1a7a511f fix: remove unnecessary console log in new unified diff strategy 2025-01-16 17:15:44 -05:00
Daniel Riccio
3ce2e0c6bf feat: update diff strategy dynamically
- Added `updateDiffStrategy` method to dynamically adjust the diff strategy based on the current state and experimental settings.
- Updated ClineProvider to call `updateDiffStrategy` when the experimental diff strategy is modified, ensuring real-time updates in the Cline instance.
2025-01-16 17:13:25 -05:00
Daniel Riccio
c0d0548479 test: add hunk splitting tests for handling large diffs with non-contiguous changes 2025-01-16 12:49:32 -05:00
Daniel Riccio
04f6e4f03f feat: implement hunk splitting strategy in diff application to better handle large diffs that might fail if the search fails 2025-01-16 12:49:02 -05:00
Matt Rubens
685ccbb7d1
Merge pull request #389 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-16 10:54:32 -05:00
Matt Rubens
a5b2d5686e
Update CHANGELOG.md 2025-01-16 10:51:09 -05:00
R00-B0T
36f301bc95 Updating CHANGELOG.md format 2025-01-16 15:47:14 +00:00
github-actions[bot]
415010c945 changeset version bump 2025-01-16 15:46:27 +00:00
Matt Rubens
f67f529dfb
Merge pull request #388 from RooVetGit/more_auto_approve_fixes
More fixes to checkbox state
2025-01-16 10:45:30 -05:00
Matt Rubens
6254e74216 More fixes to checkbox state 2025-01-16 10:42:40 -05:00
Matt Rubens
852ac53bb3
Merge pull request #385 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-16 03:47:42 -05:00
R00-B0T
60bc43c021 Updating CHANGELOG.md format 2025-01-16 08:46:39 +00:00
github-actions[bot]
9c4f5d14ac changeset version bump 2025-01-16 08:45:58 +00:00
Matt Rubens
4da326a293
Merge pull request #384 from RooVetGit/auto_approve_menu_fixes
Fixes to the auto approve menu
2025-01-16 03:45:03 -05:00
Matt Rubens
ee344facda Fixes to the auto approve menu 2025-01-16 03:42:38 -05:00
Matt Rubens
6e3919f5e2
Merge pull request #382 from RooVetGit/mrubens-patch-1
Readme updates
2025-01-16 02:08:05 -05:00
Matt Rubens
d6838c96ff
Update README.md 2025-01-16 02:03:10 -05:00
Matt Rubens
c99a5948ee
Update README.md 2025-01-16 02:00:46 -05:00
Matt Rubens
d17900adba
Merge pull request #380 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-16 01:08:22 -05:00
Matt Rubens
bae416fa46
Update CHANGELOG.md 2025-01-16 01:06:27 -05:00
github-actions[bot]
ea53327d56 changeset version bump 2025-01-16 06:04:43 +00:00
Matt Rubens
26c77ae575
Merge pull request #381 from RooVetGit/fix_vscode_lm
Fix VSCode LM
2025-01-16 01:03:46 -05:00
Matt Rubens
1b60d1e293 Fix VSCode LM 2025-01-16 01:00:07 -05:00
Matt Rubens
8ddd720d28
Merge pull request #379 from RooVetGit/auto_approve_menu
Auto approve menu
2025-01-16 00:26:02 -05:00
Matt Rubens
b65c8d0ec6 Customize for Roo 2025-01-15 23:48:53 -05:00
Saoud Rizwan
4b4905ec9e Add auto-approve UI and notification integration 2025-01-15 21:02:14 -05:00
Matt Rubens
201028b317
Merge pull request #372 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-15 20:51:04 -05:00
Matt Rubens
48b61b7128
Update CHANGELOG.md 2025-01-15 20:48:44 -05:00
Matt Rubens
f3990e38d5
Update CHANGELOG.md 2025-01-15 20:44:06 -05:00
github-actions[bot]
1995eebc1f changeset version bump 2025-01-16 01:36:36 +00:00
Matt Rubens
3ef5ca5ffe
Merge pull request #377 from RooVetGit/config_profile_bugfix
Fix bug switching config profiles
2025-01-15 20:35:43 -05:00
Matt Rubens
a34716c3d9 Fix bug switching config profiles 2025-01-15 20:34:35 -05:00
Matt Rubens
56d874f096
Merge pull request #369 from samhvw8/fix/roo-cline-select-api-config
fix api config profile
2025-01-15 20:32:48 -05:00
Matt Rubens
760c4c30a2 Merge remote-tracking branch 'origin/main' into fix/roo-cline-select-api-config 2025-01-15 20:11:17 -05:00
Abel Trejo Pineda
e0e2d2d7ca
Merge pull request #373 from RooVetGit/chores/changeset-workflow-dispatch
Adding workflow_dispatch to changeset workflow
2025-01-15 15:39:18 -08:00
a8trejo
966a3b60db Adding workflow_dispatch to changeset workflow 2025-01-15 15:34:08 -08:00
Matt Rubens
50cae9b174
Merge pull request #367 from RooVetGit/vscode-lm-provider
Add VSCode-LM as a provider
2025-01-15 16:53:04 -05:00
Matt Rubens
c3c2fd9061
Merge pull request #320 from RooVetGit/o1_developer_role
Update openai package and use developer role message for o1
2025-01-15 16:04:24 -05:00
Matt Rubens
6e90bcf4a3 Update openai package and use developer role message for o1 2025-01-15 15:59:37 -05:00
Matt Rubens
15513f4031
Merge pull request #360 from punkpeye/pkce
feat: Glama add pkce
2025-01-15 14:11:04 -05:00
Daniel Riccio
36b7da07d2 fix: enhance error messaging in diff strategy to address potential issues with context lines and version targeting 2025-01-15 12:55:44 -05:00
Daniel Riccio
6c8d7f4951 fix: update tests to handle new experimental diff option and increase the default confidence to 1 2025-01-15 12:23:51 -05:00
Daniel Riccio
22069e8056 fix: remove misplaced async 2025-01-15 12:22:20 -05:00
Daniel Riccio
12f4cc739e fix: correct syntax in GlobalStateKey type definition by removing trailing comma 2025-01-15 11:59:48 -05:00
Daniel
df01edf781
Merge branch 'main' into new_unified 2025-01-15 11:53:27 -05:00
Daniel Riccio
f9a453a44f refactor: update edit and search strategies to use configurable confidence thresholds
- Modified applyContextMatching and applyDMP functions to accept a confidenceThreshold parameter, enhancing flexibility in edit strategies.
- Updated validateEditResult and related functions to utilize the new confidenceThreshold, improving consistency across validation processes.
- Adjusted findExactMatch, findSimilarityMatch, findLevenshteinMatch, and findAnchorMatch functions to incorporate confidenceThreshold, ensuring adaptive behavior based on user settings.
2025-01-15 10:54:25 -05:00
Matt Rubens
cff5b35174 Credit 2025-01-15 09:24:51 -05:00
sam hoang
26119644b3 remove console log 2025-01-15 21:24:20 +07:00
sam hoang
6476c43695 test: enhance jest test setup and add documentation structure
Add vscrui to jest transform ignore patterns
Add crypto.getRandomValues mock for tests
Initialize cline documentation structure with required files
2025-01-15 21:24:20 +07:00
sam hoang
40fd397407 fix api config profile 2025-01-15 21:24:18 +07:00
Matt Rubens
04da686275 Merge remote-tracking branch 'origin/main' into vscode-lm-provider 2025-01-15 09:18:55 -05:00
Matt Rubens
41943000c3 Turn off computer use 2025-01-15 09:18:39 -05:00
Matt Rubens
ef8d02dfe5
Merge pull request #357 from samhvw8/feat/fuzzy-search-file-folder
New Feature fuzzy search in mentions
2025-01-15 09:16:26 -05:00
Matt Rubens
cc077832db Release 2025-01-15 09:13:12 -05:00
Matt Rubens
5fa0272b49 DRY up highlighting code 2025-01-15 02:57:33 -05:00
Matt Rubens
ff9b8c33e1 Remove all other usages of fuse.js 2025-01-15 02:50:52 -05:00
Matt Rubens
faed43b730 Merge remote-tracking branch 'origin/main' into feat/fuzzy-search-file-folder 2025-01-15 02:43:48 -05:00
Matt Rubens
966ac5ecba Remove duplicates 2025-01-15 02:30:13 -05:00
Matt Rubens
45a7566e6a Use fzf instead of fuse 2025-01-15 02:19:17 -05:00
Matt Rubens
d0d8f0b23f Release 2025-01-15 01:54:25 -05:00
Matt Rubens
ac6f4ab4a4 Remove doc 2025-01-15 01:46:49 -05:00
Matt Rubens
c673edd526 Merge remote-tracking branch 'origin/main' into vscode-lm-provider 2025-01-15 01:37:37 -05:00
Matt Rubens
58c5f76241
Merge pull request #363 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-15 01:04:46 -05:00
Matt Rubens
2f2e9d875f
Update CHANGELOG.md 2025-01-15 01:02:51 -05:00
github-actions[bot]
84d1bae081 changeset version bump 2025-01-15 05:57:32 +00:00
Matt Rubens
041bce6fec
Merge pull request #366 from RooVetGit/more_text_input_tweaks
Fix ChatTextArea layout
2025-01-15 00:56:38 -05:00
Matt Rubens
84a0063b99 Fix ChatTextArea layout 2025-01-15 00:43:26 -05:00
Joe Manley
b75e105fab
Merge pull request #362 from RooVetGit/jm/fix-icon-color-light-theme
Fix icon color - light theme
2025-01-14 15:22:00 -08:00
Joe Manley
9418a8fa42 Add changeset 2025-01-14 15:14:02 -08:00
Daniel Riccio
f696f8e0f1 refactor: remove debug functionality 2025-01-14 18:03:03 -05:00
Daniel Riccio
e6d3db6075 refactor: use confidenceThreshold from the settings in new diff strategy 2025-01-14 17:59:46 -05:00
Joe Manley
14d0b69c79 Fix icon color - light theme 2025-01-14 14:58:24 -08:00
Daniel Riccio
e00ec0cc3f test: add unit tests for NewUnifiedDiffStrategy constructor and confidence threshold behavior
- Introduced tests for the NewUnifiedDiffStrategy constructor to verify default and custom confidence thresholds.
- Ensured that the minimum confidence threshold is enforced, preventing values below 0.8.
- Enhanced test coverage for the strategy's initialization logic, improving overall reliability and maintainability.
2025-01-14 17:57:55 -05:00
Daniel Riccio
f6e85fa133 feat: introduce experimental diff strategy toggle and enhance diff handling
- Added support for an experimental diff strategy in the Cline class, allowing users to opt for a new unified diff approach.
- Updated the getDiffStrategy function to accommodate the experimental strategy, adjusting the fuzzy match threshold accordingly.
- Integrated experimentalDiffStrategy into the global state management, enabling persistence across sessions.
- Enhanced the ClineProvider and related components to handle the new experimental strategy, including UI updates for user settings.
- Improved task history management to include the experimentalDiffStrategy setting, ensuring consistency in task execution.
- Updated relevant interfaces and types to reflect the new experimentalDiffStrategy property.
2025-01-14 17:57:09 -05:00
Daniel Riccio
a211927097 refactor: enhance error handling and debugging in NewUnifiedDiffStrategy
- Improved error messages for cases where no hunks are found in the diff, providing clearer guidance on format requirements.
- Added detailed debug information for search and edit failures, including context line ratios and potential issues to assist users in troubleshooting.
- Streamlined the logic for determining the cause of edit failures, distinguishing between search and content mismatch errors.
- Enhanced overall readability and maintainability of the code with consistent formatting and structured comments.
2025-01-14 17:09:20 -05:00
Daniel Riccio
5c420bb7e1 refactor: cleanup 2025-01-14 17:02:39 -05:00
Daniel Riccio
b30cb29358 refactor: cleanup 2025-01-14 17:01:46 -05:00
Daniel Riccio
a323a1008e refactor: enhance Git fallback strategy in edit processing
- Improved logging within the applyGitFallback function to provide clearer insights during the commit and cherry-pick processes.
- Streamlined error handling to ensure more informative console outputs when operations fail.
- Maintained consistent formatting and indentation for better readability and maintainability of the code.
- Ensured temporary directory cleanup is handled correctly in all scenarios, preventing potential resource leaks.
2025-01-14 17:00:51 -05:00
Daniel Riccio
3d901929c2 test: add comprehensive tests for NewUnifiedDiffStrategy error handling and edge cases 2025-01-14 16:44:15 -05:00
Frank
f759398b36 fix: correct VSCode URI 2025-01-15 08:24:21 +11:00
Frank
a102ba520b feat: add pkce 2025-01-15 08:20:20 +11:00
Matt Rubens
72465c1fc2
Merge pull request #356 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-14 16:17:56 -05:00
Matt Rubens
ed14c4bbc5
Update CHANGELOG.md 2025-01-14 16:15:31 -05:00
github-actions[bot]
a128c3720d changeset version bump 2025-01-14 21:13:33 +00:00
Matt Rubens
6b15f827d8
Merge pull request #359 from RooVetGit/fix_custom_instruction_clearing
Fix bug with clearing custom instructions
2025-01-14 16:12:37 -05:00
Matt Rubens
f2d25dd5a5 Fix bug with clearing custom instructions 2025-01-14 16:11:53 -05:00
Matt Rubens
4493b55276
Merge pull request #351 from RooVetGit/custom_prompts
Custom prompts
2025-01-14 15:26:54 -05:00
Matt Rubens
1f17f72d44 Release 2025-01-14 15:23:45 -05:00
Matt Rubens
365f4acf63 Add mode-specific custom instructions 2025-01-14 14:54:30 -05:00
sam hoang
89e119f121 feat(mentions): implement fuzzy search for file/folder mentions
Adds fuzzy search functionality using Fuse.js to improve file and folder search in mentions.
2025-01-15 01:23:18 +07:00
Matt Rubens
88ea875bbb
Merge pull request #353 from RooVetGit/markdown_copy
Add a button to copy markdown out of the chat
2025-01-14 12:21:15 -05:00
Daniel Riccio
534888af97 refactor: improve NewUnifiedDiffStrategy with enhanced formatting and error handling
- Cleaned up formatting in the parseUnifiedDiff method to ensure consistent indentation and spacing.
- Updated documentation to clarify format requirements for generating unified diffs.
- Added error handling for cases where no hunks are found in the provided diff, improving robustness.
- Enhanced overall readability of the code by standardizing comments and structure.
2025-01-14 12:20:52 -05:00
Daniel Riccio
d25f370013 refactor: enhance NewUnifiedDiffStrategy for improved diff parsing and context handling
- Refactored the parseUnifiedDiff method to streamline the processing of diff lines and improve context line management.
- Added handling for empty context lines to ensure accurate representation in hunks.
- Updated the tool description to clarify requirements for generating unified diffs, emphasizing the importance of preserving indentation and grouping related changes.
- Improved overall readability and consistency of the code by standardizing formatting and indentation practices.
2025-01-14 12:01:09 -05:00
Daniel Riccio
258024aa5a refactor: enhance search strategies with adaptive thresholds and overlapping windows
- Introduced adaptive confidence thresholds based on file size to improve search accuracy.
- Implemented overlapping window functionality in search strategies to capture matches more effectively.
- Added helper functions for evaluating content uniqueness and creating overlapping windows.
- Enhanced existing search functions (exact, similarity, and Levenshtein) to utilize new strategies for better match validation.
- Improved logging for search results to facilitate debugging and analysis of search performance.
2025-01-14 12:00:29 -05:00
Matt Rubens
092a121a37 Refactor to support more sections in the future 2025-01-14 09:34:10 -05:00
Matt Rubens
5140b67d74 Add a button to copy markdown out of the chat 2025-01-14 01:13:02 -05:00
Matt Rubens
75e308b033 Add a screen for custom prompts 2025-01-13 22:45:14 -05:00
Matt Rubens
4027e1c10c Add non-streaming completePrompt to all providers 2025-01-13 17:20:06 -05:00
Matt Rubens
2d176e5c92 Reduce the webview test output 2025-01-13 14:05:33 -05:00
Matt Rubens
4c292abf7a Fix margins 2025-01-13 13:06:24 -05:00
Matt Rubens
c7bfcf3e8e
Merge pull request #349 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-13 12:26:03 -05:00
R00-B0T
977349911f Updating CHANGELOG.md format 2025-01-13 17:19:44 +00:00
github-actions[bot]
89f9b84418 changeset version bump 2025-01-13 17:19:02 +00:00
Matt Rubens
f77c036c89
Merge pull request #347 from RooVetGit/update_required_vscode_version
Update required vscode engine to ^1.84.0 to match cline
2025-01-13 12:18:03 -05:00
Matt Rubens
bf1b87e3cb
Update .changeset/early-mails-knock.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-01-13 08:14:24 -05:00
Matt Rubens
f1d01743fc Update required vscode engine to ^1.84.0 to match cline 2025-01-13 07:57:01 -05:00
Matt Rubens
184fb7e7c0
Merge pull request #340 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-12 15:06:44 -05:00
R00-B0T
d7b7a4fe2b Updating CHANGELOG.md format 2025-01-12 20:04:48 +00:00
github-actions[bot]
a47302a869 changeset version bump 2025-01-12 20:04:10 +00:00
Matt Rubens
ed3954b63b
Merge pull request #339 from RooVetGit/more_tiny_tweaks_to_buttons
A couple more tiny tweaks to buttons
2025-01-12 15:03:10 -05:00
Matt Rubens
b53d63abda A couple more tiny tweaks to buttons 2025-01-12 14:59:11 -05:00
Matt Rubens
e493f0501f
Merge pull request #335 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-12 14:13:56 -05:00
Matt Rubens
09386dbc95
Update CHANGELOG.md 2025-01-12 14:13:35 -05:00
Matt Rubens
b70143b253
Merge pull request #337 from RooVetGit/mrubens-patch-1
Update README.md
2025-01-12 14:12:54 -05:00
Matt Rubens
41d04c44e7
Update README.md 2025-01-12 14:12:26 -05:00
Matt Rubens
d42ee4d04d
Update README.md 2025-01-12 14:11:24 -05:00
R00-B0T
9d532e28c1 Updating CHANGELOG.md format 2025-01-12 19:09:14 +00:00
github-actions[bot]
67398adde6 changeset version bump 2025-01-12 19:08:33 +00:00
Matt Rubens
c3590fac46
Merge pull request #334 from RooVetGit/3.0-fixes
Small fixes
2025-01-12 14:07:39 -05:00
Matt Rubens
5698d10113 Small fixes 2025-01-12 14:05:35 -05:00
Matt Rubens
4baa8a9faa
Merge pull request #333 from RooVetGit/mrubens-patch-1
Update CHANGELOG.md
2025-01-12 14:00:09 -05:00
Matt Rubens
5413cda98d
Update CHANGELOG.md 2025-01-12 13:59:30 -05:00
Matt Rubens
295a0527c4
Merge pull request #331 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-12 13:30:51 -05:00
github-actions[bot]
2ffee32632 changeset version bump 2025-01-12 18:28:28 +00:00
Matt Rubens
43916fc2d2
Merge pull request #332 from RooVetGit/add_capabilities_back_to_the_prompt
Add the capabilities section back to the system prompt
2025-01-12 13:27:34 -05:00
Matt Rubens
fde8238a96 Add the capabilities section back to the system prompt 2025-01-12 13:23:27 -05:00
Matt Rubens
d398bea8b9
Merge pull request #330 from RooVetGit/chat_modes
Chat modes
2025-01-12 13:14:02 -05:00
Matt Rubens
45a151327e Release 2025-01-12 13:11:52 -05:00
Matt Rubens
344c796f2e Chat modes 2025-01-12 13:11:52 -05:00
Matt Rubens
ae9a35b7b1
Merge pull request #317 from RooVetGit/better_retry_ux
Improve the UX for API request retries
2025-01-10 20:13:27 -05:00
Matt Rubens
97a93ba731 Improve the UX for API request retries 2025-01-10 20:11:16 -05:00
Daniel Riccio
f007f64344 refactor: increase minimum confidence threshold in search strategies
- Updated the minimum confidence level from 0.95 to 0.97 to enhance the accuracy of search results.
- Adjusted confidence calculation in the findLevenshteinMatch function to ensure more reliable matching.
2025-01-10 17:36:43 -05:00
Daniel Riccio
0d004b5c77 refactor: increase context lines in NewUnifiedDiffStrategy
- Updated the maximum context lines from 3 to 6 in the parseUnifiedDiff method to provide more context around changes.
2025-01-10 17:35:22 -05:00
Daniel Riccio
6d68edef3e refactor: implement Git fallback strategy in edit processing
- Introduced a new Git fallback strategy for handling edits when confidence levels are low.
- Replaced the previous Git edit strategy with a more robust approach that utilizes temporary directories and commits for original, search, and replace states.
- Enhanced error handling and logging for better debugging during the edit process.
- Updated the main edit function to incorporate the Git fallback strategy, ensuring it is attempted when other strategies fail.
- Improved overall structure and readability of the applyGitFallback function, streamlining the process of applying changes using Git.
2025-01-10 17:34:44 -05:00
Daniel Riccio
058431eaf1 chore: update dependencies
- Added @types/tmp and simple-git dependencies.
- Updated tmp dependency version to 0.2.3.
- Removed isomorphic-git and memfs dependencies.
2025-01-10 17:32:54 -05:00
Matt Rubens
0100d6cff5
Merge pull request #313 from RooVetGit/system_prompt_snapshots
Add snapshot tests for system prompts to ensure modifications are intentional
2025-01-09 23:06:21 -05:00
Matt Rubens
f5dfa8a486 Add snapshot tests for system prompts to ensure modifications are intentional 2025-01-09 23:01:12 -05:00
Daniel Riccio
ab31aea551 refactor: enhance context handling and confidence validation in edit strategies
- Improved the applyContextMatching function to better track context lines and handle changes more accurately.
- Updated the applyEdit function to enforce a stricter confidence check, now requiring a confidence level of 1 for successful edits.
- Refined the processing logic for addition and removal changes, ensuring more reliable diff application.
- Enhanced debugging capabilities with clearer logging and validation checks for edit results.
2025-01-09 16:38:32 -05:00
Mike C
bcebba8dd8
Merge pull request #307 from RooVetGit/chore/ovsxPublish
adding ability to publish to OVSX as part of publish workflow
2025-01-09 12:39:49 -06:00
ColemanRoo
1a165522aa adding ability to publish to OVSX as part of publish workflow 2025-01-09 12:34:58 -06:00
Matt Rubens
f7759c1be5
Merge pull request #295 from RooVetGit/add_coverage
Add test coverage
2025-01-09 12:34:05 -05:00
Matt Rubens
0429cc5d97
Merge pull request #304 from RooVetGit/windsurfrules
Read in conventions from .windsurfrules files as well
2025-01-09 12:33:43 -05:00
Daniel Riccio
5351b3d981 refactor: improve the prompt to prevent absurd amounts of context being generated 2025-01-09 12:05:36 -05:00
Matt Rubens
e8b9d90ac8
Merge pull request #306 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-09 10:52:35 -05:00
R00-B0T
16e1191d97 Updating CHANGELOG.md format 2025-01-09 15:49:42 +00:00
github-actions[bot]
4d9aff1e24 changeset version bump 2025-01-09 15:49:02 +00:00
Matt Rubens
748556528a
Merge pull request #305 from RooVetGit/only_load_context_in_user_input
Only load context and parse @-mentions in user input
2025-01-09 10:47:56 -05:00
Matt Rubens
48edfe6689 Only load context and parse @-mentions in user input 2025-01-09 10:40:38 -05:00
Matt Rubens
382d467e64 Add test 2025-01-09 00:21:15 -05:00
Matt Rubens
9183244c28 Warnings and error handling 2025-01-09 00:11:53 -05:00
Matt Rubens
d1c39c17e9 Add tests 2025-01-08 17:59:22 -05:00
Matt Rubens
7137f8c528 Spacing adjustments 2025-01-08 17:28:32 -05:00
Daniel Riccio
44dc489e49 revert: lower the confidence levels 2025-01-08 17:18:09 -05:00
Daniel Riccio
9591ae062a Refactor edit strategies and confidence validation in unified diff processing
- Enhanced the applyContextMatching and applyDMP functions to improve handling of context and edit changes.
- Updated confidence validation logic to ensure stricter checks, now requiring a minimum confidence of 1 for successful edits.
- Refined the way changes are processed, including better tracking of removal and addition changes.
- Improved the validation of edit results by incorporating strategy-specific checks and logging for better debugging.
- Adjusted the applyEdit function to ensure strategies are applied in a more robust manner, with clearer handling of debug mode.
2025-01-08 17:13:46 -05:00
RaySinner
d5fd2bbb82 merge: resolve conflicts after upstream merge 2025-01-08 23:47:26 +03:00
Daniel Riccio
995692c48e Improve strategies and confidence system 2025-01-08 12:28:31 -05:00
Matt Rubens
f12c342cf4
Merge pull request #300 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-08 08:58:18 -05:00
R00-B0T
a4b685a8dc Updating CHANGELOG.md format 2025-01-08 13:52:04 +00:00
github-actions[bot]
278017e99e changeset version bump 2025-01-08 13:51:24 +00:00
Matt Rubens
23fd205766
Merge pull request #297 from RooVetGit/api_config
Save different API configurations to quickly switch between providers and settings
2025-01-08 08:50:23 -05:00
Matt Rubens
9d16006af9
Update shiny-seahorses-peel.md 2025-01-08 04:56:47 -05:00
RaySinner
58bc329481 refactor: update API options and remove unused type definitions 2025-01-08 10:36:14 +03:00
Matt Rubens
41beb77451 Read in conventions from .windsurfrules files as well 2025-01-08 01:43:27 -05:00
Matt Rubens
fd075505e6 Disable the API config dropdown in sync with the chat textarea 2025-01-08 00:32:46 -05:00
Matt Rubens
11612caac0 Just make a copy when adding a new profile 2025-01-08 00:01:39 -05:00
Matt Rubens
16495560d7 Add test 2025-01-07 23:42:06 -05:00
Matt Rubens
9e8f8be5e1 Handle image blocks when switching to a model that doesn't support them 2025-01-07 23:36:28 -05:00
Matt Rubens
66055f10a2 Fix issue where MCP toggle turns off other checkboxes 2025-01-07 23:23:26 -05:00
Matt Rubens
5f3ace4379 Minor code cleanup 2025-01-07 22:38:54 -05:00
Matt Rubens
525b7424fe Cleanup the welcome screen to be less Claude focused 2025-01-07 22:31:08 -05:00
Matt Rubens
2cffbc860b Tweak thumbnail display 2025-01-07 20:30:23 -05:00
Matt Rubens
bb774e17eb Release 2025-01-07 20:14:12 -05:00
sam hoang
f39eaa14ff fix: sync model picker search terms with selected models
Added useEffect hooks to GlamaModelPicker, OpenAiModelPicker, and OpenRouterModelPicker components to ensure the search term stays synchronized with the selected model ID from apiConfiguration. This prevents the search term from getting out of sync when the model is changed.
2025-01-07 20:11:26 -05:00
sam hoang
921f8844eb fix: config manager not update when model, key, another optionn... 2025-01-07 20:10:15 -05:00
Matt Rubens
20322af5df Delete confirmation tweak 2025-01-07 20:10:15 -05:00
sam hoang
3346844584 fix: change provider not update without done, update chatbox change provider from MrUbens 2025-01-07 20:10:14 -05:00
Matt Rubens
c3fa10b367 UI cleanup 2025-01-07 20:09:56 -05:00
sam hoang
840276b297 chore: remove verbose log 2025-01-07 20:09:56 -05:00
sam hoang
352f34d8ce feat: config manager using secret store 2025-01-07 20:09:55 -05:00
Daniel Riccio
594481643b Add New Unified Diff Strategy Implementation
- Introduced a new unified diff strategy with support for context matching, DMP, and Git-based edits.
- Implemented helper functions for parsing unified diffs and evaluating similarity.
- Added types for changes, hunks, and diffs to enhance type safety.
- Created a main edit function that applies strategies sequentially based on confidence levels.
- Included detailed descriptions and usage examples for the new strategy.
2025-01-07 19:01:12 -05:00
Daniel Riccio
2857dd4996 Refactor test cases in search-replace and unified strategies to use async/await for applyDiff method, ensuring consistent handling of asynchronous operations across all tests. 2025-01-07 19:00:29 -05:00
Daniel Riccio
70cf27071b Refactor applyDiff methods in search-replace and unified strategies to return Promises for asynchronous handling 2025-01-07 18:59:55 -05:00
Daniel Riccio
420c6c72dd Replace SearchReplaceDiffStrategy with NewUnifiedDiffStrategy in getDiffStrategy function 2025-01-07 18:59:16 -05:00
Daniel Riccio
612d7020f3 Add unit tests for NewUnifiedDiffStrategy 2025-01-07 18:58:23 -05:00
Daniel Riccio
4356cffb0d Refactor applyDiff method to return a Promise and add logging for diff results 2025-01-07 18:57:40 -05:00
Daniel Riccio
6bcde01778 Update package dependencies: add new type definitions and libraries 2025-01-07 18:56:03 -05:00
Matt Rubens
c30e9c6ed3
Merge pull request #296 from RooVetGit/jest_simple_dot_reporter
Use jest-simple-dot-reporter to cut down on test noise
2025-01-07 17:29:17 -05:00
Matt Rubens
305b1342ed Use jest-simple-dot-reporter to cut down on test noise 2025-01-07 16:35:58 -05:00
Matt Rubens
5fbfe9b775 Add test coverage 2025-01-07 16:20:11 -05:00
Matt Rubens
bd888d8f5c
Merge pull request #189 from RooVetGit/o1_model
Add the o1 model
2025-01-07 15:12:36 -05:00
Matt Rubens
50b1752e4e
Merge pull request #293 from RooVetGit/better_api_error_messages
Better API error messages
2025-01-07 14:01:25 -05:00
Matt Rubens
00ac5b48bf Better API error messages 2025-01-07 13:58:53 -05:00
Matt Rubens
0aa5f1fb85 Add the o1 model 2025-01-07 13:33:47 -05:00
Matt Rubens
537514de44
Merge pull request #292 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-07 10:53:39 -05:00
R00-B0T
305efaa7d0 Updating CHANGELOG.md format 2025-01-07 15:51:47 +00:00
github-actions[bot]
69a85b2093 changeset version bump 2025-01-07 15:51:07 +00:00
Matt Rubens
53fd3d17b5
Merge pull request #291 from RooVetGit/retry-request-control
Retry request control
2025-01-07 10:50:12 -05:00
Matt Rubens
f7a98c7f51 Release 2025-01-07 10:38:51 -05:00
Matt Rubens
0ff8fe45d4 UI tweaks 2025-01-07 10:38:51 -05:00
Matt Rubens
c9de9cda66 Revert some whitespace changes 2025-01-07 10:31:42 -05:00
RaySinner
fe22d1ff2d feat: add retry request control with delay settings
- Add requestDelaySeconds setting for configuring delay between retry attempts
- Add alwaysApproveResubmit option for automatic retry approval
- Add api_req_retry_delayed message type for delayed retries
- Update UI components to support new retry control settings
2025-01-07 10:21:51 -05:00
Matt Rubens
631d9b9e87
Merge pull request #289 from RooVetGit/remove_api_proposals
Remove API proposals
2025-01-07 00:08:17 -05:00
Matt Rubens
80387a4d27 Remove API proposals 2025-01-07 00:05:23 -05:00
Matt Rubens
ec69d3fdc7
Merge pull request #288 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-06 23:42:44 -05:00
R00-B0T
c533fe08a5 Updating CHANGELOG.md format 2025-01-07 04:38:27 +00:00
github-actions[bot]
7a88aaf96f changeset version bump 2025-01-07 04:37:51 +00:00
Matt Rubens
02ed1b1e6d
Merge pull request #287 from RooVetGit/single_delete
Allow deleting single messages
2025-01-06 23:36:54 -05:00
Matt Rubens
87ba95b288 Allow deleting single messages 2025-01-06 23:27:32 -05:00
Mike C
ae2e429fc3
Merge pull request #270 from RooVetGit/feat/full_Integration_Tests
Set up vscode integration test
2025-01-06 22:00:08 -06:00
RaySinner
98b9007c36 merge(upstream): merge upstream changes keeping VSCode LM provider and adding Glama support 2025-01-07 01:54:46 +03:00
RaySinner
9d62a7bb77 feat(vscode-lm): implement VS Code Language Models provider 2025-01-07 01:23:22 +03:00
Matt Rubens
6beb90ef98
Merge pull request #285 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-06 13:11:17 -05:00
R00-B0T
9c65eeefbf Updating CHANGELOG.md format 2025-01-06 18:08:56 +00:00
github-actions[bot]
ede7e8c8d7 changeset version bump 2025-01-06 18:08:19 +00:00
Matt Rubens
bf81cee0fa
Merge pull request #284 from RooVetGit/git_mentions
Add a Git section to the context mentions
2025-01-06 13:07:25 -05:00
Matt Rubens
7e9ea7ac28 Add a Git section to the context mentions 2025-01-06 12:17:26 -05:00
Matt Rubens
6e834d2fc3 Add missing deepseek check 2025-01-06 11:54:58 -05:00
Matt Rubens
b32029bf2b
Merge pull request #283 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-05 22:50:06 -05:00
R00-B0T
c38da92d72 Updating CHANGELOG.md format 2025-01-06 03:48:20 +00:00
github-actions[bot]
6d0b386595 changeset version bump 2025-01-06 03:47:42 +00:00
Matt Rubens
7383a0514a
Merge pull request #282 from RooVetGit/open_ai_streaming_toggle
Streaming checkbox for OpenAI-compatible providers
2025-01-05 22:46:50 -05:00
Matt Rubens
38df02c43c Add changeset 2025-01-05 22:41:31 -05:00
Matt Rubens
26f55d9708 Update README 2025-01-05 21:04:20 -05:00
Matt Rubens
5e8d804d2b Add test 2025-01-05 20:52:06 -05:00
Matt Rubens
124dc46fae
Merge pull request #281 from RooVetGit/glama_fixes
Glama fixes
2025-01-05 20:42:06 -05:00
Matt Rubens
2cdfff02c0 Streaming checkbox for OpenAI-compatible providers 2025-01-05 20:34:54 -05:00
Frank
ac776cc8bf fix: adjust log wording 2025-01-05 19:25:52 -05:00
Frank
f813d65b5a fix: parse text to float 2025-01-05 19:25:44 -05:00
Frank
8b0e9bbf32 fix: remove unnecessary comment 2025-01-05 19:25:35 -05:00
Frank
e632998026 feat: add cache information 2025-01-05 19:25:29 -05:00
Matt Rubens
376ffa3f2a
Merge pull request #278 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-05 16:50:12 -05:00
R00-B0T
27edd03cc9 Updating CHANGELOG.md format 2025-01-05 21:48:28 +00:00
github-actions[bot]
7b94ad7a25 changeset version bump 2025-01-05 21:47:49 +00:00
Matt Rubens
77822ca670
Merge pull request #273 from RooVetGit/glama
feat: add Glama gateway
2025-01-05 16:46:55 -05:00
Frank
8284efc64b fix: use x-completion-request-id header 2025-01-05 16:42:34 -05:00
Frank
6b048923c6 fix: remove unnecessary delay 2025-01-05 16:42:20 -05:00
Matt Rubens
a966ddb2ee Release 2025-01-05 01:09:11 -05:00
Matt Rubens
8725f5ae2c fix: adjust order 2025-01-05 01:08:14 -05:00
Matt Rubens
67ba60db6e fix: z-index 2025-01-05 01:07:56 -05:00
Matt Rubens
919fb5b913 fix: validation logic 2025-01-05 01:01:10 -05:00
Frank
eb78332d4e fix: dynamically set computer use value 2025-01-05 00:18:33 -05:00
Frank
e5e700ffcb feat: add Glama gateway 2025-01-04 22:50:12 -05:00
Matt Rubens
5e099e2960
Merge pull request #271 from Atlogit/patch-1
Update README.md
2025-01-04 08:50:32 -08:00
Atlogit
a144eebfa2
Update README.md
Added Amazon Nova mention
2025-01-04 18:49:18 +02:00
ColemanRoo
8e54360a86 Switch to using dotenv to get test environment variables 2025-01-03 21:35:25 -06:00
ColemanRoo
66c5485534 Set up vscode integration test 2025-01-03 14:26:26 -06:00
Matt Rubens
ae1df32923
Merge pull request #267 from RooVetGit/changeset-release/main
Changeset version bump
2025-01-03 08:03:47 -08:00
R00-B0T
23821ed224 Updating CHANGELOG.md format 2025-01-03 16:02:01 +00:00
github-actions[bot]
f32a2310ce changeset version bump 2025-01-03 16:01:22 +00:00
Matt Rubens
0f1607abe4
Merge pull request #266 from RooVetGit/mcp_toggle
Add toggle to enable or disable MCP servers on the system prompt
2025-01-03 08:00:27 -08:00
Matt Rubens
9665e78726 Appease Ellipsis 2025-01-02 22:24:43 -08:00
Matt Rubens
ca35de385f Tiny settings cleanup 2025-01-02 22:11:26 -08:00
Matt Rubens
28451f3afa Release 2025-01-02 22:05:59 -08:00
Matt Rubens
06733d949b Add back to the settings page as well 2025-01-02 22:02:24 -08:00
Matt Rubens
d32c5f805e Cleanup 2025-01-02 21:36:05 -08:00
Matt Rubens
8cb44aa695 Move MCP checkbox to the MCP settings screen 2025-01-02 21:31:09 -08:00
Matt Rubens
70f3c041e6 Put more logic behind mcpEnabled flag 2025-01-02 21:11:52 -08:00
Daniel Riccio
ed358b4e07 Add toggle to enable or disable MCP servers on the system prompt 2025-01-02 21:02:59 -08:00
Matt Rubens
657e2377dd
Merge pull request #263 from RooVetGit/better_enhance_prompt
Try a better enhanced prompt prompt
2025-01-01 09:10:35 -08:00
Matt Rubens
621655aacb Try a better enhanced prompt prompt 2025-01-01 00:13:29 -08:00
Matt Rubens
64702e94f6
Merge pull request #262 from RooVetGit/fix_include_stream_options_checkbox
Fix 'allow stream options' checkbox
2024-12-31 22:21:00 -08:00
Matt Rubens
92c2303416 Fix 'allow stream options' checkbox 2024-12-31 22:01:11 -08:00
Matt Rubens
07563eb4bc
Merge pull request #259 from RooVetGit/fix_fuzzy_match_slider
Fix fuzzy match slider
2024-12-31 10:12:59 -08:00
Matt Rubens
cec623ada4 Fix fuzzy match slider 2024-12-31 10:06:30 -08:00
Matt Rubens
2672e6db93
Merge pull request #258 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-31 08:16:27 -08:00
R00-B0T
95c49414af Updating CHANGELOG.md format 2024-12-31 16:08:21 +00:00
github-actions[bot]
75b2526722 changeset version bump 2024-12-31 16:07:45 +00:00
Matt Rubens
7dba94c0d6
Merge pull request #253 from RooVetGit/cat_pager
Improvements to terminal output when executing commands
2024-12-31 08:06:51 -08:00
Matt Rubens
7fa46f4f86
Merge pull request #256 from RooVetGit/clean_conversation_history_test
Add a test ensuring that we're sending a clean conversation history
2024-12-31 03:32:29 -08:00
Matt Rubens
169f11c78b Add a test ensuring that we're sending a clean conversation history 2024-12-31 03:29:51 -08:00
Matt Rubens
0e9e03f04f
Merge pull request #255 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-31 03:22:19 -08:00
Matt Rubens
412c2c1d2c
Update CHANGELOG.md 2024-12-31 03:21:55 -08:00
R00-B0T
687e7c2e64 Updating CHANGELOG.md format 2024-12-31 11:21:26 +00:00
github-actions[bot]
041be1289f changeset version bump 2024-12-31 11:20:49 +00:00
Matt Rubens
de1a27603e
Merge pull request #254 from RooVetGit/fix_anthropic_api
Pass clean conversation history to API for Anthropic
2024-12-31 03:19:49 -08:00
Matt Rubens
26f7ba07c2 Pass clean conversation history to API for Anthropic 2024-12-31 03:16:42 -08:00
Matt Rubens
c8b8eff147 Setting for number of terminal lines to return from commands 2024-12-30 23:15:01 -08:00
Matt Rubens
667312e48c Set PAGER to cat 2024-12-30 21:57:18 -08:00
Matt Rubens
468799e1a9
Merge pull request #252 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-30 18:01:23 -08:00
R00-B0T
858104f0df Updating CHANGELOG.md format 2024-12-31 01:59:29 +00:00
github-actions[bot]
434bd6b9a1 changeset version bump 2024-12-31 01:58:53 +00:00
Matt Rubens
f4255781c0
Merge pull request #251 from RooVetGit/delete_message_button
Add a button to delete user messages
2024-12-30 17:57:50 -08:00
Matt Rubens
90ed3a4582 Add a button to delete user messages 2024-12-30 17:54:37 -08:00
Matt Rubens
6f0030d6e6
Merge pull request #244 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-29 17:46:00 -08:00
R00-B0T
ef708a48de Updating CHANGELOG.md format 2024-12-30 01:43:58 +00:00
github-actions[bot]
2ed911c3ef changeset version bump 2024-12-30 01:43:21 +00:00
Matt Rubens
4468994b0e
Merge pull request #243 from RooVetGit/browser_viewport_size
Allow selection of multiple browser viewport sizes and adjusting screenshot quality
2024-12-29 17:42:25 -08:00
Matt Rubens
ff062c6e2e Allow selection of multiple browser viewport sizes and adjusting screenshot quality 2024-12-29 16:26:18 -08:00
Matt Rubens
99ff8047fd
Merge pull request #242 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-29 12:30:28 -08:00
R00-B0T
f5e445c7f3 Updating CHANGELOG.md format 2024-12-29 20:28:41 +00:00
github-actions[bot]
61c935cd0a changeset version bump 2024-12-29 20:28:02 +00:00
Matt Rubens
438b1ebab8
Merge pull request #239 from RooVetGit/deepseek
Add DeepSeek to the list of providers
2024-12-29 12:26:59 -08:00
Matt Rubens
6290f90fa5 Refactor 2024-12-29 12:20:35 -08:00
Matt Rubens
25987dd40b Remove truncation logic for now 2024-12-29 12:03:28 -08:00
Matt Rubens
eb8c4cc50f Add DeepSeek to the list of providers 2024-12-29 11:27:31 -08:00
Matt Rubens
948c66c1af
Merge pull request #241 from samhvw8/fix/list-model-openai-compatible
fix(openai-compatible) fix load model when change baseUrl
2024-12-29 11:25:15 -08:00
sam hoang
7021b71776 fix(openai-compatible) fix load model when change baseUrl 2024-12-30 02:20:20 +07:00
Matt Rubens
54040b067d
Merge pull request #236 from RooVetGit/mrubens-patch-1
Update README.md
2024-12-29 08:04:00 -08:00
Matt Rubens
5e8bd74877
Update README.md 2024-12-28 22:27:38 -08:00
Matt Rubens
14dbf39f64
Merge pull request #235 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-28 22:15:15 -08:00
Matt Rubens
d6a4f862ab
Update CHANGELOG.md 2024-12-28 22:13:16 -08:00
R00-B0T
171ae93abd Updating CHANGELOG.md format 2024-12-29 06:12:18 +00:00
github-actions[bot]
f56cf9d483 changeset version bump 2024-12-29 06:11:38 +00:00
Matt Rubens
22254c482e
Merge pull request #234 from RooVetGit/enhanced_prompt_open_router
Enhance prompt button for openrouter
2024-12-28 22:10:47 -08:00
Matt Rubens
ab206568b1 Update changeset 2024-12-28 22:06:28 -08:00
Matt Rubens
9b03305c43 Release 2024-12-28 22:01:37 -08:00
Matt Rubens
d1e305f30c Remove eslint-disable, forbid it in .clinerules 2024-12-28 21:58:16 -08:00
Matt Rubens
fb70552b57 Interface cleanup 2024-12-28 21:50:27 -08:00
Matt Rubens
f33281c18d Remove duplicate useEffect hooks 2024-12-28 21:46:08 -08:00
Matt Rubens
111abdbb2c Enhance prompt button for openrouter 2024-12-28 15:44:14 -08:00
Matt Rubens
1581ed135b
Merge pull request #207 from samhvw8/feat/openai-list-models
feat list model for open ai compatible
2024-12-27 22:44:27 -08:00
Matt Rubens
4a9f78b270
Merge pull request #229 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-27 17:39:17 -08:00
R00-B0T
765e1ebeb7 Updating CHANGELOG.md format 2024-12-28 01:37:20 +00:00
github-actions[bot]
452ae1c4f5 changeset version bump 2024-12-28 01:36:45 +00:00
Matt Rubens
c6b90b4b92
Merge pull request #228 from RooVetGit/more_efficient_filetracker
More efficient workspace tracker
2024-12-27 17:35:48 -08:00
Matt Rubens
db9827efae More efficient workspace tracker 2024-12-27 17:17:38 -08:00
Matt Rubens
5bf9a74cf7
Merge pull request #226 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-27 09:32:49 -08:00
R00-B0T
00311a57e6 Updating CHANGELOG.md format 2024-12-27 17:29:00 +00:00
github-actions[bot]
7f9a20c3d0 changeset version bump 2024-12-27 17:28:25 +00:00
Matt Rubens
038cea81ff
Merge pull request #224 from RooVetGit/command_validation
Improved logic for auto-approving chained commands
2024-12-27 09:27:28 -08:00
Matt Rubens
c56218b68d Improved logic for auto-approving chained commands 2024-12-26 22:45:09 -08:00
Matt Rubens
c76417bf3b
Merge pull request #223 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-26 21:36:55 -08:00
R00-B0T
7f52243c64 Updating CHANGELOG.md format 2024-12-27 05:32:53 +00:00
github-actions[bot]
0f46008add changeset version bump 2024-12-27 05:32:17 +00:00
Matt Rubens
bcc68643c1
Merge pull request #222 from RooVetGit/fix_auto_approve_commands
Fix bug with auto-approving commands
2024-12-26 21:31:23 -08:00
Matt Rubens
91399c9f61 Fix bug with auto-approving commands 2024-12-26 21:25:14 -08:00
Matt Rubens
26fcd6a351
Merge pull request #221 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-26 10:24:39 -08:00
R00-B0T
6e810235cb Updating CHANGELOG.md format 2024-12-26 18:18:18 +00:00
github-actions[bot]
26a2c4076e changeset version bump 2024-12-26 18:17:40 +00:00
Matt Rubens
e0eb024a8f
Merge pull request #220 from RooVetGit/diagnostics_delay
Add configurable delay after auto-writes to allow diagnostics to catch up
2024-12-26 10:16:35 -08:00
Matt Rubens
03707d5dcc Add configurable delay after auto-writes to allow diagnostics to catch up 2024-12-26 09:59:01 -08:00
Matt Rubens
6126cdf254
Merge pull request #219 from RooVetGit/update_workspace_tracker
Updated workspace tracker from Cline
2024-12-26 08:26:40 -08:00
Matt Rubens
2b46a307b5 Update tests 2024-12-26 08:24:02 -08:00
Matt Rubens
912850c31c Updated workspace tracker from Cline 2024-12-26 08:05:07 -08:00
sam hoang
fbb99f3a0f remove unused 2024-12-25 06:41:18 +07:00
Matt Rubens
c8964ade2f
Merge pull request #212 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-24 14:21:26 -08:00
R00-B0T
27fc9f7dc7 Updating CHANGELOG.md format 2024-12-24 22:19:32 +00:00
github-actions[bot]
2a5ab62744 changeset version bump 2024-12-24 22:18:54 +00:00
Matt Rubens
aaa7d437fc
Merge pull request #203 from RooVetGit/file_system_watcher
Use createFileSystemWatcher to more reliably watch for file system changes
2024-12-24 14:17:53 -08:00
Matt Rubens
947adc41d4 Merge remote-tracking branch 'origin/main' into file_system_watcher 2024-12-24 14:10:01 -08:00
Matt Rubens
1ac09381d7
Merge pull request #211 from RooVetGit/mrubens-patch-1
Update README.md
2024-12-24 14:09:27 -08:00
Matt Rubens
5d3c4652ee Update README 2024-12-24 14:08:11 -08:00
Matt Rubens
b4c7a2a521 Merge remote-tracking branch 'origin/main' into file_system_watcher 2024-12-24 14:07:02 -08:00
Matt Rubens
c50cfad16f Merge remote-tracking branch 'origin/main' into file_system_watcher 2024-12-24 14:06:45 -08:00
Matt Rubens
3b34f9e3ad
Update README.md
Include experimental MCP features
2024-12-24 14:04:04 -08:00
Matt Rubens
0c69e298ba
Merge pull request #210 from RooVetGit/mrubens-patch-1
Update README.md
2024-12-24 12:07:49 -08:00
Matt Rubens
e3c2830d90
Update README.md
We don't currently have releases and the changelog link is broken
2024-12-24 12:02:49 -08:00
Matt Rubens
e81af8da50
Merge pull request #209 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-24 12:01:19 -08:00
R00-B0T
0c398cce9a Updating CHANGELOG.md format 2024-12-24 19:59:32 +00:00
github-actions[bot]
4670d6b2a9 changeset version bump 2024-12-24 19:58:55 +00:00
Matt Rubens
578fa5f89c
Merge pull request #204 from RooVetGit/add_current_time_to_environment_details
Add the current time to the system prompt
2024-12-24 11:57:58 -08:00
Matt Rubens
f397e2bc0f Merge remote-tracking branch 'origin/main' into add_current_time_to_environment_details 2024-12-24 11:55:03 -08:00
Matt Rubens
2c8aec64c8 Update changeset 2024-12-24 11:54:38 -08:00
Matt Rubens
4fba53c6b0 Update README 2024-12-24 11:53:05 -08:00
Matt Rubens
795e0b271e
Merge pull request #208 from teethliberty/image-compression-fix-for-205
Image compression fix for 206
2024-12-24 11:49:21 -08:00
LibertyTeeth
72eadedcd4
Update BrowserSession.ts
One-line change to improve Roo-Cline's eyesight.

Aside: the above improves an AI's vision; the below works for people.  My prescription has gone from -4.50 to -2.50 in a year, and I only do the exercises once a month or so, after the first few weeks of once a day:

https://www.youtube.com/watch?v=7TU7o5E3QuU
2024-12-24 13:20:36 -05:00
sam hoang
198e1965e9 feat openai-list-models 2024-12-25 01:02:33 +07:00
Matt Rubens
d9e2bac127 Add tests and changeset 2024-12-23 22:28:22 -08:00
Matt Rubens
f501c93faf Add the current time to the system prompt 2024-12-23 22:28:10 -08:00
Matt Rubens
51b9418e31 Tests 2024-12-23 21:32:02 -08:00
Matt Rubens
b3e2e61f47 Add changeset 2024-12-23 21:11:27 -08:00
Matt Rubens
752b0cf352 Use createFileSystemWatcher to more reliably watch for file system changes 2024-12-23 21:04:45 -08:00
Abel Trejo Pineda
bc7dee6097
Merge pull request #201 from RooVetGit/chores/changeset-format-ref
Fixes git ref when pushing the changelog forced format
2024-12-23 10:05:12 -08:00
a8trejo
ba6c8bcfef Fixes when pushing the changelog forced format 2024-12-23 09:56:27 -08:00
Matt Rubens
8ab91958e3
Merge pull request #199 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-22 12:08:48 -05:00
Matt Rubens
de43ca2e41
Update CHANGELOG.md 2024-12-22 12:05:48 -05:00
github-actions[bot]
20f188e9c9 changeset version bump 2024-12-22 17:04:18 +00:00
Matt Rubens
4194e8e15d
Merge pull request #198 from RooVetGit/preferred_language_tweaks
Tweaks to preferred language
2024-12-22 12:03:15 -05:00
Matt Rubens
8e352ae2ab Tweaks to preferred language 2024-12-22 11:45:53 -05:00
Matt Rubens
7a7f8906da
Merge pull request #197 from yongjer/main
remove Chinese with traditional Chinese and Simplified Chinese
2024-12-22 11:37:32 -05:00
yongjer
262bfcb74f
replace chinese with traditional and simplified chinese 2024-12-23 01:17:04 +09:00
yongjer
ac4f4264cf
replace chinese with traditional and simplified chinese 2024-12-23 01:13:30 +09:00
Matt Rubens
911ce92d25
Merge pull request #193 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-21 10:35:21 -05:00
Matt Rubens
0370aed446
Update CHANGELOG.md 2024-12-21 10:33:20 -05:00
github-actions[bot]
627a0fb86d changeset version bump 2024-12-21 15:26:12 +00:00
Matt Rubens
3248c9b1b7
Merge pull request #192 from RooVetGit/language_chooser
Add a preferred language dropdown
2024-12-21 10:25:19 -05:00
Matt Rubens
8b4c52fb51 Add a preferred language dropdown 2024-12-21 10:23:01 -05:00
Abel Trejo Pineda
6ad6949265
Merge pull request #173 from RooVetGit/chores/changelog-format
Forcing preferred changelog format
2024-12-20 10:33:52 -08:00
a8trejo
bbf7ba7995 PR comments 2024-12-20 10:30:43 -08:00
Matt Rubens
01eeed566d
Merge pull request #190 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-20 10:57:10 -05:00
Matt Rubens
11a3703f92
Update CHANGELOG.md 2024-12-20 10:48:41 -05:00
github-actions[bot]
4fbc2b5145 changeset version bump 2024-12-20 15:47:47 +00:00
Matt Rubens
6d15f5387f
Merge pull request #186 from RooVetGit/default_diff_editing_to_on
Default diff editing to on for new installs
2024-12-20 10:46:52 -05:00
Matt Rubens
d85d2e4e83
Merge pull request #187 from Premshay/patch-2
Update README.md
2024-12-20 09:16:35 -05:00
Matt Rubens
b361785805
Merge pull request #188 from Premshay/patch-3
Update CHANGELOG.md
2024-12-20 07:40:14 -05:00
Premshay
d498b12617
Update CHANGELOG.md
Added support Amazon Nova
2024-12-20 11:49:13 +02:00
Premshay
909206c76d
Update README.md
Added support Amazon Nova
2024-12-20 11:48:12 +02:00
Matt Rubens
b6b5c8e422 Default diff editing to on for new installs 2024-12-19 23:35:38 -05:00
Matt Rubens
7e7f5276b9
Merge pull request #185 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-19 18:48:57 -05:00
Matt Rubens
b4647bb850
Update CHANGELOG.md 2024-12-19 18:46:50 -05:00
github-actions[bot]
ce02f9e197 changeset version bump 2024-12-19 23:45:18 +00:00
Matt Rubens
fd57048551
Merge pull request #184 from RooVetGit/release_2_2_23
Release 2.2.23
2024-12-19 18:44:22 -05:00
Matt Rubens
e2442041cd Release 2.2.23 2024-12-19 18:40:31 -05:00
Matt Rubens
7845c8a296
Merge pull request #183 from student20880/main
Fix gemini-2.0-flash-thinking-exp-1219 contextWindow
2024-12-19 18:38:46 -05:00
student
ffd51479c1
Fix gemini-2.0-flash-thinking-exp-1219 contewWindow 2024-12-20 00:32:40 +01:00
Matt Rubens
6ed48a5359
Merge pull request #181 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-19 17:10:08 -05:00
Matt Rubens
39f014ebd4
Update CHANGELOG.md 2024-12-19 17:02:00 -05:00
github-actions[bot]
bc0abd5a56 changeset version bump 2024-12-19 22:01:03 +00:00
Matt Rubens
e4de688ce9
Merge pull request #180 from RooVetGit/gemini_2_flash_thinking
Add gemini-2.0-flash-thinking-exp-1219
2024-12-19 17:00:05 -05:00
Matt Rubens
38138164e5 Add gemini-2.0-flash-thinking-exp-1219 2024-12-19 15:32:30 -05:00
Matt Rubens
240fa9f287
Merge pull request #176 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-19 10:36:57 -05:00
Matt Rubens
08bfda8135
Update CHANGELOG.md 2024-12-19 10:06:11 -05:00
github-actions[bot]
3d388f2b07 changeset version bump 2024-12-19 14:54:22 +00:00
Matt Rubens
1cb3206b87
Merge pull request #175 from RooVetGit/fix_omission_detecting
Use predicted length as input for detecting omissions
2024-12-19 09:53:22 -05:00
Matt Rubens
5d930981a4 More flexibility for LLMs not being great at this 2024-12-19 09:50:34 -05:00
Matt Rubens
ef9c468f17 Use predicted length as input for detecting omissions 2024-12-19 00:54:06 -05:00
a8trejo
1baa215299 Adding comment 2024-12-18 15:32:51 -08:00
a8trejo
8d9dd759f5 Forcing changelog format 2024-12-18 15:12:18 -08:00
Matt Rubens
a9775c0eb3
Merge pull request #172 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-18 17:19:43 -05:00
Matt Rubens
37fddc650c
Update CHANGELOG.md 2024-12-18 17:17:22 -05:00
github-actions[bot]
7300cdbea3 changeset version bump 2024-12-18 22:16:21 +00:00
Matt Rubens
897e7991bd
Merge pull request #169 from RooVetGit/turn_off_fuzzy_matching
Make fuzzy diff matching configurable (and default to off)
2024-12-18 17:15:25 -05:00
Matt Rubens
3aca5e813e Make fuzzy diff matching configurable (and default to off) 2024-12-18 15:26:44 -05:00
Matt Rubens
1beb3a3cf6
Merge pull request #168 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-18 11:11:43 -05:00
Matt Rubens
68223ac847
Update CHANGELOG.md 2024-12-18 11:08:06 -05:00
github-actions[bot]
3c6523cca7 changeset version bump 2024-12-18 16:06:46 +00:00
Matt Rubens
490d012b2f
Merge pull request #164 from RooVetGit/large_browser
Toggle to switch browser size to 1280x800
2024-12-18 11:05:43 -05:00
Matt Rubens
6a6084b7ca Toggle to switch browser size to 1280x800 2024-12-18 00:33:46 -05:00
Matt Rubens
eab4a80981
Merge pull request #163 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-17 23:04:21 -05:00
Matt Rubens
eec4fe470b
Update CHANGELOG.md 2024-12-17 23:01:51 -05:00
github-actions[bot]
2e1be924a7 changeset version bump 2024-12-18 03:59:49 +00:00
Matt Rubens
d4634fc260
Merge pull request #162 from RooVetGit/chat_style_fixes
Chat style fixes
2024-12-17 22:58:52 -05:00
Matt Rubens
496de0d8cb Smaller style change to pre-wrap in the sidebar 2024-12-17 22:53:50 -05:00
Matt Rubens
e2ebeaa603 Revert "Merge pull request #154 from RooVetGit/fix_markdown_wrapping"
This reverts commit 7a4fdebe05, reversing
changes made to 011113dbab.
2024-12-17 22:53:50 -05:00
Matt Rubens
eaa5f7b4eb
Merge pull request #161 from RooVetGit/chores/changeset-pr-merge
Changeset pr manual merge
2024-12-17 22:53:36 -05:00
a8trejo
c9e07cca58 Workflows updates to manually merge changeset PRs and control those changes 2024-12-17 17:16:46 -08:00
a8trejo
fa23dc0737 format fixes 2024-12-17 16:20:06 -08:00
a8trejo
74a016338b Trying no auto flag 2024-12-17 16:19:20 -08:00
R00-B0T
c0c29b4879
Merge pull request #160 from RooVetGit/changeset-release/main
Changeset version bump
2024-12-17 15:46:12 -08:00
github-actions[bot]
4cb00433ab changeset version bump 2024-12-17 23:16:30 +00:00
John Stearns
1e83d1a835
Improved regex for auto-execution of chained commands (#158)
* Improved regex for auto-execution of chained commands
2024-12-17 15:15:28 -08:00
Matt Rubens
a982df7d1f
Merge pull request #153 from RooVetGit/chore/cleanUp12-17
updating readme, deleting orphaned changesets
2024-12-17 12:27:13 -05:00
Matt Rubens
4297c2c16c
Update README.md 2024-12-17 12:25:18 -05:00
Matt Rubens
5b6e4bf8da
Update CHANGELOG.md 2024-12-17 12:25:10 -05:00
ColemanRoo
2ab7ea8b5e correct GH handle in changelog 2024-12-17 11:16:46 -06:00
ColemanRoo
c9b5293252 changelog update 2024-12-17 11:12:39 -06:00
ColemanRoo
1a9e01daf4 remove celebration sound on resume completed task 2024-12-17 11:11:40 -06:00
ColemanRoo
14c3f9d58d update spacing 2024-12-17 11:04:02 -06:00
ColemanRoo
b39a26b904 update changelog with correct links 2024-12-17 10:59:39 -06:00
Matt Rubens
7a4fdebe05
Merge pull request #154 from RooVetGit/fix_markdown_wrapping
Fixes to markdown wrapping
2024-12-17 11:34:48 -05:00
ColemanRoo
1c4a3fd388 better changelog info 2024-12-17 10:34:46 -06:00
Matt Rubens
5885a03c8c Fixes to markdown wrapping 2024-12-17 11:29:22 -05:00
ColemanRoo
5f487f1762 update README and changelog for version update 2024-12-17 10:16:45 -06:00
Abel Trejo Pineda
011113dbab
Merge pull request #143 from RooVetGit/chores/remove-ai-releases
Changing auto merge command to merge strategy instead of squash
2024-12-17 07:56:56 -08:00
ColemanRoo
b502532c9f updating readme, deleting orphaned changesets, updating version for release 2024-12-17 09:52:17 -06:00
Mike C
1be51a46b1
Merge pull request #60 from Premshay/main
feat(api): unify Bedrock provider using Runtime API
2024-12-17 09:29:43 -06:00
Matt Rubens
49067c0076
Merge pull request #151 from RooVetGit/strip_line_numbers_from_write_to_file
Strip line numbers from write to file
2024-12-17 09:52:13 -05:00
Matt Rubens
86bb389f90 Release 2.2.15 2024-12-17 09:29:58 -05:00
Matt Rubens
38f33de642 Fix bad matching bug with empty lines 2024-12-17 09:28:50 -05:00
Matt Rubens
800db618bb Strip line numbers from write_to_file 2024-12-17 09:28:37 -05:00
Matt Rubens
3fcfc8d354
Merge pull request #145 from RooVetGit/more_diff_iterations
More diff iterations
2024-12-17 08:07:10 -05:00
Matt Rubens
f5bd5fae09 Prompt tweak for gemini line numbers 2024-12-17 07:50:53 -05:00
Premshay
e93f59085f
Merge branch 'RooVetGit:main' into main 2024-12-17 12:40:53 +02:00
Matt Rubens
c2f482b668 Release 2.1.14 2024-12-17 01:44:01 -05:00
Matt Rubens
7163b173e8 Fix test 2024-12-17 01:24:10 -05:00
Matt Rubens
792780e78d Go back to older prompt 2024-12-17 01:15:15 -05:00
Matt Rubens
7d6e04fbe8 Error formatting 2024-12-17 00:25:26 -05:00
Matt Rubens
85fd2fce4e Only output apply_diff error in chat if we fail to apply the diff to a file 2x in a row 2024-12-17 00:20:35 -05:00
Matt Rubens
eb56cac16b Do fuzzy match search from the middle out and expand window to 20 lines 2024-12-17 00:10:15 -05:00
Matt Rubens
06202be46f Remove debug checkbox 2024-12-16 22:58:04 -05:00
a8trejo
dd1f935de9 Changing auto merge command to merge strategy instead of squash 2024-12-16 16:35:45 -08:00
Matt Rubens
fb8a33e19b
Merge pull request #142 from RooVetGit/release_2_2_13
Release 2.1.13
2024-12-16 19:25:47 -05:00
Matt Rubens
afa09ba64a Release 2.1.13 2024-12-16 19:23:33 -05:00
Abel Trejo Pineda
0592aab39f
Merge pull request #140 from RooVetGit/chores/remove-ai-releases
Fixing install command in changeset workflow
2024-12-16 18:17:15 -06:00
a8trejo
82c26fdfc0 fixing install command 2024-12-16 16:10:16 -08:00
Abel Trejo Pineda
dfc4ec06b8
Merge pull request #139 from RooVetGit/chores/remove-ai-releases
Chores/remove ai releases
2024-12-16 18:05:10 -06:00
a8trejo
481b99b282 Changing .changeset/changelog-config.js to js 2024-12-16 15:57:27 -08:00
a8trejo
5bfebeb62e Changing .changeset/changelog-config.js to js 2024-12-16 15:56:06 -08:00
Abel Trejo Pineda
eda682cff9
Merge pull request #138 from RooVetGit/chores/remove-ai-releases
Chores/remove ai releases
2024-12-16 17:31:12 -06:00
a8trejo
522d71661b Merge branch 'main' of https://github.com/RooVetGit/Roo-Cline into chores/remove-ai-releases 2024-12-16 15:28:47 -08:00
a8trejo
5aa2634253 GHA fixes 2024-12-16 15:28:37 -08:00
jquanton
5b682fe99b
Merge pull request #137 from RooVetGit/jq/fix-lint
fix npm run lint
2024-12-16 15:21:46 -08:00
Abel Trejo Pineda
476e564c23
Merge pull request #133 from RooVetGit/chores/remove-ai-releases
Remove AI releases
2024-12-16 17:20:25 -06:00
Justin Quan
e6b591b10d changeset 2024-12-16 15:14:53 -08:00
a8trejo
5359f823f2 Adding changeset changelog format 2024-12-16 15:12:51 -08:00
Justin Quan
267fb441d9 fix all lint warnings 2024-12-16 15:12:49 -08:00
Justin Quan
b7571df60e run lint on webview-ui 2024-12-16 15:01:07 -08:00
Justin Quan
6db30b5e90 fix lint error 2024-12-16 15:00:41 -08:00
Matt Rubens
c842d3be63
Merge pull request #136 from RooVetGit/fix_line_number_stripping
Bugfix to strip line numbers with leading space
2024-12-16 17:49:19 -05:00
Matt Rubens
475776da98 Bugfix to strip line numbers with leading space 2024-12-16 17:45:00 -05:00
jquanton
8391111f7d
Merge pull request #129 from RooVetGit/jq/sound-setting-improvements
Sound setting improvements
2024-12-16 14:30:02 -08:00
Justin Quan
ca4806db22 add details to changeset 2024-12-16 14:23:13 -08:00
Justin Quan
8f1fef249b changeset 2024-12-16 14:17:38 -08:00
Justin Quan
ac2babfd82 remove double ping for mcp approval 2024-12-16 14:07:07 -08:00
Matt Rubens
3449033864
Merge pull request #134 from RooVetGit/apply_diff_insert_delete
Handle pure insertions and deletions with diffs
2024-12-16 16:53:22 -05:00
Matt Rubens
905c68dd9e Handle pure insertions and deletions with diffs 2024-12-16 16:50:45 -05:00
a8trejo
58402f4654 PR comments 2024-12-16 12:13:57 -08:00
a8trejo
d455428978 ellipsis comments 2024-12-16 11:24:39 -08:00
a8trejo
5eb848b7c8 Remove AI releases 2024-12-16 11:21:34 -08:00
Justin Quan
bb5fababae Merge branch 'main' into jq/sound-setting-improvements 2024-12-16 11:00:17 -08:00
Justin Quan
d4ceee396d uninstall play-sound 2024-12-16 10:46:11 -08:00
Matt Rubens
47568336ad
Merge pull request #132 from RooVetGit/debug_diff_enabled
Debug diff enabled
2024-12-16 13:44:28 -05:00
Justin Quan
05d6c295be fix auto-approved and duplicate sounds 2024-12-16 10:41:13 -08:00
Matt Rubens
12dd9ab27e
Merge pull request #130 from RooVetGit/diff_edit_sonnet_hint
Add a hint that diff editing works best with latest Sonnet
2024-12-16 13:09:35 -05:00
Justin Quan
c66fe25060 ignore command and mcp asks with no text 2024-12-16 09:30:20 -08:00
Matt Rubens
61b2104345 Fix bug where start/end line not passed to diff 2024-12-16 12:26:40 -05:00
Matt Rubens
c2b4b05459 Diff debugging 2024-12-16 12:19:44 -05:00
Matt Rubens
81aaa9c993 Add a hint that diff editing works best with latest Sonnet 2024-12-16 09:21:20 -05:00
Premshay
afbedce1e9
Merge branch 'RooVetGit:main' into main 2024-12-16 14:09:53 +02:00
Justin Quan
efdc3a8639 ChatView tests 2024-12-16 00:26:00 -08:00
Justin Quan
42715c1db6 Merge branch 'main' into jq/sound-setting-improvements 2024-12-16 00:08:21 -08:00
Justin Quan
95222a9a5d add sounds to mcp server approval 2024-12-15 23:47:10 -08:00
Justin Quan
5e771cf783 add volume slider tests 2024-12-15 23:44:50 -08:00
Justin Quan
1adc36a292 add volume setting 2024-12-15 23:22:44 -08:00
Justin Quan
09934e20f7 only play sounds on errors, task completion, or when user intervention is needed 2024-12-15 23:13:32 -08:00
Matt Rubens
5fcf6f0821
Merge pull request #128 from RooVetGit/enter_to_add_auto_approved_commands
Enter to add auto approved commands
2024-12-16 00:10:35 -05:00
Matt Rubens
e14ccf55db Update unit test command to run webview tests too 2024-12-15 23:58:17 -05:00
Matt Rubens
d3823ca386
Merge pull request #127 from RooVetGit/fix_webview_tests
Fix webview tests
2024-12-15 23:57:34 -05:00
Matt Rubens
afc22f0d6e Hit enter to add auto-approved commands 2024-12-15 23:57:21 -05:00
Matt Rubens
deb4df4bc3 Fix webview tests 2024-12-15 23:48:13 -05:00
Matt Rubens
27b684a911
Merge pull request #126 from RooVetGit/delete_line_numbers_in_diff
Delete line numbers in diff
2024-12-15 22:47:48 -05:00
Justin Quan
63c766f380 fix soundEnabled init bug 2024-12-15 19:47:13 -08:00
Matt Rubens
e6c79eff80 Instead of trusting the prompt, just strip line numbers from diff contents 2024-12-15 22:40:59 -05:00
Premshay
acf472aae0
Update api.ts 2024-12-15 11:28:54 +02:00
Premshay
8460a796e9
Merge branch 'main' into main 2024-12-15 11:15:43 +02:00
Premshay
04259577ed
Merge branch 'RooVetGit:main' into main 2024-12-12 09:23:19 +02:00
Cline
1069fda643 Add comprehensive test cases for AwsBedrockHandler 2024-12-11 22:49:02 +02:00
Cline
ca41c54cb5 test(bedrock): add comprehensive test coverage for Bedrock integration
- Add tests for AWS Bedrock handler (stream handling, config, errors)
- Add tests for message format conversion (text, images, tools)
- Add tests for stream event parsing and transformation
- Add tests for cross-region inference and prompt cache
- Add tests for metadata and message lifecycle events
2024-12-11 22:48:49 +02:00
Cline
51a57d5bbf fix(bedrock): improve stream handling and type safety
- Fix TypeScript error in ConverseStreamCommand payload
- Add proper JSON parsing for test stream events
- Improve error handling with proper Error objects
- Add test-specific model info with required fields
- Fix cross-region inference and prompt cache config
2024-12-11 22:47:59 +02:00
Cline
140318cecd feat(api): unify Bedrock provider using Runtime API
Problem:
The current Bedrock implementation uses the Bedrock SDK, which requires separate handling for different model types and doesn't provide a unified streaming interface.

Solution:
Integrate the Bedrock Runtime API to provide a single, unified interface for all Bedrock models (Claude and Nova) using the ConverseStream API. This eliminates the need for separate handlers while maintaining all existing functionality.

Key Changes:
- Refactored AwsBedrockHandler to use @aws-sdk/client-bedrock-runtime
- Enhanced bedrock-converse-format.ts to handle all content types and properly transform between Anthropic and Bedrock formats
- Maintained cross-region inference support with proper region prefixing
- Added support for prompt caching configuration
- Improved AWS credentials handling to better support default providers
- Added proper error handling and token tracking for all response types

Dependencies:
- Added @aws-sdk/client-bedrock-runtime for unified API access
- Removed @anthropic-ai/bedrock-sdk dependency

Testing:
- Verified message format conversion for all content types
- Tested cross-region inference functionality
- Validated streaming responses for both Claude and Nova models

This change simplifies the codebase by providing a single, consistent interface for all Bedrock models while maintaining full compatibility with existing features.
2024-12-11 22:47:56 +02:00
Cline
dffc040e7c feat(bedrock): Add Meta Llama 3, 3.1, and 3.2 models with detailed pricing and context windows 2024-12-11 22:31:32 +02:00
3087 changed files with 471565 additions and 53563 deletions

View file

@ -0,0 +1,18 @@
const getReleaseLine = async (changeset) => {
const lines = changeset.summary
.split("\n")
.map((l) => l.trim())
.filter(Boolean)
return lines.map((line) => (line.startsWith("- ") ? line : `- ${line}`)).join("\n")
}
const getDependencyReleaseLine = async () => {
return ""
}
const changelogFunctions = {
getReleaseLine,
getDependencyReleaseLine,
}
module.exports = changelogFunctions

View file

@ -1,11 +1,11 @@
{ {
"$schema": "https://unpkg.com/@changesets/config@3.0.4/schema.json", "$schema": "https://unpkg.com/@changesets/config@3.0.4/schema.json",
"changelog": "@changesets/cli/changelog", "changelog": "./changelog-config.js",
"commit": false, "commit": false,
"fixed": [], "fixed": [["roo-cline"]],
"linked": [], "linked": [],
"access": "restricted", "access": "restricted",
"baseBranch": "main", "baseBranch": "main",
"updateInternalDependencies": "patch", "updateInternalDependencies": "patch",
"ignore": [] "ignore": ["@roo-code/cli"]
} }

15
.changeset/v3.54.0.md Normal file
View file

@ -0,0 +1,15 @@
---
"roo-cline": minor
---
- Remove: Roo Code Cloud and eval infrastructure from the extension, CLI, workflows, and package surfaces so the release is focused on the standalone extension (PR #12328 by @mrubens)
- Remove: All telemetry collection and analytics plumbing across the extension, website, shared types, provider flows, and related tests (PR #12324 by @mrubens)
- Remove: MDM and organization membership enforcement, including host wiring, webview state, user-facing messages, and locale strings (PR #12323 by @mrubens)
- Remove: The MCP marketplace, marketplace services, webview marketplace UI, package contributions, and related localized copy (PR #12326 by @mrubens)
- Update: Extension-facing support, diagnostics, and announcement content for the final Roo Code release, including GitHub help paths and links to Roomote, ZooCode, and Cline (PR #12341 by @brunobergher)
- Add: A cleaned docs app with GitHub Pages deployment support (PR #12344 by @brunobergher)
- Fix: Configure the docs GitHub Pages base URL so deployed assets and canonical paths load correctly under the repository Pages path (PR #12370 by @mrubens)
- Update: Point docs links in the root README, localized READMEs, and web app copy to the current GitHub Pages docs URL (PR #12371 by @mrubens)
- Remove: Stale `roocode.github.io` docs references, including the old CNAME and outdated docs README and robots.txt URLs (PR #12372 by @mrubens)
- Update: The website to focus almost entirely on the Roo Code extension and remove cloud, team, enterprise, provider, pricing, Slack, and Linear product pages (PR #12180 by @brunobergher)
- Remove: Contributor, community, social channel, and tutorial references from README files, docs, website copy, issue templates, and workflows (PR #12347 by @brunobergher)

93
.dockerignore Normal file
View file

@ -0,0 +1,93 @@
# git
.git
# build artifacts
bin/
dist/
**/dist/
out/
**/out/
src/webview-ui/
# dependencies
node_modules/
**/node_modules/
# testing
coverage/
**/.vscode-test/
**/mock/
# devtools
knip.json
.husky/
# monorepo
.turbo/
**/.turbo/
# next.js
**/.next/
.vercel
# Ignore common development files
node_modules
.git
.gitignore
.dockerignore
.env*
.vscode
.idea
# Ignore build artifacts
dist
build
*.log
*.tmp
.cache
coverage
# Ignore OS files
.DS_Store
Thumbs.db
# Ignore test files
__tests__
*.test.js
*.spec.js
*.test.ts
*.spec.ts
# Ignore development config files
.eslintrc*
.prettierrc*
# Ignore most directories except what we need for the build
apps/
evals/
webview-ui/node_modules
src/node_modules
# Keep essential files for the build
!README.md
!CHANGELOG.md
!package.json
!pnpm-lock.yaml
!pnpm-workspace.yaml
!scripts/bootstrap.mjs
!apps/web-evals/
!apps/cli/
!src/
!webview-ui/
!packages/evals/.docker/entrypoints/runner.sh
!packages/build/
!packages/config-eslint/
!packages/config-typescript/
!packages/core/
!packages/evals/
!packages/ipc/
!packages/telemetry/
!packages/types/
!packages/vscode-shim/
!packages/cloud/
!locales/

6
.env.sample Normal file
View file

@ -0,0 +1,6 @@
POSTHOG_API_KEY=key-goes-here
# Roo Code Cloud / Local Development
CLERK_BASE_URL=https://epic-chamois-85.clerk.accounts.dev
ROO_CODE_API_URL=http://localhost:3000
ROO_CODE_PROVIDER_URL=http://localhost:8080/proxy/v1

View file

@ -1,25 +0,0 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/naming-convention": [
"warn",
{
"selector": "import",
"format": ["camelCase", "PascalCase"]
}
],
"@typescript-eslint/semi": "off",
"curly": "warn",
"eqeqeq": "warn",
"no-throw-literal": "warn",
"semi": "off",
"react-hooks/exhaustive-deps": "off"
},
"ignorePatterns": ["out", "dist", "**/*.d.ts"]
}

3
.git-blame-ignore-revs Normal file
View file

@ -0,0 +1,3 @@
# Ran Prettier on all files - https://github.com/RooCodeInc/Roo-Code/pull/404
60a0a824b96a0b326af4d8871b6903f4ddcfe114
579bdd9dbf6d2d569e5e7adb5ff6292b1e42ea34

23
.gitattributes vendored
View file

@ -1,2 +1,25 @@
demo.gif filter=lfs diff=lfs merge=lfs -text demo.gif filter=lfs diff=lfs merge=lfs -text
assets/docs/demo.gif filter=lfs diff=lfs merge=lfs -text assets/docs/demo.gif filter=lfs diff=lfs merge=lfs -text
src/assets/docs/demo.gif filter=lfs diff=lfs merge=lfs -text
# Test snapshot files - mark as linguist-generated to exclude from GitHub language statistics
*.snap linguist-generated=true
# Non-English translation files - mark as linguist-generated to exclude from GitHub language statistics
# Package NLS files - mark non-English ones as generated
src/package.nls.*.json linguist-generated=true
# Exclude the base English file from being marked as generated
src/package.nls.json linguist-generated=false
# Root locales directory (contains only non-English translations)
locales/** linguist-generated=true
# Mark all locale directories as generated first
src/i18n/locales/** linguist-generated=true
webview-ui/src/i18n/locales/** linguist-generated=true
# Then explicitly mark English directories as NOT generated (override the above)
src/i18n/locales/en/** linguist-generated=false
webview-ui/src/i18n/locales/en/** linguist-generated=false
# This approach uses gitattributes' last-match-wins rule to exclude English while including all other locales

2
.gitconfig Normal file
View file

@ -0,0 +1,2 @@
[blame]
ignoreRevsFile = .git-blame-ignore-revs

2
.github/CODEOWNERS vendored
View file

@ -1,2 +1,2 @@
# These owners will be the default owners for everything in the repo # These owners will be the default owners for everything in the repo
* @stea9499 @ColemanRoo @mrubens * @mrubens @cte @jr @hannesrudolph @daniel-lxs

View file

@ -1,58 +1,119 @@
name: Bug Report name: Bug Report
description: File a bug report description: Report a broken behavior in plain language with a minimal reproduction
labels: ["bug"] labels: ["bug"]
title: "[BUG] "
body: body:
- type: dropdown - type: markdown
id: provider attributes:
attributes: value: |
label: Which API Provider are you using? Thank you for your report! Please search existing issues first:
multiple: false https://github.com/RooCodeInc/Roo-Code/issues
options:
- OpenRouter - type: textarea
- Anthropic id: problem
- Google Gemini attributes:
- GCP Vertex AI label: Problem (one or two sentences)
- AWS Bedrock description: Describe what went wrong in plain language.
- OpenAI placeholder: 'Example: "Expected the task to start, but nothing happened and no message appeared."'
- OpenAI Compatible validations:
- LM Studio required: true
- Ollama
validations: - type: textarea
required: true id: context
- type: input attributes:
id: model label: Context (who is affected and when)
attributes: description: Who sees this and in what situation? Keep it non-technical.
label: Which Model are you using? placeholder: 'Example: "Happens to new users when starting a run from the New Run page with dark theme enabled."'
description: Please specify the model you're using (e.g. Claude 3.5 Sonnet) validations:
validations: required: true
required: true
- type: textarea - type: textarea
id: what-happened id: steps
attributes: attributes:
label: What happened? label: Reproduction steps
description: Also tell us, what did you expect to happen? description: Provide clear, numbered steps so we can reproduce.
placeholder: Tell us what you see! placeholder: |
validations: 1) Environment/setup (OS, extension version, relevant settings)
required: true 2) Exact actions (clicks, inputs, commands)
- type: textarea 3) What you observed after each step
id: steps validations:
attributes: required: true
label: Steps to reproduce
description: How do you trigger this bug? Please walk us through it step by step. - type: input
value: | id: expected
1. attributes:
2. label: Expected result
3. placeholder: e.g., "The task starts and shows progress."
validations: validations:
required: true required: true
- type: textarea
id: logs - type: input
attributes: id: actual
label: Relevant API REQUEST output attributes:
description: Please copy and paste any relevant output. This will be automatically formatted into code, so no need for backticks. label: Actual result
render: shell placeholder: e.g., "The button appears disabled and no progress is shown."
- type: textarea validations:
id: additional-context required: true
attributes:
label: Additional context - type: textarea
description: Add any other context about the problem here, such as screenshots or related issues. id: variations
attributes:
label: Variations tried (optional)
description: Different browsers, devices, providers, or settings you tried.
placeholder: e.g., "Tried Chrome/Firefox, disabling dark theme, switching providers."
- type: input
id: version
attributes:
label: App Version
description: What version of Roo Code are you using? (e.g., v3.3.1)
validations:
required: true
- type: dropdown
id: provider
attributes:
label: API Provider (optional)
options:
- Anthropic
- Amazon Bedrock
- Chutes AI
- DeepSeek
- Featherless AI
- Fireworks AI
- Google Gemini
- Google Vertex AI
- Groq
- LiteLLM
- LM Studio
- Mistral AI
- Ollama
- OpenAI
- OpenAI Compatible
- OpenRouter
- Requesty
- SambaNova
- Unbound
- VS Code Language Model API
- xAI (Grok)
- Not Applicable / Other
- type: input
id: model
attributes:
label: Model Used (optional)
description: Exact model name (e.g., Claude 3.7 Sonnet). Use N/A if irrelevant.
- type: textarea
id: roo-code-tasks
attributes:
label: Roo Code Task Links (optional)
description: If you have any publicly shared Roo Code task links that demonstrate the issue, paste them here.
placeholder: Paste your Roo Code share links here, one per line
- type: textarea
id: logs
attributes:
label: Relevant logs or errors (optional)
description: Paste relevant output or errors. Use triple backticks (```) for formatting.
render: shell

View file

@ -1,8 +1,5 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Feature Request
url: https://github.com/RooVetGit/Roo-Cline/discussions/categories/feature-requests
about: Share and vote on feature requests for Roo Cline
- name: Leave a Review - name: Leave a Review
url: https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline&ssr=false#review-details url: https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline&ssr=false#review-details
about: Enjoying Roo Cline? Leave a review here! about: Enjoying Roo Code? Leave a review here!

View file

@ -0,0 +1,91 @@
name: Enhancement Request
description: Propose an improvement in plain language focused on user benefit
labels: ["enhancement"]
title: "[ENHANCEMENT] "
body:
- type: markdown
attributes:
value: |
Thank you for helping improve Roo Code!
Please focus on the problem and the desired behavior in plain language.
- type: textarea
id: problem
attributes:
label: Problem (one or two sentences)
description: What problem are users facing?
placeholder: e.g., "Users often click Copy Run by mistake and duplicate runs unintentionally."
validations:
required: true
- type: textarea
id: context
attributes:
label: Context (who is affected and when)
description: Who encounters this and in what situation?
placeholder: e.g., "Happens when browsing the Runs list; most visible for new users."
validations:
required: true
- type: textarea
id: desired
attributes:
label: Desired behavior (conceptual, not technical)
description: Describe what should happen in simple terms.
placeholder: e.g., "Ask for confirmation before copying a run."
validations:
required: true
- type: textarea
id: constraints
attributes:
label: Constraints / preferences (optional)
description: Any considerations like performance, accessibility, or UX expectations.
placeholder: e.g., "Keep it quick and unobtrusive; keyboard accessible."
- type: checkboxes
id: checklist
attributes:
label: Request checklist
options:
- label: I've searched existing Issues and Discussions for duplicates
required: true
- label: This describes a specific problem with clear context and impact
required: true
- type: textarea
id: roo-code-tasks
attributes:
label: Roo Code Task Links (optional)
description: If you explored this with Roo Code, share public task links for context.
placeholder: Paste your Roo Code share links here, one per line
- type: markdown
attributes:
value: |
---
Optional: You can stop here if you're just proposing the improvement.
- type: textarea
id: acceptance-criteria
attributes:
label: Acceptance criteria (optional)
description: Define what “working” looks like with specific, testable outcomes.
placeholder: |
Given [context]
When [user action]
Then [expected result]
And [additional expectations]
But [what should NOT happen]
- type: textarea
id: proposed-solution
attributes:
label: Proposed approach (optional)
description: If you have an idea, describe it briefly in plain language.
- type: textarea
id: risks
attributes:
label: Trade-offs / risks (optional)
description: Potential downsides or alternatives considered.

62
.github/ISSUE_TEMPLATE/marketplace.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: Marketplace Feedback
description: Report issues or suggest improvements for marketplace items (custom modes and MCP servers)
labels: ["marketplace"]
body:
- type: markdown
attributes:
value: |
**Thanks for your feedback!** Please check existing issues first: https://github.com/RooCodeInc/Roo-Code/issues
- type: dropdown
id: feedback-type
attributes:
label: What kind of feedback?
options:
- Problem with existing marketplace item
- Suggestion for new custom mode
- Suggestion for new MCP server
- General marketplace issue
validations:
required: true
- type: dropdown
id: item-type
attributes:
label: Item Type (if applicable)
options:
- Custom Mode
- MCP Server
- Marketplace UI/Functionality
- Not Applicable
validations:
required: false
- type: input
id: item-name
attributes:
label: Item Name (if applicable)
placeholder: e.g., "Debug Mode", "Weather API Server", "Code Formatter"
- type: textarea
id: description
attributes:
label: Description
description: What's the issue or what would you like to see?
placeholder: Clear description of the problem or suggestion
validations:
required: true
- type: textarea
id: additional-info
attributes:
label: Additional Details (optional)
description: Steps to reproduce, expected behavior, screenshots, etc.
placeholder: Any other helpful information
- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: I've searched existing issues for duplicates
required: true

View file

@ -1,86 +0,0 @@
name: AI Release Notes
description: Generate AI release notes using git and openai, outputs 'RELEASE_NOTES' and 'OPENAI_PROMPT'
inputs:
OPENAI_API_KEY:
required: true
type: string
GHA_PAT:
required: true
type: string
model_name:
required: false
type: string
default: gpt-4o-mini
repo_path:
required: false
type: string
custom_prompt:
required: false
default: ''
type: string
git_ref:
required: false
type: string
default: ''
head_ref:
required: false
type: string
default: main
base_ref:
required: false
type: string
default: main
outputs:
RELEASE_NOTES:
description: "AI generated release notes"
value: ${{ steps.ai_release_notes.outputs.RELEASE_NOTES }}
OPENAI_PROMPT:
description: "Prompt used to generate release notes"
value: ${{ steps.ai_prompt.outputs.OPENAI_PROMPT }}
env:
GITHUB_REF: ${{ inputs.git_ref == '' && github.event.pull_request.head.ref || inputs.git_ref }}
BASE_REF: ${{ inputs.base_ref == '' && github.base_ref || inputs.base_ref }}
HEAD_REF: ${{ inputs.head_ref == '' && github.event.pull_request.head.sha || inputs.head_ref }}
runs:
using: "composite"
steps:
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repo_path }}
token: ${{ inputs.GHA_PAT }}
ref: ${{ env.GITHUB_REF }}
fetch-depth: 0
- name: Set Workspace
shell: bash
run: |
pip install tiktoken
pip install pytz
# Github outputs: 'OPENAI_PROMPT'
- name: Add Git Info to base prompt
id: ai_prompt
shell: bash
env:
BASE_REF: ${{ env.BASE_REF }}
HEAD_SHA: ${{ env.HEAD_SHA }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_BODY: ${{ github.event.pull_request.body }}
MODEL_NAME: ${{ inputs.model_name }}
CUSTOM_PROMPT: ${{ inputs.custom_prompt }} # Default: ''
run: python .github/scripts/release-notes-prompt.py
# Github outputs: 'RELEASE_NOTES'
- name: Generate AI release notes
id: ai_release_notes
shell: bash
env:
OPENAI_API_KEY: ${{ inputs.OPENAI_API_KEY }}
CUSTOM_PROMPT: ${{ steps.ai_prompt.outputs.OPENAI_PROMPT }}
MODEL_NAME: ${{ inputs.model_name }}
run: python .github/scripts/ai-release-notes.py

View file

@ -0,0 +1,48 @@
name: "Setup Node.js and pnpm"
description: "Sets up Node.js and pnpm with caching and installs dependencies"
inputs:
node-version:
description: "Node.js version to use"
required: false
default: "20.19.2"
pnpm-version:
description: "pnpm version to use"
required: false
default: "10.8.1"
skip-install:
description: "Skip dependency installation"
required: false
default: "false"
install-args:
description: "Additional arguments for pnpm install"
required: false
default: ""
runs:
using: "composite"
steps:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ inputs.pnpm-version }}
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
- name: Install dependencies
if: ${{ inputs.skip-install != 'true' }}
shell: bash
run: pnpm install ${{ inputs.install-args }}

58
.github/actions/slack-notify/action.yml vendored Normal file
View file

@ -0,0 +1,58 @@
name: 'Slack Notification'
description: 'Send Slack notification for workflow failures'
inputs:
webhook-url:
description: 'Slack webhook URL'
required: true
channel:
description: 'Slack channel to notify'
required: true
workflow-name:
description: 'Name of the workflow'
required: true
failed-jobs:
description: 'JSON object containing job results'
required: true
runs:
using: 'composite'
steps:
- name: Parse failed jobs
id: parse-jobs
shell: bash
run: |
echo "Parsing job results..."
failed_list=""
echo '${{ inputs.failed-jobs }}' | jq -r 'to_entries[] | select(.value.result == "failure") | .key' | while read job; do
case $job in
"check-translations") failed_list="${failed_list}❌ Translation check\n" ;;
"knip") failed_list="${failed_list}❌ Knip analysis\n" ;;
"compile") failed_list="${failed_list}❌ Compile & lint\n" ;;
"unit-test") failed_list="${failed_list}❌ Unit tests\n" ;;
"integration-test") failed_list="${failed_list}❌ Integration tests\n" ;;
esac
done
echo "failed_jobs<<EOF" >> $GITHUB_OUTPUT
echo -e "$failed_list" | sed '/^$/d' >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Send Slack notification
uses: 8398a7/action-slack@v3
with:
status: failure
channel: ${{ inputs.channel }}
text: |
🚨 ${{ inputs.workflow-name }} workflow failed on main branch!
Repository: ${{ github.repository }}
Commit: ${{ github.sha }}
Author: ${{ github.actor }}
Failed jobs:
${{ steps.parse-jobs.outputs.failed_jobs }}
View details: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
env:
SLACK_WEBHOOK_URL: ${{ inputs.webhook-url }}

View file

@ -1,28 +0,0 @@
<!-- **Note:** Consider creating PRs as a DRAFT. For early feedback and self-review. -->
## Description
## Type of change
<!-- Please ignore options that are not relevant -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
## How Has This Been Tested?
<!-- Please describe the tests that you ran to verify your changes -->
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply -->
- [ ] My code follows the patterns of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
## Additional context
<!-- Add any other context or screenshots about the pull request here -->
## Related Issues
<!-- List any related issues here. Use the GitHub issue linking syntax: #issue-number -->
## Reviewers
<!-- @mention specific team members or individuals who should review this PR -->

View file

@ -1,123 +0,0 @@
"""
AI-powered release notes generator that creates concise and informative release notes from git changes.
This script uses OpenAI's API to analyze git changes (summary, diff, and commit log) and generate
well-formatted release notes in markdown. It focuses on important changes and their impact,
particularly highlighting new types and schemas while avoiding repetitive information.
Environment Variables Required:
OPENAI_API_KEY: OpenAI API key for authentication
CHANGE_SUMMARY: Summary of changes made (optional if CUSTOM_PROMPT provided)
CHANGE_DIFF: Git diff of changes (optional if CUSTOM_PROMPT provided)
CHANGE_LOG: Git commit log (optional if CUSTOM_PROMPT provided)
GITHUB_OUTPUT: Path to GitHub output file
CUSTOM_PROMPT: Custom prompt to override default (optional)
"""
import os
import requests # type: ignore
import json
import tiktoken # type: ignore
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
CHANGE_SUMMARY = os.environ.get('CHANGE_SUMMARY', '')
CHANGE_DIFF = os.environ.get('CHANGE_DIFF', '')
CHANGE_LOG = os.environ.get('CHANGE_LOG', '')
GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT")
OPEN_AI_BASE_URL = "https://api.openai.com/v1"
OPEN_API_HEADERS = {"Authorization": f"Bearer {OPENAI_API_KEY}", "Content-Type": "application/json"}
CUSTOM_PROMPT = os.environ.get('CUSTOM_PROMPT', '')
MODEL_NAME = os.environ.get('MODEL_NAME', 'gpt-3.5-turbo-16k')
def num_tokens_from_string(string: str, model_name: str) -> int:
"""
Calculate the number of tokens in a text string for a specific model.
Args:
string: The input text to count tokens for
model_name: Name of the OpenAI model to use for token counting
Returns:
int: Number of tokens in the input string
"""
encoding = tiktoken.encoding_for_model(model_name)
num_tokens = len(encoding.encode(string))
return num_tokens
def truncate_to_token_limit(text, max_tokens, model_name):
"""
Truncate text to fit within a maximum token limit for a specific model.
Args:
text: The input text to truncate
max_tokens: Maximum number of tokens allowed
model_name: Name of the OpenAI model to use for tokenization
Returns:
str: Truncated text that fits within the token limit
"""
encoding = tiktoken.encoding_for_model(model_name)
encoded = encoding.encode(text)
truncated = encoded[:max_tokens]
return encoding.decode(truncated)
def generate_release_notes(model_name):
"""
Generate release notes using OpenAI's API based on git changes.
Uses the GPT-3.5-turbo model to analyze change summary, commit log, and code diff
to generate concise and informative release notes in markdown format. The notes
focus on important changes and their impact, with sections for new types/schemas
and other updates.
Returns:
str: Generated release notes in markdown format
Raises:
requests.exceptions.RequestException: If the OpenAI API request fails
"""
max_tokens = 14000 # Reserve some tokens for the response
# Truncate inputs if necessary to fit within token limits
change_summary = '' if CUSTOM_PROMPT else truncate_to_token_limit(CHANGE_SUMMARY, 1000, model_name)
change_log = '' if CUSTOM_PROMPT else truncate_to_token_limit(CHANGE_LOG, 2000, model_name)
change_diff = '' if CUSTOM_PROMPT else truncate_to_token_limit(CHANGE_DIFF, max_tokens - num_tokens_from_string(change_summary, model_name) - num_tokens_from_string(change_log, model_name) - 1000, model_name)
url = f"{OPEN_AI_BASE_URL}/chat/completions"
# Construct prompt for OpenAI API
openai_prompt = CUSTOM_PROMPT if CUSTOM_PROMPT else f"""Based on the following summary of changes, commit log and code diff, please generate concise and informative release notes:
Summary of changes:
{change_summary}
Commit log:
{change_log}
Code Diff:
{json.dumps(change_diff)}
"""
data = {
"model": model_name,
"messages": [{"role": "user", "content": openai_prompt}],
"temperature": 0.7,
"max_tokens": 1000,
}
print("----------------------------------------------------------------------------------------------------------")
print("POST request to OpenAI")
print("----------------------------------------------------------------------------------------------------------")
ai_response = requests.post(url, headers=OPEN_API_HEADERS, json=data)
print(f"Status Code: {str(ai_response.status_code)}")
print(f"Response: {ai_response.text}")
ai_response.raise_for_status()
return ai_response.json()["choices"][0]["message"]["content"]
release_notes = generate_release_notes(MODEL_NAME)
print("----------------------------------------------------------------------------------------------------------")
print("OpenAI generated release notes")
print("----------------------------------------------------------------------------------------------------------")
print(release_notes)
# Write the release notes to GITHUB_OUTPUT
with open(GITHUB_OUTPUT, "a") as outputs_file:
outputs_file.write(f"RELEASE_NOTES<<EOF\n{release_notes}\nEOF")

View file

@ -1,52 +0,0 @@
import os
import re
import subprocess
def run_git_command(command):
result = subprocess.getoutput(command)
print(f"Git Command: {command}")
print(f"Git Output: {result}")
return result
def parse_merge_commit(line):
# Parse merge commit messages like:
# "355dc82 Merge pull request #71 from RooVetGit/better-error-handling"
pattern = r"([a-f0-9]+)\s+Merge pull request #(\d+) from (.+)"
match = re.match(pattern, line)
if match:
sha, pr_number, branch = match.groups()
return {
'sha': sha,
'pr_number': pr_number,
'branch': branch
}
return None
def get_version_refs():
# Get the merge commits with full message
command = 'git log --merges --pretty=oneline -n 3'
result = run_git_command(command)
if result:
commits = result.split('\n')
if len(commits) >= 3:
# Parse HEAD~1 (PR to generate notes for)
head_info = parse_merge_commit(commits[1])
# Parse HEAD~2 (previous PR to compare against)
base_info = parse_merge_commit(commits[2])
if head_info and base_info:
# Set output for GitHub Actions
with open(os.environ['GITHUB_OUTPUT'], 'a') as gha_outputs:
gha_outputs.write(f"head_ref={head_info['sha']}\n")
gha_outputs.write(f"base_ref={base_info['sha']}")
print(f"Head ref (PR #{head_info['pr_number']}): {head_info['sha']}")
print(f"Base ref (PR #{base_info['pr_number']}): {base_info['sha']}")
return head_info, base_info
print("Could not find or parse sufficient merge history")
return None, None
if __name__ == "__main__":
head_info, base_info = get_version_refs()

View file

@ -1,60 +0,0 @@
"""
This script updates a specific version's release notes section in CHANGELOG.md with new content.
The script:
1. Takes a version number, changelog path, and new content as input from environment variables
2. Finds the section in the changelog for the specified version
3. Replaces the content between the current version header and the next version header
(or end of file if it's the latest version) with the new content
4. Writes the updated changelog back to the file
Environment Variables:
CHANGELOG_PATH: Path to the changelog file (defaults to 'CHANGELOG.md')
VERSION: The version number to update notes for
PREV_VERSION: The previous version number (optional)
NEW_CONTENT: The new content to insert for this version
"""
#!/usr/bin/env python3
import os
CHANGELOG_PATH = os.environ.get("CHANGELOG_PATH", "CHANGELOG.md")
VERSION = os.environ['VERSION']
PREV_VERSION = os.environ.get("PREV_VERSION", "")
NEW_CONTENT = os.environ['NEW_CONTENT']
def overwrite_changelog_section(content: str):
"""Replace a specific version section in the changelog content.
Args:
content: The full changelog content as a string
Returns:
The updated changelog content with the new section
Example:
>>> content = "## 1.2.0\\nOld changes\\n## 1.1.0\\nOld changes"
>>> NEW_CONTENT = "New changes"
>>> overwrite_changelog_section(content)
'## 1.2.0\\nNew changes\\n## 1.1.0\\nOld changes'
"""
# Find the section for the specified version
version_pattern = f"## {VERSION}\n"
print(f"latest version: {VERSION}")
notes_start_index = content.find(version_pattern) + len(version_pattern)
print(f"prev_version: {PREV_VERSION}")
prev_version_pattern = f"## {PREV_VERSION}\n"
notes_end_index = content.find(prev_version_pattern, notes_start_index) if PREV_VERSION and prev_version_pattern in content else len(content)
return content[:notes_start_index] + f"{NEW_CONTENT}\n" + content[notes_end_index:]
with open(CHANGELOG_PATH, 'r') as f:
content = f.read()
new_changelog = overwrite_changelog_section(content)
print(new_changelog)
# Write back to CHANGELOG.md
with open(CHANGELOG_PATH, 'w') as f:
f.write(new_changelog)

View file

@ -1,64 +0,0 @@
"""
This script extracts the release notes section for a specific version from CHANGELOG.md.
The script:
1. Takes a version number and changelog path as input from environment variables
2. Finds the section in the changelog for the specified version
3. Extracts the content between the current version header and the next version header
(or end of file if it's the latest version)
4. Outputs the extracted release notes to GITHUB_OUTPUT for use in creating GitHub releases
Environment Variables:
GITHUB_OUTPUT: Path to GitHub Actions output file
CHANGELOG_PATH: Path to the changelog file (defaults to 'CHANGELOG.md')
VERSION: The version number to extract notes for
"""
#!/usr/bin/env python3
import sys
import os
import subprocess
GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT")
CHANGELOG_PATH = os.environ.get("CHANGELOG_PATH", "CHANGELOG.md")
VERSION = os.environ['VERSION']
def parse_changelog_section(content: str):
"""Parse a specific version section from the changelog content.
Args:
content: The full changelog content as a string
Returns:
The formatted content for this version, or None if version not found
Example:
>>> content = "## 1.2.0\\nChanges\\n## 1.1.0\\nOld changes"
>>> parse_changelog_section(content)
'Changes\\n'
"""
# Find the section for the specified version
version_pattern = f"## {VERSION}\n"
print(f"latest version: {VERSION}")
notes_start_index = content.find(version_pattern) + len(version_pattern)
prev_version = subprocess.getoutput("git show origin/main:package.json | grep '\"version\":' | cut -d'\"' -f4")
print(f"prev_version: {prev_version}")
prev_version_pattern = f"## {prev_version}\n"
notes_end_index = content.find(prev_version_pattern, notes_start_index) if prev_version_pattern in content else len(content)
return content[notes_start_index:notes_end_index]
with open(CHANGELOG_PATH, 'r') as f:
content = f.read()
formatted_content = parse_changelog_section(content)
if not formatted_content:
print(f"Version {VERSION} not found in changelog", file=sys.stderr)
sys.exit(1)
print(formatted_content)
# Write the extracted release notes to GITHUB_OUTPUT
with open(GITHUB_OUTPUT, "a") as gha_output:
gha_output.write(f"release-notes<<EOF\n{formatted_content}\nEOF")

View file

@ -1,125 +0,0 @@
import os
import subprocess
import json
import re
import tiktoken # type: ignore
from datetime import datetime;
from pytz import timezone
GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT")
BASE_REF = os.getenv("BASE_REF", "main")
HEAD_SHA = os.environ["HEAD_SHA"]
PR_TITLE = os.environ["PR_TITLE"]
PR_BODY = os.environ["PR_BODY"]
EXISTING_NOTES = os.environ.get("EXISTING_NOTES", "null")
MODEL_NAME = os.environ.get('MODEL_NAME', 'gpt-3.5-turbo-16k')
CUSTOM_PROMPT = os.environ.get('CUSTOM_PROMPT', '')
def extract_description_section(pr_body):
# Find content between ## Description and the next ## or end of text
description_match = re.search(r'## Description\s*\n(.*?)(?=\n##|$)', pr_body, re.DOTALL)
if description_match:
content = description_match.group(1).strip()
# Remove the comment line if it exists
comment_pattern = r'\[comment\]:.+?\n'
content = re.sub(comment_pattern, '', content)
return content.strip()
return ""
def extract_ellipsis_important(pr_body):
# Find content between <!-- ELLIPSIS_HIDDEN --> and <!-- ELLIPSIS_HIDDEN --> that contains [!IMPORTANT]
ellipsis_match = re.search(r'<!--\s*ELLIPSIS_HIDDEN\s*-->(.*?)<!--\s*ELLIPSIS_HIDDEN\s*-->', pr_body, re.DOTALL)
if ellipsis_match:
content = ellipsis_match.group(1).strip()
important_match = re.search(r'\[!IMPORTANT\](.*?)(?=\[!|$)', content, re.DOTALL)
if important_match:
important_text = important_match.group(1).strip()
important_text = re.sub(r'^-+\s*', '', important_text)
return important_text.strip()
return ""
def extract_coderabbit_summary(pr_body):
# Find content between ## Summary by CodeRabbit and the next ## or end of text
summary_match = re.search(r'## Summary by CodeRabbit\s*\n(.*?)(?=\n##|$)', pr_body, re.DOTALL)
return summary_match.group(1).strip() if summary_match else ""
def num_tokens_from_string(string: str, model_name: str) -> int:
"""
Calculate the number of tokens in a text string for a specific model.
Args:
string: The input text to count tokens for
model_name: Name of the OpenAI model to use for token counting
Returns:
int: Number of tokens in the input string
"""
encoding = tiktoken.encoding_for_model(model_name)
num_tokens = len(encoding.encode(string))
return num_tokens
def truncate_to_token_limit(text, max_tokens, model_name):
"""
Truncate text to fit within a maximum token limit for a specific model.
Args:
text: The input text to truncate
max_tokens: Maximum number of tokens allowed
model_name: Name of the OpenAI model to use for tokenization
Returns:
str: Truncated text that fits within the token limit
"""
encoding = tiktoken.encoding_for_model(model_name)
encoded = encoding.encode(text)
truncated = encoded[:max_tokens]
return encoding.decode(truncated)
# Extract sections and combine into PR_OVERVIEW
description = extract_description_section(PR_BODY)
important = extract_ellipsis_important(PR_BODY)
summary = extract_coderabbit_summary(PR_BODY)
PR_OVERVIEW = "\n\n".join(filter(None, [description, important, summary]))
# Get git information
base_sha = subprocess.getoutput(f"git rev-parse origin/{BASE_REF}") if BASE_REF == 'main' else BASE_REF
diff_overview = subprocess.getoutput(f"git diff {base_sha}..{HEAD_SHA} --name-status | awk '{{print $2}}' | sort | uniq -c | awk '{{print $2 \": \" $1 \" files changed\"}}'")
git_log = subprocess.getoutput(f"git log {base_sha}..{HEAD_SHA} --pretty=format:'%h - %s (%an)' --reverse | head -n 50")
git_diff = subprocess.getoutput(f"git diff {base_sha}..{HEAD_SHA} --minimal --abbrev --ignore-cr-at-eol --ignore-space-at-eol --ignore-space-change --ignore-all-space --ignore-blank-lines --unified=0 --diff-filter=ACDMRT")
max_tokens = 14000 # Reserve some tokens for the response
changes_summary = truncate_to_token_limit(diff_overview, 1000, MODEL_NAME)
git_logs = truncate_to_token_limit(git_log, 2000, MODEL_NAME)
changes_diff = truncate_to_token_limit(git_diff, max_tokens - num_tokens_from_string(changes_summary, MODEL_NAME) - num_tokens_from_string(git_logs, MODEL_NAME) - 1000, MODEL_NAME)
# Get today's existing changelog if any
existing_changelog = EXISTING_NOTES if EXISTING_NOTES != "null" else None
existing_changelog_text = f"\nAdditional context:\n{existing_changelog}" if existing_changelog else ""
TODAY = datetime.now(timezone('US/Eastern')).isoformat(sep=' ', timespec='seconds')
BASE_PROMPT = CUSTOM_PROMPT if CUSTOM_PROMPT else f"""Based on the following 'PR Information', please generate concise and informative release notes to be read by developers.
Format the release notes with markdown, and always use this structure: a descriptive and very short title (no more than 8 words) with heading level 2, a paragraph with a summary of changes (no header), and if applicable, sections for '🚀 New Features & Improvements', '🐛 Bugs Fixed' and '🔧 Other Updates', with heading level 3, skip respectively the sections if not applicable.
Finally include the following markdown comment with the PR merged date: <!-- PR_DATE: {TODAY} -->.
Avoid being repetitive and focus on the most important changes and their impact, discard any mention of version bumps/updates, changeset files, environment variables or syntax updates.
PR Information:"""
OPENAI_PROMPT = f"""{BASE_PROMPT}
Git log summary:
{changes_summary}
Commit Messages:
{git_logs}
PR Title:
{PR_TITLE}
PR Overview:
{PR_OVERVIEW}{existing_changelog_text}
Code Diff:
{json.dumps(changes_diff)}"""
print("OpenAI Prompt")
print("----------------------------------------------------------------")
print(OPENAI_PROMPT)
# Write the prompt to GITHUB_OUTPUT
with open(GITHUB_OUTPUT, "a") as outputs_file:
outputs_file.write(f"OPENAI_PROMPT<<EOF\n{OPENAI_PROMPT}\nEOF")

View file

@ -1,216 +0,0 @@
name: Changeset AI Release
run-name: Changeset AI Release ${{ github.actor != 'R00-B0T' && '- Create PR' || '- Approve & Release' }}
# This workflow automates the release process by:
# 1. Creating a version bump PR when changesets are merged to main
# 2. Using AI to generate release notes for the version bump PR
# 3. Auto-approving and merging the version bump PR
# 4. Creating a GitHub release with the AI-generated notes
on:
# pull_request:
# types: [closed, opened, synchronize, labeled]
workflow_dispatch:
env:
REPO_PATH: ${{ github.repository }}
GIT_REF: ${{ github.event.pull_request.head.sha }}
jobs:
# Job 1: Create version bump PR when changesets are merged to main
changeset-pr-version-bump:
if: >
github.event_name == 'pull_request' &&
github.event.pull_request.merged == true &&
github.event.pull_request.base.ref == 'main' &&
github.actor != 'R00-B0T'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ env.GIT_REF }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install Dependencies
run: npm install
# Check if there are any new changesets to process
- name: Check for changesets
id: check-changesets
run: |
NEW_CHANGESETS=$(find .changeset -name "*.md" ! -name "README.md" | wc -l | tr -d ' ')
echo "Changesets diff with previous version: $NEW_CHANGESETS"
echo "new_changesets=$NEW_CHANGESETS" >> $GITHUB_OUTPUT
# Create version bump PR using changesets/action if there are new changesets
- name: Changeset Pull Request
if: steps.check-changesets.outputs.new_changesets != '0'
id: changesets
uses: changesets/action@v1
with:
commit: "changeset version bump"
title: "Changeset version bump"
version: npm run version-packages # This performs the changeset version bump
env:
GITHUB_TOKEN: ${{ secrets.CROSS_REPO_ACCESS_TOKEN }}
# Job 2: Process version bump PR created by R00-B0T
changeset-pr-approve-merge:
name: Auto approve and merge Bump version PRs
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
if: >
github.event_name == 'pull_request' &&
github.event.pull_request.base.ref == 'main' &&
github.actor == 'R00-B0T' &&
contains(github.event.pull_request.title, 'Changeset version bump')
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
token: ${{ secrets.CROSS_REPO_ACCESS_TOKEN }}
fetch-depth: 0
ref: ${{ env.GIT_REF }}
# Get current and previous versions for changelog processing
- name: Get version
id: get_version
run: |
VERSION=$(git show HEAD:package.json | jq -r '.version')
echo "version=$VERSION" >> $GITHUB_OUTPUT
PREV_VERSION=$(git show origin/main:package.json | jq -r '.version')
echo "prev_version=$PREV_VERSION" >> $GITHUB_OUTPUT
echo "version=$VERSION"
echo "prev_version=$PREV_VERSION"
# Get previous version refs, GITHUB_OUTPUT: 'BASE_REF' and 'HEAD_REF'
- name: Get Previous Version Refs
id: version_refs
run: python .github/scripts/get_prev_version_refs.py
# Generate release notes using OpenAI if not already edited, GITHUB_OUTPUT: 'RELEASE_NOTES' and 'OPENAI_PROMPT'
- name: AI Release Notes
if: ${{ !contains(github.event.pull_request.labels.*.name, 'openai-edited') }}
uses: ./.github/actions/ai-release-notes
id: ai_release_notes
with:
GHA_PAT: ${{ secrets.CROSS_REPO_ACCESS_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
model_name: gpt-4o-mini
repo_path: ${{ env.REPO_PATH }}
base_ref: ${{ steps.version_refs.outputs.base_ref }}
head_ref: ${{ steps.version_refs.outputs.head_ref }}
# Update CHANGELOG.md with AI-generated notes
- name: Update Changeset Changelog
if: ${{ !contains(github.event.pull_request.labels.*.name, 'openai-edited') }}
env:
VERSION: ${{ steps.get_version.outputs.version }}
PREV_VERSION: ${{ steps.get_version.outputs.prev_version }}
NEW_CONTENT: ${{ steps.ai_release_notes.outputs.RELEASE_NOTES }}
run: python .github/scripts/overwrite_changeset_changelog.py
# Commit and push changelog updates
- name: Push Changelog updates
if: ${{ !contains(github.event.pull_request.labels.*.name, 'openai-edited') }}
run: |
git config user.name "R00-B0T"
git config user.email github-actions@github.com
git status
echo "Updating changelog.md..."
git add CHANGELOG.md
git commit -m "Updating changeset changelog"
echo "--------------------------------------------------------------------------------"
echo "Pushing to remote..."
echo "--------------------------------------------------------------------------------"
git push
# Add label to indicate OpenAI has processed this PR
- name: Add openai-edited label
if: ${{ !contains(github.event.pull_request.labels.*.name, 'openai-edited') }}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['openai-edited']
});
# Auto-approve PR once OpenAI has processed it
- name: Auto approve PR
if: contains(github.event.pull_request.labels.*.name, 'openai-edited')
uses: hmarr/auto-approve-action@v4
with:
review-message: "I'm approving since it's a bump version PR"
# Enable auto-merge for the PR
- name: Enable automerge on PR
if: contains(github.event.pull_request.labels.*.name, 'openai-edited')
run: gh pr merge --squash --auto ${{ github.event.pull_request.number }}
env:
GH_TOKEN: ${{ secrets.CROSS_REPO_ACCESS_TOKEN }}
# Job 3: Create GitHub release after version bump PR is merged
github-release:
runs-on: ubuntu-latest
if: >
github.event_name == 'pull_request' &&
github.event.pull_request.merged == true &&
github.event.pull_request.base.ref == 'main' &&
github.actor == 'R00-B0T' &&
contains(github.event.pull_request.title, 'Changeset version bump')
permissions:
contents: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Get version
id: get_version
run: |
VERSION=$(git show HEAD:package.json | jq -r '.version')
echo "version=$VERSION" >> $GITHUB_OUTPUT
# Extract release notes from CHANGELOG.md, GITHUB_OUTPUT: 'release-notes'
- name: Parse CHANGELOG.md
id: changelog
env:
CHANGELOG_PATH: CHANGELOG.md
VERSION: ${{ steps.get_version.outputs.version }}
run: python .github/scripts/parse_changeset_changelog.py
# Create GitHub release with extracted notes
- name: Create or Update Release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.get_version.outputs.version }}
name: Release v${{ steps.get_version.outputs.version }}
draft: false
prerelease: false
append_body: false
make_latest: true
body: ${{ steps.changelog.outputs.release-notes }}

132
.github/workflows/changeset-release.yml vendored Normal file
View file

@ -0,0 +1,132 @@
name: Changeset Release
run-name: Changeset Release ${{ github.actor != 'R00-B0T' && '- Create PR' || '- Update Changelog' }}
on:
workflow_dispatch:
pull_request:
types: [closed, opened, labeled]
env:
REPO_PATH: ${{ github.repository }}
GIT_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'main' }}
jobs:
# Job 1: Create version bump PR when changesets are merged to main
changeset-pr-version-bump:
if: >
( github.event_name == 'pull_request' &&
github.event.pull_request.merged == true &&
github.event.pull_request.base.ref == 'main' &&
github.actor != 'R00-B0T' ) ||
github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ env.GIT_REF }}
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
# Check if there are any new changesets to process
- name: Check for changesets
id: check-changesets
run: |
NEW_CHANGESETS=$(find .changeset -name "*.md" ! -name "README.md" | wc -l | tr -d ' ')
echo "Changesets diff with previous version: $NEW_CHANGESETS"
echo "new_changesets=$NEW_CHANGESETS" >> $GITHUB_OUTPUT
# Create version bump PR using changesets/action if there are new changesets
- name: Changeset Pull Request
if: steps.check-changesets.outputs.new_changesets != '0'
id: changesets
uses: changesets/action@v1
with:
commit: "changeset version bump"
title: "Changeset version bump"
version: pnpm changeset:version # This performs the changeset version bump
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Job 2: Process version bump PR created by R00-B0T
changeset-pr-edit-approve:
name: Auto approve and merge Bump version PRs
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
if: >
github.event_name == 'pull_request' &&
github.event.pull_request.base.ref == 'main' &&
github.actor == 'R00-B0T' &&
contains(github.event.pull_request.title, 'Changeset version bump')
steps:
- name: Determine checkout ref
id: checkout-ref
run: |
echo "Event action: ${{ github.event.action }}"
echo "Actor: ${{ github.actor }}"
echo "Head ref: ${{ github.head_ref }}"
echo "PR SHA: ${{ github.event.pull_request.head.sha }}"
if [[ "${{ github.event.action }}" == "opened" && "${{ github.actor }}" == "R00-B0T" ]]; then
echo "Using branch ref: ${{ github.head_ref }}"
echo "git_ref=${{ github.head_ref }}" >> $GITHUB_OUTPUT
else
echo "Using SHA ref: ${{ github.event.pull_request.head.sha }}"
echo "git_ref=${{ github.event.pull_request.head.sha }}" >> $GITHUB_OUTPUT
fi
- name: Checkout Repo
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
ref: ${{ steps.checkout-ref.outputs.git_ref }}
# Commit and push changelog updates
- name: Push Changelog updates
if: ${{ !contains(github.event.pull_request.labels.*.name, 'changelog-ready') }}
run: |
git config user.name "R00-B0T"
git config user.email github-actions@github.com
echo "Running git add and commit..."
git add CHANGELOG.md
git commit -m "Updating CHANGELOG.md format"
git status
echo "--------------------------------------------------------------------------------"
echo "Pushing to remote..."
echo "--------------------------------------------------------------------------------"
git push
# Add label to indicate changelog has been formatted
- name: Add changelog-ready label
if: ${{ !contains(github.event.pull_request.labels.*.name, 'changelog-ready') }}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['changelog-ready']
});
# Auto-approve PR only after it has been labeled
- name: Auto approve PR
if: contains(github.event.pull_request.labels.*.name, 'changelog-ready')
uses: hmarr/auto-approve-action@v4
with:
review-message: "I'm approving since it's a bump version PR"
# Auto-merge PR
- name: Automerge on PR
if: false # Needs enablePullRequestAutoMerge in repo settings to work contains(github.event.pull_request.labels.*.name, 'changelog-ready')
run: gh pr merge --auto --merge ${{ github.event.pull_request.number }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

394
.github/workflows/cli-release.yml vendored Normal file
View file

@ -0,0 +1,394 @@
name: CLI Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version to release (e.g., 0.1.0). Leave empty to use package.json version.'
required: false
type: string
dry_run:
description: 'Dry run (build and test but do not create release).'
required: false
type: boolean
default: false
jobs:
# Build CLI for each platform.
build:
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
platform: darwin-arm64
runs-on: macos-latest
- os: ubuntu-latest
platform: linux-x64
runs-on: ubuntu-latest
- os: ubuntu-24.04-arm
platform: linux-arm64
runs-on: ubuntu-24.04-arm
runs-on: ${{ matrix.runs-on }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
- name: Get version
id: version
run: |
if [ -n "${{ inputs.version }}" ]; then
VERSION="${{ inputs.version }}"
else
VERSION=$(node -p "require('./apps/cli/package.json').version")
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=cli-v$VERSION" >> $GITHUB_OUTPUT
echo "Using version: $VERSION"
- name: Build extension bundle
run: pnpm bundle
- name: Build CLI
run: pnpm --filter @roo-code/cli build
- name: Create release tarball
id: tarball
env:
VERSION: ${{ steps.version.outputs.version }}
PLATFORM: ${{ matrix.platform }}
run: |
RELEASE_DIR="roo-cli-${PLATFORM}"
TARBALL="roo-cli-${PLATFORM}.tar.gz"
# Clean up any previous build.
rm -rf "$RELEASE_DIR"
rm -f "$TARBALL"
# Create directory structure.
mkdir -p "$RELEASE_DIR/bin"
mkdir -p "$RELEASE_DIR/lib"
mkdir -p "$RELEASE_DIR/extension"
# Copy CLI dist files.
echo "Copying CLI files..."
cp -r apps/cli/dist/* "$RELEASE_DIR/lib/"
# Create package.json for npm install.
echo "Creating package.json..."
node -e "
const pkg = require('./apps/cli/package.json');
const newPkg = {
name: '@roo-code/cli',
version: '$VERSION',
type: 'module',
dependencies: {
'@inkjs/ui': pkg.dependencies['@inkjs/ui'],
'@trpc/client': pkg.dependencies['@trpc/client'],
'commander': pkg.dependencies.commander,
'fuzzysort': pkg.dependencies.fuzzysort,
'ink': pkg.dependencies.ink,
'p-wait-for': pkg.dependencies['p-wait-for'],
'react': pkg.dependencies.react,
'superjson': pkg.dependencies.superjson,
'zustand': pkg.dependencies.zustand
}
};
console.log(JSON.stringify(newPkg, null, 2));
" > "$RELEASE_DIR/package.json"
# Copy extension bundle.
echo "Copying extension bundle..."
cp -r src/dist/* "$RELEASE_DIR/extension/"
# Add package.json to extension directory for CommonJS.
echo '{"type": "commonjs"}' > "$RELEASE_DIR/extension/package.json"
# Find and copy ripgrep binary.
echo "Looking for ripgrep binary..."
RIPGREP_PATH=$(find node_modules -path "*/@vscode/ripgrep/bin/rg" -type f 2>/dev/null | head -1)
if [ -n "$RIPGREP_PATH" ] && [ -f "$RIPGREP_PATH" ]; then
echo "Found ripgrep at: $RIPGREP_PATH"
mkdir -p "$RELEASE_DIR/node_modules/@vscode/ripgrep/bin"
cp "$RIPGREP_PATH" "$RELEASE_DIR/node_modules/@vscode/ripgrep/bin/"
chmod +x "$RELEASE_DIR/node_modules/@vscode/ripgrep/bin/rg"
mkdir -p "$RELEASE_DIR/bin"
cp "$RIPGREP_PATH" "$RELEASE_DIR/bin/"
chmod +x "$RELEASE_DIR/bin/rg"
else
echo "Warning: ripgrep binary not found"
fi
# Create the wrapper script
echo "Creating wrapper script..."
printf '%s\n' '#!/usr/bin/env node' \
'' \
"import { fileURLToPath } from 'url';" \
"import { dirname, join } from 'path';" \
'' \
'const __filename = fileURLToPath(import.meta.url);' \
'const __dirname = dirname(__filename);' \
'' \
'// Set environment variables for the CLI' \
"process.env.ROO_CLI_ROOT = join(__dirname, '..');" \
"process.env.ROO_EXTENSION_PATH = join(__dirname, '..', 'extension');" \
"process.env.ROO_RIPGREP_PATH = join(__dirname, 'rg');" \
'' \
'// Import and run the actual CLI' \
"await import(join(__dirname, '..', 'lib', 'index.js'));" \
> "$RELEASE_DIR/bin/roo"
chmod +x "$RELEASE_DIR/bin/roo"
# Create empty .env file.
touch "$RELEASE_DIR/.env"
# Create tarball.
echo "Creating tarball..."
tar -czvf "$TARBALL" "$RELEASE_DIR"
# Clean up release directory.
rm -rf "$RELEASE_DIR"
# Create checksum.
if command -v sha256sum &> /dev/null; then
sha256sum "$TARBALL" > "${TARBALL}.sha256"
elif command -v shasum &> /dev/null; then
shasum -a 256 "$TARBALL" > "${TARBALL}.sha256"
fi
echo "tarball=$TARBALL" >> $GITHUB_OUTPUT
echo "Created: $TARBALL"
ls -la "$TARBALL"
- name: Verify tarball
env:
PLATFORM: ${{ matrix.platform }}
run: |
TARBALL="roo-cli-${PLATFORM}.tar.gz"
# Create temp directory for verification.
VERIFY_DIR=$(mktemp -d)
# Extract and verify structure.
tar -xzf "$TARBALL" -C "$VERIFY_DIR"
echo "Verifying tarball contents..."
ls -la "$VERIFY_DIR/roo-cli-${PLATFORM}/"
# Check required files exist.
test -f "$VERIFY_DIR/roo-cli-${PLATFORM}/bin/roo" || { echo "Missing bin/roo"; exit 1; }
test -f "$VERIFY_DIR/roo-cli-${PLATFORM}/lib/index.js" || { echo "Missing lib/index.js"; exit 1; }
test -f "$VERIFY_DIR/roo-cli-${PLATFORM}/package.json" || { echo "Missing package.json"; exit 1; }
test -d "$VERIFY_DIR/roo-cli-${PLATFORM}/extension" || { echo "Missing extension directory"; exit 1; }
echo "Tarball verification passed!"
# Cleanup.
rm -rf "$VERIFY_DIR"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cli-${{ matrix.platform }}
path: |
roo-cli-${{ matrix.platform }}.tar.gz
roo-cli-${{ matrix.platform }}.tar.gz.sha256
retention-days: 7
# Create GitHub release with all platform artifacts.
release:
needs: build
runs-on: ubuntu-latest
if: ${{ !inputs.dry_run }}
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get version
id: version
run: |
if [ -n "${{ inputs.version }}" ]; then
VERSION="${{ inputs.version }}"
else
VERSION=$(node -p "require('./apps/cli/package.json').version")
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=cli-v$VERSION" >> $GITHUB_OUTPUT
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Prepare release files
run: |
mkdir -p release
find artifacts -name "*.tar.gz" -exec cp {} release/ \;
find artifacts -name "*.sha256" -exec cp {} release/ \;
ls -la release/
- name: Extract changelog
id: changelog
env:
VERSION: ${{ steps.version.outputs.version }}
run: |
CHANGELOG_FILE="apps/cli/CHANGELOG.md"
if [ -f "$CHANGELOG_FILE" ]; then
# Extract content between version headers.
CONTENT=$(awk -v version="$VERSION" '
BEGIN { found = 0; content = ""; target = "[" version "]" }
/^## \[/ {
if (found) { exit }
if (index($0, target) > 0) { found = 1; next }
}
found { content = content $0 "\n" }
END { print content }
' "$CHANGELOG_FILE")
if [ -n "$CONTENT" ]; then
echo "Found changelog content"
echo "content<<EOF" >> $GITHUB_OUTPUT
echo "$CONTENT" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
else
echo "No changelog content found for version $VERSION"
echo "content=" >> $GITHUB_OUTPUT
fi
else
echo "No changelog file found"
echo "content=" >> $GITHUB_OUTPUT
fi
- name: Generate checksums summary
id: checksums
run: |
echo "checksums<<EOF" >> $GITHUB_OUTPUT
cat release/*.sha256 >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Check for existing release
id: check_release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ steps.version.outputs.tag }}
run: |
if gh release view "$TAG" &> /dev/null; then
echo "exists=true" >> $GITHUB_OUTPUT
else
echo "exists=false" >> $GITHUB_OUTPUT
fi
- name: Delete existing release
if: steps.check_release.outputs.exists == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ steps.version.outputs.tag }}
run: |
echo "Deleting existing release $TAG..."
gh release delete "$TAG" --yes || true
git push origin ":refs/tags/$TAG" || true
- name: Create GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ steps.version.outputs.version }}
TAG: ${{ steps.version.outputs.tag }}
CHANGELOG_CONTENT: ${{ steps.changelog.outputs.content }}
CHECKSUMS: ${{ steps.checksums.outputs.checksums }}
run: |
NOTES_FILE=$(mktemp)
if [ -n "$CHANGELOG_CONTENT" ]; then
echo "## What's New" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "$CHANGELOG_CONTENT" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
fi
echo "## Installation" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo '```bash' >> "$NOTES_FILE"
echo "curl -fsSL https://raw.githubusercontent.com/RooCodeInc/Roo-Code/main/apps/cli/install.sh | sh" >> "$NOTES_FILE"
echo '```' >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "Or install a specific version:" >> "$NOTES_FILE"
echo '```bash' >> "$NOTES_FILE"
echo "ROO_VERSION=$VERSION curl -fsSL https://raw.githubusercontent.com/RooCodeInc/Roo-Code/main/apps/cli/install.sh | sh" >> "$NOTES_FILE"
echo '```' >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "## Requirements" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "- Node.js 20 or higher" >> "$NOTES_FILE"
echo "- macOS Apple Silicon (M1/M2/M3/M4), Linux x64, or Linux ARM64" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "## Usage" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo '```bash' >> "$NOTES_FILE"
echo "# Run a task" >> "$NOTES_FILE"
echo 'roo "What is this project?"' >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "# See all options" >> "$NOTES_FILE"
echo "roo --help" >> "$NOTES_FILE"
echo '```' >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "## Platform Support" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "This release includes binaries for:" >> "$NOTES_FILE"
echo '- `roo-cli-darwin-arm64.tar.gz` - macOS Apple Silicon (M1/M2/M3)' >> "$NOTES_FILE"
echo '- `roo-cli-linux-x64.tar.gz` - Linux x64' >> "$NOTES_FILE"
echo '- `roo-cli-linux-arm64.tar.gz` - Linux ARM64' >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo "## Checksums" >> "$NOTES_FILE"
echo "" >> "$NOTES_FILE"
echo '```' >> "$NOTES_FILE"
echo "$CHECKSUMS" >> "$NOTES_FILE"
echo '```' >> "$NOTES_FILE"
gh release create "$TAG" \
--title "Roo Code CLI v$VERSION" \
--notes-file "$NOTES_FILE" \
--prerelease \
release/*
rm -f "$NOTES_FILE"
echo "Release created: https://github.com/${{ github.repository }}/releases/tag/$TAG"
# Summary job for dry runs
summary:
needs: build
runs-on: ubuntu-latest
if: ${{ inputs.dry_run }}
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Show build summary
run: |
echo "## Dry Run Complete" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "The following artifacts were built:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
find artifacts -name "*.tar.gz" | while read f; do
SIZE=$(ls -lh "$f" | awk '{print $5}')
echo "- $(basename $f) ($SIZE)" >> $GITHUB_STEP_SUMMARY
done
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Checksums" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cat artifacts/*/*.sha256 >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

View file

@ -1,45 +1,60 @@
name: Code QA Roo Cline name: Code QA Roo Code
on: on:
push: workflow_dispatch:
branches: [main] push:
pull_request: branches: [main]
types: [opened, reopened, ready_for_review, synchronize] pull_request:
branches: [main] types: [opened, reopened, ready_for_review, synchronize]
branches: [main]
jobs: jobs:
compile: check-translations:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
- name: Verify all translations are complete
run: node scripts/find-missing-translations.js
- name: Setup Node.js knip:
uses: actions/setup-node@v4 runs-on: ubuntu-latest
with: steps:
node-version: '18' - name: Checkout code
cache: 'npm' uses: actions/checkout@v4
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
- name: Run knip checks
run: pnpm knip
- name: Install dependencies compile:
run: npm run install:all runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
- name: Lint
run: pnpm lint
- name: Check types
run: pnpm check-types
- name: Compile TypeScript unit-test:
run: npm run compile name: platform-unit-test (${{ matrix.name }})
runs-on: ${{ matrix.os }}
unit-test: strategy:
runs-on: ubuntu-latest matrix:
steps: include:
- name: Checkout code - os: ubuntu-latest
uses: actions/checkout@v4 name: ubuntu-latest
- os: windows-latest
- name: Setup Node.js name: windows-latest
uses: actions/setup-node@v4 steps:
with: - name: Checkout code
node-version: '18' uses: actions/checkout@v4
cache: 'npm' - name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
- name: Install dependencies - name: Run unit tests
run: npm run install:all run: pnpm test
- name: Run unit tests
run: npx jest

View file

@ -1,15 +1,4 @@
# For most projects, this workflow file will not need changing; you simply need name: CodeQL Advanced
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"
on: on:
push: push:

55
.github/workflows/docs-pages.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Deploy docs to GitHub Pages
on:
push:
branches:
- main
paths:
- "apps/docs/**"
- ".github/workflows/docs-pages.yml"
- ".github/actions/setup-node-pnpm/**"
- "package.json"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
workflow_dispatch:
concurrency:
group: docs-pages
cancel-in-progress: true
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
with:
install-args: "--frozen-lockfile"
- name: Run type check
run: pnpm --filter @roo-code/docs check-types
- name: Run lint
run: pnpm --filter @roo-code/docs lint
- name: Build docs
run: pnpm --filter @roo-code/docs build
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: apps/docs/build
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

View file

@ -1,32 +1,92 @@
name: Publish Extension name: Publish Extension
on: on:
push: pull_request:
branches: ["main"] types: [closed]
workflow_dispatch: workflow_dispatch:
env:
GIT_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'main' }}
jobs: jobs:
publish-extension: publish-extension:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ github.actor == 'R00-B0T'}} permissions:
contents: write # Required for pushing tags.
if: >
( github.event_name == 'pull_request' &&
github.event.pull_request.base.ref == 'main' &&
contains(github.event.pull_request.title, 'Changeset version bump') ) ||
github.event_name == 'workflow_dispatch'
steps: steps:
- uses: actions/checkout@v3 - name: Checkout code
- uses: actions/setup-node@v3 uses: actions/checkout@v4
with: with:
node-version: 18 ref: ${{ env.GIT_REF }}
- run: | - name: Setup Node.js and pnpm
git config user.name github-actions uses: ./.github/actions/setup-node-pnpm
git config user.email github-actions@github.com - name: Configure Git
- name: Install Dependencies
run: | run: |
npm install -g vsce ovsx git config user.name "github-actions[bot]"
npm install git config user.email "github-actions[bot]@users.noreply.github.com"
cd webview-ui - name: Create .env file
npm install run: echo "POSTHOG_API_KEY=${{ secrets.POSTHOG_API_KEY }}" >> .env
cd .. - name: Package Extension
- name: Package and Publish Extension run: |
current_package_version=$(node -p "require('./src/package.json').version")
pnpm vsix
# Save VSIX contents to a temporary file to avoid broken pipe issues.
unzip -l bin/roo-cline-${current_package_version}.vsix > /tmp/roo-code-vsix-contents.txt
# Check for required files.
grep -q "extension/package.json" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q "extension/package.nls.json" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q "extension/dist/extension.js" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q "extension/webview-ui/audio/celebration.wav" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q "extension/webview-ui/build/assets/index.js" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q "extension/assets/codicons/codicon.ttf" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q "extension/assets/vscode-material-icons/icons/3d.svg" /tmp/roo-code-vsix-contents.txt || exit 1
grep -q ".env" /tmp/roo-code-vsix-contents.txt || exit 1
# Clean up temporary file.
rm /tmp/roo-code-vsix-contents.txt
- name: Create and Push Git Tag
run: |
current_package_version=$(node -p "require('./src/package.json').version")
git tag -a "v${current_package_version}" -m "Release v${current_package_version}"
git push origin "v${current_package_version}" --no-verify
echo "Successfully created and pushed git tag v${current_package_version}"
- name: Publish Extension
env: env:
VSCE_PAT: ${{ secrets.VSCE_PAT }} VSCE_PAT: ${{ secrets.VSCE_PAT }}
OVSX_PAT: ${{ secrets.OVSX_PAT }}
run: | run: |
current_package_version=$(node -p "require('./package.json').version") current_package_version=$(node -p "require('./src/package.json').version")
npm run publish:marketplace pnpm --filter roo-cline publish:marketplace
echo "Successfully published version $current_package_version to VS Code Marketplace" echo "Successfully published version $current_package_version to VS Code Marketplace"
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
current_package_version=$(node -p "require('./src/package.json').version")
# Extract changelog for current version
echo "Extracting changelog for version ${current_package_version}"
changelog_content=$(sed -n "/## \\[${current_package_version}\\]/,/## \\[/p" CHANGELOG.md | sed '$d')
# If changelog extraction failed, use a default message
if [ -z "$changelog_content" ]; then
echo "Warning: No changelog section found for version ${current_package_version}"
changelog_content="Release v${current_package_version}"
else
echo "Found changelog section for version ${current_package_version}"
fi
# Create release with changelog content
gh release create "v${current_package_version}" \
--title "Release v${current_package_version}" \
--notes "$changelog_content" \
--target ${{ env.GIT_REF }} \
bin/roo-cline-${current_package_version}.vsix
echo "Successfully created GitHub Release v${current_package_version}"

52
.github/workflows/nightly-publish.yml vendored Normal file
View file

@ -0,0 +1,52 @@
name: Nightly Publish
on:
push:
branches: [main]
workflow_dispatch: # Allows manual triggering.
jobs:
publish-nightly:
runs-on: ubuntu-latest
permissions:
contents: read # No tags pushed → read is enough.
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm
with:
install-args: '--frozen-lockfile'
- name: Forge numeric Nightly version
id: version
env:
RUN_NUMBER: ${{ github.run_number }}
run: echo "number=$(( 5500 + ${RUN_NUMBER} ))" >> $GITHUB_OUTPUT
- name: Patch package.json version
env:
VERSION_NUMBER: ${{ steps.version.outputs.number }}
run: |
node <<'EOF'
const fs = require('fs');
const path = require('path');
const pkgPath = path.join(__dirname, 'apps', 'vscode-nightly', 'package.nightly.json');
const pkg = JSON.parse(fs.readFileSync(pkgPath,'utf8'));
const [maj, min] = pkg.version.split('.');
pkg.version = `${maj}.${min}.${process.env.VERSION_NUMBER}`;
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
console.log(`🔖 Nightly version set to ${pkg.version}`);
EOF
- name: Build VSIX
run: pnpm vsix:nightly # Produces bin/roo-code-nightly-0.0.[count].vsix
- name: Publish to VS Code Marketplace
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
run: npx vsce publish --packagePath "bin/$(/bin/ls bin | head -n1)"
- name: Publish to Open VSX Registry
env:
OVSX_PAT: ${{ secrets.OVSX_PAT }}
run: npx ovsx publish "bin/$(ls bin | head -n1)"

View file

@ -1,31 +0,0 @@
name: Publish Extension Temporary
on:
push:
branches: ["main"]
workflow_dispatch:
jobs:
publish-extension:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: |
git config user.name github-actions
git config user.email github-actions@github.com
- name: Install Dependencies
run: |
npm install -g vsce ovsx
npm install
cd webview-ui
npm install
cd ..
- name: Package and Publish Extension
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
run: |
current_package_version=$(node -p "require('./package.json').version")
npm run publish:marketplace
echo "Successfully published version $current_package_version to VS Code Marketplace"

53
.gitignore vendored
View file

@ -1,10 +1,57 @@
out .pnpm-store
dist dist
out
out-*
node_modules node_modules
.vscode-test/ package-lock.json
coverage/
mock/
.DS_Store .DS_Store
# IDEs
.idea
# Builds # Builds
bin/ bin/
roo-cline-*.vsix *.vsix
# Local prompts and rules
/local-prompts
AGENTS.local.md
# Test environment
.test_env
.vscode-test/
# Docs
docs/_site/
# Dotenv
.env
.env.*
!.env.*.sample
# Logging
logs
*.log
# Vite development
.vite-port
# Turborepo
.turbo
# IntelliJ and Qodo plugin folders
.idea/
.qodo/
.vercel
.roo/mcp.json
# Qdrant
qdrant_storage/
# Architect plans
plans/
roo-cli-*.tar.gz*

View file

@ -5,5 +5,23 @@ if [ "$branch" = "main" ]; then
exit 1 exit 1
fi fi
npx lint-staged # Detect if running on Windows and use pnpm.cmd, otherwise use pnpm.
npm run compile if [ "$OS" = "Windows_NT" ]; then
pnpm_cmd="pnpm.cmd"
else
if command -v pnpm >/dev/null 2>&1; then
pnpm_cmd="pnpm"
else
pnpm_cmd="npx pnpm"
fi
fi
# Detect if running on Windows and use npx.cmd, otherwise use npx.
if [ "$OS" = "Windows_NT" ]; then
npx_cmd="npx.cmd"
else
npx_cmd="npx"
fi
$npx_cmd lint-staged
$pnpm_cmd lint

View file

@ -5,13 +5,38 @@ if [ "$branch" = "main" ]; then
exit 1 exit 1
fi fi
npm run compile # Detect if running on Windows and use pnpm.cmd, otherwise use pnpm.
if [ "$OS" = "Windows_NT" ]; then
pnpm_cmd="pnpm.cmd"
else
if command -v pnpm >/dev/null 2>&1; then
pnpm_cmd="pnpm"
else
pnpm_cmd="npx pnpm"
fi
fi
# Check for new changesets $pnpm_cmd run check-types
# Use dotenvx to securely load .env.local and run commands that depend on it
if [ -f ".env.local" ]; then
# Check if RUN_TESTS_ON_PUSH is set to true and run tests with dotenvx
if npx dotenvx get RUN_TESTS_ON_PUSH -f .env.local 2>/dev/null | grep -q "^true$"; then
npx dotenvx run -f .env.local -- $pnpm_cmd run test
fi
else
# Fallback: run tests if RUN_TESTS_ON_PUSH is set in regular environment
if [ "$RUN_TESTS_ON_PUSH" = "true" ]; then
$pnpm_cmd run test
fi
fi
# Check for new changesets.
NEW_CHANGESETS=$(find .changeset -name "*.md" ! -name "README.md" | wc -l | tr -d ' ') NEW_CHANGESETS=$(find .changeset -name "*.md" ! -name "README.md" | wc -l | tr -d ' ')
echo "Changeset files: $NEW_CHANGESETS" echo "Changeset files: $NEW_CHANGESETS"
if [ "$NEW_CHANGESETS" == "0" ]; then
if [ "$NEW_CHANGESETS" = "0" ]; then
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
echo "Changes detected. Please run 'npm run changeset' to create a changeset if applicable." echo "Changes detected. Please run 'pnpm changeset' to create a changeset if applicable."
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
fi fi

1
.npmrc
View file

@ -1 +0,0 @@
registry=https://registry.npmjs.org/

2
.nvmrc
View file

@ -1 +1 @@
lts/* v20.19.2

View file

@ -1,5 +0,0 @@
dist/
node_modules
webview-ui/build/
CHANGELOG.md
package-lock.json

View file

@ -3,5 +3,6 @@
"useTabs": true, "useTabs": true,
"printWidth": 120, "printWidth": 120,
"semi": false, "semi": false,
"bracketSameLine": true "bracketSameLine": true,
"ignore": ["node_modules", "dist", "build", "out", ".next", ".venv", "pnpm-lock.yaml"]
} }

View file

@ -0,0 +1,86 @@
---
description: "Prepare a new release of the Roo Code CLI"
argument-hint: "[version-description]"
mode: code
---
1. Identify changes since the last CLI release:
- Get the last CLI release tag: `gh release list --limit 10 | grep "cli-v"`
- View changes since last release: `git log cli-v<last-version>..HEAD -- apps/cli --oneline`
- Or for uncommitted changes: `git diff --stat -- apps/cli`
2. Review and summarize the changes to determine an appropriate changelog entry. Group changes by type:
- **Added**: New features
- **Changed**: Changes to existing functionality
- **Fixed**: Bug fixes
- **Removed**: Removed features
- **Tests**: New or updated tests
3. Bump the version in `apps/cli/package.json`:
- Increment the patch version (e.g., 0.0.43 → 0.0.44) for bug fixes and minor changes
- Increment the minor version (e.g., 0.0.43 → 0.1.0) for new features
- Increment the major version (e.g., 0.0.43 → 1.0.0) for breaking changes
4. Update `apps/cli/CHANGELOG.md` with a new entry:
- Add a new section at the top (below the header) following this format:
```markdown
## [X.Y.Z] - YYYY-MM-DD
### Added
- Description of new features
### Changed
- Description of changes
### Fixed
- Description of bug fixes
```
- Use the current date in YYYY-MM-DD format
- Include links to relevant source files where helpful
- Describe changes from the user's perspective
5. Create a release branch and commit the changes:
```bash
# Ensure you're on main and up to date
git checkout main
git pull origin main
# Create a new branch for the release
git checkout -b cli-release-v<version>
# Commit the version bump and changelog update
git add apps/cli/package.json apps/cli/CHANGELOG.md
git commit -m "chore(cli): prepare release v<version>"
# Push the branch to origin
git push -u origin cli-release-v<version>
```
6. Create a pull request for the release:
```bash
gh pr create --title "chore(cli): prepare release v<version>" \
--body "## CLI Release v<version>
This PR prepares the CLI release v<version>.
### Changes
- Version bump in package.json
- Changelog update
### Checklist
- [ ] Version number is correct
- [ ] Changelog entry is complete and accurate
- [ ] All CI checks pass" \
--base main
```

80
.roo/commands/commit.md Normal file
View file

@ -0,0 +1,80 @@
---
description: "Commit and push changes with a descriptive message"
argument-hint: "[optional-context]"
mode: code
---
1. Analyze the current changes to understand what needs to be committed:
```bash
# Check for staged and unstaged changes
git status --short
# View the diff of all changes (staged and unstaged)
git diff HEAD
```
2. Based on the diff output, formulate a commit message following conventional commit format:
- **feat**: New feature or functionality
- **fix**: Bug fix
- **refactor**: Code restructuring without behavior change
- **docs**: Documentation changes
- **test**: Adding or updating tests
- **chore**: Maintenance tasks, dependencies, configs
- **style**: Formatting, whitespace, no logic changes
Format: `type(scope): brief description`
Examples:
- `feat(api): add user authentication endpoint`
- `fix(ui): resolve button alignment on mobile`
- `refactor(core): simplify error handling logic`
- `docs(readme): update installation instructions`
3. Stage all unstaged changes:
```bash
git add -A
```
4. Commit with the generated message:
```bash
git commit -m "type(scope): brief description"
```
**If pre-commit hooks fail:**
- Review the error output (linter errors, type checking errors, etc.)
- Fix the identified issues in the affected files
- Re-stage the fixes: `git add -A`
- Retry the commit: `git commit -m "type(scope): brief description"`
5. Push to the remote repository:
```bash
git push
```
**If pre-push hooks fail:**
- Review the error output (test failures, linter errors, etc.)
- Fix the identified issues in the affected files
- Stage and commit the fixes using steps 3-4
- Retry the push: `git push`
**Tips for good commit messages:**
- Keep the first line under 72 characters
- Use imperative mood ("add", "fix", "update", not "added", "fixes", "updated")
- Be specific but concise
- If multiple unrelated changes exist, consider splitting into separate commits
**Common hook failures and fixes:**
- **Linter errors**: Run the project's linter (e.g., `npm run lint` or `pnpm lint`) to see all issues, then fix them
- **Type checking errors**: Run type checker (e.g., `npx tsc --noEmit`) to identify type issues
- **Test failures**: Run tests (e.g., `npm test` or `pnpm test`) to identify failing tests and fix them
- **Format issues**: Run formatter (e.g., `npm run format` or `pnpm format`) to auto-fix formatting

45
.roo/commands/release.md Normal file
View file

@ -0,0 +1,45 @@
---
description: "Create a new release of the Roo Code extension"
argument-hint: patch | minor | major
mode: code
---
1. Identify the SHA corresponding to the most recent release using GitHub CLI: `gh release view --json tagName,targetCommitish,publishedAt`
2. Analyze changes since the last release using: `gh pr list --state merged --base main --json number,title,author,url,mergedAt,closingIssuesReferences --limit 1000 -q '[.[] | select(.mergedAt > "TIMESTAMP") | {number, title, author: .author.login, url, mergedAt, issues: .closingIssuesReferences}] | sort_by(.number)'`
3. For each PR with linked issues, fetch the issue details to get the issue reporter: `gh issue view ISSUE_NUMBER --json number,author -q '{number, reporter: .author.login}'`
4. Summarize the changes. If the user did not specify, ask them whether this should be a major, minor, or patch release.
5. Create a changeset in .changeset/v[version].md instead of directly modifying package.json. The format is:
```
---
"roo-cline": patch|minor|major
---
[list of changes]
```
- Always include contributor attribution and the PR number: use "(PR #<prNumber> by @username)".
- For PRs that close issues, include both the issue number and the PR number and authors: "- Fix: Description (#123 by @reporter, PR #456 by @contributor)"
- For PRs without linked issues, include the PR number and author: "- Add support for feature (PR #456 by @contributor)"
- Provide brief descriptions of each item to explain the change
- Order the list from most important to least important
- Example formats:
- With issue: "- Fix: Resolve memory leak in extension (#456 by @issueReporter, PR #789 by @prAuthor)"
- Without issue: "- Add support for Gemini 2.5 Pro caching (PR #789 by @contributor)"
- CRITICAL: Include EVERY SINGLE PR in the changeset - don't assume you know which ones are important. Count the total PRs to verify completeness and cross-reference the list to ensure nothing is missed.
6. If the generate_image tool is available, create a release image at `releases/[version]-release.png`
- The image should feature a realistic-looking kangaroo doing something human-like that relates to the main highlight of the release
- Pass `releases/template.png` as the reference image for aspect ratio and kangaroo style
- Add the generated image to .changeset/v[version].md before the list of changes with format: `![X.Y.Z Release - Description](/releases/X.Y.Z-release.png)`
7. If a major or minor release:
- Ask the user what the three most important areas to highlight are in the release
- Update the English version relevant announcement files and documentation (webview-ui/src/components/chat/Announcement.tsx, README.md, and the `latestAnnouncementId` in src/core/webview/ClineProvider.ts)
- Ask the user to confirm that the English version looks good to them before proceeding
- Use the new_task tool to create a subtask in `translate` mode with detailed instructions of which content needs to be translated into all supported languages (The READMEs as well as the translation strings)
8. Create a new branch for the release preparation: `git checkout -b release/v[version]`
9. Commit and push the changeset file and any documentation updates to the repository: `git add . && git commit -m "chore: add changeset for v[version]" && git push origin release/v[version]`
10. Create a pull request for the release: `gh pr create --title "Release v[version]" --body "Release preparation for v[version]. This PR includes the changeset and any necessary documentation updates." --base main --head release/v[version]`
11. The GitHub Actions workflow will automatically:
- Create a version bump PR when changesets are merged to main
- Update the CHANGELOG.md with proper formatting
- Publish the release when the version bump PR is merged

View file

@ -0,0 +1,72 @@
---
description: "Resolve merge conflicts intelligently using git history analysis"
argument-hint: "#PR-number"
mode: merge-resolver
---
Resolve merge conflicts for a specific pull request by analyzing git history, commit messages, and code changes to make intelligent resolution decisions.
## Quick Start
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
## Workflow Steps
### 1. Initialize PR Resolution
```bash
# Fetch PR info
gh pr view [PR_NUMBER] --json title,body,headRefName,baseRefName
# Checkout and rebase
gh pr checkout [PR_NUMBER] --force
git fetch origin main
GIT_EDITOR=true git rebase origin/main
```
### 2. Identify Conflicts
```bash
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
- Determine the intent behind each change
### 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
- **Preserve** test updates alongside code changes
### 5. Complete Resolution
```bash
git add [resolved-files]
GIT_EDITOR=true git rebase --continue
```
## Key Guidelines
- Always escape conflict markers with `\` when using `apply_diff`
- Document resolution decisions in the summary
- Verify no syntax errors after resolution
- Preserve valuable changes from both sides when possible
## Examples
- `/roo-resolve-conflicts #123` - Resolve conflicts for PR #123
- `/roo-resolve-conflicts 456` - Resolve conflicts for PR #456

View file

@ -0,0 +1,50 @@
---
description: "Translate and localize strings in the Roo Code extension"
argument-hint: "[language-code or 'all'] [string-key or file-path]"
mode: translate
---
Perform translation and localization tasks for the Roo Code extension. This command activates the translation workflow with comprehensive i18n guidelines.
## 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
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/`
## 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
2. If updating existing strings:
- Identify all affected language files
- Update English first, then propagate changes
3. Validate your changes:
```bash
node scripts/find-missing-translations.js
```
## Key Guidelines
- Use informal speech (e.g., "du" not "Sie" in German)
- Keep technical terms like "token", "Prompt" in English
- Preserve all `{{variable}}` placeholders exactly
- Use `apply_diff` instead of `write_to_file` for existing files
## Examples
- `/roo-translate de` - Focus on German translations
- `/roo-translate all welcome.title` - Translate a specific key to all languages
- `/roo-translate zh-CN src/i18n/locales/zh-CN/core.json` - Work on specific file

View file

@ -0,0 +1,15 @@
# Roo Code Translation Guidance
This file contains brand voice, tone, and word choice guidelines for Roo Code translations.
## Brand Voice
<!-- Add brand voice guidelines here -->
## Tone
<!-- Add tone guidelines here -->
## Word Choice
<!-- Add word choice preferences here -->

6
.roo/roomotes.yml Normal file
View file

@ -0,0 +1,6 @@
version: "1.0"
commands:
- name: Install dependencies
run: pnpm install
timeout: 60

View file

@ -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

67
.roo/rules-debug/cli.md Normal file
View file

@ -0,0 +1,67 @@
# CLI Debugging with File-Based Logging
When debugging the CLI, `console.log` will break the TUI (Terminal User Interface). Use file-based logging to capture debug output without interfering with the application's display.
## File-Based Logging Strategy
1. **Write logs to a temporary file instead of console**:
- Create a log file at a known location, e.g., `/tmp/roo-cli-debug.log`
- Use `fs.appendFileSync()` to write timestamped log entries
- Example logging utility:
```typescript
import fs from "fs"
const DEBUG_LOG = "/tmp/roo-cli-debug.log"
function debugLog(message: string, data?: unknown) {
const timestamp = new Date().toISOString()
const entry = data
? `[${timestamp}] ${message}: ${JSON.stringify(data, null, 2)}\n`
: `[${timestamp}] ${message}\n`
fs.appendFileSync(DEBUG_LOG, entry)
}
```
2. **Clear the log file before each debugging session**:
- Run `echo "" > /tmp/roo-cli-debug.log` or use `fs.writeFileSync(DEBUG_LOG, "")` at app startup during debugging
## Iterative Debugging Workflow
Follow this feedback loop to systematically narrow down issues:
1. **Add targeted logging** at suspected problem areas based on your hypotheses
2. **Instruct the user** to reproduce the issue using the CLI normally
3. **Read the log file** after the user completes testing:
- Run `cat /tmp/roo-cli-debug.log` to retrieve the captured output
4. **Analyze the log output** to gather clues about:
- Execution flow and timing
- Variable values at key points
- Which code paths were taken
- Error conditions or unexpected states
5. **Refine your logging** based on findings—add more detail where needed, remove noise
6. **Ask the user to test again** with updated logging
7. **Repeat** until the root cause is identified
## Best Practices
- Log entry/exit points of functions under investigation
- Include relevant variable values and state information
- Use descriptive prefixes to categorize logs: `[STATE]`, `[EVENT]`, `[ERROR]`, `[FLOW]`
- Log both the "happy path" and error handling branches
- When dealing with async operations, log before and after `await` statements
- For user interactions, log the received input and the resulting action
## Example Debug Session
```typescript
// Add logging to investigate a picker selection issue
debugLog("[FLOW] PickerSelect onSelect called", { selectedIndex, item })
debugLog("[STATE] Current selection state", { currentValue, isOpen })
// After async operation
const result = await fetchOptions()
debugLog("[FLOW] fetchOptions completed", { resultCount: result.length })
```
Then ask: "Please reproduce the issue by [specific steps]. When you're done, let me know and I'll analyze the debug logs."

View file

@ -0,0 +1,113 @@
<extraction_workflow>
<overview>
Extract raw facts from a codebase about a feature or aspect.
Output is structured data for documentation teams to use.
Do NOT write documentation. Do NOT format prose. Do NOT make structure decisions.
</overview>
<process>
<step number="1">
<title>Identify Target</title>
<actions>
<action>Parse the user's request to identify the feature/aspect</action>
<action>Clarify scope if ambiguous (ask one question max)</action>
</actions>
</step>
<step number="2">
<title>Discover Code</title>
<actions>
<action>Use codebase_search to find relevant files</action>
<action>Identify entry points, components, and related code</action>
<action>Map the boundaries of the feature</action>
</actions>
</step>
<step number="3">
<title>Extract Facts</title>
<actions>
<action>Read code and extract facts into categories (see fact_categories)</action>
<action>Record file paths as sources for each fact</action>
<action>Do NOT interpret, summarize, or explain - just extract</action>
</actions>
</step>
<step number="4">
<title>Output Structured Data</title>
<actions>
<action>Write extraction to .roo/extraction/EXTRACT-[feature].yaml</action>
<action>Use the output schema (see output_format.xml)</action>
</actions>
</step>
</process>
<fact_categories>
<category name="identity">
<extracts>
<extract>Feature name as it appears in code</extract>
<extract>File paths where feature is implemented</extract>
<extract>Entry points (commands, UI elements, API endpoints)</extract>
</extracts>
</category>
<category name="behavior">
<extracts>
<extract>What the feature does (from code logic)</extract>
<extract>Inputs it accepts</extract>
<extract>Outputs it produces</extract>
<extract>Side effects (files created, state changed, etc.)</extract>
</extracts>
</category>
<category name="configuration">
<extracts>
<extract>Settings/options that affect behavior</extract>
<extract>Default values</extract>
<extract>Valid ranges or allowed values</extract>
<extract>Where configured (settings file, env var, UI)</extract>
</extracts>
</category>
<category name="constraints">
<extracts>
<extract>Prerequisites and dependencies</extract>
<extract>Limitations (what it cannot do)</extract>
<extract>Permissions required</extract>
<extract>Compatibility requirements</extract>
</extracts>
</category>
<category name="errors">
<extracts>
<extract>Error conditions in code</extract>
<extract>Error messages (exact text)</extract>
<extract>Recovery paths in code</extract>
</extracts>
</category>
<category name="ui">
<extracts>
<extract>UI components involved</extract>
<extract>User-visible labels and text</extract>
<extract>Interaction patterns</extract>
</extracts>
</category>
<category name="integration">
<extracts>
<extract>Other features this interacts with</extract>
<extract>External APIs or services called</extract>
<extract>Events emitted or consumed</extract>
</extracts>
</category>
</fact_categories>
<rules>
<rule>Extract facts, not opinions</rule>
<rule>Include source file paths for every fact</rule>
<rule>Use code identifiers and exact strings from source</rule>
<rule>Do NOT paraphrase - quote when possible</rule>
<rule>Do NOT decide what's important - extract everything relevant</rule>
<rule>Do NOT format for end users - output is for docs team</rule>
</rules>
</extraction_workflow>

View file

@ -0,0 +1,85 @@
<verification_workflow>
<overview>
Compare provided documentation against actual codebase implementation.
Output is a structured diff of claims vs reality.
Do NOT rewrite the docs. Do NOT suggest wording. Just report discrepancies.
</overview>
<process>
<step number="1">
<title>Receive Documentation</title>
<actions>
<action>User provides documentation to verify (text, file, or URL)</action>
<action>Identify the feature/aspect being documented</action>
</actions>
</step>
<step number="2">
<title>Extract Claims</title>
<actions>
<action>Parse the documentation into discrete claims</action>
<action>Tag each claim with a category (behavior, config, constraint, etc.)</action>
<action>Record the exact quote from the documentation</action>
</actions>
</step>
<step number="3">
<title>Verify Against Code</title>
<actions>
<action>For each claim, find the relevant code</action>
<action>Compare claim to actual implementation</action>
<action>Record: ACCURATE, INACCURATE, OUTDATED, MISSING_CONTEXT, or UNVERIFIABLE</action>
<action>For inaccuracies, record what the code actually does</action>
</actions>
</step>
<step number="4">
<title>Output Verification Report</title>
<actions>
<action>Write verification to .roo/extraction/VERIFY-[feature].yaml</action>
<action>Use the output schema (see output_format.xml)</action>
</actions>
</step>
</process>
<verification_statuses>
<status name="ACCURATE">
<meaning>Claim matches implementation</meaning>
</status>
<status name="INACCURATE">
<meaning>Claim contradicts implementation</meaning>
<requires>What the code actually does</requires>
</status>
<status name="OUTDATED">
<meaning>Claim was once true but code has changed</meaning>
<requires>Current behavior</requires>
</status>
<status name="MISSING_CONTEXT">
<meaning>Claim is true but omits important information</meaning>
<requires>The missing context</requires>
</status>
<status name="UNVERIFIABLE">
<meaning>Cannot find code to verify this claim</meaning>
<requires>Search paths attempted</requires>
</status>
</verification_statuses>
<claim_categories>
<category>behavior</category>
<category>configuration</category>
<category>constraint</category>
<category>error_handling</category>
<category>ui</category>
<category>integration</category>
<category>prerequisite</category>
</claim_categories>
<rules>
<rule>Verify facts, not writing quality</rule>
<rule>Report what code does, not what docs should say</rule>
<rule>Include source file paths as evidence</rule>
<rule>Do NOT suggest documentation rewrites</rule>
<rule>Do NOT evaluate if docs are "good" - only if they're accurate</rule>
<rule>Quote exact code when showing discrepancies</rule>
</rules>
</verification_workflow>

View file

@ -0,0 +1,133 @@
<output_format>
<overview>
Structured data output formats for extraction and verification.
All output is YAML. No prose. No markdown formatting.
This data feeds into documentation-writer mode.
</overview>
<extraction_schema>
<description>Schema for EXTRACT-[feature].yaml files</description>
<template>
feature:
name: [feature name from code]
slug: [lowercase-hyphenated identifier]
extracted_at: [ISO timestamp]
source_files:
- [list of primary files]
identity:
entry_points:
- type: [command|ui|api|event]
name: [identifier]
location: [file:line]
components:
- name: [component name]
file: [path]
purpose: [one line from code comments or inferred]
behavior:
primary_action: [what it does - from code]
inputs:
- name: [input name]
type: [data type]
required: [true|false]
source: [file:line]
outputs:
- name: [output name]
type: [data type]
source: [file:line]
side_effects:
- description: [what changes]
source: [file:line]
configuration:
- name: [setting name]
key: [config key path]
type: [data type]
default: [default value]
valid_values: [list or range]
effect: [what it changes]
source: [file:line]
constraints:
prerequisites:
- description: [requirement]
source: [file:line]
limitations:
- description: [what cannot be done]
source: [file:line]
permissions:
- description: [permission needed]
source: [file:line]
errors:
- condition: [when this error occurs]
message: "[exact error message text]"
code: [error code if any]
source: [file:line]
ui:
components:
- name: [component name]
type: [button|panel|input|etc]
label: "[visible text]"
source: [file:line]
interactions:
- trigger: [user action]
result: [what happens]
source: [file:line]
integration:
internal:
- feature: [other feature name]
relationship: [how they interact]
source: [file:line]
external:
- service: [external service]
api: [endpoint or method]
source: [file:line]
</template>
</extraction_schema>
<verification_schema>
<description>Schema for VERIFY-[feature].yaml files</description>
<template>
verification:
feature: [feature name]
doc_source: [where the docs came from]
verified_at: [ISO timestamp]
summary:
total_claims: [count]
accurate: [count]
inaccurate: [count]
outdated: [count]
missing_context: [count]
unverifiable: [count]
claims:
- id: [claim-1]
quote: "[exact text from documentation]"
category: [behavior|configuration|constraint|error_handling|ui|integration|prerequisite]
status: [ACCURATE|INACCURATE|OUTDATED|MISSING_CONTEXT|UNVERIFIABLE]
evidence:
code_file: [file:line]
actual_behavior: [what code does - only if status is not ACCURATE]
code_quote: "[relevant code snippet]"
</template>
</verification_schema>
<output_rules>
<rule>Use YAML, not JSON or markdown</rule>
<rule>Include source file:line for every fact</rule>
<rule>Quote exact strings from code using double quotes</rule>
<rule>Use null for unknown/missing values, not empty strings</rule>
<rule>Keep descriptions factual and brief - one line max</rule>
<rule>Do NOT add commentary, suggestions, or explanations</rule>
</output_rules>
<file_naming>
<extraction>EXTRACT-[feature-slug].yaml</extraction>
<verification>VERIFY-[feature-slug].yaml</verification>
<location>.roo/extraction/</location>
</file_naming>
</output_format>

View file

@ -0,0 +1,566 @@
<workflow>
<step number="1">
<name>Retrieve Issue Context</name>
<instructions>
The user should provide a full GitHub issue URL (e.g., "https://github.com/owner/repo/issues/123") for implementation.
Parse the URL to extract:
- Owner (organization or username)
- Repository name
- Issue number
For example, from https://github.com/RooCodeInc/Roo-Code/issues/123:
- Owner: RooCodeInc
- Repo: Roo-Code
- Issue: 123
Then retrieve the issue:
<execute_command>
<command>gh api repos/[owner]/[repo]/issues/[issue-number] --jq '{number,title,body,state,labels,assignees,milestone,createdAt:.created_at,updatedAt:.updated_at,closedAt:.closed_at,author:.user.login}'</command>
</execute_command>
If the command fails with an authentication error (e.g., "gh: Not authenticated" or "HTTP 401"), ask the 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>
Analyze the issue to determine:
1. All requirements and acceptance criteria
2. Technical details mentioned
3. Any linked issues or discussions
Note: For PR review feedback, users should use the dedicated pr-fixer mode instead.
</instructions>
</step>
<step number="2">
<name>Review Issue Comments and Related Context</name>
<instructions>
Get all comments on the issue to understand:
- Additional context or clarifications
- Maintainer feedback
- Community suggestions
- Any decisions or changes to requirements
<execute_command>
<command>gh api repos/[owner]/[repo]/issues/[issue-number]/comments --paginate --jq '.[].body'</command>
</execute_command>
Also check for:
1. Related issues mentioned in the body or comments
2. Linked pull requests
3. Referenced discussions
If related PRs are mentioned, view them:
<execute_command>
<command>gh pr view [pr-number] --repo [owner]/[repo]</command>
</execute_command>
Document all requirements and constraints found.
</instructions>
</step>
<step number="3">
<name>Explore Codebase and Related Files</name>
<instructions>
Use codebase_search FIRST to understand the codebase structure and find ALL related files:
For Bug Fixes:
- Search for the broken functionality
- Find error handling and logging
- Locate related test files
- Identify dependencies and imports
- Find similar patterns in the codebase
For Features:
- Search for similar existing features
- Find integration points
- Locate configuration files
- Identify patterns to follow
- Find related components and utilities
Example searches based on issue type:
- Bug: Search for error messages, function names, component names
- Feature: Search for similar functionality, API endpoints, UI components
CRITICAL: Always read multiple related files together to understand:
- Current code patterns and conventions
- How similar functionality is implemented
- Testing patterns used in the project
- Import/export patterns
- Error handling approaches
- Configuration and setup patterns
Then use other tools:
- list_code_definition_names to understand file structure
- read_file to examine specific implementations (read multiple files at once)
- search_files for specific patterns or error messages
Also use GitHub CLI to check recent changes:
<execute_command>
<command>gh api repos/[owner]/[repo]/commits?path=[file-path]&per_page=10 --jq '.[].sha + " " + .[].commit.message'</command>
</execute_command>
Search for related PRs:
<execute_command>
<command>gh pr list --repo [owner]/[repo] --search "[relevant search terms]" --limit 10</command>
</execute_command>
Document:
- All files that need modification
- Current implementation details and patterns
- Code conventions to follow (naming, structure, etc.)
- Test file locations and patterns
- Related files that might be affected
</instructions>
</step>
<step number="4">
<name>Create Implementation Plan</name>
<instructions>
Based on the issue analysis, create a detailed implementation plan:
For Bug Fixes:
1. Reproduce the bug locally (if possible)
2. Identify root cause
3. Plan the fix approach. The plan should be focused on resolving the issue with a high-quality, targeted fix, while avoiding unrelated changes.
4. Identify files to modify.
5. Plan test cases to prevent regression.
For Feature Implementation:
1. Break down the feature into components
2. Identify all files that need changes
3. Plan the implementation approach
4. Consider edge cases and error handling
5. Plan test coverage
Present the plan to the user:
<ask_followup_question>
<question>I've analyzed issue #[number]: "[title]"
Here's my implementation plan to resolve the issue:
[Detailed plan with steps and affected files]
This plan focuses on providing a quality fix for the reported problem without introducing unrelated changes.
Would you like me to proceed with this implementation?</question>
<follow_up>
<suggest>Yes, proceed with the implementation</suggest>
<suggest>Let me review the issue first</suggest>
<suggest>Modify the approach for: [specific aspect]</suggest>
<suggest>Focus only on: [specific part]</suggest>
</follow_up>
</ask_followup_question>
</instructions>
</step>
<step number="5">
<name>Implement the Solution</name>
<instructions>
Implement the fix or feature following the plan:
General Guidelines:
1. Follow existing code patterns and style
2. Add appropriate error handling
3. Include necessary comments
4. Update related documentation
5. Ensure backward compatibility (if applicable)
For Bug Fixes:
1. Implement the planned fix, focusing on quality and precision.
2. The scope of the fix should be as narrow as possible to address the issue. Avoid making changes to code that is not directly related to the fix. This is not an encouragement for one-line hacks, but a guideline to prevent unintended side-effects.
3. Add regression tests.
4. Verify the fix resolves the issue.
5. Check for side effects.
For Features:
1. Implement incrementally
2. Test each component as you build
3. Follow the acceptance criteria exactly
4. Add comprehensive tests
5. Update documentation
Use appropriate tools:
- apply_diff for targeted changes
- write_to_file for new files
After each significant change, run relevant tests:
- execute_command to run test suites
- Check for linting errors
- Verify functionality works as expected
</instructions>
</step>
<step number="6">
<name>Verify Acceptance Criteria</name>
<instructions>
Systematically verify all acceptance criteria from the issue:
For Bug Fixes:
1. Confirm the bug no longer reproduces
2. Follow the exact reproduction steps
3. Verify expected behavior now occurs
4. Check no new bugs introduced
5. Run all related tests
For Features:
1. Test each acceptance criterion
2. Verify all Given/When/Then scenarios
3. Test edge cases
4. Verify UI changes (if applicable)
5. Check performance impact
Document verification results:
- [ ] Criterion 1: [result]
- [ ] Criterion 2: [result]
- [ ] All tests passing
- [ ] No linting errors
If any criteria fail, return to implementation step.
</instructions>
</step>
<step number="7">
<name>Check for Translation Requirements</name>
<instructions>
After implementing changes, analyze if any translations are required:
Translation is needed if the implementation includes:
1. New user-facing text strings in UI components
2. New error messages or user notifications
3. Updated documentation files that need localization
4. New command descriptions or tooltips
5. Changes to announcement files or release notes
6. New configuration options with user-visible descriptions
Check for these patterns:
- Hard-coded strings in React components (.tsx/.jsx files)
- New entries needed in i18n JSON files
- Updated markdown documentation files
- New VSCode command contributions
- Changes to user-facing configuration schemas
If translations are required:
<new_task>
<mode>translate</mode>
<message>Translation needed for issue #[issue-number] implementation.
The following changes require translation into all supported languages:
**Files with new/updated user-facing content:**
- [List specific files and what content needs translation]
- [Include context about where the strings appear]
- [Note any special formatting or constraints]
**Translation scope:**
- [Specify if it's new strings, updated strings, or both]
- [List specific JSON keys that need attention]
- [Note any markdown files that need localization]
**Context for translators:**
- [Explain the feature/fix being implemented]
- [Provide context about how the text is used]
- [Note any technical terms or constraints]
Please ensure all translations maintain consistency with existing terminology and follow the project's localization guidelines.</message>
<todos>
[ ] Identify all user-facing strings that need translation
[ ] Update i18n JSON files for all supported languages
[ ] Translate any markdown documentation files
[ ] Verify translations maintain consistency with existing terminology
[ ] Test translations in the application context
</todos>
</new_task>
Wait for the translation task to complete before proceeding to testing.
If no translations are required, continue to the next step.
</instructions>
</step>
<step number="8">
<name>Run Tests and Checks</name>
<instructions>
Run comprehensive tests to ensure quality:
1. Run unit tests for modified files:
```
npm test [test file paths]
```
2. Run integration tests if applicable:
```
npm run test:integration
```
3. Check for linting errors:
```
npm run lint
```
4. Run type checking:
```
npm run type-check
```
5. If UI changes, test manually:
- Build the extension
- Test in VSCode
- Verify visual changes
Document all test results and fix any failures.
</instructions>
</step>
<step number="9">
<name>Prepare Summary</name>
<instructions>
Create a comprehensive summary of the implementation:
## Summary of Changes
**Issue:** #[number] - [title]
**Type:** [Bug Fix/Feature Implementation]
### What was done:
- [List key changes]
- [Files modified]
- [Tests added]
### How it addresses the issue:
[Explain how each requirement is met]
### Testing performed:
- [List all tests run]
- [Manual testing done]
- [Verification of acceptance criteria]
### Files changed:
- `path/to/file1.ts` - [brief description]
- `path/to/file2.ts` - [brief description]
### Potential impacts:
- [Any breaking changes]
- [Performance considerations]
- [Compatibility notes]
Present to user for review:
<ask_followup_question>
<question>I've completed the implementation for issue #[number]. Here's what was done:
[Insert summary]
All acceptance criteria have been met and tests are passing.
Would you like me to prepare a pull request, or would you like to review the changes first?</question>
<follow_up>
<suggest>Create a pull request with these changes</suggest>
<suggest>Show me the key changes in detail</suggest>
<suggest>Run additional tests for: [specific area]</suggest>
<suggest>Make additional changes to: [specific file]</suggest>
</follow_up>
</ask_followup_question>
</instructions>
</step>
<step number="10">
<name>Prepare for Pull Request</name>
<instructions>
If user wants to create a pull request, prepare everything needed:
1. Create appropriate branch name:
- Bug fix: `fix/issue-[number]-[brief-description]`
- Feature: `feat/issue-[number]-[brief-description]`
2. Ensure all changes are committed:
```bash
git status
git add [modified files]
git commit -m "fix: [description] (#[issue-number])"
```
3. Push to a fork or branch (depending on user's access):
```bash
git push origin [branch-name]
```
4. Prepare comprehensive PR description:
```markdown
## Description
Fixes #[issue number]
[Detailed description of what was changed and why]
## Changes Made
- [Specific change 1 with file references]
- [Specific change 2 with technical details]
- [Any refactoring or cleanup done]
## Testing
- [x] All existing tests pass
- [x] Added tests for [specific functionality]
- [x] Manual testing completed:
- [Specific manual test 1]
- [Specific manual test 2]
## Verification of Acceptance Criteria
[For each criterion from the issue, show it's met]
- [x] Criterion 1: [How it's verified]
- [x] Criterion 2: [How it's verified]
## Checklist
- [x] Code follows project style guidelines
- [x] Self-review completed
- [x] Comments added for complex logic
- [x] Documentation updated (if needed)
- [x] No breaking changes (or documented if any)
- [x] Accessibility checked (for UI changes)
## Screenshots/Demo (if applicable)
[Add before/after screenshots for UI changes]
[Add terminal output for CLI changes]
```
5. Ask user for final approval:
<ask_followup_question>
<question>I've prepared everything for the pull request:
**Branch:** [branch-name]
**Title:** [PR title]
**Target:** [owner]/[repo] (main branch)
Here's the PR description:
[Show prepared PR description]
Would you like me to create this pull request to [owner]/[repo]?</question>
<follow_up>
<suggest>Yes, create the pull request</suggest>
<suggest>Let me review the PR description first</suggest>
<suggest>Change the PR title to: [let me specify]</suggest>
<suggest>Add more details about: [specific aspect]</suggest>
</follow_up>
</ask_followup_question>
</instructions>
</step>
<step number="11">
<name>Create Pull Request</name>
<instructions>
Once user approves, create the pull request using GitHub CLI:
If the user doesn't have push access to [owner]/[repo], fork the repository:
<execute_command>
<command>gh repo fork [owner]/[repo] --clone</command>
</execute_command>
Create the pull request:
<execute_command>
<command>gh pr create --repo [owner]/[repo] --base main --title "[Type]: [Brief description] (#[issue-number])" --body "[Complete PR description from step 10]" --maintainer-can-modify</command>
</execute_command>
The gh CLI will automatically handle the fork workflow if needed.
After PR creation:
1. Capture the PR number and URL from the command output
2. Link the PR to the issue by commenting on the issue
3. Inform the user of the successful creation
<execute_command>
<command>gh issue comment [original issue number] --repo [owner]/[repo] --body "PR #[new PR number] has been created to address this issue"</command>
</execute_command>
Final message to user:
```
✅ Pull Request Created Successfully!
PR #[number]: [title]
URL: [PR URL]
The PR has been created and linked to issue #[issue number].
Next steps:
1. The PR will be reviewed by maintainers
2. Address any feedback in the PR comments
3. Once approved, it will be merged
You can track the PR status at: [PR URL]
```
</instructions>
</step>
<step number="12">
<name>Monitor PR Checks</name>
<instructions>
After the PR is created, monitor the CI/CD checks to ensure they pass:
<execute_command>
<command>gh pr checks [PR number] --repo [owner]/[repo] --watch</command>
</execute_command>
This command will:
1. Display all CI/CD checks configured for the repository
2. Show the status of each check in real-time
3. Update automatically as checks complete
4. Exit when all checks have finished running
Monitor the output and note:
- Which checks are running (e.g., tests, linting, build)
- Any checks that fail and their error messages
- The overall status of the PR checks
If any checks fail:
1. Analyze the failure logs
2. Identify what needs to be fixed
3. Ask the user if they want you to address the failures
<ask_followup_question>
<question>The PR checks have completed. Here's the status:
[Show check results - passing/failing]
[If all pass]: All checks have passed successfully! The PR is ready for review.
[If any fail]: Some checks have failed:
- [Failed check 1]: [Brief error description]
- [Failed check 2]: [Brief error description]
Would you like me to fix these issues?</question>
<follow_up>
<suggest>Yes, please fix the failing checks</suggest>
<suggest>Show me the detailed error logs</suggest>
<suggest>I'll handle the failures manually</suggest>
<suggest>The PR is fine as-is, these failures are expected</suggest>
</follow_up>
</ask_followup_question>
If user wants fixes:
1. Create a plan to address each failure
2. Make necessary code changes
3. Commit and push the fixes
4. Monitor checks again to ensure they pass
Important notes:
- The --watch flag will keep the command running until all checks complete
- This step helps ensure the PR meets all quality standards before review
- Early detection of CI/CD failures saves reviewer time
</instructions>
</step>
</workflow>

View file

@ -0,0 +1,19 @@
<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)
- Delegate translation tasks to translate mode when implementing user-facing changes
- Always check for hard-coded strings and internationalization needs
- When using new_task to delegate work, always include a comprehensive todos list
- Wait for translation completion before proceeding to final testing
</best_practices>

View file

@ -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>

View file

@ -0,0 +1,245 @@
<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 using the REST Issues API.</purpose>
<when>Always use first to get the full issue content</when>
<syntax>gh api repos/[owner]/[repo]/issues/[issue-number] --jq '{number,title,body,state,labels,assignees,milestone,createdAt:.created_at,updatedAt:.updated_at,closedAt:.closed_at,author:.user.login}'</syntax>
<example>
<execute_command>
<command>gh api repos/octocat/hello-world/issues/123 --jq '{number,title,body,state,labels,assignees,milestone,createdAt:.created_at,updatedAt:.updated_at,closedAt:.closed_at,author:.user.login}'</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 api repos/[owner]/[repo]/issues/[issue-number]/comments --paginate --jq '.[].body'</syntax>
<example>
<execute_command>
<command>gh api repos/octocat/hello-world/issues/123/comments --paginate --jq '.[].body'</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>
<projects_v2_commands>
<command name="gh_projects_v2_for_issue">
<purpose>Inspect associations with GitHub Projects (new Projects experience) for a given issue</purpose>
<when>Use when project context is relevant to understanding priority, ownership, or workflow</when>
<syntax>gh api graphql -f query='
query($owner:String!, $repo:String!, $number:Int!) {
repository(owner:$owner, name:$repo) {
issue(number:$number) {
projectsV2(first:20) {
nodes {
title
url
}
}
}
}
}
' -F owner=[owner] -F repo=[repo] -F number=[issue-number]</syntax>
<note>
This uses the projectsV2 field from the new GitHub Projects experience for issue-level project context.
</note>
</command>
</projects_v2_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>

View file

@ -0,0 +1,52 @@
<pull_request_workflow>
<preparation>
1. Ensure all changes are committed with proper message format
2. Push to appropriate branch (fork or direct)
3. Prepare comprehensive PR description
4. Get user approval before creating PR
5. Extract owner and repo from the provided GitHub URL
</preparation>
<pr_title_format>
- Bug fixes: "fix: [description] (#[issue-number])"
- Features: "feat: [description] (#[issue-number])"
- Follow conventional commit format
</pr_title_format>
<pr_description_template>
Must include:
- Link to issue (Fixes #[number])
- Detailed description of changes
- Testing performed
- Verification of acceptance criteria
- Checklist items
- Screenshots/demos if applicable
</pr_description_template>
<creating_pr_with_cli>
Use GitHub CLI to create the pull request:
<execute_command>
<command>gh pr create --repo [owner]/[repo] --base main --title "[title]" --body "[description]" --maintainer-can-modify</command>
</execute_command>
If working from a fork, ensure you've forked first:
<execute_command>
<command>gh repo fork [owner]/[repo] --clone</command>
</execute_command>
The gh CLI automatically handles fork workflows.
</creating_pr_with_cli>
<after_creation>
1. Comment on original issue with PR link:
<execute_command>
<command>gh issue comment [issue-number] --repo [owner]/[repo] --body "PR #[pr-number] has been created to address this issue"</command>
</execute_command>
2. Inform user of successful creation
3. Provide next steps and tracking info
4. Monitor PR checks:
<execute_command>
<command>gh pr checks [pr-number] --repo [owner]/[repo] --watch</command>
</execute_command>
</after_creation>
</pull_request_workflow>

View file

@ -0,0 +1,10 @@
<testing_guidelines>
- Always run existing tests before making changes (baseline)
- Add tests for any new functionality
- Add regression tests for bug fixes
- Test edge cases and error conditions
- Run the full test suite before completing
- For UI changes, test in multiple themes
- Verify accessibility (keyboard navigation, screen readers)
- Test performance impact for large operations
</testing_guidelines>

View file

@ -0,0 +1,8 @@
<communication_style>
- Be clear about what you're doing at each step
- Explain technical decisions and trade-offs
- Ask for clarification if requirements are ambiguous
- Provide regular progress updates for complex issues
- Summarize changes clearly for non-technical stakeholders
- Use issue numbers and links for reference
</communication_style>

View file

@ -0,0 +1,16 @@
<github_communication_guidelines>
<issue_comments>
- Provide brief status updates when working on complex issues
- Ask specific questions if requirements are unclear
- Share findings when investigation reveals important context
- Keep progress updates factual and concise
- Example: "Found the root cause in the theme detection logic. Working on a fix that preserves backward compatibility."
</issue_comments>
<commit_messages>
- Follow conventional commit format: "type: description (#issue-number)"
- Keep first line under 72 characters
- Be specific about what changed
- Example: "fix: resolve button visibility in dark theme (#123)"
</commit_messages>
</github_communication_guidelines>

View file

@ -0,0 +1,205 @@
<pr_template_instructions>
<overview>
This file contains the official Roo Code PR template that must be used when creating pull requests.
All PRs must follow this exact format to ensure consistency and proper documentation.
</overview>
<pr_body_template>
<description>
The PR body must follow this exact Roo Code PR template with all required sections.
Replace placeholder content in square brackets with actual information.
</description>
<template><![CDATA[
<!--
Thank you for contributing to Roo Code!
Before submitting your PR, please ensure:
- It's linked to an approved GitHub Issue.
- You've reviewed our [Contributing Guidelines](../CONTRIBUTING.md).
-->
### Related GitHub Issue
<!-- Every PR MUST be linked to an approved issue. -->
Closes: #[ISSUE_NUMBER] <!-- 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
-->
[TASK_CONTEXT]
### Description
<!--
Briefly summarize the changes in this PR and how they address the linked issue.
The issue should cover the "what" and "why"; this section should focus on:
- The "how": key implementation details, design choices, or trade-offs made.
- Anything specific reviewers should pay attention to in this PR.
-->
[DESCRIPTION_CONTENT]
### Test Procedure
<!--
Detail the steps to test your changes. This helps reviewers verify your work.
- How did you test this specific implementation? (e.g., unit tests, manual testing steps)
- How can reviewers reproduce your tests or verify the fix/feature?
- Include relevant testing environment details if applicable.
-->
[TEST_PROCEDURE_CONTENT]
### Pre-Submission Checklist
<!-- Go through this checklist before marking your PR as ready for review. -->
- [x] **Issue Linked**: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
- [x] **Scope**: My changes are focused on the linked issue (one major feature/fix per PR).
- [x] **Self-Review**: I have performed a thorough self-review of my code.
- [x] **Testing**: New and/or updated tests have been added to cover my changes (if applicable).
- [x] **Documentation Impact**: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
- [x] **Contribution Guidelines**: I have read and agree to the [Contributor Guidelines](/CONTRIBUTING.md).
### Screenshots / Videos
<!--
For UI changes, please provide before-and-after screenshots or a short video of the *actual results*.
This greatly helps in understanding the visual impact of your changes.
-->
[SCREENSHOTS_CONTENT]
### Documentation Updates
<!--
Does this PR necessitate updates to user-facing documentation?
- [ ] No documentation updates are required.
- [ ] Yes, documentation updates are required. (Please describe what needs to be updated or link to a PR in the docs repository).
-->
[DOCUMENTATION_UPDATES_CONTENT]
### Additional Notes
<!-- Add any other context, questions, or information for reviewers here. -->
[ADDITIONAL_NOTES_CONTENT]
### Get in Touch
<!--
Please provide your Discord username for reviewers or maintainers to reach you if they have questions about your PR
-->
[DISCORD_USERNAME]
]]></template>
</pr_body_template>
<github_cli_commands>
<description>
Valid GitHub CLI commands for creating PRs with the proper template
</description>
<create_pr_command>
<description>Create a PR using the filled template</description>
<command><![CDATA[
gh pr create \
--repo [owner]/[repo] \
--base main \
--title "[Type]: [Brief description] (#[issue-number])" \
--body-file pr-body.md \
--maintainer-can-modify
]]></command>
<note>The PR body should be saved to a temporary file first, then referenced with --body-file</note>
</create_pr_command>
<create_pr_inline>
<description>Alternative: Create PR with inline body (for shorter content)</description>
<command><![CDATA[
gh pr create \
--repo [owner]/[repo] \
--base main \
--title "[Type]: [Brief description] (#[issue-number])" \
--body "[Complete PR body content]" \
--maintainer-can-modify
]]></command>
<note>Use this only if the body content doesn't contain special characters that need escaping</note>
</create_pr_inline>
<fork_if_needed>
<description>Fork repository if user doesn't have push access</description>
<command><![CDATA[
gh repo fork [owner]/[repo] --clone=false
]]></command>
<note>The --clone=false flag prevents cloning since we're already in the repo</note>
</fork_if_needed>
</github_cli_commands>
<pr_title_format>
<description>PR titles should follow conventional commit format</description>
<formats>
<format type="bug_fix">fix: [brief description] (#[issue-number])</format>
<format type="feature">feat: [brief description] (#[issue-number])</format>
<format type="docs">docs: [brief description] (#[issue-number])</format>
<format type="refactor">refactor: [brief description] (#[issue-number])</format>
<format type="test">test: [brief description] (#[issue-number])</format>
<format type="chore">chore: [brief description] (#[issue-number])</format>
</formats>
</pr_title_format>
<placeholder_guidance>
<description>How to fill in the template placeholders</description>
<placeholders>
<placeholder name="ISSUE_NUMBER">
<description>The GitHub issue number being addressed</description>
<example>123</example>
</placeholder>
<placeholder name="TASK_CONTEXT">
<description>Optional Roo Code task links if used during development</description>
<example>https://app.roocode.com/share/task-abc123</example>
<default>_No Roo Code task context for this PR_</default>
</placeholder>
<placeholder name="DESCRIPTION_CONTENT">
<description>Detailed explanation of implementation approach</description>
<guidance>
- Focus on HOW you solved the problem
- Mention key design decisions
- Highlight any trade-offs made
- Point out areas needing special review attention
</guidance>
</placeholder>
<placeholder name="TEST_PROCEDURE_CONTENT">
<description>Steps to verify the changes work correctly</description>
<guidance>
- List specific test commands run
- Describe manual testing performed
- Include steps for reviewers to reproduce tests
- Mention test environment details if relevant
</guidance>
</placeholder>
<placeholder name="SCREENSHOTS_CONTENT">
<description>Visual evidence of changes for UI modifications</description>
<default>_No UI changes in this PR_</default>
</placeholder>
<placeholder name="DOCUMENTATION_UPDATES_CONTENT">
<description>Documentation impact assessment</description>
<default>- [x] No documentation updates are required.</default>
</placeholder>
<placeholder name="ADDITIONAL_NOTES_CONTENT">
<description>Any extra context for reviewers</description>
<default>_No additional notes_</default>
</placeholder>
<placeholder name="DISCORD_USERNAME">
<description>Discord username for communication</description>
<example>@username</example>
</placeholder>
</placeholders>
</placeholder_guidance>
</pr_template_instructions>

View file

@ -0,0 +1,98 @@
<workflow_instructions>
<mode_overview>
This mode investigates GitHub issues to find the probable root cause and suggest a theoretical solution. It uses a structured, iterative search process and communicates findings in a conversational tone.
</mode_overview>
<initialization_steps>
<step number="1">
<action>Understand the user's request</action>
<details>
The user will provide a GitHub issue URL or number. Your first step is to fetch the issue details using the `gh` CLI.
</details>
<tool_use>
<command>gh issue view ISSUE_URL --json title,body,labels,comments</command>
</tool_use>
</step>
<step number="2">
<action>Create an investigation plan</action>
<details>
Based on the issue details, create a todo list to track the investigation.
</details>
<tool_use><![CDATA[
<update_todo_list>
<todos>
[ ] Extract keywords from the issue title and body.
[ ] Perform initial codebase search with keywords.
[ ] Analyze search results and form a hypothesis.
[ ] Attempt to disprove the hypothesis.
[ ] Formulate a theoretical solution.
[ ] Draft a comment for the user.
</todos>
</update_todo_list>
]]></tool_use>
</step>
</initialization_steps>
<main_workflow>
<phase name="investigation">
<description>
Systematically search the codebase to identify the root cause. This is an iterative process.
</description>
<steps>
<step>
<title>Extract Keywords</title>
<description>Identify key terms, function names, error messages, and concepts from the issue title, body, and comments.</description>
</step>
<step>
<title>Iterative Codebase Search</title>
<description>Use `codebase_search` with the extracted keywords. Start broad and then narrow down your search based on the results. Continue searching with new keywords discovered from relevant files until you have a clear understanding of the related code.</description>
<tool_use>
<command>codebase_search</command>
</tool_use>
</step>
<step>
<title>Form a Hypothesis</title>
<description>Based on the search results, form a hypothesis about the probable cause of the issue. Document this hypothesis.</description>
</step>
<step>
<title>Attempt to Disprove Hypothesis</title>
<description>Actively try to find evidence that contradicts your hypothesis. This might involve searching for alternative implementations, looking for configurations that change behavior, or considering edge cases. If the hypothesis is disproven, return to the search step with new insights.</description>
</step>
</steps>
</phase>
<phase name="solution">
<description>Formulate a solution and prepare to communicate it.</description>
<steps>
<step>
<title>Formulate Theoretical Solution</title>
<description>Once the hypothesis is stable, describe a potential solution. Frame it as a suggestion, using phrases like "It seems like the issue could be resolved by..." or "A possible fix would be to...".</description>
</step>
<step>
<title>Draft Comment</title>
<description>Draft a comment for the GitHub issue that explains your findings and suggested solution in a conversational, human-like tone. Start the comment with "Hey @roomote-agent,".</description>
</step>
</steps>
</phase>
<phase name="user_confirmation">
<description>Ask the user for confirmation before posting any comments.</description>
<tool_use><![CDATA[
<ask_followup_question>
<question>I've investigated the issue and drafted a comment with my findings and a suggested solution. Would you like me to post it to the GitHub issue?</question>
<follow_up>
<suggest>Yes, please post the comment to the issue.</suggest>
<suggest>Show me the draft comment first.</suggest>
<suggest>No, do not post the comment.</suggest>
</follow_up>
</ask_followup_question>
]]></tool_use>
</phase>
</main_workflow>
<completion_criteria>
<criterion>A probable cause has been identified and validated.</criterion>
<criterion>A theoretical solution has been proposed.</criterion>
<criterion>The user has decided whether to post a comment on the issue.</criterion>
</completion_criteria>
</workflow_instructions>

View file

@ -0,0 +1,60 @@
<best_practices>
<general_principles>
<principle priority="high">
<name>Be Methodical</name>
<description>Follow the workflow steps precisely. Do not skip the hypothesis validation step. A rigorous process leads to more accurate conclusions.</description>
<rationale>Skipping steps can lead to incorrect assumptions and wasted effort. The goal is to be confident in the proposed solution.</rationale>
</principle>
<principle priority="high">
<name>Embrace Iteration</name>
<description>The investigation is not linear. Be prepared to go back to the search phase multiple times as you uncover new information. Each search should build on the last.</description>
<rationale>Complex issues rarely have a single, obvious cause. Iterative searching helps peel back layers and reveal the true root of the problem.</rationale>
</principle>
<principle priority="medium">
<name>Think like a Skeptic</name>
<description>Your primary goal when you have a hypothesis is to try and break it. Actively look for evidence that you are wrong. This makes your final conclusion much stronger.</description>
<rationale>Confirmation bias is a common pitfall. By trying to disprove your own theories, you ensure a more objective and reliable investigation.</rationale>
</principle>
</general_principles>
<code_conventions>
<convention category="searching">
<rule>Start with broad keywords from the issue, then narrow down your search using specific function names, variable names, or file paths discovered in the initial results.</rule>
<examples>
<good>Initial search: "user authentication fails". Follow-up search: "getUserById invalid token".</good>
<bad>Searching for a generic term like "error" without context.</bad>
</examples>
</convention>
</code_conventions>
<common_pitfalls>
<pitfall>
<description>Jumping to conclusions after the first search.</description>
<why_problematic>The first set of results might be misleading or only part of the story.</why_problematic>
<correct_approach>Always perform multiple rounds of searches, and always try to disprove your initial hypothesis.</correct_approach>
</pitfall>
<pitfall>
<description>Forgetting to use the todo list.</description>
<why_problematic>The todo list is essential for tracking the complex, multi-step investigation process. Without it, you can lose track of your progress and findings.</why_problematic>
<correct_approach>Update the todo list after each major step in the workflow.</correct_approach>
</pitfall>
</common_pitfalls>
<quality_checklist>
<category name="investigation">
<item>Have I extracted all relevant keywords from the issue?</item>
<item>Have I performed at least two rounds of codebase searches?</item>
<item>Have I genuinely tried to disprove my hypothesis?</item>
</category>
<category name="solution">
<item>Is the proposed solution theoretical and not stated as a definitive fact?</item>
<item>Is the explanation clear and easy to understand?</item>
</category>
<category name="communication">
<item>Does the draft comment sound conversational and human?</item>
<item>Does the draft comment start with "Hey @roomote-agent,"?</item>
<item>Have I avoided technical jargon where possible?</item>
<item>Is the tone helpful and not condescending?</item>
</category>
</quality_checklist>
</best_practices>

View file

@ -0,0 +1,45 @@
<common_patterns>
<pattern name="bug_investigation">
<usage>For investigating bug reports where something is broken.</usage>
<template>
<workflow>
<step>1. Identify the exact error message from the issue.</step>
<step>2. Search for the error message in the codebase using `codebase_search`.</step>
<step>3. Analyze the code that throws the error to understand the context.</step>
<step>4. Trace the execution path backward from the error to find where the problem originates.</step>
<step>5. Form a hypothesis about the incorrect logic or state.</step>
<step>6. Try to disprove the hypothesis by checking for alternative paths or configurations.</step>
<step>7. Propose a code change to correct the logic.</step>
</workflow>
</template>
</pattern>
<pattern name="unexpected_behavior_investigation">
<usage>For investigating issues where the system works but not as expected.</usage>
<template>
<workflow>
<step>1. Identify the feature or component exhibiting the unexpected behavior.</step>
<step>2. Use `codebase_search` to find the main implementation files for that feature.</step>
<step>3. Read the relevant code to understand the intended logic.</step>
<step>4. Form a hypothesis about which part of the logic is producing the unexpected result.</step>
<step>5. Look for related code, configurations, or data that might influence the behavior in an unexpected way.</step>
<step>6. Try to disprove the hypothesis. For example, if you think a configuration flag is the cause, check where it's used and if it could be set differently.</step>
<step>7. Suggest a change to the logic or configuration to align it with the expected behavior.</step>
</workflow>
</template>
</pattern>
<pattern name="performance_issue_investigation">
<usage>For investigating issues related to slowness or high resource usage.</usage>
<template>
<workflow>
<step>1. Identify the specific action or process that is slow.</step>
<step>2. Use `codebase_search` to find the code responsible for that action.</step>
<step>3. Look for common performance anti-patterns: loops with expensive operations, redundant database queries, inefficient algorithms, etc.</step>
<step>4. Form a hypothesis about the performance bottleneck.</step>
<step>5. Try to disprove the hypothesis. Could another part of the system be contributing to the slowness?</step>
<step>6. Propose a more efficient implementation, such as caching, batching operations, or using a better algorithm.</step>
</workflow>
</template>
</pattern>
</common_patterns>

View file

@ -0,0 +1,84 @@
<tool_usage_guide>
<tool_priorities>
<priority level="1">
<tool>gh issue view</tool>
<when>Always use first to get the issue context.</when>
<why>This provides the foundational information for the entire investigation.</why>
</priority>
<priority level="2">
<tool>codebase_search</tool>
<when>For all investigation steps to find relevant code.</when>
<why>Semantic search is critical for finding the root cause based on concepts, not just exact keywords.</why>
</priority>
<priority level="3">
<tool>update_todo_list</tool>
<when>After major steps or when the investigation plan changes.</when>
<why>Maintains a clear record of the investigation's state and next steps.</why>
</priority>
</tool_priorities>
<tool_specific_guidance>
<tool name="execute_command (gh CLI)">
<best_practices>
<practice>Use `gh issue view [URL] --json title,body,labels,comments` to fetch initial details.</practice>
<practice>Use `gh issue comment [URL] --body "..."` to add comments, but only after explicit user approval.</practice>
<practice>Always wrap the comment body in quotes to handle special characters.</practice>
<practice>When posting a comment, the body must start with "Hey @roomote-agent," exactly.</practice>
</best_practices>
<example><![CDATA[
<execute_command>
<command>gh issue view https://github.com/RooCodeInc/Roo-Code/issues/123 --json title,body</command>
</execute_command>
]]></example>
<example><![CDATA[
<execute_command>
<command>gh issue comment https://github.com/RooCodeInc/Roo-Code/issues/123 --body "Hey @roomote-agent, I've investigated and proposed a theoretical fix above."</command>
</execute_command>
]]></example>
</tool>
<tool name="codebase_search">
<best_practices>
<practice>Extract multiple keywords from the issue. Combine them in your search query.</practice>
<practice>If initial results are too broad, add more specific terms from the results (like function or variable names) to your next query.</practice>
<practice>Use this tool iteratively. Don't rely on a single search.</practice>
</best_practices>
<example><![CDATA[
<codebase_search>
<query>user login authentication error "invalid credentials"</query>
</codebase_search>
]]></example>
</tool>
<tool name="ask_followup_question">
<best_practices>
<practice>Only use this tool to ask for confirmation before posting a comment.</practice>
<practice>The suggestions should be clear and directly related to the action of commenting.</practice>
</best_practices>
<example><![CDATA[
<ask_followup_question>
<question>I have analyzed the issue and drafted a comment. Would you like me to post it?</question>
<follow_up>
<suggest>Yes, go ahead and post the comment.</suggest>
<suggest>Let me see the comment first before you post it.</suggest>
<suggest>No, do not post anything. I will handle it.</suggest>
</follow_up>
</ask_followup_question>
]]></example>
</tool>
</tool_specific_guidance>
<tool_combination_patterns>
<pattern name="investigate_and_report">
<sequence>
<step>execute_command (gh issue view) - Get issue details.</step>
<step>update_todo_list - Create an investigation plan.</step>
<step>codebase_search - Perform initial search.</step>
<step>read_file - Analyze relevant file contents.</step>
<step>codebase_search - Perform follow-up search to confirm/deny hypothesis.</step>
<step>ask_followup_question - Ask user to confirm before commenting.</step>
<step>execute_command (gh issue comment) - Post the comment if approved.</step>
</sequence>
</pattern>
</tool_combination_patterns>
</tool_usage_guide>

View file

@ -0,0 +1,99 @@
<complete_examples>
<example name="investigating_a_login_bug">
<scenario>
A user has reported a bug where they are unable to log in with valid credentials, but no error message is shown.
</scenario>
<user_request>
"Please investigate issue #456. Users are reporting that they can't log in."
</user_request>
<workflow>
<step number="1">
<description>Fetch issue details from GitHub.</description>
<tool_use><![CDATA[
<execute_command>
<command>gh issue view 456 --json title,body,comments</command>
</execute_command>
]]></tool_use>
<expected_outcome>Get the title "Login fails silently" and body "Users with valid credentials are not able to log in. The page just refreshes without any error message."</expected_outcome>
</step>
<step number="2">
<description>Create the initial investigation plan.</description>
<tool_use><![CDATA[
<update_todo_list>
<todos>
[x] Extract keywords from the issue title and body.
[-] Perform initial codebase search with keywords.
[ ] Analyze search results and form a hypothesis.
[ ] Attempt to disprove the hypothesis.
[ ] Formulate a theoretical solution.
[ ] Draft a comment for the user.
</todos>
</update_todo_list>
]]></tool_use>
</step>
<step number="3">
<description>Perform initial codebase search using keywords "login", "authentication", "silent fail".</description>
<tool_use><![CDATA[
<codebase_search>
<query>user login authentication silent fail</query>
</codebase_search>
]]></tool_use>
<analysis>The search results point to `src/auth/login.ts` as a highly relevant file.</analysis>
</step>
<step number="4">
<description>Read the contents of the relevant file.</description>
<tool_use><![CDATA[
<read_file>
<path>src/auth/login.ts</path>
</read_file>
]]></tool_use>
<analysis>
The file contains a `try...catch` block in the `handleLogin` function. The `catch` block is empty, which explains the silent failure. This is the likely cause. Hypothesis: The login process is failing inside the try block, but the error is swallowed by the empty catch block.
</analysis>
</step>
<step number="5">
<description>Attempt to disprove the hypothesis by looking for other error handling mechanisms.</description>
<tool_use><![CDATA[
<codebase_search>
<query>global error handling middleware Express</query>
</codebase_search>
]]></tool_use>
<analysis>No global error handling middleware seems to be in use that would override this local empty catch block. The hypothesis stands.</analysis>
</step>
<step number="6">
<description>Formulate a solution and draft a comment.</description>
<draft>
"Hey @roomote-agent, I took a look at this issue and it seems like the problem is in the `handleLogin` function in `src/auth/login.ts`. There's an empty `try...catch` block that is likely catching the login error and preventing any message from being shown to the user.
A good first step to fixing this would be to add some logging to the `catch` block to see what error is actually happening. Then, we should probably implement proper error feedback to the user on the login page. This should solve the issue of the silent failure."
</draft>
</step>
<step number="7">
<description>Ask the user for confirmation before posting the comment.</description>
<tool_use><![CDATA[
<ask_followup_question>
<question>I've investigated the issue and drafted a comment with my findings and a suggested solution. Would you like me to post it to the GitHub issue?</question>
<follow_up>
<suggest>Yes, please post the comment to the issue.</suggest>
<suggest>Show me the draft comment first.</suggest>
<suggest>No, do not post the comment.</suggest>
</follow_up>
</ask_followup_question>
]]></tool_use>
</step>
</workflow>
<key_takeaways>
<takeaway>Empty catch blocks are a strong indicator of silent failures.</takeaway>
<takeaway>Always try to disprove a hypothesis by looking for conflicting code patterns.</takeaway>
</key_takeaways>
</example>
</complete_examples>

View file

@ -0,0 +1,37 @@
<communication_guidelines>
<tone_and_style>
<principle>Be conversational and helpful, not robotic.</principle>
<principle>Write comments as if you are a human developer collaborating on the project.</principle>
<principle>Always start any GitHub issue comment body with "Hey @roomote-agent,".</principle>
<avoid>
<phrase>Analysis complete.</phrase>
<phrase>The investigation has yielded the following result.</phrase>
<phrase>Starting comments with "Hey," instead of "Hey @roomote-agent,".</phrase>
</avoid>
<prefer>
<phrase>Hey @roomote-agent, I took a look at this and found something interesting...</phrase>
<phrase>Hey @roomote-agent, I've been digging into this issue, and I think I've found a possible cause.</phrase>
</prefer>
</tone_and_style>
<comment_structure>
<element>Start every GitHub issue comment with "Hey @roomote-agent,".</element>
<element>State your main finding or hypothesis clearly but not definitively.</element>
<element>Provide context, like file paths and function names.</element>
<element>Propose a next step or a theoretical solution.</element>
<element>Keep it concise and easy to read. Avoid large blocks of text.</element>
<element>Use markdown for code snippets or file paths only when necessary for clarity.</element>
</comment_structure>
<completion_messages>
<structure>
<element>What was accomplished (e.g., "Investigation complete.").</element>
<element>A summary of the findings and the proposed solution.</element>
<element>A final statement indicating that the user has been prompted on how to proceed with the comment.</element>
</structure>
<avoid>
<element>Ending with a question.</element>
<element>Offers for further assistance.</element>
</avoid>
</completion_messages>
</communication_guidelines>

View file

@ -0,0 +1,391 @@
<workflow>
<mode_overview>
This mode focuses solely on assembling a template-free GitHub issue prompt for an AI coding agent.
It integrates codebase exploration to ground the prompt in reality while keeping the output non-technical.
It also captures the user-facing value/impact (who is affected, how often, and why it matters) to support prioritization, all in plain language.
</mode_overview>
<iteration_policy>
<principles>
- Codebase exploration is iterative and may repeat as many times as needed based on user-agent back-and-forth.
- Early-stop and escalate-once apply per iteration; when new info arrives, start a fresh iteration.
- One-tool-per-message is respected; narrate succinct progress and update TODOs each iteration.
</principles>
<loop_triggers>
- New details from the user (environment, steps, screenshots, constraints)
- Clarifications that change scope or target component/feature
- Discrepancies found between user claims and code
- Reclassification between Bug and Enhancement
</loop_triggers>
</iteration_policy>
<initialization>
<notes>
- Treat the user's FIRST message as the issue description; do not ask if they want to create an issue.
- Begin immediately: initialize a focused TODO list and start repository detection before discovery.
- CLI submission via gh happens only after the user confirms during the merged review/submit step.
</notes>
<update_todo_list>
<todos>
[ ] Detect repository context (OWNER/REPO, monorepo, roots)
[ ] Perform targeted codebase discovery (iteration 1)
[ ] Clarify missing details (repro or desired outcome)
[ ] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</initialization>
<steps>
<step number="1">
<name>Kickoff</name>
<instructions>
Rephrase the user's goal and outline a brief plan, then proceed without delay.
Maintain low narrative verbosity; use structured outputs for details.
</instructions>
</step>
<step number="2">
<name>Detect Current Repository Information</name>
<instructions>
Verify we're in a Git repository and capture the GitHub remote for safe submission.
1) Check if inside a git repository:
<execute_command>
<command>git rev-parse --is-inside-work-tree 2>/dev/null || echo "not-git-repo"</command>
</execute_command>
If the output is "not-git-repo", stop:
<attempt_completion>
<result>
This mode must be run from within a GitHub repository. Navigate to a git repository and try again.
</result>
</attempt_completion>
2) Get origin remote and normalize to OWNER/REPO:
<execute_command>
<command>git remote get-url origin 2>/dev/null | sed -E 's/.*[:/]([^/]+)\/([^/]+)(\.git)?$/\1\/\2/' | sed 's/\.git$//'</command>
</execute_command>
If no origin remote exists, stop:
<attempt_completion>
<result>
No GitHub 'origin' remote found. Configure a GitHub remote and retry.
</result>
</attempt_completion>
Record the normalized OWNER/REPO (e.g., owner/repo) as [OWNER_REPO] to pass via --repo during submission.
3) Combined monorepo check and roots discovery (single command):
<execute_command>
<command>set -e; if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then echo "not-git-repo"; exit 0; fi; OWNER_REPO=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[:/]([^/]+)\/([^/]+)(\.git)?$/\1\/\2/' | sed 's/\.git$//'); IS_MONO=false; [ -f package.json ] && grep -q '"workspaces"' package.json && IS_MONO=true; for f in lerna.json pnpm-workspace.yaml rush.json; do [ -f "$f" ] && IS_MONO=true; done; ROOTS="."; if [ "$IS_MONO" = true ]; then ROOTS=$(git ls-files -z | tr '\0' '\n' | grep -E '^(apps|packages|services|libs)/[^/]+/package\.json$' | sed -E 's#/package\.json$##' | sort -u | paste -sd, -); [ -z "$ROOTS" ] && ROOTS=$(find . -maxdepth 3 -name package.json -not -path "./node_modules/*" -print0 | xargs -0 -n1 dirname | grep -E '^(\.|\.\/(apps|packages|services|libs)\/[^/]+)$' | sort -u | paste -sd, -); fi; echo "OWNER_REPO=$OWNER_REPO"; echo "IS_MONOREPO=$IS_MONO"; echo "ROOTS=$ROOTS"</command>
</execute_command>
Interpretation:
- If output contains OWNER_REPO, IS_MONOREPO, and ROOTS, record them and treat Step 3 as satisfied.
- If output is "not-git-repo", stop as above.
- If IS_MONOREPO=true but ROOTS is empty, perform Step 3 to determine roots manually.
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[ ] Perform targeted codebase discovery (iteration N)
[ ] Clarify missing details (repro or desired outcome)
[ ] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
<step number="3">
<name>Determine Repository Structure (Monorepo/Standard)</name>
<instructions>
If Step 2's combined detection output includes IS_MONOREPO and ROOTS, mark this step complete and proceed to Step 4. Otherwise, use the manual process below.
Identify whether this is a monorepo and record the search root(s).
1) List top-level entries:
<list_files>
<path>.</path>
<recursive>false</recursive>
</list_files>
2) Monorepo indicators:
- package.json with "workspaces"
- lerna.json, pnpm-workspace.yaml, rush.json
- Top-level directories like apps/, packages/, services/, libs/
If monorepo is detected:
- Discover package roots by locating package.json files under these directories
- Prefer scoping searches to the package most aligned with the user's description
- Ask for package selection if ambiguous
If standard repository:
- Use repository root for searches
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[-] Perform targeted codebase discovery (iteration N)
[ ] Clarify missing details (repro or desired outcome)
[ ] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
<step number="4">
<name>Codebase-Aware Context Discovery (Iterative)</name>
<instructions>
Purpose: Understand the context of the user's description by exploring the codebase. This step is repeatable.
Discovery workflow (respect one-tool-per-message):
1) Extract keywords, component names, error phrases, and concepts from the user's message or latest reply.
2) Run semantic search:
<codebase_search>
<query>[Keywords from user's description or latest reply]</query>
</codebase_search>
3) Refine with targeted regex where helpful:
<search_files>
<path>.</path>
<regex>[exact error strings|component names|feature flags]</regex>
</search_files>
4) Read key files for verification when necessary:
<read_file>
<path>[relevant file path from search hits]</path>
</read_file>
Guidance:
- Early-stop per iteration when top hits converge (~70%) or you can name the exact feature/component involved.
- Escalate-once per iteration if signals conflict: run one refined batch, then proceed.
- Keep findings internal; do NOT include file paths, line numbers, stack traces, or diffs in the final prompt.
Iteration rules:
- After ANY new user input or clarification, return to this step with updated keywords.
- Update internal notes and TODOs to reflect the current iteration (e.g., iteration 2, 3, ...).
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[-] Perform targeted codebase discovery (iteration N)
[ ] Clarify missing details (repro or desired outcome)
[ ] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
<step number="5">
<name>Clarify Missing Details (Guided by Findings)</name>
<instructions>
Ask minimal, targeted questions grounded by what you found in code.
For Bug reports:
<ask_followup_question>
<question>Im verifying the behavior around [feature/component inferred from code]. Could you provide a minimal reproduction and quick impact details?</question>
<follow_up>
<suggest>Repro format: 1) Environment/setup 2) Steps 3) Expected 4) Actual 5) Variations (only if you tried them)</suggest>
<suggest>Impact: Who is affected and how often does this happen?</suggest>
<suggest>Cost: Approximate time or outcome cost per occurrence (optional)</suggest>
</follow_up>
</ask_followup_question>
For Enhancements:
<ask_followup_question>
<question>To capture the improvement well, what is the user goal and value in plain language?</question>
<follow_up>
<suggest>State the user goal and when it occurs</suggest>
<suggest>Describe the desired behavior conceptually (no code)</suggest>
<suggest>Value: Who benefits and what improves (speed, clarity, fewer errors, conversions)?</suggest>
</follow_up>
</ask_followup_question>
Discrepancies:
- If you found contradictions between description and code, present concrete, plain-language examples (no code) and ask for confirmation.
Loop-back:
- After receiving any answer, return to Step 4 (Discovery) with the new information and repeat as needed.
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[x] Perform targeted codebase discovery (iteration N)
[-] Clarify missing details (repro or desired outcome)
[ ] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
<step number="6">
<name>Classify Type (Provisional and Repeatable)</name>
<instructions>
Use the user's description plus verified findings to choose:
- Bug indicators: matched error strings; broken behavior in existing features; regression indicators.
- Enhancement indicators: capability absent; extension of existing feature; workflow improvement.
- Impact snapshot (optional): Severity (Blocker/High/Medium/Low) and Reach (Few/Some/Many). If uncertain, omit and proceed.
Confirm with the user if uncertain:
<ask_followup_question>
<question>Based on the behavior around [feature/component], should we frame this as a Bug or an Enhancement?</question>
<follow_up>
<suggest>Bug Report</suggest>
<suggest>Enhancement</suggest>
</follow_up>
</ask_followup_question>
Reclassification:
- If later evidence or user info changes the type, reclassify and loop back to Step 4 for a fresh discovery iteration.
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[x] Perform targeted codebase discovery (iteration N)
[x] Clarify missing details (repro or desired outcome)
[-] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
<step number="7">
<name>Assemble Issue Body</name>
<instructions>
Build a concise, non-technical issue body. Omit empty sections entirely.
Format:
```
## Type
Bug | Enhancement
## Problem / Value
[One or two sentences that capture the problem and why it matters in plain language]
## Context
[Who is affected and when it happens]
[Enhancement: desired behavior conceptually, in the user's words]
[Bug: current observed behavior in plain language]
## Reproduction (Bug only, if available)
1) Steps (each action/command)
2) Expected result
3) Actual result
4) Variations tried (include only if the user explicitly provided them)
## Constraints/Preferences
[Performance, accessibility, UX, or other considerations]
```
Rules:
- Keep non-technical; do NOT include code paths, line numbers, stack traces, or diffs.
- Ground the wording in verified behavior, but keep implementation details internal.
- Sourcing: Do not infer or fabricate reproduction details or “Variations tried.” Include them only if explicitly provided by the user; otherwise omit the line.
- Quoting fidelity: If the user lists “Variations tried,” include them faithfully (verbatim or clearly paraphrased without adding new items).
- Value framing: Ensure the “Problem / Value” explains why it matters (impact on users or outcomes) in plain language.
- Title: Produce a concise Title (≤ 80 chars) prefixed with [BUG] or [ENHANCEMENT]; when helpful, append a brief value phrase in parentheses, e.g., “(blocks new runs)”.
Iteration note:
- If new info arrives after drafting, loop back to Step 4, then update this draft accordingly.
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[x] Perform targeted codebase discovery (iteration N)
[x] Clarify missing details (repro or desired outcome)
[x] Classify type (Bug | Enhancement)
[-] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
<step number="8">
<name>Review and Submit (Single-Step)</name>
<instructions>
Present the full current issue details in a code block. Offer two submission options; any other response is treated as a change request.
<ask_followup_question>
<question>Review the current issue details. Select one of the options below or specify any changes or other workflow you would like me to perform:
```md
Title: [ISSUE_TITLE]
[ISSUE_BODY]
```</question>
<follow_up>
<suggest>Submit now</suggest>
<suggest>Submit now and assign to me</suggest>
</follow_up>
</ask_followup_question>
Responses:
- If "Submit now":
Prepare:
- Title: derive from Summary (≤ 80 chars, plain language)
- Body: the finalized issue body
Execute:
<execute_command>
<command>gh issue create --repo "[OWNER_REPO]" --title "[ISSUE_TITLE]" --body "$(printf '%s\n' "[ISSUE_BODY]")"</command>
</execute_command>
- If "Submit now and assign to me":
Execute (assignment at creation; falls back to edit if needed):
<execute_command>
<command>ISSUE_URL=$(gh issue create --repo "[OWNER_REPO]" --title "[ISSUE_TITLE]" --body "$(printf '%s\n' "[ISSUE_BODY]")" --assignee "@me") || true; if [ -z "$ISSUE_URL" ]; then ISSUE_URL=$(gh issue create --repo "[OWNER_REPO]" --title "[ISSUE_TITLE]" --body "$(printf '%s\n' "[ISSUE_BODY]")"); gh issue edit "$ISSUE_URL" --add-assignee "@me"; fi; echo "$ISSUE_URL"</command>
</execute_command>
- Any other response:
- Collect requested edits and apply them
- Loop back to Step 4 (Discovery) if new information affects context
- Re-assemble in Step 7
- Rerun this step and present the updated issue details
On success: Capture the created issue URL from stdout and complete:
<attempt_completion>
<result>
Created issue: [URL]
</result>
</attempt_completion>
On failure: Present the error succinctly and offer to retry after fixing gh setup (installation/auth). Provide the computed Title and Body inline so the user can submit manually if needed.
<update_todo_list>
<todos>
[x] Detect repository context (OWNER/REPO, monorepo, roots)
[x] Perform targeted codebase discovery (iteration N)
[x] Clarify missing details (repro or desired outcome)
[x] Classify type (Bug | Enhancement)
[x] Assemble Issue Body
[x] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
</steps>
<completion_criteria>
<criterion>Repository detection (git repo present and origin remote configured) is performed before any submission.</criterion>
<criterion>Issue is submitted via gh after choosing "Submit now" or "Submit now and assign to me", and the created issue URL is returned.</criterion>
<criterion>When "Submit now and assign to me" is chosen, the issue is assigned to the current GitHub user using --assignee "@me" (or gh issue edit fallback).</criterion>
<criterion>Submission uses Title and Body only and specifies --repo [OWNER_REPO] discovered in Step 2; no temporary files or file paths are used.</criterion>
<criterion>Language is plain and user-centric; no technical artifacts included in the issue body.</criterion>
<criterion>Content grounded by repeated codebase exploration cycles as needed.</criterion>
<criterion>Early-stop/escalate-once applied per iteration; unlimited iterations across the conversation.</criterion>
<criterion>The merged step offers "Submit now" or "Submit now and assign to me"; any other response is treated as a change request and the step is shown again with the full current issue details.</criterion>
</completion_criteria>
</workflow>

View file

@ -0,0 +1,147 @@
<best_practices>
<mode_scope>
This mode assembles a template-free issue body grounded by codebase exploration and can submit it via GitHub CLI after explicit confirmation.
Submission uses Title and Body only and targets the detected repository after the merged Review and Submit step.
</mode_scope>
<mode_behavior>
- Treat the user's FIRST message as the issue description; do not ask if they want to create an issue.
- Start with repository detection (verify git repo; resolve OWNER/REPO from origin), then determine repository structure (monorepo/standard).
- After detection, begin codebase discovery scoped to the repository root or the selected package (in monorepos).
- Keep final output non-technical; implementation details remain internal.
</mode_behavior>
<value_framing>
<principles>
- Always pair the problem with user-facing value: who is impacted, when it occurs, and why it matters.
- Keep value non-technical (clarity, time saved, fewer errors, better UX, improved accessibility, reduced confusion).
</principles>
<lightweight_impact_options>
- Severity: Blocker | High | Medium | Low (optional)
- Reach: Few | Some | Many (optional)
</lightweight_impact_options>
</value_framing>
<sourcing_and_provenance>
<direct_from_user_only>
- Reproduction steps
- Variations tried
- Environment details
</direct_from_user_only>
<inference_allowed_with_care>
- Problem/Value statement (plain-language synthesis from user wording)
- Context (who/when) based on user input; keep code-based signals internal
</inference_allowed_with_care>
<hallucination_guards>
- Never fabricate “Variations tried.” If not provided, omit.
- If critical details are missing, ask targeted questions; otherwise proceed with omissions.
</hallucination_guards>
</sourcing_and_provenance>
<cli_submission>
<confirmation>
Use a single merged "Review and Submit" step with options:
- Submit now
- Submit now and assign to me
Any other response is treated as a change request and the step is rerun after applying edits.
</confirmation>
<repo_detection>
Submission requires repository detection (git present, origin configured). Capture normalized OWNER/REPO (e.g., owner/repo) and store as [OWNER_REPO] for submission.
</repo_detection>
<target_repo>
Always specify the target using --repo "[OWNER_REPO]" to avoid ambiguity and ensure the correct repository is used.
</target_repo>
<assignment>
When "Submit now and assign to me" is chosen, create using: --assignee "@me".
If creation with --assignee fails (e.g., permissions), create the issue without an assignee and immediately run:
gh issue edit <issue-url-or-number> --add-assignee "@me".
</assignment>
<command_safety>
Use --body with robust quoting (for example: --body "$(printf '%s\n' "[ISSUE_BODY]")") or a heredoc; do not create temporary files or reference file paths. Always include --repo "[OWNER_REPO]" and echo the resulting issue URL.
In execute_command calls, output only the command string; never include XML tags, CDATA markers, code fences, or backticks in the command payload.
</command_safety>
<error_handling>
On gh errors (installation/auth), present the error and offer to retry after fixing gh setup. Surface the computed Title and Body inline
so the user can submit manually if needed.
</error_handling>
</cli_submission>
<codebase_exploration>
<principles>
- Use semantic search first to find relevant areas.
- Refine with targeted regex for exact strings (errors, component names, flags).
- Read key files to verify behavior; keep evidence internal.
- Early-stop when hits converge (~70%) or you can name the exact feature/component.
- Escalate-once if signals conflict; run one refined batch, then proceed.
</principles>
<tool_sequence>
1) codebase_search → 2) search_files → 3) read_file (as needed)
</tool_sequence>
<scoping>
In monorepos, scope searches to the selected package when the context is clear; otherwise ask for the relevant package/app if ambiguous.
</scoping>
<internal_only>
Keep language plain and exclude technical artifacts (paths, line numbers, stack traces, diffs) from the final issue body.
</internal_only>
</codebase_exploration>
<questioning>
<guidelines>
- Ask minimal, targeted questions based on what you found in code.
- For bugs: request a minimal reproduction (environment, steps, expected, actual, variations).
- For enhancements: capture user goal, desired behavior in plain language, and any constraints.
- Present discrepancies in plain language (no code) and confirm understanding.
</guidelines>
</questioning>
<issue_output_rules>
<format>
<![CDATA[
## Type
Bug | Enhancement
## Problem / Value
[One or two sentences that capture the problem and why it matters in plain language]
## Context
[Who is affected and when it happens]
[Enhancement: desired behavior conceptually, in the user's words]
[Bug: current observed behavior in plain language]
## Reproduction (Bug only, if available)
1) Steps (each action/command)
2) Expected result
3) Actual result
4) Variations tried (only if explicitly provided)
## Constraints/Preferences
[Performance, accessibility, UX, or other considerations]
]]>
</format>
<rules>
- Omit sections that would be empty.
- Do not include "Variations tried" unless explicitly provided by the user.
- Keep language plain and user-centric.
- Exclude technical artifacts (paths, lines, stacks, diffs).
</rules>
</issue_output_rules>
<review_stage_presentation>
- At each review stage, present the full current issue details (Title + Body) in a markdown code block.
- Offer "Submit now" or "Submit now and assign to me" suggestions; treat any other response as a change request and rerun the step after applying edits.
</review_stage_presentation>
<autonomy_and_budgets>
- Tool preambles: restate goal briefly, outline a short plan, narrate progress succinctly, summarize final delta.
- One-tool-per-message: await results before continuing.
- Discovery budget: default max 3 searches before escalate-once; stop when sufficient.
- Early-stop: when top hits converge or target is identifiable.
- Verbosity: low narrative; detail appears only in structured outputs.
</autonomy_and_budgets>
<communication_guidelines>
- Be direct and concise; avoid jargon in the final issue body.
- Keep questions optional and easy to answer with suggested options.
- Emphasize WHO is affected and WHEN it happens.
</communication_guidelines>
</best_practices>

View file

@ -0,0 +1,109 @@
<common_mistakes_to_avoid>
<mode_initialization_mistakes>
- Asking "What would you like to do?" at start instead of treating the first message as the issue description
- Delaying the workflow with unnecessary questions before discovery
- Not immediately beginning codebase-aware discovery (semantic search → regex refine → read key files)
- Skipping repository detection (git + origin) before discovery or submission
- Not validating repository context before gh commands
</mode_initialization_mistakes>
<scope_mistakes>
- Submitting without explicit user confirmation ("Submit now")
- Targeting the wrong repository by relying on current directory defaults; always pass --repo OWNER/REPO detected in Step 2
- Performing PR prep, complexity estimates, or technical scoping
</scope_mistakes>
<submission_mistakes>
<mistake_block>
<mistake>Splitting final review and submission into multiple steps</mistake>
<impact>Creates redundant prompts and inconsistent state; leads to janky UX</impact>
<correct_approach>Use a single merged "Review and Submit" step offering only: Submit now, Submit now and assign to me; treat any other response as a change request</correct_approach>
</mistake_block>
<mistake_block>
<mistake>Not offering "Submit now and assign to me"</mistake>
<impact>Forces manual assignment later; reduces efficiency</impact>
<correct_approach>Provide the assignment option and use gh issue create --assignee "@me"; if that fails, immediately run gh issue edit <issue-url-or-number> --add-assignee "@me"</correct_approach>
</mistake_block>
<mistake_block>
<mistake>Using temporary files or --body-file for issue body submission</mistake>
<impact>Introduces filesystem dependencies and leaks paths; contradicts single-command policy</impact>
<correct_approach>Use inline --body with robust quoting, e.g., --body "$(printf '%s\n' "[ISSUE_BODY]")"; do not reference any file paths</correct_approach>
</mistake_block>
<mistake_block>
<mistake>Omitting --repo or relying on current directory defaults</mistake>
<impact>May submit to the wrong repository in multi-repo or worktree contexts</impact>
<correct_approach>Always pass --repo [OWNER_REPO] detected in Step 2</correct_approach>
</mistake_block>
<mistake_block>
<mistake>Attempting submission without prior repository detection</mistake>
<impact>Commands may target the wrong repo or fail</impact>
<correct_approach>Detect git repo and ensure origin is configured before any gh commands</correct_approach>
</mistake_block>
</submission_mistakes>
<sourcing_mistakes>
<mistake_block>
<mistake>Inventing or inferring “Variations tried” when the user didnt provide any</mistake>
<impact>Misleads triage and wastes time reproducing non-existent attempts</impact>
<correct_approach>Omit the “Variations tried” line entirely unless explicitly provided; if needed, ask a targeted question first</correct_approach>
</mistake_block>
<mistake_block>
<mistake>Framing only the problem without the value/impact</mistake>
<impact>Makes prioritization harder; obscures who benefits and why it matters</impact>
<correct_approach>Pair the problem with a plain-language value statement (who, when, why it matters)</correct_approach>
</mistake_block>
<mistake_block>
<mistake>Overstating impact without user signal</mistake>
<impact>Damages credibility and misguides prioritization</impact>
<correct_approach>Use conservative, plain language; if unsure, omit severity/reach or ask a single targeted question</correct_approach>
</mistake_block>
</sourcing_mistakes>
<problem_reporting_mistakes>
- Vague descriptions like "doesn't work" without who/when impact
- Missing minimal reproduction for bugs (environment, steps, expected, actual, variations)
- Enhancement requests that skip the user goal or desired behavior in plain language
- Titles/summaries that don't quickly communicate the issue
</problem_reporting_mistakes>
<output_mistakes>
- Including code paths, line numbers, stack traces, or diffs in the final issue body
- Adding labels, metadata, or repository details to the body
- Leaving empty section placeholders instead of omitting the section
- Using technical jargon instead of plain, user-centric language
</output_mistakes>
<code_exploration_mistakes>
<mistake>Skipping semantic search and jumping straight to assumptions</mistake>
<impact>Leads to misclassification and inaccurate context</impact>
<correct_approach>
- Start with codebase_search on extracted keywords
- Refine with search_files for exact strings (errors, component names, flags)
- read_file only as needed to verify behavior; keep evidence internal
- Early-stop when hits converge or you can name the exact feature/component
- Escalate-once if signals conflict (one refined pass), then proceed
</correct_approach>
</code_exploration_mistakes>
<discrepancy_handling_mistakes>
<mistake>Accepting user claims that contradict the codebase without verification</mistake>
<impact>Produces misleading or incorrect issue framing</impact>
<correct_approach>
- Verify claims against the implementation; trace data from creation → usage
- Compare with similar working features to ground expectations
- If discrepancies arise, present concrete, plain-language examples (no code) and confirm
</correct_approach>
</discrepancy_handling_mistakes>
<questioning_mistakes>
- Asking broad, unfocused questions instead of targeted ones based on findings
- Demanding technical details from non-technical users
- Failing to provide easy, suggested answer formats (repro scaffold, goal statement)
</questioning_mistakes>
<consistency_mistakes>
- Mixing internal technical evidence into the final body
- Ignoring the issue format or adding extra sections
- Using inconsistent tone or switching between technical and non-technical language
</consistency_mistakes>
</common_mistakes_to_avoid>

View file

@ -0,0 +1,134 @@
<issue_examples>
<overview>
Examples of assembling template-free issue prompts grounded by codebase exploration, with optional CLI submission after explicit confirmation.
Repository detection precedes submission; review and submission occur in a single merged step offering "Submit now" or "Submit now and assign to me". Any other response is treated as a change request.
</overview>
<example name="bug_dark_theme_button_invisible">
<user_input>
In dark theme the Submit button is almost invisible on the New Run page.
</user_input>
<discovery>
<tool_calls>
<![CDATA[
<codebase_search>
<query>dark theme submit button visibility</query>
</codebase_search>
<search_files>
<path>.</path>
<regex>Submit|button|dark|theme</regex>
</search_files>
]]>
</tool_calls>
<notes>
Internal: matches found in UI components related to theme; wording grounded to user impact.
</notes>
</discovery>
<final_issue_body><![CDATA[
## Type
Bug
## Problem / Value
In dark theme, the Submit button is hard to see on the new run form, making it difficult for users to complete new runs.
## Context
Affects users creating new runs with dark theme enabled; the button appears low-contrast and is difficult to locate.
## Reproduction
1) Steps: Open "New Run" -> Scroll to bottom -> Look for Submit
2) Expected result: Clearly visible, high-contrast Submit button
3) Actual result: Button appears nearly invisible in dark theme
4) Variations tried: Different browsers (Chrome/Firefox) show same result
]]></final_issue_body>
</example>
<example name="enhancement_copy_run_confirmation">
<user_input>
I accidentally click "Copy Run" sometimes; would be great to have a simple confirmation.
</user_input>
<discovery>
<tool_calls>
<![CDATA[
<codebase_search>
<query>Copy Run confirmation</query>
</codebase_search>
]]>
</tool_calls>
<notes>
Internal: feature entry point identified; keep final output non-technical and user-centric.
</notes>
</discovery>
<final_issue_body><![CDATA[
## Type
Enhancement
## Problem / Value
Add a confirmation dialog before copying an existing run to prevent accidental duplication.
## Context
Users sometimes click "Copy Run" by mistake when browsing runs; a simple confirmation would prevent accidental duplication.
## Constraints/Preferences
Keep the flow lightweight and unobtrusive; avoid slowing down intentional copies.
]]></final_issue_body>
</example>
<example name="bug_submission_review_and_assign">
<user_input>
Dark theme Submit button is invisible; I'd like to file this.
</user_input>
<final_issue_body><![CDATA[
## Type
Bug
## Problem / Value
In dark theme, the Submit button is hard to see on the new run form, making it difficult for users to complete new runs.
## Context
Affects users creating new runs with dark theme enabled; the button appears low-contrast and is difficult to locate.
## Reproduction
1) Steps: Open "New Run" -> Scroll to bottom -> Look for Submit
2) Expected result: Clearly visible, high-contrast Submit button
3) Actual result: Button appears nearly invisible in dark theme
]]></final_issue_body>
<review_and_submit>
<ask_followup_question>
<question>Review the current issue details. Select one of the options below or specify any changes or other workflow you would like me to perform:
```md
Title: [ISSUE_TITLE]
[ISSUE_BODY]
```</question>
<follow_up>
<suggest>Submit now</suggest>
<suggest>Submit now and assign to me</suggest>
</follow_up>
</ask_followup_question>
<execute_command for="submit_now">
<command>gh issue create --repo "[OWNER_REPO]" --title "[ISSUE_TITLE]" --body "$(printf '%s\n' "[ISSUE_BODY]")"</command>
</execute_command>
<execute_command for="submit_now_and_assign_to_me">
<command>ISSUE_URL=$(gh issue create --repo "[OWNER_REPO]" --title "[ISSUE_TITLE]" --body "$(printf '%s\n' "[ISSUE_BODY]")" --assignee "@me") || true; if [ -z "$ISSUE_URL" ]; then ISSUE_URL=$(gh issue create --repo "[OWNER_REPO]" --title "[ISSUE_TITLE]" --body "$(printf '%s\n' "[ISSUE_BODY]")"); gh issue edit "$ISSUE_URL" --add-assignee "@me"; fi; echo "$ISSUE_URL"</command>
</execute_command>
<loopback_note>
If a change request is provided, collect the requested edits, update the draft (re-run discovery if new info affects context), then rerun this merged step.
</loopback_note>
<expected_output>https://github.com/OWNER/REPO/issues/123</expected_output>
</review_and_submit>
</example>
<policies>
<policy>Issues are template-free (Title + Body only).</policy>
<policy>Repository detection (git + origin → OWNER/REPO) occurs before submission and is passed explicitly via --repo [OWNER_REPO].</policy>
<policy>Never use --body-file or temporary files; submit with inline --body only (no file paths).</policy>
<policy>Review and submission happen in one merged step offering "Submit now" or "Submit now and assign to me"; any other response is treated as a change request.</policy>
<policy>All discovery is internal; keep final output plain-language.</policy>
</policies>
</issue_examples>

View file

@ -0,0 +1,157 @@
<merge_resolver_workflow>
<mode_overview>
This mode resolves merge conflicts for a specific pull request by analyzing git history,
commit messages, and code changes to make intelligent resolution decisions. It receives
a PR number (e.g., "#123") and handles the entire conflict resolution process.
</mode_overview>
<initialization_steps>
<step number="1">
<action>Parse PR number from user input</action>
<details>
Extract the PR number from input like "#123" or "PR #123"
Validate that a PR number was provided
</details>
</step>
<step number="2">
<action>Fetch PR information</action>
<tools>
<tool>gh pr view [PR_NUMBER] --json title,body,headRefName,baseRefName</tool>
</tools>
<details>
Get PR title and description to understand the intent
Identify the source and target branches
</details>
</step>
<step number="3">
<action>Checkout PR branch and prepare for rebase</action>
<tools>
<tool>gh pr checkout [PR_NUMBER] --force</tool>
<tool>git fetch origin main</tool>
<tool>GIT_EDITOR=true git rebase origin/main</tool>
</tools>
<details>
Force checkout the PR branch to ensure clean state
Fetch the latest main branch
Attempt to rebase onto main to reveal conflicts
Use GIT_EDITOR=true to ensure non-interactive rebase
</details>
</step>
<step number="4">
<action>Check for merge conflicts</action>
<tools>
<tool>git status --porcelain</tool>
<tool>git diff --name-only --diff-filter=U</tool>
</tools>
<details>
Identify files with merge conflicts (marked with 'UU')
Create a list of files that need resolution
</details>
</step>
</initialization_steps>
<main_workflow>
<phase name="conflict_analysis">
<description>Analyze each conflicted file to understand the changes</description>
<steps>
<step>Read the conflicted file to identify conflict markers</step>
<step>Extract the conflicting sections between <<<<<<< and >>>>>>></step>
<step>Run git blame on both sides of the conflict</step>
<step>Fetch commit messages and diffs for relevant commits</step>
<step>Analyze the intent behind each change</step>
</steps>
</phase>
<phase name="resolution_strategy">
<description>Determine the best resolution strategy for each conflict</description>
<steps>
<step>Categorize changes by intent (bugfix, feature, refactor, etc.)</step>
<step>Evaluate recency and relevance of changes</step>
<step>Check for structural overlap vs formatting differences</step>
<step>Identify if changes can be combined or if one should override</step>
<step>Consider test updates and related changes</step>
</steps>
</phase>
<phase name="conflict_resolution">
<description>Apply the resolution strategy to resolve conflicts</description>
<steps>
<step>For each conflict, apply the chosen resolution</step>
<step>Ensure proper escaping of conflict markers in diffs</step>
<step>Validate that resolved code is syntactically correct</step>
<step>Stage resolved files with git add</step>
</steps>
</phase>
<phase name="validation">
<description>Verify the resolution and prepare for commit</description>
<steps>
<step>Run git status to confirm all conflicts are resolved</step>
<step>Check for any compilation or syntax errors</step>
<step>Review the final diff to ensure sensible resolutions</step>
<step>Prepare a summary of resolution decisions</step>
</steps>
</phase>
</main_workflow>
<git_commands>
<command name="checkout_pr">
<syntax>gh pr checkout [PR_NUMBER] --force</syntax>
<purpose>Force checkout the PR branch to ensure clean state</purpose>
</command>
<command name="fetch_main">
<syntax>git fetch origin main</syntax>
<purpose>Get the latest main branch from origin</purpose>
</command>
<command name="rebase_main">
<syntax>GIT_EDITOR=true git rebase origin/main</syntax>
<purpose>Rebase current branch onto main to reveal conflicts (non-interactive)</purpose>
</command>
<command name="get_blame_info">
<syntax>git blame -L [start_line],[end_line] [commit_sha] -- [file_path]</syntax>
<purpose>Get commit information for specific lines</purpose>
</command>
<command name="get_commit_details">
<syntax>git show --format="%H%n%an%n%ae%n%ad%n%s%n%b" --no-patch [commit_sha]</syntax>
<purpose>Get commit metadata including message</purpose>
</command>
<command name="get_commit_diff">
<syntax>git show [commit_sha] -- [file_path]</syntax>
<purpose>Get the actual changes made in a commit</purpose>
</command>
<command name="check_merge_status">
<syntax>git ls-files -u</syntax>
<purpose>List unmerged files with stage information</purpose>
</command>
</git_commands>
<command name="continue_rebase">
<syntax>GIT_EDITOR=true git rebase --continue</syntax>
<purpose>Continue rebase after resolving conflicts (non-interactive)</purpose>
</command>
</git_commands>
<environment_variables>
<variable name="GIT_EDITOR">
<value>true</value>
<purpose>Set to 'true' (a no-op command) to prevent interactive prompts during rebase operations</purpose>
<usage>Prefix git rebase commands with GIT_EDITOR=true to ensure non-interactive execution</usage>
</variable>
</environment_variables>
<completion_criteria>
<criterion>All merge conflicts have been resolved</criterion>
<criterion>Resolved files have been staged</criterion>
<criterion>No syntax errors in resolved code</criterion>
<criterion>Resolution decisions are documented</criterion>
</completion_criteria>
</merge_resolver_workflow>

View file

@ -0,0 +1,165 @@
<merge_resolver_best_practices>
<general_principles>
<principle priority="high">
<name>Intent-Based Resolution</name>
<description>
Always prioritize understanding the intent behind changes rather than
just looking at the code differences. Commit messages, PR descriptions,
and issue references provide crucial context.
</description>
<rationale>
Code changes have purpose - bugfixes should be preserved, features
should be integrated properly, and refactors should maintain consistency.
</rationale>
<example>
<scenario>Conflict between a bugfix and a refactor</scenario>
<good>Apply the bugfix logic within the refactored structure</good>
<bad>Simply choose one side without considering both intents</bad>
</example>
</principle>
<principle priority="high">
<name>Preserve All Valuable Changes</name>
<description>
When possible, combine non-conflicting changes from both sides rather
than discarding one side entirely.
</description>
<rationale>
Both sides of a conflict often contain valuable changes that can coexist
if properly integrated.
</rationale>
</principle>
<principle priority="high">
<name>Escape Conflict Markers</name>
<description>
When using apply_diff, always escape merge
conflict markers with backslashes to prevent parsing errors.
</description>
<example><![CDATA[
Correct: \<<<<<<< HEAD
Wrong: <<<<<<< HEAD
]]></example>
</principle>
<principle priority="medium">
<name>Consider Related Changes</name>
<description>
Look beyond the immediate conflict to understand related changes in
tests, documentation, or dependent code.
</description>
<rationale>
A change might seem isolated but could be part of a larger feature
or fix that spans multiple files.
</rationale>
</principle>
</general_principles>
<resolution_heuristics>
<heuristic category="bugfix_vs_feature">
<rule>Bugfixes generally take precedence over features</rule>
<reasoning>
Bugfixes address existing problems and should be preserved,
while features can be reintegrated around the fix.
</reasoning>
</heuristic>
<heuristic category="recent_vs_old">
<rule>More recent changes are often more relevant</rule>
<reasoning>
Recent changes likely reflect the current understanding of
requirements and may supersede older implementations.
</reasoning>
<exception>
When older changes are bugfixes or security patches that
haven't been addressed in newer code.
</exception>
</heuristic>
<heuristic category="test_updates">
<rule>Changes that include test updates are likely more complete</rule>
<reasoning>
Developers who update tests alongside code changes demonstrate
thoroughness and understanding of the impact.
</reasoning>
</heuristic>
<heuristic category="formatting_vs_logic">
<rule>Logic changes take precedence over formatting changes</rule>
<reasoning>
Formatting can be reapplied, but logic changes represent
functional improvements or fixes.
</reasoning>
</heuristic>
</resolution_heuristics>
<common_pitfalls>
<pitfall>
<description>Blindly choosing one side without analysis</description>
<why_problematic>
You might lose important changes or introduce regressions
</why_problematic>
<correct_approach>
Always analyze both sides using git blame and commit history
</correct_approach>
</pitfall>
<pitfall>
<description>Ignoring the PR description and context</description>
<why_problematic>
The PR description often explains the why behind changes,
which is crucial for proper resolution
</why_problematic>
<correct_approach>
Always fetch and read the PR information before resolving
</correct_approach>
</pitfall>
<pitfall>
<description>Not validating the resolved code</description>
<why_problematic>
Merged code might be syntactically incorrect or introduce
logical errors
</why_problematic>
<correct_approach>
Always check for syntax errors and review the final diff
</correct_approach>
</pitfall>
<pitfall>
<description>Not escaping conflict markers in diffs</description>
<why_problematic>
Unescaped conflict markers (<<<<<<, =======, >>>>>>) in SEARCH
or REPLACE sections will be interpreted as actual diff syntax,
causing the apply_diff tool to fail or produce incorrect results
</why_problematic>
<correct_approach>
Always escape conflict markers with a backslash (\) when they
appear in the content you're searching for or replacing.
Example: \<<<<<<< HEAD instead of <<<<<<< HEAD
</correct_approach>
</pitfall>
</common_pitfalls>
<quality_checklist>
<category name="before_resolution">
<item>Fetch PR title and description for context</item>
<item>Identify all files with conflicts</item>
<item>Understand the overall change being merged</item>
</category>
<category name="during_resolution">
<item>Run git blame on conflicting sections</item>
<item>Read commit messages for intent</item>
<item>Consider if changes can be combined</item>
<item>Escape conflict markers in diffs</item>
</category>
<category name="after_resolution">
<item>Verify no conflict markers remain</item>
<item>Check for syntax/compilation errors</item>
<item>Review the complete diff</item>
<item>Document resolution decisions</item>
</category>
</quality_checklist>
</merge_resolver_best_practices>

View file

@ -0,0 +1,258 @@
<merge_resolver_tool_usage>
<tool_priorities>
<priority level="1">
<tool>execute_command</tool>
<when>For all git and gh CLI operations</when>
<why>Git commands provide the historical context needed for intelligent resolution</why>
</priority>
<priority level="2">
<tool>read_file</tool>
<when>To examine conflicted files and understand the conflict structure</when>
<why>Need to see the actual conflict markers and code</why>
</priority>
<priority level="3">
<tool>apply_diff</tool>
<when>To resolve conflicts by replacing conflicted sections</when>
<why>Precise editing of specific conflict blocks</why>
</priority>
</tool_priorities>
<tool_specific_guidance>
<tool name="execute_command">
<best_practices>
<practice>Always use gh CLI for GitHub operations instead of MCP tools</practice>
<practice>Chain git commands with && for efficiency</practice>
<practice>Use --format options for structured output</practice>
<practice>Capture command output for parsing</practice>
<practice>Use GIT_EDITOR=true for non-interactive git rebase operations</practice>
<practice>Set environment variables inline to avoid prompts during automation</practice>
</best_practices>
<common_commands>
<command>
<purpose>Get PR information</purpose>
<syntax>gh pr view [PR_NUMBER] --json title,body,headRefName,baseRefName</syntax>
</command>
<command>
<purpose>Checkout PR branch</purpose>
<syntax>gh pr checkout [PR_NUMBER] --force</syntax>
</command>
<command>
<purpose>Fetch latest main branch</purpose>
<syntax>git fetch origin main</syntax>
</command>
<command>
<purpose>Rebase onto main to reveal conflicts</purpose>
<syntax>GIT_EDITOR=true git rebase origin/main</syntax>
</command>
<command>
<purpose>Check conflict status</purpose>
<syntax>git status --porcelain | grep "^UU"</syntax>
</command>
<command>
<purpose>Get blame for specific lines</purpose>
<syntax>git blame -L [start],[end] HEAD -- [file] | cut -d' ' -f1</syntax>
</command>
<command>
<purpose>Get commit message</purpose>
<syntax>git log -1 --format="%s%n%n%b" [commit_sha]</syntax>
</command>
<command>
<purpose>Stage resolved file</purpose>
<syntax>git add [file_path]</syntax>
</command>
<command>
<purpose>Continue rebase after resolution</purpose>
<syntax>GIT_EDITOR=true git rebase --continue</syntax>
</command>
</common_commands>
</tool>
<tool name="read_file">
<best_practices>
<practice>Read the entire conflicted file first to understand structure</practice>
<practice>Note line numbers of conflict markers for precise editing</practice>
<practice>Identify the pattern of conflicts (multiple vs single)</practice>
</best_practices>
<conflict_parsing>
<marker><<<<<<< HEAD - Start of current branch changes</marker>
<marker>======= - Separator between versions</marker>
<marker>>>>>>>> [branch] - End of incoming changes</marker>
</conflict_parsing>
</tool>
<tool name="apply_diff">
<best_practices>
<practice>Always escape conflict markers with backslash</practice>
<practice>Include enough context to ensure unique matches</practice>
<practice>Use :start_line: for precision</practice>
<practice>Combine multiple resolutions in one diff when possible</practice>
</best_practices>
<example><![CDATA[
<apply_diff>
<path>src/feature.ts</path>
<diff>
<<<<<<< SEARCH
:start_line:45
-------
\<<<<<<< HEAD
function oldImplementation() {
return "old";
}
\=======
function newImplementation() {
return "new";
}
\>>>>>>> feature-branch
=======
function mergedImplementation() {
// Combining both approaches
return "merged";
}
>>>>>>> REPLACE
</diff>
</apply_diff>
]]></example>
</tool>
</tool_specific_guidance>
<tool_combination_patterns>
<pattern name="initialize_pr_resolution">
<sequence>
<step>execute_command - Get PR info with gh CLI</step>
<step>execute_command - Checkout PR with gh pr checkout --force</step>
<step>execute_command - Fetch origin main</step>
<step>execute_command - Rebase onto origin/main with GIT_EDITOR=true</step>
<step>execute_command - Check for conflicts with git status</step>
</sequence>
</pattern>
<pattern name="analyze_conflict">
<sequence>
<step>execute_command - List conflicted files</step>
<step>read_file - Examine conflict structure</step>
<step>execute_command - Git blame on conflict regions</step>
<step>execute_command - Fetch commit messages</step>
</sequence>
</pattern>
<pattern name="resolve_conflict">
<sequence>
<step>read_file - Get exact conflict content</step>
<step>apply_diff - Replace conflict with resolution</step>
<step>execute_command - Stage resolved file</step>
<step>execute_command - Verify resolution status</step>
</sequence>
</pattern>
<pattern name="complete_rebase">
<sequence>
<step>execute_command - Check all conflicts resolved</step>
<step>execute_command - Continue rebase with GIT_EDITOR=true git rebase --continue</step>
<step>execute_command - Verify clean status</step>
</sequence>
</pattern>
</tool_combination_patterns>
<error_handling>
<scenario name="interactive_prompt_blocking">
<description>Git commands waiting for interactive input</description>
<approach>
Use GIT_EDITOR=true to bypass editor prompts
Set GIT_SEQUENCE_EDITOR=true for sequence editing
Consider --no-edit flag for commit operations
</approach>
</scenario>
<scenario name="no_conflicts_after_rebase">
<description>Rebase completes without conflicts</description>
<approach>
Inform user that PR can be merged without conflicts
No resolution needed
</approach>
</scenario>
<scenario name="rebase_in_progress">
<description>A rebase is already in progress</description>
<approach>
Check status with git status
Either continue existing rebase or abort with git rebase --abort
</approach>
</scenario>
<scenario name="malformed_conflicts">
<description>Conflict markers are incomplete or nested</description>
<approach>
Use apply_diff with precise search blocks; split into multiple targeted edits if needed
Manual inspection may be required
</approach>
</scenario>
<scenario name="binary_conflicts">
<description>Binary files cannot be merged automatically</description>
<approach>
Identify which version to keep based on PR intent
Use git checkout --theirs or --ours
</approach>
</scenario>
<scenario name="escaped_markers">
<description>Code contains literal conflict marker strings</description>
<approach>
Extra careful escaping in diffs
Prefer apply_diff with precise search blocks
</approach>
</scenario>
</error_handling>
<non_interactive_operations>
<overview>
Ensuring git operations run without requiring user interaction is critical
for automated conflict resolution. The mode uses environment variables to
bypass interactive prompts.
</overview>
<techniques>
<technique name="GIT_EDITOR">
<description>Set to 'true' (a no-op command) to skip editor prompts</description>
<usage>GIT_EDITOR=true git rebase --continue</usage>
<when>During rebase operations that would normally open an editor</when>
</technique>
<technique name="GIT_SEQUENCE_EDITOR">
<description>Skip interactive rebase todo editing</description>
<usage>GIT_SEQUENCE_EDITOR=true git rebase -i HEAD~3</usage>
<when>When interactive rebase is triggered but no editing needed</when>
</technique>
<technique name="commit_flags">
<description>Use flags to avoid interactive prompts</description>
<examples>
<example>git commit --no-edit (use existing message)</example>
<example>git merge --no-edit (skip merge message editing)</example>
<example>git cherry-pick --no-edit (keep original message)</example>
</examples>
</technique>
</techniques>
<best_practices>
<practice>Always test commands locally first to identify potential prompts</practice>
<practice>Combine environment variables when multiple editors might be invoked</practice>
<practice>Document why non-interactive mode is used in comments</practice>
<practice>Have fallback strategies if automation fails</practice>
</best_practices>
</non_interactive_operations>
</merge_resolver_tool_usage>

View file

@ -0,0 +1,316 @@
<merge_resolver_example>
<scenario>
User provides PR #123 which has merge conflicts between a bugfix branch
and a feature branch that refactored the same code.
</scenario>
<user_request>
#123
</user_request>
<workflow>
<step number="1">
<description>Parse PR number and fetch PR information</description>
<tool_use><![CDATA[
<execute_command>
<command>gh pr view 123 --json title,body,headRefName,baseRefName</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
{
"title": "Fix memory leak in data processor",
"body": "This PR fixes a memory leak that occurs when processing large datasets. The leak was caused by event listeners not being properly removed.",
"headRefName": "fix/memory-leak",
"baseRefName": "main"
}
]]></expected_output>
<analysis>
The PR is a bugfix for a memory leak issue. This context will help
prioritize preserving the fix during conflict resolution.
</analysis>
</step>
<step number="2">
<description>Checkout PR branch and prepare for rebase</description>
<tool_use><![CDATA[
<execute_command>
<command>gh pr checkout 123 --force</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
Switched to branch 'fix/memory-leak'
Your branch is up to date with 'origin/fix/memory-leak'.
]]></expected_output>
<tool_use><![CDATA[
<execute_command>
<command>git fetch origin main</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
From github.com:user/repo
* branch main -> FETCH_HEAD
]]></expected_output>
<tool_use><![CDATA[
<execute_command>
<command>GIT_EDITOR=true git rebase origin/main</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
Auto-merging src/data/processor.ts
CONFLICT (content): Merge conflict in src/data/processor.ts
Auto-merging src/data/processor.test.ts
CONFLICT (content): Merge conflict in src/data/processor.test.ts
error: could not apply abc123... Fix memory leak in data processor
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
]]></expected_output>
</step>
<step number="3">
<description>Check for merge conflicts</description>
<tool_use><![CDATA[
<execute_command>
<command>git status --porcelain | grep "^UU"</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
UU src/data/processor.ts
UU src/data/processor.test.ts
]]></expected_output>
<analysis>
Two files have conflicts: the main processor file and its test file.
Both need to be resolved before continuing the rebase.
</analysis>
</step>
<step number="4">
<description>Examine the conflicted processor file</description>
<tool_use><![CDATA[
<read_file>
<path>src/data/processor.ts</path>
</read_file>
]]></tool_use>
<expected_output><![CDATA[
45 | export class DataProcessor {
46 | private listeners: Map<string, EventListener> = new Map();
47 |
48 | <<<<<<< HEAD
49 | async processData(data: DataInput): Promise<ProcessedData> {
50 | // Refactored to use async/await
51 | const result = await this.transform(data);
52 | return result;
53 | }
54 | =======
55 | processData(data: any[]): ProcessedData {
56 | const listener = this.createListener();
57 | this.listeners.set(data.id, listener);
58 |
59 | return this.transform(data);
60 | }
61 | >>>>>>> abc123 (Fix memory leak in data processor)
62 |
63 | cleanup() {
64 | <<<<<<< HEAD
65 | // TODO: Implement cleanup
66 | =======
67 | // Fix: Clear all listeners to prevent memory leak
68 | this.listeners.forEach(listener => {
69 | listener.removeAllListeners();
70 | });
71 | this.listeners.clear();
72 | >>>>>>> abc123 (Fix memory leak in data processor)
73 | }
74 | }
]]></expected_output>
</step>
<step number="5">
<description>Analyze the conflicts using git blame</description>
<tool_use><![CDATA[
<execute_command>
<command>git blame -L 49,53 HEAD -- src/data/processor.ts | cut -d' ' -f1 | sort -u | xargs -I {} git log -1 --format="%h %s" {}</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
def456 Refactor: Convert processData to async/await pattern
]]></expected_output>
<tool_use><![CDATA[
<execute_command>
<command>git log -1 --format="%h %s" abc123</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
abc123 Fix: Add listener cleanup to prevent memory leak
]]></expected_output>
<analysis>
HEAD (main after rebase): Has async/await refactor but missing listener logic
Incoming (bugfix branch): Adds listener tracking and cleanup for memory leak fix
Resolution strategy: Combine both changes - keep async/await refactor
but include the listener tracking and cleanup logic.
</analysis>
</step>
<step number="6">
<description>Resolve the conflicts</description>
<tool_use><![CDATA[
<apply_diff>
<path>src/data/processor.ts</path>
<diff>
<<<<<<< SEARCH
:start_line:48
-------
\<<<<<<< HEAD
async processData(data: DataInput): Promise<ProcessedData> {
// Refactored to use async/await
const result = await this.transform(data);
return result;
}
\=======
processData(data: any[]): ProcessedData {
const listener = this.createListener();
this.listeners.set(data.id, listener);
return this.transform(data);
}
\>>>>>>> abc123 (Fix memory leak in data processor)
=======
async processData(data: DataInput): Promise<ProcessedData> {
// Create and track listener for cleanup (memory leak fix)
const listener = this.createListener();
this.listeners.set(data.id, listener);
// Refactored to use async/await
const result = await this.transform(data);
return result;
}
>>>>>>> REPLACE
<<<<<<< SEARCH
:start_line:63
-------
cleanup() {
\<<<<<<< HEAD
// TODO: Implement cleanup
\=======
// Fix: Clear all listeners to prevent memory leak
this.listeners.forEach(listener => {
listener.removeAllListeners();
});
this.listeners.clear();
\>>>>>>> abc123 (Fix memory leak in data processor)
}
=======
cleanup() {
// Fix: Clear all listeners to prevent memory leak
this.listeners.forEach(listener => {
listener.removeAllListeners();
});
this.listeners.clear();
}
>>>>>>> REPLACE
</diff>
</apply_diff>
]]></tool_use>
<explanation>
Combined both changes: kept the async/await refactor from main
while preserving the memory leak fix (listener tracking and cleanup)
from the bugfix branch.
</explanation>
</step>
<step number="7">
<description>Resolve test file conflicts</description>
<tool_use><![CDATA[
<read_file>
<path>src/data/processor.test.ts</path>
</read_file>
]]></tool_use>
<!-- Similar process for test file -->
<tool_use><![CDATA[
<apply_diff>
<path>src/data/processor.test.ts</path>
<diff>
<!-- Test resolution would go here -->
</diff>
</apply_diff>
]]></tool_use>
</step>
<step number="8">
<description>Stage resolved files and continue rebase</description>
<tool_use><![CDATA[
<execute_command>
<command>git add src/data/processor.ts src/data/processor.test.ts</command>
</execute_command>
]]></tool_use>
<tool_use><![CDATA[
<execute_command>
<command>GIT_EDITOR=true git rebase --continue</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
[detached HEAD def789] Fix memory leak in data processor
2 files changed, 12 insertions(+), 2 deletions(-)
Successfully rebased and updated refs/heads/fix/memory-leak.
]]></expected_output>
</step>
<step number="9">
<description>Final validation</description>
<tool_use><![CDATA[
<execute_command>
<command>git status</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
On branch fix/memory-leak
Your branch is ahead of 'origin/fix/memory-leak' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
]]></expected_output>
<tool_use><![CDATA[
<execute_command>
<command>git diff origin/main --stat</command>
</execute_command>
]]></tool_use>
<expected_output><![CDATA[
src/data/processor.ts | 8 ++++++--
src/data/processor.test.ts | 4 ++--
2 files changed, 8 insertions(+), 4 deletions(-)
]]></expected_output>
</step>
</workflow>
<completion><![CDATA[
<attempt_completion>
<result>
Successfully resolved merge conflicts for PR #123 "Fix memory leak in data processor".
Resolution Summary:
- src/data/processor.ts: Combined the async/await refactor with the memory leak fix by preserving listener tracking and cleanup logic within the refactored async method
- src/data/processor.test.ts: Updated tests to work with the async implementation while maintaining memory leak test coverage
Both the feature refactor and the critical bugfix have been preserved in the resolution. The rebase has been completed successfully and the branch is ready to be pushed.
</result>
</attempt_completion>
]]></completion>
<key_takeaways>
<takeaway>Always checkout PR with --force and rebase to reveal conflicts</takeaway>
<takeaway>Fetch PR context to understand the intent of changes</takeaway>
<takeaway>Use git blame and commit messages to understand the history</takeaway>
<takeaway>Combine non-conflicting improvements when possible</takeaway>
<takeaway>Prioritize bugfixes while accommodating refactors</takeaway>
<takeaway>Use GIT_EDITOR=true to ensure non-interactive rebase operations</takeaway>
<takeaway>Complete the rebase process with GIT_EDITOR=true git rebase --continue</takeaway>
<takeaway>Validate that both sets of changes work together</takeaway>
</key_takeaways>
</merge_resolver_example>

View file

@ -0,0 +1,153 @@
<merge_resolver_communication>
<tone_and_style>
<principle>Be direct and technical when explaining resolution decisions</principle>
<principle>Focus on the rationale behind each conflict resolution</principle>
<principle>Provide clear summaries of what was merged and why</principle>
<avoid>
<phrase>I'll help you resolve these conflicts...</phrase>
<phrase>Let me handle this for you...</phrase>
<phrase>Don't worry about the conflicts...</phrase>
</avoid>
<prefer>
<phrase>Analyzing PR #123 for merge conflicts...</phrase>
<phrase>Resolving conflicts based on commit history analysis...</phrase>
<phrase>Applied resolution strategy: [specific strategy]</phrase>
</prefer>
</tone_and_style>
<initial_response>
<structure>
<element>Acknowledge the PR number</element>
<element>State that you're fetching PR information</element>
<element>Indicate the analysis will begin</element>
</structure>
<example>
Fetching information for PR #123 to understand the context and identify merge conflicts...
</example>
</initial_response>
<progress_updates>
<when>During each major phase of resolution</when>
<format>
<update>Analyzing [X] conflicted files...</update>
<update>Running git blame on [file] to understand change history...</update>
<update>Resolving conflicts in [file] by [strategy]...</update>
<update>Validating resolved changes...</update>
</format>
<include_details>
<detail>Number of conflicts found</detail>
<detail>Files being processed</detail>
<detail>Resolution strategy being applied</detail>
</include_details>
</progress_updates>
<conflict_explanations>
<guideline>Explain each significant resolution decision</guideline>
<guideline>Reference specific commits when relevant</guideline>
<guideline>Justify why certain changes were kept or merged</guideline>
<format>
<explanation>
Conflict in [file]:
- HEAD: [brief description of changes]
- Incoming: [brief description of changes]
- Resolution: [what was decided and why]
</explanation>
</format>
</conflict_explanations>
<error_handling>
<scenario name="no_pr_number">
<response>
Expected a PR number (e.g., "#123" or "123"). Please provide the PR number to resolve conflicts for.
</response>
</scenario>
<scenario name="no_conflicts">
<response>
PR #[number] does not have any merge conflicts. The branch can be merged without conflict resolution.
</response>
</scenario>
<scenario name="pr_not_found">
<response>
Could not find PR #[number]. Please verify the PR number and ensure you have access to the repository.
</response>
</scenario>
<scenario name="complex_conflicts">
<response>
Found complex conflicts in [file] that require careful analysis. Examining commit history to determine the best resolution strategy...
</response>
</scenario>
</error_handling>
<completion_messages>
<structure>
<element>State that conflicts are resolved</element>
<element>Provide resolution summary</element>
<element>List files that were resolved</element>
<element>Mention key decisions made</element>
</structure>
<template><![CDATA[
Successfully resolved merge conflicts for PR #[number] "[title]".
Resolution Summary:
- [file1]: [brief description of resolution]
- [file2]: [brief description of resolution]
[Key decision explanation if applicable]
All conflicts have been resolved and files have been staged for commit.
]]></template>
<avoid>
<element>Questions about next steps</element>
<element>Offers to do additional work</element>
<element>Uncertain language about the resolution</element>
</avoid>
</completion_messages>
<decision_documentation>
<principle>Document why specific resolutions were chosen</principle>
<principle>Reference commit SHAs when they influenced decisions</principle>
<principle>Explain trade-offs when both sides had valid changes</principle>
<examples>
<example>
Preserved bugfix from commit abc123 while adapting it to the refactored structure from def456
</example>
<example>
Combined both implementations as they addressed different aspects of the same feature
</example>
<example>
Chose the more recent implementation as it included additional error handling
</example>
</examples>
</decision_documentation>
<special_cases>
<case name="binary_files">
<message>
Binary file conflict in [file]. Based on PR intent "[title]", choosing [which version] version.
</message>
</case>
<case name="deleted_vs_modified">
<message>
Conflict: [file] was deleted in one branch but modified in another. Based on the changes, [keeping/removing] the file because [reason].
</message>
</case>
<case name="whitespace_only">
<message>
Conflict in [file] involves only whitespace/formatting. Applying consistent formatting from [which] branch.
</message>
</case>
</special_cases>
</merge_resolver_communication>

View file

@ -0,0 +1,75 @@
<workflow_instructions>
<mode_overview>
This mode is designed to help resolve issues in existing pull requests. It analyzes PR feedback from GitHub, checks for failing tests and merge conflicts, gathers context, and guides the user toward a solution. All GitHub operations are performed using the GitHub CLI.
</mode_overview>
<initialization_steps>
<step number="1">
<action>Understand the user's request</action>
<details>
Parse the user's input to identify the pull request URL or number. Extract the repository owner and name.
</details>
</step>
<step number="2">
<action>Gather PR context</action>
<tools>
<tool>gh pr view [PR_NUMBER] --repo [owner]/[repo] --json number,title,author,state,body,url,headRefName,baseRefName,files,additions,deletions,changedFiles,comments,reviews</tool>
<tool>gh pr checks [PR_NUMBER] --repo [owner]/[repo] - Check workflow status for failing tests</tool>
<tool>gh pr view [PR_NUMBER] --repo [owner]/[repo] --json mergeable,mergeStateStatus - Check for merge conflicts</tool>
</tools>
</step>
</initialization_steps>
<main_workflow>
<phase name="analysis">
<description>Analyze the gathered information to identify the core problems.</description>
<steps>
<step>Summarize review comments and requested changes from gh pr view output.</step>
<step>Identify the root cause of failing tests by analyzing workflow logs with 'gh run view'.</step>
<step>Determine if merge conflicts exist from mergeable status.</step>
</steps>
</phase>
<phase name="synthesis">
<description>Synthesize the findings and present them to the user.</description>
<steps>
<step>Present a summary of the issues found (reviews, failing tests, conflicts).</step>
<step>Use ask_followup_question to ask the user how they want to proceed with fixing the issues.</step>
</steps>
</phase>
<phase name="implementation">
<description>Execute the user's chosen course of action.</description>
<steps>
<step>Check out the PR branch locally using 'gh pr checkout [PR_NUMBER] --repo [owner]/[repo] --force'.</step>
<step>Determine if the PR is from a fork by checking 'gh pr view [PR_NUMBER] --repo [owner]/[repo] --json isCrossRepository'.</step>
<step>Apply code changes based on review feedback using file editing tools.</step>
<step>Fix failing tests by modifying test files or source code as needed.</step>
<step>For conflict resolution: Delegate to merge-resolver mode using new_task with the PR number.</step>
<step>If changes affect user-facing content (i18n files, UI components, announcements), delegate translation updates using the new_task tool with translate mode.</step>
<step>Review modified files with 'git status --porcelain' to ensure no temporary files are included.</step>
<step>Stage files selectively using 'git add -u' (for modified tracked files) or 'git add <specific-files>' (for new files).</step>
<step>Verify staged files with 'git diff --cached --name-only' before committing.</step>
<step>Commit changes using git commands with descriptive messages.</step>
<step>Push changes to the correct remote (origin for same-repo PRs, fork remote for cross-repo PRs) using 'git push --force-with-lease'.</step>
</steps>
</phase>
<phase name="validation">
<description>Verify that the pushed changes resolve the issues.</description>
<steps>
<step>Use 'gh pr checks [PR_NUMBER] --repo [owner]/[repo] --watch' to monitor check status in real-time until all checks complete.</step>
<step>If needed, check specific workflow runs with 'gh run list --pr [PR_NUMBER] --repo [owner]/[repo]' for detailed CI/CD pipeline status.</step>
<step>Verify that all translation updates (if any) have been completed and committed.</step>
<step>Confirm PR is ready for review by checking mergeable state with 'gh pr view [PR_NUMBER] --repo [owner]/[repo] --json mergeable,mergeStateStatus'.</step>
</steps>
</phase>
</main_workflow>
<completion_criteria>
<criterion>All actionable review comments have been addressed.</criterion>
<criterion>All tests are passing.</criterion>
<criterion>The PR is free of merge conflicts.</criterion>
<criterion>All required translations have been completed and committed (if changes affect user-facing content).</criterion>
</completion_criteria>
</workflow_instructions>

View file

@ -0,0 +1,75 @@
<best_practices>
<general_principles>
<principle priority="high">
<name>Context is Key</name>
<description>Always gather full context before attempting a fix. This includes reading all relevant PR comments, checking CI/CD logs, and understanding the surrounding code.</description>
<rationale>Without full context, fixes may be incomplete or introduce new issues.</rationale>
</principle>
<principle priority="medium">
<name>Incremental Fixes</name>
<description>Address issues one at a time (e.g., fix tests first, then address comments). This makes the process more manageable and easier to validate.</description>
<rationale>Tackling all issues at once can be complex and error-prone.</rationale>
</principle>
<principle priority="high">
<name>Handle Fork Remotes Correctly</name>
<description>Always check if a PR comes from a fork (cross-repository) before pushing changes. Use 'gh pr view --json isCrossRepository' to determine the correct remote.</description>
<rationale>Pushing to the wrong remote (e.g., origin instead of fork) will fail for cross-repository PRs.</rationale>
<example>
<scenario>PR from a fork</scenario>
<good>Check isCrossRepository, add fork remote if needed, push to fork</good>
<bad>Always push to origin without checking PR source</bad>
</example>
</principle>
<principle priority="high">
<name>Safe File Staging</name>
<description>Always review files before staging to avoid committing temporary files, build artifacts, or system files. Use selective git commands that respect .gitignore.</description>
<rationale>Committing unwanted files can expose sensitive data, clutter the repository, and cause CI/CD failures.</rationale>
<example>
<scenario>Staging files for commit</scenario>
<good>Use 'git add -u' to stage only modified tracked files, or explicitly list files to add</good>
<bad>Use 'git add .' which stages everything including temp files</bad>
</example>
<checklist>
<item>Review git status before staging</item>
<item>Check for temporary files (.swp, .DS_Store, *.tmp)</item>
<item>Exclude build artifacts (dist/, build/, *.pyc)</item>
<item>Avoid IDE-specific files (.idea/, .vscode/)</item>
<item>Verify .gitignore is properly configured</item>
</checklist>
</principle>
</general_principles>
<code_conventions>
<convention category="merge_conflicts">
<rule>Delegate merge conflict resolution to the merge-resolver mode.</rule>
<template>
When merge conflicts are detected, do not attempt to resolve them manually. Instead, use the new_task tool to create a task for the merge-resolver mode:
```xml
<new_task>
<mode>merge-resolver</mode>
<message>#[PR_NUMBER]</message>
</new_task>
```
The merge-resolver mode will:
- Checkout the PR branch
- Perform the rebase
- Intelligently resolve conflicts based on commit history and intent
- Push the resolved changes
- Return control back to pr-fixer mode
This ensures consistent and intelligent conflict resolution across all PRs.
</template>
</convention>
</code_conventions>
<quality_checklist>
<category name="before_completion">
<item>Have all review comments been addressed?</item>
<item>Are all CI/CD checks passing?</item>
<item>Is the PR free of merge conflicts?</item>
<item>Have the changes been tested locally?</item>
</category>
</quality_checklist>
</best_practices>

View file

@ -0,0 +1,136 @@
<common_patterns>
<pattern name="checking_pr_status">
<usage>A set of commands to quickly assess the state of a Pull Request.</usage>
<template>
<command tool="gh">
gh pr status --json number,title,state,conflict,reviewDecision,headRefName,headRepositoryOwner
</command>
<command tool="gh">
gh pr checks
</command>
<command tool="gh">
gh pr view --comments
</command>
</template>
</pattern>
<pattern name="analyzing_failing_tests">
<usage>Commands to investigate why a specific test is failing.</usage>
<template>
<command tool="gh">
gh run list --workflow=<workflow_id> --branch=<branch_name> --json databaseId,name,status,conclusion
</command>
<command tool="gh">
gh run view --log-failed <run_id>
</command>
</template>
</pattern>
<pattern name="detecting_conflicts">
<usage>Commands to detect merge conflicts.</usage>
<template>
<comment>Check PR mergeable status</comment>
<command tool="gh">gh pr view <pr_number> --json mergeable,mergeStateStatus</command>
<comment>If mergeable is false or mergeStateStatus is CONFLICTING, delegate to merge-resolver</comment>
</template>
</pattern>
<pattern name="delegating_conflict_resolution">
<usage>Delegate merge conflict resolution to the merge-resolver mode.</usage>
<template>
<comment>When conflicts are detected, create a new task for merge-resolver</comment>
<command tool="new_task"><![CDATA[
<new_task>
<mode>merge-resolver</mode>
<message>#<pr_number></message>
</new_task>
]]></command>
<comment>Wait for merge-resolver to complete before continuing with other fixes</comment>
</template>
</pattern>
<pattern name="checking_out_pr">
<usage>Check out a pull request branch locally.</usage>
<template>
<command tool="gh">gh pr checkout <pr_number_or_url> --force</command>
<comment>Alternative if gh checkout fails:</comment>
<command tool="git">git fetch origin pull/<pr_number>/head:<branch_name> && git checkout <branch_name></command>
</template>
</pattern>
<pattern name="determine_push_remote">
<usage>Determine the correct remote to push to (handles forks).</usage>
<template>
<comment>Get PR metadata to check if it's from a fork</comment>
<command tool="gh">gh pr view <pr_number> --json headRepositoryOwner,headRefName,isCrossRepository</command>
<comment>If isCrossRepository is true, it's from a fork</comment>
<command tool="git">git remote -v</command>
<comment>Check if fork remote exists, otherwise add it</comment>
<command tool="git">git remote add fork https://github.com/<fork_owner>/<repo_name>.git</command>
<comment>Use appropriate remote based on PR source</comment>
</template>
</pattern>
<pattern name="real_time_monitoring">
<usage>Monitor PR checks in real-time as they run.</usage>
<template>
<command tool="gh">gh pr checks <pr_number> --watch</command>
<comment>Continuously monitor check status with automatic updates</comment>
<alternative>For one-time status check: gh pr checks <pr_number> --json state,conclusion,name,detailsUrl</alternative>
<command tool="gh">gh run list --pr <pr_number> --json databaseId,status,conclusion</command>
</template>
</pattern>
<pattern name="safe_push_operations">
<usage>Push operations that handle both origin and fork remotes correctly.</usage>
<template>
<comment>First determine the correct remote (origin or fork)</comment>
<command tool="gh">gh pr view <pr_number> --json headRepositoryOwner,headRefName,isCrossRepository</command>
<comment>If isCrossRepository is false, push to origin</comment>
<command tool="git">git push --force-with-lease origin <branch_name></command>
<comment>If isCrossRepository is true, push to fork remote</comment>
<command tool="git">git push --force-with-lease fork <branch_name></command>
<comment>If force-with-lease fails, fetch and retry</comment>
<command tool="git">git fetch <remote> <branch_name></command>
<command tool="git">git push --force <remote> <branch_name></command>
</template>
</pattern>
<pattern name="automated_commit_operations">
<usage>Commit operations that work in automated environments while respecting .gitignore.</usage>
<template>
<comment>Review what files have been modified</comment>
<command tool="git">git status --porcelain</command>
<comment>Add only tracked files that were modified (respects .gitignore)</comment>
<command tool="git">git add -u</command>
<comment>If you need to add specific new files, list them explicitly</comment>
<command tool="git">git add <specific_file_path></command>
<command tool="git">git commit -m "<commit_message>"</command>
</template>
</pattern>
<pattern name="safe_file_staging">
<usage>Safely stage files for commit while avoiding temporary files and respecting .gitignore.</usage>
<template>
<comment>First, check what files are currently modified or untracked</comment>
<command tool="git">git status --porcelain</command>
<comment>Review the output to identify files that should NOT be committed:</comment>
<comment>- Files starting with . (hidden files like .DS_Store, .swp)</comment>
<comment>- Build artifacts (dist/, build/, *.pyc, *.o)</comment>
<comment>- IDE files (.idea/, .vscode/, *.iml)</comment>
<comment>- Temporary files (*.tmp, *.temp, *~)</comment>
<comment>Option 1: Stage only modified tracked files (safest)</comment>
<command tool="git">git add -u</command>
<comment>Option 2: Stage specific files by path</comment>
<command tool="git">git add src/file1.ts src/file2.ts</command>
<comment>Option 3: Use pathspec to add files matching a pattern</comment>
<command tool="git">git add '*.ts' '*.tsx' --</command>
<comment>Option 4: Interactive staging to review each change</comment>
<command tool="git">git add -p</command>
<comment>Always verify what's staged before committing</comment>
<command tool="git">git diff --cached --name-only</command>
</template>
</pattern>
</common_patterns>

View file

@ -0,0 +1,156 @@
<tool_usage_guide>
<tool_priorities>
<priority level="1">
<tool>gh pr view</tool>
<when>Use at the start to get all review comments and PR metadata.</when>
<why>Provides the core context of what needs to be fixed from a human perspective.</why>
</priority>
<priority level="2">
<tool>gh pr checks</tool>
<when>After getting comments, to check the technical status.</when>
<why>Quickly identifies if there are failing automated checks that need investigation.</why>
</priority>
<priority level="3">
<tool>new_task (mode: translate)</tool>
<when>When changes affect user-facing content, i18n files, or UI components that require translation.</when>
<why>Ensures translation consistency across all supported languages when PR fixes involve user-facing changes.</why>
</priority>
<priority level="4">
<tool>gh pr checks --watch</tool>
<when>After pushing a fix, to confirm that the changes have resolved the CI/CD failures.</when>
<why>Provides real-time feedback on whether the fix was successful.</why>
</priority>
</tool_priorities>
<tool_specific_guidance>
<tool name="gh pr view">
<best_practices>
<practice>Always fetch details with --json to get structured data: gh pr view [PR_NUMBER] --repo [owner]/[repo] --json number,title,author,state,body,url,headRefName,baseRefName,files,additions,deletions,changedFiles,comments,reviews,mergeable,mergeStateStatus,isCrossRepository</practice>
<practice>Parse the JSON output to extract branch name, owner, repo slug, and mergeable state.</practice>
</best_practices>
</tool>
<tool name="gh pr comments">
<best_practices>
<practice>Use gh pr view --json comments to get all comments in structured format.</practice>
<practice>Parse all comments to create a checklist of required changes.</practice>
<practice>Ignore comments that are not actionable or have been resolved.</practice>
</best_practices>
</tool>
<tool name="gh run view --log-failed">
<best_practices>
<practice>Use this command to get the exact error messages from failing tests.</practice>
<practice>Search the log for keywords like 'error', 'failed', or 'exception' to quickly find the root cause.</practice>
<practice>Always specify run ID explicitly to avoid interactive selection prompts: gh run view [RUN_ID] --log-failed</practice>
<practice>Get run IDs with: gh run list --pr [PR_NUMBER] --repo [owner]/[repo]</practice>
</best_practices>
</tool>
<tool name="gh pr checkout">
<best_practices>
<practice>Use --force flag: 'gh pr checkout [PR_NUMBER] --repo [owner]/[repo] --force'</practice>
<practice>If gh checkout fails, use: git fetch origin pull/[PR_NUMBER]/head:[branch_name]</practice>
</best_practices>
</tool>
<tool name="git operations">
<best_practices>
<practice>Use --force-with-lease for safer force pushing.</practice>
<practice>Use GIT_EDITOR=true to prevent interactive prompts during rebases.</practice>
<practice>Always determine the correct remote before pushing (origin vs fork).</practice>
</best_practices>
<remote_handling>
<step>Check if PR is from a fork: 'gh pr view [PR_NUMBER] --repo [owner]/[repo] --json isCrossRepository'</step>
<step>If isCrossRepository is true, add fork remote if needed</step>
<step>Push to appropriate remote: 'git push --force-with-lease [remote] [branch]'</step>
</remote_handling>
<conflict_resolution>
<step>Delegate to merge-resolver mode using new_task</step>
<step>Provide the PR number (e.g., "#123") as the message</step>
<step>The merge-resolver mode will handle all conflict resolution automatically</step>
</conflict_resolution>
</tool>
<tool name="gh pr checks">
<best_practices>
<practice>Use --watch flag to monitor checks in real-time: 'gh pr checks [PR_NUMBER] --repo [owner]/[repo] --watch'</practice>
<practice>For one-time status checks, use --json flag: 'gh pr checks [PR_NUMBER] --repo [owner]/[repo] --json state,conclusion,name'</practice>
<practice>The --watch flag automatically updates the display as check statuses change.</practice>
<practice>Use 'gh run list --pr [PR_NUMBER] --repo [owner]/[repo]' to get detailed workflow status if needed.</practice>
</best_practices>
</tool>
<tool name="ask_followup_question">
<best_practices>
<practice>After analyzing all the problems (reviews, tests, conflicts), present a summary to the user.</practice>
<practice>Provide clear, actionable next steps as suggestions.</practice>
<practice>Example suggestions: "Address review comments first.", "Tackle the failing tests.", "Resolve merge conflicts."</practice>
</best_practices>
</tool>
<tool name="new_task (mode: translate)">
<best_practices>
<practice>Use when PR fixes involve changes to user-facing strings, i18n files, or UI components.</practice>
<practice>Provide specific details about what content needs translation in the message.</practice>
<practice>Include file paths and descriptions of the changes made.</practice>
<practice>List all affected languages that need updates.</practice>
<practice>Wait for translation completion before proceeding to validation phase.</practice>
</best_practices>
<when_to_use>
<trigger>Changes to webview-ui/src/i18n/locales/en/*.json files</trigger>
<trigger>Changes to src/i18n/locales/en/*.json files</trigger>
<trigger>Modifications to UI components with user-facing text</trigger>
<trigger>Updates to announcement files or documentation requiring localization</trigger>
<trigger>Addition of new error messages or user notifications</trigger>
</when_to_use>
<example_usage><![CDATA[
<new_task>
<mode>translate</mode>
<message>Translation updates needed for PR #1234 fixes. Please translate the following changes:
Files modified:
- webview-ui/src/i18n/locales/en/common.json: Added new error message "connection_failed"
- webview-ui/src/components/settings/ApiSettings.tsx: Updated button text from "Save" to "Save Configuration"
Please ensure all supported languages (ca, de, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW) are updated with appropriate translations for these changes.</message>
</new_task>
]]></example_usage>
</tool>
<tool name="new_task (mode: merge-resolver)">
<best_practices>
<practice>Use when PR has merge conflicts that need to be resolved.</practice>
<practice>Simply provide the PR number (e.g., "#123") as the message.</practice>
<practice>The merge-resolver mode will handle checkout, rebase, conflict resolution, and pushing.</practice>
<practice>Wait for merge-resolver to complete before continuing with other PR fixes.</practice>
</best_practices>
<when_to_use>
<trigger>When gh pr view shows mergeable: false or mergeStateStatus: CONFLICTING</trigger>
<trigger>When git rebase fails with conflicts</trigger>
<trigger>When git status shows unmerged paths</trigger>
</when_to_use>
<example_usage><![CDATA[
<new_task>
<mode>merge-resolver</mode>
<message>#1234</message>
</new_task>
]]></example_usage>
</tool>
</tool_specific_guidance>
<github_cli_reference>
<command_group name="pr_operations">
<command>gh pr view [PR_NUMBER] --repo [owner]/[repo] --json [fields]</command>
<command>gh pr checkout [PR_NUMBER] --repo [owner]/[repo] --force</command>
<command>gh pr checks [PR_NUMBER] --repo [owner]/[repo] [--watch|--json]</command>
<command>gh pr comment [PR_NUMBER] --repo [owner]/[repo] --body "[text]"</command>
</command_group>
<command_group name="workflow_operations">
<command>gh run list --pr [PR_NUMBER] --repo [owner]/[repo]</command>
<command>gh run view [RUN_ID] --repo [owner]/[repo] --log-failed</command>
<command>gh workflow view [WORKFLOW_NAME] --repo [owner]/[repo]</command>
</command_group>
</github_cli_reference>
</tool_usage_guide>

View file

@ -0,0 +1,304 @@
<complete_examples>
<example name="fix_failing_tests_and_address_comments">
<scenario>
A pull request has a failing CI check and a review comment asking for a change.
</scenario>
<user_request>
Fix PR #4365 in RooCodeInc/Roo-Code.
</user_request>
<workflow>
<step number="1">
<description>Get PR details and review comments.</description>
<tool_use>
<execute_command>
<command>gh pr view 4365 --repo RooCodeInc/Roo-Code --json number,title,author,state,body,url,headRefName,baseRefName,files,additions,deletions,changedFiles,comments,reviews,mergeable,mergeStateStatus</command>
</execute_command>
</tool_use>
<expected_outcome>Get the branch name, list of review comments, and check for mergeability.</expected_outcome>
</step>
<step number="2">
<description>Check CI status.</description>
<tool_use>
<execute_command>
<command>gh pr checks 4365 --repo RooCodeInc/Roo-Code</command>
</execute_command>
</tool_use>
<analysis>Identify which check is failing.</analysis>
</step>
<step number="3">
<description>Get logs for the failing check.</description>
<tool_use>
<execute_command>
<command>gh run list --pr 4365 --repo RooCodeInc/Roo-Code</command>
</execute_command>
</tool_use>
<analysis>Get the run ID of the failing workflow.</analysis>
</step>
<step number="3a">
<description>View the failed logs.</description>
<tool_use>
<execute_command>
<command>gh run view [run_id] --repo RooCodeInc/Roo-Code --log-failed</command>
</execute_command>
</tool_use>
<analysis>Find the specific error message causing the test to fail.</analysis>
</step>
<step number="4">
<description>Check out the pull request branch.</description>
<tool_use>
<execute_command>
<command>gh pr checkout 4365 --repo RooCodeInc/Roo-Code --force</command>
</execute_command>
</tool_use>
<analysis>The PR branch is now ready for local edits.</analysis>
</step>
<step number="5">
<description>Summarize findings and ask the user for the next action.</description>
<tool_use>
<ask_followup_question>
<question>I've checked out the branch. I've found a failing test related to 'XYZ' and a review comment asking to rename a variable. How should we proceed?</question>
<follow_up>
<suggest>First, apply the change requested in the review comment.</suggest>
<suggest>Let's start by fixing the failing test.</suggest>
<suggest>Show me the code for the failing test and the file with the requested change.</suggest>
</follow_up>
</ask_followup_question>
</tool_use>
</step>
<step number="6">
<description>After pushing the changes, monitor PR checks in real-time.</description>
<tool_use>
<execute_command>
<command>gh pr checks 4365 --repo RooCodeInc/Roo-Code --watch</command>
</execute_command>
</tool_use>
<analysis>Monitor checks continuously until all complete. The --watch flag provides real-time updates as check statuses change.</analysis>
</step>
</workflow>
<key_takeaways>
<takeaway>Always gather all information before proposing a solution.</takeaway>
<takeaway>Use the GitHub CLI to get a complete picture of the PR's status.</takeaway>
<takeaway>The --watch flag on gh pr checks provides real-time monitoring of CI status.</takeaway>
</key_takeaways>
</example>
<example name="fix_pr_with_translation_requirements">
<scenario>
A pull request has review comments requesting UI text changes that require translation updates across all supported languages.
</scenario>
<user_request>
Fix PR #1234 in RooCodeInc/Roo-Code - the reviewer asked to change button text and there are some failing tests.
</user_request>
<workflow>
<step number="1">
<description>Get PR details and analyze changes.</description>
<tool_use>
<execute_command>
<command>gh pr view 1234 --repo RooCodeInc/Roo-Code --json number,title,author,state,body,url,headRefName,baseRefName,files,additions,deletions,changedFiles,comments,reviews</command>
</execute_command>
</tool_use>
<expected_outcome>Identify the files changed and review feedback requiring UI text modifications.</expected_outcome>
</step>
<step number="2">
<description>Check out PR and apply the requested changes.</description>
<tool_use>
<execute_command>
<command>gh pr checkout 1234 --repo RooCodeInc/Roo-Code --force</command>
</execute_command>
</tool_use>
<analysis>Make the requested button text changes in the UI components.</analysis>
</step>
<step number="3">
<description>Identify translation requirements and delegate to translate mode.</description>
<tool_use>
<new_task>
<mode>translate</mode>
<message>Translation updates needed for PR #1234 fixes. The following changes were made based on review feedback:
Files modified:
- webview-ui/src/components/settings/ApiSettings.tsx: Changed button text from "Save" to "Save Configuration"
- webview-ui/src/i18n/locales/en/common.json: Updated key "save_button" to "save_config_button"
Please update all supported languages (ca, de, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW) with appropriate translations for:
- New key "save_config_button" with translation equivalent to "Save Configuration"
- Any other text changes that affect user-facing content
Ensure consistency across all language files and maintain the same context and tone as existing translations.</message>
</new_task>
</tool_use>
<expected_outcome>Translation subtask created and all language files updated.</expected_outcome>
</step>
<step number="4">
<description>Review and commit changes including translations.</description>
<tool_use>
<execute_command>
<command>git status --porcelain</command>
</execute_command>
</tool_use>
<analysis>Review the list of modified files to ensure only intended changes are present.</analysis>
</step>
<step number="4a">
<description>Stage only the intended files for commit.</description>
<tool_use>
<execute_command>
<command>git add -u && git commit -m "fix: update button text and translations as requested in review"</command>
</execute_command>
</tool_use>
<analysis>Using 'git add -u' stages only modified tracked files, avoiding any temporary files.</analysis>
</step>
<step number="5">
<description>Check if PR is from a fork and push to correct remote.</description>
<tool_use>
<execute_command>
<command>gh pr view 1234 --repo RooCodeInc/Roo-Code --json isCrossRepository,headRepositoryOwner,headRefName</command>
</execute_command>
</tool_use>
<analysis>Determine if this is a cross-repository PR to know which remote to push to.</analysis>
</step>
<step number="6">
<description>Push changes to the appropriate remote.</description>
<tool_use>
<execute_command>
<command>git push --force-with-lease origin [branch_name]</command>
</execute_command>
</tool_use>
<analysis>Push changes safely to update the pull request. Use 'fork' remote instead if PR is from a fork.</analysis>
</step>
<step number="7">
<description>Monitor CI status in real-time.</description>
<tool_use>
<execute_command>
<command>gh pr checks 1234 --repo RooCodeInc/Roo-Code --watch</command>
</execute_command>
</tool_use>
<analysis>Watch CI checks continuously until all tests pass. The --watch flag provides automatic updates as check statuses change.</analysis>
</step>
</workflow>
<key_takeaways>
<takeaway>Always check if PR fixes involve user-facing content that requires translation.</takeaway>
<takeaway>Use new_task with translate mode to ensure consistent translation updates.</takeaway>
<takeaway>Include detailed context about what changed and why in translation requests.</takeaway>
<takeaway>Verify translation completeness before considering the PR fix complete.</takeaway>
<takeaway>Use gh pr view --json to get structured data about PR properties.</takeaway>
</key_takeaways>
</example>
<example name="fix_pr_with_merge_conflicts">
<scenario>
A pull request has merge conflicts that need to be resolved before other fixes can be applied.
</scenario>
<user_request>
Fix PR #5678 in RooCodeInc/Roo-Code - it has merge conflicts and failing tests.
</user_request>
<workflow>
<step number="1">
<description>Get PR details and check merge status.</description>
<tool_use>
<execute_command>
<command>gh pr view 5678 --repo RooCodeInc/Roo-Code --json number,title,author,state,body,url,headRefName,baseRefName,mergeable,mergeStateStatus</command>
</execute_command>
</tool_use>
<expected_outcome>Identify that mergeable is false and mergeStateStatus is CONFLICTING.</expected_outcome>
</step>
<step number="2">
<description>Delegate merge conflict resolution to merge-resolver mode.</description>
<tool_use>
<new_task>
<mode>merge-resolver</mode>
<message>#5678</message>
</new_task>
</tool_use>
<expected_outcome>The merge-resolver mode will handle checkout, rebase, conflict resolution, and pushing the resolved changes.</expected_outcome>
</step>
<step number="3">
<description>After merge-resolver completes, check PR status again.</description>
<tool_use>
<execute_command>
<command>gh pr view 5678 --repo RooCodeInc/Roo-Code --json mergeable,mergeStateStatus</command>
</execute_command>
</tool_use>
<analysis>Verify that the PR is now mergeable after conflict resolution.</analysis>
</step>
<step number="4">
<description>Check CI status for any remaining failures.</description>
<tool_use>
<execute_command>
<command>gh pr checks 5678 --repo RooCodeInc/Roo-Code</command>
</execute_command>
</tool_use>
<analysis>Identify any tests that are still failing after the merge conflict resolution.</analysis>
</step>
<step number="5">
<description>If tests are still failing, proceed with fixing them.</description>
<tool_use>
<execute_command>
<command>gh pr checkout 5678 --repo RooCodeInc/Roo-Code --force</command>
</execute_command>
</tool_use>
<analysis>Now that conflicts are resolved, we can focus on fixing the failing tests.</analysis>
</step>
<step number="6">
<description>Apply test fixes and push changes.</description>
<tool_use>
<execute_command>
<command>git add -u && git commit -m "fix: resolve failing tests after merge conflict resolution"</command>
</execute_command>
</tool_use>
<analysis>Commit the test fixes separately from the merge conflict resolution.</analysis>
</step>
<step number="7">
<description>Push changes and monitor CI status.</description>
<tool_use>
<execute_command>
<command>git push --force-with-lease origin [branch_name]</command>
</execute_command>
</tool_use>
<analysis>Push the test fixes to update the PR.</analysis>
</step>
<step number="8">
<description>Monitor CI checks in real-time.</description>
<tool_use>
<execute_command>
<command>gh pr checks 5678 --repo RooCodeInc/Roo-Code --watch</command>
</execute_command>
</tool_use>
<analysis>Watch CI checks continuously until all tests pass.</analysis>
</step>
</workflow>
<key_takeaways>
<takeaway>Always check for merge conflicts before attempting other fixes.</takeaway>
<takeaway>Delegate merge conflict resolution to the specialized merge-resolver mode.</takeaway>
<takeaway>The merge-resolver mode handles the entire conflict resolution workflow including pushing.</takeaway>
<takeaway>After conflict resolution, continue with other PR fixes like failing tests.</takeaway>
<takeaway>Keep conflict resolution commits separate from other fix commits for clarity.</takeaway>
</key_takeaways>
</example>
</complete_examples>

View file

@ -0,0 +1,106 @@
# 1. SUPPORTED LANGUAGES AND LOCATION
- Localize all strings into the following locale files: ca, de, en, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW
- The VSCode extension has two main areas that require localization:
- Core Extension: src/i18n/locales/ (extension backend)
- WebView UI: webview-ui/src/i18n/locales/ (user interface)
# 2. VOICE, STYLE AND TONE
- Always use informal speech (e.g., "du" instead of "Sie" in German) for all translations
- Maintain a direct and concise style that mirrors the tone of the original text
- Carefully account for colloquialisms and idiomatic expressions in both source and target languages
- Aim for culturally relevant and meaningful translations rather than literal translations
- Preserve the personality and voice of the original content
- Use natural-sounding language that feels native to speakers of the target language
- Don't translate the word "token" as it means something specific in English that all languages will understand
- Don't translate domain-specific words (especially technical terms like "Prompt") that are commonly used in English in the target language
# 3. CORE EXTENSION LOCALIZATION (src/)
- Located in src/i18n/locales/
- NOT ALL strings in core source need internationalization - only user-facing messages
- Internal error messages, debugging logs, and developer-facing messages should remain in English
- The t() function is used with namespaces like 'core:errors.missingToolParameter'
- Be careful when modifying interpolation variables; they must remain consistent across all translations
- Some strings in formatResponse.ts are intentionally not internationalized since they're internal
- When updating strings in core.json, maintain all existing interpolation variables
- Check string usages in the codebase before making changes to ensure you're not breaking functionality
# 4. WEBVIEW UI LOCALIZATION (webview-ui/src/)
- Located in webview-ui/src/i18n/locales/
- Uses standard React i18next patterns with the useTranslation hook
- All user interface strings should be internationalized
- Always use the Trans component with named components for text with embedded components
<Trans> example:
`"changeSettings": "You can always change this at the bottom of the <settingsLink>settings</settingsLink>",`
```
<Trans
i18nKey="welcome:telemetry.changeSettings"
components={{
settingsLink: <VSCodeLink href="#" onClick={handleOpenSettings} />
}}
/>
```
# 5. TECHNICAL IMPLEMENTATION
- Use namespaces to organize translations logically
- Handle pluralization using i18next's built-in capabilities
- Implement proper interpolation for variables using {{variable}} syntax
- Don't include defaultValue. The `en` translations are the fallback
- Always use apply_diff instead of write_to_file when editing existing translation files (much faster and more reliable)
- When using apply_diff, carefully identify the exact JSON structure to edit to avoid syntax errors
- Placeholders (like {{variable}}) must remain exactly identical to the English source to maintain code integration and prevent syntax errors
# 6. WORKFLOW AND APPROACH
- First add or modify English strings, then ask for confirmation before translating to all other languages
- 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
- Flag or comment if an English source string is incomplete ("please see this...") to avoid truncated or unclear translations
- For UI elements, distinguish between:
- Button labels: Use short imperative commands ("Save", "Cancel")
- Tooltip text: Can be slightly more descriptive
- 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
# 7. COMMON PITFALLS TO AVOID
- Switching between formal and informal addressing styles - always stay informal ("du" not "Sie")
- Translating or altering technical terms and brand names that should remain in English
- Modifying or removing placeholders like {{variable}} - these must remain identical
- Translating domain-specific terms that are commonly used in English in the target language
- Changing the meaning or nuance of instructions or error messages
- Forgetting to maintain consistent terminology throughout the translation
# 8. QUALITY ASSURANCE
- Maintain consistent terminology across all translations
- Respect the JSON structure of translation files
- Watch for placeholders and preserve them in translations
- Be mindful of text length in UI elements when translating to languages that might require more characters
- Use context-aware translations when the same string has different meanings
- Always validate your translation work by running the missing translations script:
```
node scripts/find-missing-translations.js
```
- Address any missing translations identified by the script to ensure complete coverage across all locales
# 9. TRANSLATOR'S CHECKLIST
- ✓ Used informal tone consistently ("du" not "Sie")
- ✓ Preserved all placeholders exactly as in the English source
- ✓ Maintained consistent terminology with existing translations
- ✓ Kept technical terms and brand names unchanged where appropriate
- ✓ Preserved the original perspective (user→system vs system→user)
- ✓ Adapted the text appropriately for UI context (buttons vs tooltips)

View file

@ -0,0 +1,14 @@
# German (de) Translation Guidelines
**Key Rule:** Always use informal speech ("du" form) in all German translations without exception.
## Quick Reference
| Category | Formal (Avoid) | Informal (Use) | Example |
| ----------- | ------------------------- | ------------------- | ----------------- |
| Pronouns | Sie | du | you |
| Possessives | Ihr/Ihre/Ihrem | dein/deine/deinem | your |
| Verbs | können Sie, müssen Sie | kannst du, musst du | you can, you must |
| Imperatives | Geben Sie ein, Wählen Sie | Gib ein, Wähle | Enter, Choose |
**Technical terms** like "API", "token", "prompt" should not be translated.

View file

@ -0,0 +1,277 @@
# Simplified Chinese (zh-CN) Translation Guidelines
## Key Terminology
| English Term | Preferred (zh-CN) | Avoid | Context/Notes |
| --------------------- | ----------------- | ------------ | ------------- |
| API Cost | API 费用 | API 成本 | 财务相关术语 |
| Tokens | Token | Tokens/令牌 | 保留抽象术语 |
| Token Usage | Token 使用量 | Token 用量 | 技术计量单位 |
| Cache | 缓存 | 高速缓存 | 简洁优先 |
| Context | 上下文 | | 保留抽象术语 |
| Context Menu | 右键菜单 | 上下文菜单 | 技术术语准确 |
| Context Window | 上下文窗口 | | 技术术语准确 |
| Proceed While Running | 强制继续 | 运行时继续 | 操作命令 |
| Enhance Prompt | 增强提示词 | 优化提示 | AI相关功能 |
| Auto-approve | 自动批准 | 始终批准 | 权限相关术语 |
| Checkpoint | 存档点 | 检查点/快照 | 技术概念统一 |
| MCP Server | MCP 服务 | MCP 服务器 | 技术组件 |
| Network Timeout | 请求超时 | 网络超时 | 更准确描述 |
| Terminal | 终端 | 命令行 | 技术术语统一 |
| diff | 差异更新 | 差分/补丁 | 代码变更 |
| prompt caching | 提示词缓存 | 提示缓存 | AI功能 |
| computer use | 计算机交互 | 计算机使用 | 技术能力 |
| rate limit | API 请求频率限制 | 速率限制 | API控制 |
| Browser Session | 浏览器会话 | 浏览器进程 | 技术概念 |
| Run Command | 运行命令 | 执行命令 | 操作动词 |
| power steering mode | 增强导向模式 | 动力转向模式 | 避免直译 |
| Boomerang Tasks | 任务拆分 | 回旋镖任务 | 避免直译 |
## Formatting Rules
1. **中英文混排**
- 添加空格:在中文和英文/数字之间添加空格,如"API 费用"(不是"API费用"
- 单位格式:时间单位统一为"15秒"、"1分钟"(不是"15 seconds"、"1 minute"
- 数字范围:"已使用: {{used}} / {{total}}"
- 技术符号保留原样:"{{amount}} tokens"→"{{amount}}"
2. **标点符号**
- 使用中文全角标点
- 列表项使用中文顿号:"创建、编辑文件"
3. **UI文本优化**
- 按钮文本:使用简洁动词,如"展开"优于"查看更多"
- 操作说明使用步骤式说明1. 2. 3.)替代长段落
- 错误提示:使用"确认删除?此操作不可逆"替代"Are you sure...?"
- 操作说明要简洁:"Shift+拖拽文件"优于长描述
- 按钮文本控制在2-4个汉字"展开"优于"查看更多"
4. **技术描述**
- 保留英文缩写:如"MCP"不翻译
- 统一术语:整个系统中相同概念使用相同译法
- 长句拆分为短句
- 被动语态转为主动语态
- 功能名称统一:"计算机交互"优于"计算机使用"
- 参数说明:"差异更新"优于"差分/补丁"
5. **变量占位符**
- 保持原格式:`{{variable}}`
- 中文说明放在变量外:"Token 使用量: {{used}}"
## UI Element Translation Standards
1. **按钮(Buttons)**
- 确认类:确定/取消/应用/保存
- 操作类:添加/删除/编辑/导出
- 状态类:启用/禁用/展开/收起
- 长度限制2-4个汉字
2. **菜单(Menus)**
- 主菜单:文件/编辑/视图/帮助
- 子菜单:使用">"连接,如"文件>打开"
- 快捷键:保留英文,如"Ctrl+S"
3. **标签(Labels)**
- 设置项:描述功能,如"自动保存间隔"
- 状态提示:简洁明确,如"正在处理..."
- 单位说明:放在括号内,如"超时时间(秒)"
4. **工具提示(Tooltips)**
- 功能说明:简洁描述,如"复制选中内容"
- 操作指引:步骤明确,如"双击编辑单元格"
- 长度限制不超过50个汉字
5. **对话框(Dialogs)**
- 标题:说明对话框用途
- 正文:分段落说明
- 按钮:使用动词,如"确认删除"
## Contextual Translation Principles
1. **根据UI位置调整**
- 按钮文本:简洁动词 (如"展开", "收起")
- 设置项:描述性 (如"自动批准写入操作")
- 帮助文本:完整说明 (如"开启后自动创建任务存档点,方便回溯修改")
2. **技术文档风格**
- 使用主动语态:如"自动创建和编辑文件"
- 避免口语化表达
- 复杂功能使用分点说明
- 说明操作结果:如"无需二次确认"
- 参数说明清晰:如"延迟一段时间再自动批准写入"
3. **品牌/产品名称**
- 保留英文品牌名
- 技术术语保持一致性
- 保留英文专有名词:如"Amazon Bedrock ARN"
4. **用户操作**
- 操作动词统一:
- "Click"→"点击"
- "Type"→"输入"
- "Scroll"→"滚动"
- 按钮状态:
- "Enabled"→"已启用"
- "Disabled"→"已禁用"
## Technical Documentation Guidelines
1. **技术术语**
- 统一使用"Token"而非"令牌"
- 保留英文专有名词:如"Model Context Protocol"
- 功能名称统一:如"计算机功能调用"优于"计算机使用"
2. **API文档**
- 端点(Endpoint):保留原始路径
- 参数说明:表格形式展示
- 示例:保留代码格式
- 参数标签:
- 单位明确:如"最大输出 Token 数"
- 范围说明完整:如"模型可以处理的总 Token 数"
3. **代码相关翻译**
- 代码注释:
- 保留技术术语:如"// Initialize MCP client"
- 简短说明:如"检查文件是否存在"
- 错误信息:
- 包含错误代码:如"Error 404: 文件未找到"
- 提供解决方案:如"请检查文件权限"
- 命令行:
- 保留原生命令:如"git commit -m 'message'"
- 参数说明:如"-v: 显示详细输出"
4. **配置指南**
- 设置项命名:如"Enable prompt caching"→"启用提示词缓存"
- 价格描述:
- 单位统一:如"每百万 Token 的成本"
- 说明影响:如"这会影响生成内容和补全的成本"
- 操作说明:
- 使用编号步骤:如"1. 注册Google Cloud账号"
- 步骤动词一致:如"安装配置Google Cloud CLI工具"
## Common Patterns
```markdown
<<<<<<< BEFORE
"dragFiles": "按住shift拖动文件"
=======
"dragFiles": "Shift+拖拽文件"
> > > > > > > AFTER
<<<<<<< BEFORE
"description": "启用后Roo 将能够与 MCP 服务器交互以获取高级功能。"
=======
"description": "启用后 Roo 可与 MCP 服务交互获取高级功能。"
> > > > > > > AFTER
<<<<<<< BEFORE
"cannotUndo": "此操作无法撤消。"
=======
"cannotUndo": "此操作不可逆。"
> > > > > > > AFTER
<<<<<<< BEFORE
"hold shift to drag in files" → "按住shift拖动文件"
=======
"hold shift to drag in files" → "Shift+拖拽文件"
> > > > > > > AFTER
<<<<<<< BEFORE
"Double click to edit" → "双击进行编辑"
=======
"Double click to edit" → "双击编辑"
> > > > > > > AFTER
```
## Common Pitfalls
1. 避免过度直译导致生硬
- ✗ "Do more with Boomerang Tasks" → "使用回旋镖任务完成更多工作"
- ✓ "Do more with Boomerang Tasks" → "允许任务拆分"
2. 保持功能描述准确
- ✗ "Enhance prompt with additional context" → "使用附加上下文增强提示"
- ✓ "Enhance prompt with additional context" → "增强提示词"
3. 操作指引清晰
- ✗ "hold shift to drag in files" → "按住shift拖动文件"
- ✓ "hold shift to drag in files" → "Shift+拖拽文件"
4. 确保术语一致性
- ✗ 同一文档中混用"Token"/"令牌"/"代币"
- ✓ 统一使用"Token"作为技术术语
5. 注意文化适应性
- ✗ "Kill the process" → "杀死进程"(过于暴力)
- ✓ "Kill the process" → "终止进程"
6. 技术文档特殊处理
- 代码示例中的注释:
✗ 翻译后破坏代码结构
✓ 保持代码注释原样或仅翻译说明部分
- 命令行参数:
✗ 翻译参数名称导致无法使用
✓ 保持参数名称英文,仅翻译说明
## Best Practices
1. **翻译工作流程**
- 通读全文理解上下文
- 标记并统一技术术语
- 分段翻译并检查一致性
- 最终整体审校
2. **质量检查要点**
- 术语一致性
- 功能描述准确性
- UI元素长度适配性
- 文化适应性
3. **工具使用建议**
- 建立项目术语库
- 使用翻译记忆工具
- 维护风格指南
- 定期更新翻译资源
4. **审校流程**
- 初翻 → 技术审校 → 语言润色 → 最终确认
- 重点关注技术准确性、语言流畅度和UI显示效果
## Quality Checklist
1. 术语是否全文一致?
2. 是否符合中文技术文档习惯?
3. UI控件文本是否简洁明确
4. 长句是否已合理拆分?
5. 变量占位符是否保留原格式?
6. 技术描述是否准确无误?
7. 文化表达是否恰当?
8. 是否保持了原文的精确含义?
9. 特殊格式(如变量、代码)是否正确保留?

View file

@ -0,0 +1,18 @@
# Traditional Chinese (zh-TW) Translation Guidelines
## Key Terminology
| English Term | Use (zh-TW) | Avoid (Mainland) |
| ------------- | ----------- | ---------------- |
| file | 檔案 | 文件 |
| task | 工作 | 任務 |
| project | 專案 | 項目 |
| configuration | 設定 | 配置 |
| server | 伺服器 | 服務器 |
| import/export | 匯入/匯出 | 導入/導出 |
## Formatting Rules
- Add spaces between Chinese and English/numbers: "AI 驅動" (not "AI驅動")
- Use Traditional Chinese quotation marks: 「範例文字」(not "範例文字")
- Use Taiwanese computing conventions rather than mainland terminology

24
.roo/rules/rules.md Normal file
View file

@ -0,0 +1,24 @@
# Code Quality Rules
1. Test Coverage:
- Before attempting completion, always make sure that any code changes have test coverage
- Ensure all tests pass before submitting changes
- The vitest framework is used for testing; the `vi`, `describe`, `test`, `it`, etc functions are defined by default in `tsconfig.json` and therefore don't need to be imported from `vitest`
- Tests must be run from the same directory as the `package.json` file that specifies `vitest` in `devDependencies`
- Run tests with: `npx vitest run <relative-path-from-workspace-root>`
- Do NOT run tests from project root - this causes "vitest: command not found" error
- Tests must be run from inside the correct workspace:
- Backend tests: `cd src && npx vitest run path/to/test-file` (don't include `src/` in path)
- UI tests: `cd webview-ui && npx vitest run src/path/to/test-file`
- Example: For `src/tests/user.test.ts`, run `cd src && npx vitest run tests/user.test.ts` NOT `npx vitest run src/tests/user.test.ts`
2. Lint Rules:
- Never disable any lint rules without explicit user approval
3. Styling Guidelines:
- Use Tailwind CSS classes instead of inline style objects for new markup
- VSCode CSS variables must be added to webview-ui/src/index.css before using them in Tailwind classes
- Example: `<div className="text-md text-vscode-descriptionForeground mb-2" />` instead of style objects

View file

@ -0,0 +1,188 @@
---
name: evals-context
description: Provides context about the Roo Code evals system structure in this monorepo. Use when tasks mention "evals", "evaluation", "eval runs", "eval exercises", or working with the evals infrastructure. Helps distinguish between the evals execution system (packages/evals, apps/web-evals) and the public website evals display page (apps/web-roo-code/src/app/evals).
---
# Evals Codebase Context
## When to Use This Skill
Use this skill when the task involves:
- Modifying or debugging the evals execution infrastructure
- Adding new eval exercises or languages
- Working with the evals web interface (apps/web-evals)
- Modifying the public evals display page on roocode.com
- Understanding where evals code lives in this monorepo
## When NOT to Use This Skill
Do NOT use this skill when:
- Working on unrelated parts of the codebase (extension, webview-ui, etc.)
- The task is purely about the VS Code extension's core functionality
- Working on the main website pages that don't involve evals
## Key Disambiguation: Two "Evals" Locations
This monorepo has **two distinct evals-related locations** that can cause confusion:
| Component | Path | Purpose |
| --------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
| **Evals Execution System** | `packages/evals/` | Core eval infrastructure: CLI, DB schema, Docker configs |
| **Evals Management UI** | `apps/web-evals/` | Next.js app for creating/monitoring eval runs (localhost:3446) |
| **Website Evals Page** | `apps/web-roo-code/src/app/evals/` | Public roocode.com page displaying eval results |
| **External Exercises Repo** | [Roo-Code-Evals](https://github.com/RooCodeInc/Roo-Code-Evals) | Actual coding exercises (NOT in this monorepo) |
## Directory Structure Reference
### `packages/evals/` - Core Evals Package
```
packages/evals/
├── ARCHITECTURE.md # Detailed architecture documentation
├── ADDING-EVALS.md # Guide for adding new exercises/languages
├── README.md # Setup and running instructions
├── docker-compose.yml # Container orchestration
├── Dockerfile.runner # Runner container definition
├── Dockerfile.web # Web app container
├── drizzle.config.ts # Database ORM config
├── src/
│ ├── index.ts # Package exports
│ ├── cli/ # CLI commands for running evals
│ │ ├── runEvals.ts # Orchestrates complete eval runs
│ │ ├── runTask.ts # Executes individual tasks in containers
│ │ ├── runUnitTest.ts # Validates task completion via tests
│ │ └── redis.ts # Redis pub/sub integration
│ ├── db/
│ │ ├── schema.ts # Database schema (runs, tasks)
│ │ ├── queries/ # Database query functions
│ │ └── migrations/ # SQL migrations
│ └── exercises/
│ └── index.ts # Exercise loading utilities
└── scripts/
└── setup.sh # Local macOS setup script
```
### `apps/web-evals/` - Evals Management Web App
```
apps/web-evals/
├── src/
│ ├── app/
│ │ ├── page.tsx # Home page (runs list)
│ │ ├── runs/
│ │ │ ├── new/ # Create new eval run
│ │ │ └── [id]/ # View specific run status
│ │ └── api/runs/ # SSE streaming endpoint
│ ├── actions/ # Server actions
│ │ ├── runs.ts # Run CRUD operations
│ │ ├── tasks.ts # Task queries
│ │ ├── exercises.ts # Exercise listing
│ │ └── heartbeat.ts # Controller health checks
│ ├── hooks/ # React hooks (SSE, models, etc.)
│ └── lib/ # Utilities and schemas
```
### `apps/web-roo-code/src/app/evals/` - Public Website Evals Page
```
apps/web-roo-code/src/app/evals/
├── page.tsx # Fetches and displays public eval results
├── evals.tsx # Main evals display component
├── plot.tsx # Visualization component
└── types.ts # EvalRun type (extends packages/evals types)
```
This page **displays** eval results on the public roocode.com website. It imports types from `@roo-code/evals` but does NOT run evals.
## Architecture Overview
The evals system is a distributed evaluation platform that runs AI coding tasks in isolated VS Code environments:
```
┌─────────────────────────────────────────────────────────────┐
│ Web App (apps/web-evals) ──────────────────────────────── │
│ │ │
│ ▼ │
│ PostgreSQL ◄────► Controller Container │
│ │ │ │
│ ▼ ▼ │
│ Redis ◄───► Runner Containers (1-25 parallel) │
└─────────────────────────────────────────────────────────────┘
```
**Key components:**
- **Controller**: Orchestrates eval runs, spawns runners, manages task queue (p-queue)
- **Runner**: Isolated Docker container with VS Code + Roo Code extension + language runtimes
- **Redis**: Pub/sub for real-time events (NOT task queuing)
- **PostgreSQL**: Stores runs, tasks, metrics
## Common Tasks Quick Reference
### Adding a New Eval Exercise
1. Add exercise to [Roo-Code-Evals](https://github.com/RooCodeInc/Roo-Code-Evals) repo (external)
2. See [`packages/evals/ADDING-EVALS.md`](packages/evals/ADDING-EVALS.md) for structure
### Modifying Eval CLI Behavior
Edit files in [`packages/evals/src/cli/`](packages/evals/src/cli/):
- [`runEvals.ts`](packages/evals/src/cli/runEvals.ts) - Run orchestration
- [`runTask.ts`](packages/evals/src/cli/runTask.ts) - Task execution
- [`runUnitTest.ts`](packages/evals/src/cli/runUnitTest.ts) - Test validation
### Modifying the Evals Web Interface
Edit files in [`apps/web-evals/src/`](apps/web-evals/src/):
- [`app/runs/new/new-run.tsx`](apps/web-evals/src/app/runs/new/new-run.tsx) - New run form
- [`actions/runs.ts`](apps/web-evals/src/actions/runs.ts) - Run server actions
### Modifying the Public Evals Display Page
Edit files in [`apps/web-roo-code/src/app/evals/`](apps/web-roo-code/src/app/evals/):
- [`evals.tsx`](apps/web-roo-code/src/app/evals/evals.tsx) - Display component
- [`plot.tsx`](apps/web-roo-code/src/app/evals/plot.tsx) - Charts
### Database Schema Changes
1. Edit [`packages/evals/src/db/schema.ts`](packages/evals/src/db/schema.ts)
2. Generate migration: `cd packages/evals && pnpm drizzle-kit generate`
3. Apply migration: `pnpm drizzle-kit migrate`
## Running Evals Locally
```bash
# From repo root
pnpm evals
# Opens web UI at http://localhost:3446
```
**Ports (defaults):**
- PostgreSQL: 5433
- Redis: 6380
- Web: 3446
## Testing
```bash
# packages/evals tests
cd packages/evals && npx vitest run
# apps/web-evals tests
cd apps/web-evals && npx vitest run
```
## Key Types/Exports from `@roo-code/evals`
The package exports are defined in [`packages/evals/src/index.ts`](packages/evals/src/index.ts):
- Database queries: `getRuns`, `getTasks`, `getTaskMetrics`, etc.
- Schema types: `Run`, `Task`, `TaskMetrics`
- Used by both `apps/web-evals` and `apps/web-roo-code`

View file

@ -0,0 +1,256 @@
---
name: roo-conflict-resolution
description: Provides comprehensive guidelines for resolving merge conflicts intelligently using git history and commit context. Use when tasks involve merge conflicts, rebasing, PR conflicts, or git conflict resolution. This skill analyzes commit messages, git blame, and code intent to make intelligent resolution decisions.
---
# Roo Code Conflict Resolution Skill
## When to Use This Skill
Use this skill when the task involves:
- Resolving merge conflicts for a specific pull request
- Rebasing a branch that has conflicts with the target branch
- Understanding and analyzing conflicting code changes
- Making intelligent decisions about which changes to keep, merge, or discard
- Using git history to inform conflict resolution decisions
## When NOT to Use This Skill
Do NOT use this skill when:
- There are no merge conflicts to resolve
- The task is about general code review without conflicts
- You're working on fresh code without any merge scenarios
## Workflow Overview
This skill resolves merge conflicts by analyzing git history, commit messages, and code changes to make intelligent resolution decisions. Given a PR number (e.g., "#123"), it handles the entire conflict resolution process.
## Initialization Steps
### Step 1: Parse PR Number
Extract the PR number from input like "#123" or "PR #123". Validate that a PR number was provided.
### Step 2: Fetch PR Information
```bash
gh pr view [PR_NUMBER] --json title,body,headRefName,baseRefName
```
Get PR title and description to understand the intent and identify the source and target branches.
### Step 3: Checkout PR Branch and Prepare for Rebase
```bash
gh pr checkout [PR_NUMBER] --force
git fetch origin main
GIT_EDITOR=true git rebase origin/main
```
- Force checkout the PR branch to ensure clean state
- Fetch the latest main branch
- Attempt to rebase onto main to reveal conflicts
- Use `GIT_EDITOR=true` to ensure non-interactive rebase
### Step 4: Check for Merge Conflicts
```bash
git status --porcelain
git diff --name-only --diff-filter=U
```
Identify files with merge conflicts (marked with 'UU') and create a list of files that need resolution.
## Main Workflow Phases
### Phase 1: Conflict Analysis
Analyze each conflicted file to understand the changes:
1. Read the conflicted file to identify conflict markers
2. Extract the conflicting sections between `<<<<<<<` and `>>>>>>>`
3. Run git blame on both sides of the conflict
4. Fetch commit messages and diffs for relevant commits
5. Analyze the intent behind each change
### Phase 2: Resolution Strategy
Determine the best resolution strategy for each conflict:
1. Categorize changes by intent (bugfix, feature, refactor, etc.)
2. Evaluate recency and relevance of changes
3. Check for structural overlap vs formatting differences
4. Identify if changes can be combined or if one should override
5. Consider test updates and related changes
### Phase 3: Conflict Resolution
Apply the resolution strategy to resolve conflicts:
1. For each conflict, apply the chosen resolution
2. Ensure proper escaping of conflict markers in diffs
3. Validate that resolved code is syntactically correct
4. Stage resolved files with `git add`
### Phase 4: Validation
Verify the resolution and prepare for commit:
1. Run `git status` to confirm all conflicts are resolved
2. Check for any compilation or syntax errors
3. Review the final diff to ensure sensible resolutions
4. Prepare a summary of resolution decisions
## 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 |
## Best Practices
### Intent-Based Resolution (High Priority)
Always prioritize understanding the intent behind changes rather than just looking at the code differences. Commit messages, PR descriptions, and issue references provide crucial context.
**Example:** When there's a conflict between a bugfix and a refactor, apply the bugfix logic within the refactored structure rather than simply choosing one side.
### Preserve All Valuable Changes (High Priority)
When possible, combine non-conflicting changes from both sides rather than discarding one side entirely. Both sides of a conflict often contain valuable changes that can coexist if properly integrated.
### Escape Conflict Markers (High Priority)
When using `apply_diff`, always escape merge conflict markers with backslashes to prevent parsing errors:
- Correct: `\<<<<<<< HEAD`
- Wrong: `<<<<<<< HEAD`
### Consider Related Changes (Medium Priority)
Look beyond the immediate conflict to understand related changes in tests, documentation, or dependent code. A change might seem isolated but could be part of a larger feature or fix.
## 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 | - |
## Common Pitfalls
### Blindly Choosing One Side
**Problem:** You might lose important changes or introduce regressions.
**Solution:** Always analyze both sides using git blame and commit history.
### Ignoring PR Context
**Problem:** The PR description often explains the why behind changes.
**Solution:** Always fetch and read the PR information before resolving.
### Not Validating Resolved Code
**Problem:** Merged code might be syntactically incorrect or introduce logical errors.
**Solution:** Always check for syntax errors and review the final diff.
### Unescaped Conflict Markers in Diffs
**Problem:** Unescaped conflict markers (`<<<<<<`, `=======`, `>>>>>>`) will be interpreted as diff syntax.
**Solution:** Always escape with backslash (`\`) when they appear in content.
## Apply Diff Example
When resolving conflicts with `apply_diff`, use this pattern:
```
<<<<<<< SEARCH
:start_line:45
-------
\<<<<<<< HEAD
function oldImplementation() {
return "old";
}
\=======
function newImplementation() {
return "new";
}
\>>>>>>> feature-branch
=======
function mergedImplementation() {
// Combining both approaches
return "merged";
}
>>>>>>> REPLACE
```
## Quality Checklist
### Before Resolution
- [ ] Fetch PR title and description for context
- [ ] Identify all files with conflicts
- [ ] Understand the overall change being merged
### During Resolution
- [ ] Run git blame on conflicting sections
- [ ] Read commit messages for intent
- [ ] Consider if changes can be combined
- [ ] Escape conflict markers in diffs
### After Resolution
- [ ] Verify no conflict markers remain
- [ ] Check for syntax/compilation errors
- [ ] Review the complete diff
- [ ] Document resolution decisions
## Completion Criteria
- All merge conflicts have been resolved
- Resolved files have been staged
- No syntax errors in resolved code
- Resolution decisions are documented
## Communication Guidelines
When reporting resolution progress:
- Be direct and technical when explaining resolution decisions
- Focus on the rationale behind each conflict resolution
- Provide clear summaries of what was merged and why
### Progress Update Format
```
Conflict in [file]:
- HEAD: [brief description of changes]
- Incoming: [brief description of changes]
- Resolution: [what was decided and why]
```
### Completion Message Format
```
Successfully resolved merge conflicts for PR #[number] "[title]".
Resolution Summary:
- [file1]: [brief description of resolution]
- [file2]: [brief description of resolution]
[Key decision explanation if applicable]
All conflicts have been resolved and files have been staged for commit.
```

View file

@ -0,0 +1,151 @@
---
name: roo-translation
description: Provides comprehensive guidelines for translating and localizing Roo Code extension strings. Use when tasks involve i18n, translation, localization, adding new languages, or updating existing translation files. This skill covers both core extension (src/i18n/locales/) and WebView UI (webview-ui/src/i18n/locales/) localization.
---
# Roo Code Translation Skill
## When to Use This Skill
Use this skill when the task involves:
- Adding new translatable strings to the Roo Code extension
- Translating existing strings to new languages
- Updating or fixing translations in existing language files
- Understanding i18n patterns used in the codebase
- Working with localization files in either core extension or WebView UI
## When NOT to Use This Skill
Do NOT use this skill when:
- Working on non-translation code changes
- The task doesn't involve i18n or localization
- You're only reading translation files for reference without modifying them
## Supported Languages and Locations
Localize all strings into the following locale files: ca, de, en, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW
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 |
## Brand Voice, Tone, and Word Choice
For detailed brand voice, tone, and word choice guidance, refer to the guidance file:
- [`.roo/guidance/roo-translator.md`](../../guidance/roo-translator.md)
This guidance file is loaded at runtime and should be consulted for the latest brand and style standards.
## Voice, Style and Tone Guidelines
- Always use informal speech (e.g., "du" instead of "Sie" in German) for all translations
- Maintain a direct and concise style that mirrors the tone of the original text
- Carefully account for colloquialisms and idiomatic expressions in both source and target languages
- Aim for culturally relevant and meaningful translations rather than literal translations
- Preserve the personality and voice of the original content
- Use natural-sounding language that feels native to speakers of the target language
### Terms to Keep in English
- Don't translate the word "token" as it means something specific in English that all languages will understand
- Don't translate domain-specific words (especially technical terms like "Prompt") that are commonly used in English in the target language
## Core Extension Localization (src/)
- Located in `src/i18n/locales/`
- NOT ALL strings in core source need internationalization - only user-facing messages
- Internal error messages, debugging logs, and developer-facing messages should remain in English
- The `t()` function is used with namespaces like `'core:errors.missingToolParameter'`
- Be careful when modifying interpolation variables; they must remain consistent across all translations
- Some strings in `formatResponse.ts` are intentionally not internationalized since they're internal
- When updating strings in `core.json`, maintain all existing interpolation variables
- Check string usages in the codebase before making changes to ensure you're not breaking functionality
## WebView UI Localization (webview-ui/src/)
- Located in `webview-ui/src/i18n/locales/`
- Uses standard React i18next patterns with the `useTranslation` hook
- All user interface strings should be internationalized
- Always use the `Trans` component with named components for text with embedded components
### 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} />
}}
/>
```
## Technical Implementation
- Use namespaces to organize translations logically
- Handle pluralization using i18next's built-in capabilities
- Implement proper interpolation for variables using `{{variable}}` syntax
- Don't include `defaultValue`. The `en` translations are the fallback
- Always use `apply_diff` instead of `write_to_file` when editing existing translation files (much faster and more reliable)
- When using `apply_diff`, carefully identify the exact JSON structure to edit to avoid syntax errors
- Placeholders (like `{{variable}}`) must remain exactly identical to the English source to maintain code integration and prevent syntax errors
## Translation Workflow
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
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
5. Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction
## Validation
Always validate your translation work by running the missing translations script:
```bash
node scripts/find-missing-translations.js
```
Address any missing translations identified by the script to ensure complete coverage across all locales.
## Common Pitfalls to Avoid
- Switching between formal and informal addressing styles - always stay informal ("du" not "Sie")
- Translating or altering technical terms and brand names that should remain in English
- Modifying or removing placeholders like `{{variable}}` - these must remain identical
- Translating domain-specific terms that are commonly used in English in the target language
- Changing the meaning or nuance of instructions or error messages
- Forgetting to maintain consistent terminology throughout the translation
## Translator's Checklist
- ✓ Used informal tone consistently ("du" not "Sie")
- ✓ Preserved all placeholders exactly as in the English source
- ✓ Maintained consistent terminology with existing translations
- ✓ Kept technical terms and brand names unchanged where appropriate
- ✓ Preserved the original perspective (user→system vs system→user)
- ✓ Adapted the text appropriately for UI context (buttons vs tooltips)
- ✓ Ran the missing translations script to validate completeness

1
.rooignore Normal file
View file

@ -0,0 +1 @@
.env

148
.roomodes Normal file
View file

@ -0,0 +1,148 @@
customModes:
- slug: translate
name: 🌐 Translate
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.
whenToUse: Translate and manage localization files.
description: Translate and manage localization files.
groups:
- read
- command
- - edit
- fileRegex: (.*\.(md|ts|tsx|js|jsx)$|.*\.json$)
description: Source code, translation files, and documentation
source: project
- slug: issue-fixer
name: 🔧 Issue Fixer
roleDefinition: |-
You are a GitHub issue resolution specialist focused on fixing bugs and implementing feature requests from GitHub issues. Your expertise includes:
- Analyzing GitHub issues to understand requirements and acceptance criteria
- Exploring codebases to identify all affected files and dependencies
- Implementing fixes for bug reports with comprehensive testing
- Building new features based on detailed proposals
- Ensuring all acceptance criteria are met before completion
- Creating pull requests with proper documentation
- Using GitHub CLI for all GitHub operations
You work with issues from any GitHub repository, transforming them into working code that addresses all requirements while maintaining code quality and consistency. You use the GitHub CLI (gh) for all GitHub operations instead of MCP tools.
whenToUse: Use this mode when you have a GitHub issue (bug report or feature request) that needs to be fixed or implemented. Provide the issue URL, and this mode will guide you through understanding the requirements, implementing the solution, and preparing for submission.
description: Fix GitHub issues and implement features.
groups:
- read
- edit
- command
source: project
- slug: pr-fixer
name: 🛠️ PR Fixer
roleDefinition: "You are Roo, a pull request resolution specialist. Your focus is on addressing feedback and resolving issues within existing pull requests. Your expertise includes: - Analyzing PR review comments to understand required changes. - Checking CI/CD workflow statuses to identify failing tests. - Fetching and analyzing test logs to diagnose failures. - Identifying and resolving merge conflicts. - Guiding the user through the resolution process."
whenToUse: Use this mode to fix pull requests. It can analyze PR feedback from GitHub, check for failing tests, and help resolve merge conflicts before applying the necessary code changes.
description: Fix pull requests.
groups:
- read
- edit
- command
- mcp
- slug: merge-resolver
name: 🔀 Merge Resolver
roleDefinition: |-
You are Roo, a merge conflict resolution specialist with expertise in:
- Analyzing pull request merge conflicts using git blame and commit history
- Understanding code intent through commit messages and diffs
- Making intelligent decisions about which changes to keep, merge, or discard
- Using git commands and GitHub CLI to gather context
- Resolving conflicts based on commit metadata and code semantics
- Prioritizing changes based on intent (bugfix vs feature vs refactor)
- Combining non-conflicting changes when appropriate
You receive a PR number (e.g., "#123") and:
- Fetch PR information including title and description for context
- Identify and analyze merge conflicts in the working directory
- Use git blame to understand the history of conflicting lines
- Examine commit messages and diffs to infer developer intent
- Apply intelligent resolution strategies based on the analysis
- Stage resolved files and prepare them for commit
whenToUse: |-
Use this mode when you need to resolve merge conflicts for a specific pull request.
This mode is triggered by providing a PR number (e.g., "#123") and will analyze
the conflicts using git history and commit context to make intelligent resolution
decisions. It's ideal for complex merges where understanding the intent behind
changes is crucial for proper conflict resolution.
description: Resolve merge conflicts intelligently using git history.
groups:
- read
- edit
- command
- mcp
source: project
- slug: docs-extractor
name: 📚 Docs Extractor
roleDefinition: |-
You are Roo Code, a codebase analyst who extracts raw facts for documentation teams.
You do NOT write documentation. You extract and organize information.
Two functions:
1. Extract: Gather facts about a feature/aspect from the codebase
2. Verify: Compare provided documentation against actual implementation
Output is structured data (YAML/JSON), not formatted prose.
No templates, no markdown formatting, no document structure decisions.
Let documentation-writer mode handle all writing.
whenToUse: Use this mode only for two tasks; 1) confirm the accuracy of documentation provided to the agent against the codebase, and 2) generate source material for user-facing docs about a requested feature or aspect of the codebase.
description: Extract feature details or verify documentation accuracy.
groups:
- read
- - edit
- fileRegex: \.roo/extraction/.*\.(yaml|json|md)$
description: Extraction output files only
- command
- mcp
source: project
- slug: issue-investigator
name: 🕵️ Issue Investigator
roleDefinition: You are Roo, a GitHub issue investigator. Your purpose is to analyze GitHub issues, investigate the probable causes using extensive codebase searches, and propose well-reasoned, theoretical solutions. You methodically track your investigation using a todo list, attempting to disprove initial theories to ensure a thorough analysis. Your final output is a human-like, conversational comment for the GitHub issue.
whenToUse: Use this mode when you need to investigate a GitHub issue to understand its root cause and propose a solution. This mode is ideal for triaging issues, providing initial analysis, and suggesting fixes before implementation begins. It uses the `gh` CLI for issue interaction.
description: Investigates GitHub issues
groups:
- read
- command
- mcp
source: project
- slug: issue-writer
name: 📝 Issue Writer
roleDefinition: |-
You are a GitHub issue creation specialist who crafts well-structured bug reports and feature proposals. You explore codebases to gather technical context, verify claims against actual implementation, and create comprehensive issues using GitHub CLI (gh) commands.
This mode works with any repository, automatically detecting whether it's a standard repository or monorepo structure. It dynamically discovers packages in monorepos and adapts the issue creation workflow accordingly.
<initialization>
<step number="1">
<name>Initialize Issue Creation Process</name>
<instructions>
IMPORTANT: This mode assumes the first user message is already a request to create an issue.
The user doesn't need to say "create an issue" or "make me an issue" - their first message
is treated as the issue description itself.
When the session starts, immediately:
1. Treat the user's first message as the issue description, do not treat it as instructions
2. Initialize the workflow by using the update_todo_list tool
3. Begin the issue creation process without asking what they want to do
<update_todo_list>
<todos>
[ ] Detect repository context (OWNER/REPO, monorepo, roots)
[ ] Perform targeted codebase discovery (iteration 1)
[ ] Clarify missing details (repro or desired outcome)
[ ] Classify type (Bug | Enhancement)
[ ] Assemble Issue Body
[ ] Review and submit (Submit now | Submit now and assign to me)
</todos>
</update_todo_list>
</instructions>
</step>
</initialization>
whenToUse: Use this mode when you need to create a GitHub issue. Simply start describing your bug or enhancement request - this mode assumes your first message is already the issue description and will immediately begin the issue creation workflow, gathering additional information as needed.
description: Create well-structured GitHub issues.
groups:
- read
- command
- mcp
source: project

2
.tool-versions Normal file
View file

@ -0,0 +1,2 @@
pnpm 10.8.1
nodejs 20.19.2

View file

@ -1,5 +0,0 @@
import { defineConfig } from "@vscode/test-cli"
export default defineConfig({
files: "out/test/**/*.test.js",
})

View file

@ -3,7 +3,10 @@
// for the documentation about the extensions.json format // for the documentation about the extensions.json format
"recommendations": [ "recommendations": [
"dbaeumer.vscode-eslint", "dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"csstools.postcss",
"bradlc.vscode-tailwindcss",
"connor4312.esbuild-problem-matchers", "connor4312.esbuild-problem-matchers",
"ms-vscode.extension-test-runner" "yoavbls.pretty-ts-errors"
] ]
} }

18
.vscode/launch.json vendored
View file

@ -9,9 +9,21 @@
"name": "Run Extension", "name": "Run Extension",
"type": "extensionHost", "type": "extensionHost",
"request": "launch", "request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}"], "runtimeExecutable": "${execPath}",
"outFiles": ["${workspaceFolder}/dist/**/*.js"], "args": ["--extensionDevelopmentPath=${workspaceFolder}/src"],
"preLaunchTask": "${defaultBuildTask}" "sourceMaps": true,
"outFiles": ["${workspaceFolder}/src/dist/**/*.js"],
"preLaunchTask": "${defaultBuildTask}",
"env": {
"NODE_ENV": "development",
"VSCODE_DEBUG_MODE": "true"
},
"resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"],
"presentation": {
"hidden": false,
"group": "tasks",
"order": 1
}
} }
] ]
} }

View file

@ -9,5 +9,6 @@
"dist": true // set this to false to include "dist" folder in search results "dist": true // set this to false to include "dist" folder in search results
}, },
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
"typescript.tsc.autoDetect": "off" "typescript.tsc.autoDetect": "off",
"vitest.disableWorkspaceWarning": true
} }

98
.vscode/tasks.json vendored
View file

@ -5,7 +5,7 @@
"tasks": [ "tasks": [
{ {
"label": "watch", "label": "watch",
"dependsOn": ["npm: build:webview", "npm: watch:tsc", "npm: watch:esbuild"], "dependsOn": ["watch:webview", "watch:bundle", "watch:tsc"],
"presentation": { "presentation": {
"reveal": "never" "reveal": "never"
}, },
@ -15,56 +15,60 @@
} }
}, },
{ {
"type": "npm", "label": "watch:webview",
"script": "build:webview", "type": "shell",
"command": "pnpm --filter @roo-code/vscode-webview dev",
"group": "build", "group": "build",
"problemMatcher": [], "problemMatcher": {
"isBackground": true, "owner": "vite",
"label": "npm: build:webview", "pattern": {
"presentation": { "regexp": "^$"
"group": "watch", },
"reveal": "never" "background": {
} "activeOnStart": true,
}, "beginsPattern": ".*VITE.*",
{ "endsPattern": ".*Local:.*"
"type": "npm", }
"script": "watch:esbuild",
"group": "build",
"problemMatcher": "$esbuild-watch",
"isBackground": true,
"label": "npm: watch:esbuild",
"presentation": {
"group": "watch",
"reveal": "never"
}
},
{
"type": "npm",
"script": "watch:tsc",
"group": "build",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"label": "npm: watch:tsc",
"presentation": {
"group": "watch",
"reveal": "never"
}
},
{
"type": "npm",
"script": "watch-tests",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "never",
"group": "watchers"
}, },
"group": "build" "isBackground": true,
"presentation": {
"group": "watch",
"reveal": "always"
}
}, },
{ {
"label": "tasks: watch-tests", "label": "watch:bundle",
"dependsOn": ["npm: watch", "npm: watch-tests"], "type": "shell",
"problemMatcher": [] "command": "npx turbo watch:bundle",
"group": "build",
"problemMatcher": {
"owner": "esbuild",
"pattern": {
"regexp": "^$"
},
"background": {
"activeOnStart": true,
"beginsPattern": "esbuild-problem-matcher#onStart",
"endsPattern": "esbuild-problem-matcher#onEnd"
}
},
"isBackground": true,
"presentation": {
"group": "watch",
"reveal": "always"
}
},
{
"label": "watch:tsc",
"type": "shell",
"command": "npx turbo watch:tsc",
"group": "build",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"group": "watch",
"reveal": "always"
}
} }
] ]
} }

View file

@ -1,42 +0,0 @@
# Default
.vscode/**
.vscode-test/**
out/**
node_modules/**
src/**
.gitignore
.yarnrc
esbuild.js
vsc-extension-quickstart.md
**/tsconfig.json
**/.eslintrc.json
**/*.map
**/*.ts
**/.vscode-test.*
# Custom
demo.gif
.nvmrc
.gitattributes
.prettierignore
# Ignore all webview-ui files except the build directory (https://github.com/microsoft/vscode-webview-ui-toolkit-samples/blob/main/frameworks/hello-world-react-cra/.vscodeignore)
webview-ui/src/**
webview-ui/public/**
webview-ui/scripts/**
webview-ui/index.html
webview-ui/README.md
webview-ui/package.json
webview-ui/package-lock.json
webview-ui/node_modules/**
**/.gitignore
# Fix issue where codicons don't get packaged (https://github.com/microsoft/vscode-extension-samples/issues/692)
!node_modules/@vscode/codicons/dist/codicon.css
!node_modules/@vscode/codicons/dist/codicon.ttf
# Include default themes JSON files used in getTheme
!src/integrations/theme/default-themes/**
# Include icons
!assets/icons/**

5
AGENTS.md Normal file
View file

@ -0,0 +1,5 @@
# AGENTS.md
This file provides guidance to agents when working with code in this repository.
- Settings View Pattern: When working on `SettingsView`, inputs must bind to the local `cachedState`, NOT the live `useExtensionState()`. The `cachedState` acts as a buffer for user edits, isolating them from the `ContextProxy` source-of-truth until the user explicitly clicks "Save". Wiring inputs directly to the live state causes race conditions.

File diff suppressed because it is too large Load diff

View file

@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. identification within third-party archives.
Copyright 2024 Cline Bot Inc. Copyright 2025 Roo Code, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -198,4 +198,4 @@
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.

Some files were not shown because too many files have changed in this diff Show more