Commit graph

1270 commits

Author SHA1 Message Date
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
Chris Estreich
c03869bf1e
Remove Storybook + unused components (#4517) 2025-06-10 14:29:39 -07: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
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
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
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
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
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
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
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
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
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
e40a4c96ed
Fix the label of the OpenAI-compatible API keys (#4191) 2025-05-31 22:18:23 -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
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
9e3b0fd870
Move provider data into @roo-code/types (#4153) 2025-05-30 14:54:48 -07: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
Matt Rubens
af5b1b402d
v3.19.0 (#4109) 2025-05-29 18:15:23 -04:00
Matt Rubens
8de608a0df
Account tab cleanup (#4119) 2025-05-29 16:41:19 -04: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
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
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
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
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
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
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
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
Matt Rubens
1365800474
Fix centering of the about text (#4080) 2025-05-28 11:55:00 -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
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
Ruakij
503c7585de
Fix: Wrongfully clearing input on autoApprove (#3956) 2025-05-25 09:59:58 -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
Daniel
20e7f118bc
Add handling for external settings changes (#3942) 2025-05-24 18:05:28 -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
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
Matt Rubens
4abadd877b
Default to Sonnet 4 (#3928) 2025-05-24 13:06:25 -04:00
Matt Rubens
b655c0d2e9
Make experimental settings more visually consistent (#3923) 2025-05-24 10:38:13 -04:00
Chris Estreich
1366ba0115
Preserve model settings when selecting a specific OpenRouter provider (#3915) 2025-05-23 23:22: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