Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented May 7, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
esbuild ^0.24.0 -> ^0.25.0 age adoption passing confidence

Release Notes

evanw/esbuild (esbuild)

v0.25.4

Compare Source

  • Add simple support for CORS to esbuild's development server (#​4125)

    Starting with version 0.25.0, esbuild's development server is no longer configured to serve cross-origin requests. This was a deliberate change to prevent any website you visit from accessing your running esbuild development server. However, this change prevented (by design) certain use cases such as "debugging in production" by having your production website load code from localhost where the esbuild development server is running.

    To enable this use case, esbuild is adding a feature to allow Cross-Origin Resource Sharing (a.k.a. CORS) for simple requests. Specifically, passing your origin to the new cors option will now set the Access-Control-Allow-Origin response header when the request has a matching Origin header. Note that this currently only works for requests that don't send a preflight OPTIONS request, as esbuild's development server doesn't currently support OPTIONS requests.

    Some examples:

    • CLI:

      esbuild --servedir=. --cors-origin=https://example.com
      
    • JS:

      const ctx = await esbuild.context({})
      await ctx.serve({
        servedir: '.',
        cors: {
          origin: 'https://example.com',
        },
      })
    • Go:

      ctx, _ := api.Context(api.BuildOptions{})
      ctx.Serve(api.ServeOptions{
        Servedir: ".",
        CORS: api.CORSOptions{
          Origin: []string{"https://example.com"},
        },
      })

    The special origin * can be used to allow any origin to access esbuild's development server. Note that this means any website you visit will be able to read everything served by esbuild.

  • Pass through invalid URLs in source maps unmodified (#​4169)

    This fixes a regression in version 0.25.0 where sources in source maps that form invalid URLs were not being passed through to the output. Version 0.25.0 changed the interpretation of sources from file paths to URLs, which means that URL parsing can now fail. Previously URLs that couldn't be parsed were replaced with the empty string. With this release, invalid URLs in sources should now be passed through unmodified.

  • Handle exports named __proto__ in ES modules (#​4162, #​4163)

    In JavaScript, the special property name __proto__ sets the prototype when used inside an object literal. Previously esbuild's ESM-to-CommonJS conversion didn't special-case the property name of exports named __proto__ so the exported getter accidentally became the prototype of the object literal. It's unclear what this affects, if anything, but it's better practice to avoid this by using a computed property name in this case.

    This fix was contributed by @​magic-akari.

v0.25.3

Compare Source

  • Fix lowered async arrow functions before super() (#​4141, #​4142)

    This change makes it possible to call an async arrow function in a constructor before calling super() when targeting environments without async support, as long as the function body doesn't reference this. Here's an example (notice the change from this to null):

    // Original code
    class Foo extends Object {
      constructor() {
        (async () => await foo())()
        super()
      }
    }
    
    // Old output (with --target=es2016)
    class Foo extends Object {
      constructor() {
        (() => __async(this, null, function* () {
          return yield foo();
        }))();
        super();
      }
    }
    
    // New output (with --target=es2016)
    class Foo extends Object {
      constructor() {
        (() => __async(null, null, function* () {
          return yield foo();
        }))();
        super();
      }
    }

    Some background: Arrow functions with the async keyword are transformed into generator functions for older language targets such as --target=es2016. Since arrow functions capture this, the generated code forwards this into the body of the generator function. However, JavaScript class syntax forbids using this in a constructor before calling super(), and this forwarding was problematic since previously happened even when the function body doesn't use this. Starting with this release, esbuild will now only forward this if it's used within the function body.

    This fix was contributed by @​magic-akari.

  • Fix memory leak with --watch=true (#​4131, #​4132)

    This release fixes a memory leak with esbuild when --watch=true is used instead of --watch. Previously using --watch=true caused esbuild to continue to use more and more memory for every rebuild, but --watch=true should now behave like --watch and not leak memory.

    This bug happened because esbuild disables the garbage collector when it's not run as a long-lived process for extra speed, but esbuild's checks for which arguments cause esbuild to be a long-lived process weren't updated for the new --watch=true style of boolean command-line flags. This has been an issue since this boolean flag syntax was added in version 0.14.24 in 2022. These checks are unfortunately separate from the regular argument parser because of how esbuild's internals are organized (the command-line interface is exposed as a separate Go API so you can build your own custom esbuild CLI).

    This fix was contributed by @​mxschmitt.

  • More concise output for repeated legal comments (#​4139)

    Some libraries have many files and also use the same legal comment text in all files. Previously esbuild would copy each legal comment to the output file. Starting with this release, legal comments duplicated across separate files will now be grouped in the output file by unique comment content.

  • Allow a custom host with the development server (#​4110)

    With this release, you can now use a custom non-IP host with esbuild's local development server (either with --serve= for the CLI or with the serve() call for the API). This was previously possible, but was intentionally broken in version 0.25.0 to fix a security issue. This change adds the functionality back except that it's now opt-in and only for a single domain name that you provide.

    For example, if you add a mapping in your /etc/hosts file from local.example.com to 127.0.0.1 and then use esbuild --serve=local.example.com:8000, you will now be able to visit http://local.example.com:8000/ in your browser and successfully connect to esbuild's development server (doing that would previously have been blocked by the browser). This should also work with HTTPS if it's enabled (see esbuild's documentation for how to do that).

  • Add a limit to CSS nesting expansion (#​4114)

    With this release, esbuild will now fail with an error if there is too much CSS nesting expansion. This can happen when nested CSS is converted to CSS without nesting for older browsers as expanding CSS nesting is inherently exponential due to the resulting combinatorial explosion. The expansion limit is currently hard-coded and cannot be changed, but is extremely unlikely to trigger for real code. It exists to prevent esbuild from using too much time and/or memory. Here's an example:

    a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}

    Previously, transforming this file with --target=safari1 took 5 seconds and generated 40mb of CSS. Trying to do that will now generate the following error instead:

    ✘ [ERROR] CSS nesting is causing too much expansion
    
        example.css:1:60:
          1 │ a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
            ╵                                                             ^
    
      CSS nesting expansion was terminated because a rule was generated with 65536 selectors. This limit
      exists to prevent esbuild from using too much time and/or memory. Please change your CSS to use
      fewer levels of nesting.
    
  • Fix path resolution edge case (#​4144)

    This fixes an edge case where esbuild's path resolution algorithm could deviate from node's path resolution algorithm. It involves a confusing situation where a directory shares the same file name as a file (but without the file extension). See the linked issue for specific details. This appears to be a case where esbuild is correctly following node's published resolution algorithm but where node itself is doing something different. Specifically the step LOAD_AS_FILE appears to be skipped when the input ends with ... This release changes esbuild's behavior for this edge case to match node's behavior.

  • Update Go from 1.23.7 to 1.23.8 (#​4133, #​4134)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses, such as for CVE-2025-22871.

    As a reminder, esbuild's development server is intended for development, not for production, so I do not consider most networking-related vulnerabilities in Go to be vulnerabilities in esbuild. Please do not use esbuild's development server in production.

v0.25.2

Compare Source

  • Support flags in regular expressions for the API (#​4121)

    The JavaScript plugin API for esbuild takes JavaScript regular expression objects for the filter option. Internally these are translated into Go regular expressions. However, this translation previously ignored the flags property of the regular expression. With this release, esbuild will now translate JavaScript regular expression flags into Go regular expression flags. Specifically the JavaScript regular expression /\.[jt]sx?$/i is turned into the Go regular expression `(?i)\.[jt]sx?$` internally inside of esbuild's API. This should make it possible to use JavaScript regular expressions with the i flag. Note that JavaScript and Go don't support all of the same regular expression features, so this mapping is only approximate.

  • Fix node-specific annotations for string literal export names (#​4100)

    When node instantiates a CommonJS module, it scans the AST to look for names to expose via ESM named exports. This is a heuristic that looks for certain patterns such as exports.NAME = ... or module.exports = { ... }. This behavior is used by esbuild to "annotate" CommonJS code that was converted from ESM with the original ESM export names. For example, when converting the file export let foo, bar from ESM to CommonJS, esbuild appends this to the end of the file:

    // Annotate the CommonJS export names for ESM import in node:
    0 && (module.exports = {
      bar,
      foo
    });

    However, this feature previously didn't work correctly for export names that are not valid identifiers, which can be constructed using string literal export names. The generated code contained a syntax error. That problem is fixed in this release:

    // Original code
    let foo
    export { foo as "foo!" }
    
    // Old output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      "foo!"
    });
    
    // New output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      "foo!": null
    });
  • Basic support for index source maps (#​3439, #​4109)

    The source map specification has an optional mode called index source maps that makes it easier for tools to create an aggregate JavaScript file by concatenating many smaller JavaScript files with source maps, and then generate an aggregate source map by simply providing the original source maps along with some offset information. My understanding is that this is rarely used in practice. I'm only aware of two uses of it in the wild: ClojureScript and Turbopack.

    This release provides basic support for indexed source maps. However, the implementation has not been tested on a real app (just on very simple test input). If you are using index source maps in a real app, please try this out and report back if anything isn't working for you.

    Note that this is also not a complete implementation. For example, index source maps technically allows nesting source maps to an arbitrary depth, while esbuild's implementation in this release only supports a single level of nesting. It's unclear whether supporting more than one level of nesting is important or not given the lack of available test cases.

    This feature was contributed by @​clyfish.

v0.25.1

Compare Source

  • Fix incorrect paths in inline source maps (#​4070, #​4075, #​4105)

    This fixes a regression from version 0.25.0 where esbuild didn't correctly resolve relative paths contained within source maps in inline sourceMappingURL data URLs. The paths were incorrectly being passed through as-is instead of being resolved relative to the source file containing the sourceMappingURL comment, which was due to the data URL not being a file URL. This regression has been fixed, and this case now has test coverage.

  • Fix invalid generated source maps (#​4080, #​4082, #​4104, #​4107)

    This release fixes a regression from version 0.24.1 that could cause esbuild to generate invalid source maps. Specifically under certain conditions, esbuild could generate a mapping with an out-of-bounds source index. It was introduced by code that attempted to improve esbuild's handling of "null" entries in source maps (i.e. mappings with a generated position but no original position). This regression has been fixed.

    This fix was contributed by @​jridgewell.

  • Fix a regression with non-file source map paths (#​4078)

    The format of paths in source maps that aren't in the file namespace was unintentionally changed in version 0.25.0. Path namespaces is an esbuild-specific concept that is optionally available for plugins to use to distinguish paths from file paths and from paths meant for other plugins. Previously the namespace was prepended to the path joined with a : character, but version 0.25.0 unintentionally failed to prepend the namespace. The previous behavior has been restored.

  • Fix a crash with switch optimization (#​4088)

    The new code in the previous release to optimize dead code in switch statements accidentally introduced a crash in the edge case where one or more switch case values include a function expression. This is because esbuild now visits the case values first to determine whether any cases are dead code, and then visits the case bodies once the dead code status is known. That triggered some internal asserts that guard against traversing the AST in an unexpected order. This crash has been fixed by changing esbuild to expect the new traversal ordering. Here's an example of affected code:

    switch (x) {
      case '':
        return y.map(z => z.value)
      case y.map(z => z.key).join(','):
        return []
    }
  • Update Go from 1.23.5 to 1.23.7 (#​4076, #​4077)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses.

    This PR was contributed by @​MikeWillCook.

v0.25.0

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.24.0 or ~0.24.0. See npm's documentation about semver for more information.

  • Restrict access to esbuild's development server (GHSA-67mh-4wv8-2f99)

    This change addresses esbuild's first security vulnerability report. Previously esbuild set the Access-Control-Allow-Origin header to * to allow esbuild's development server to be flexible in how it's used for development. However, this allows the websites you visit to make HTTP requests to esbuild's local development server, which gives read-only access to your source code if the website were to fetch your source code's specific URL. You can read more information in the report.

    Starting with this release, CORS will now be disabled, and requests will now be denied if the host does not match the one provided to --serve=. The default host is 0.0.0.0, which refers to all of the IP addresses that represent the local machine (e.g. both 127.0.0.1 and 192.168.0.1). If you want to customize anything about esbuild's development server, you can put a proxy in front of esbuild and modify the incoming and/or outgoing requests.

    In addition, the serve() API call has been changed to return an array of hosts instead of a single host string. This makes it possible to determine all of the hosts that esbuild's development server will accept.

    Thanks to @​sapphi-red for reporting this issue.

  • Delete output files when a build fails in watch mode (#​3643)

    It has been requested for esbuild to delete files when a build fails in watch mode. Previously esbuild left the old files in place, which could cause people to not immediately realize that the most recent build failed. With this release, esbuild will now delete all output files if a rebuild fails. Fixing the build error and triggering another rebuild will restore all output files again.

  • Fix correctness issues with the CSS nesting transform (#​3620, #​3877, #​3933, #​3997, #​4005, #​4037, #​4038)

    This release fixes the following problems:

    • Naive expansion of CSS nesting can result in an exponential blow-up of generated CSS if each nesting level has multiple selectors. Previously esbuild sometimes collapsed individual nesting levels using :is() to limit expansion. However, this collapsing wasn't correct in some cases, so it has been removed to fix correctness issues.

      /* Original code */
      .parent {
        > .a,
        > .b1 > .b2 {
          color: red;
        }
      }
      
      /* Old output (with --supported:nesting=false) */
      .parent > :is(.a, .b1 > .b2) {
        color: red;
      }
      
      /* New output (with --supported:nesting=false) */
      .parent > .a,
      .parent > .b1 > .b2 {
        color: red;
      }

      Thanks to @​tim-we for working on a fix.

    • The & CSS nesting selector can be repeated multiple times to increase CSS specificity. Previously esbuild ignored this possibility and incorrectly considered && to have the same specificity as &. With this release, this should now work correctly:

      /* Original code (color should be red) */
      div {
        && { color: red }
        & { color: blue }
      }
      
      /* Old output (with --supported:nesting=false) */
      div {
        color: red;
      }
      div {
        color: blue;
      }
      
      /* New output (with --supported:nesting=false) */
      div:is(div) {
        color: red;
      }
      div {
        color: blue;
      }

      Thanks to @​CPunisher for working on a fix.

    • Previously transforming nested CSS incorrectly removed leading combinators from within pseudoclass selectors such as :where(). This edge case has been fixed and how has test coverage.

      /* Original code */
      a b:has(> span) {
        a & {
          color: green;
        }
      }
      
      /* Old output (with --supported:nesting=false) */
      a :is(a b:has(span)) {
        color: green;
      }
      
      /* New output (with --supported:nesting=false) */
      a :is(a b:has(> span)) {
        color: green;
      }

      This fix was contributed by @​NoremacNergfol.

    • The CSS minifier contains logic to remove the & selector when it can be implied, which happens when there is only one and it's the leading token. However, this logic was incorrectly also applied to selector lists inside of pseudo-class selectors such as :where(). With this release, the minifier will now avoid applying this logic in this edge case:

      /* Original code */
      .a {
        & .b { color: red }
        :where(& .b) { color: blue }
      }
      
      /* Old output (with --minify) */
      .a{.b{color:red}:where(.b){color:#​00f}}
      
      /* New output (with --minify) */
      .a{.b{color:red}:where(& .b){color:#​00f}}
  • Fix some correctness issues with source maps (#​1745, #​3183, #​3613, #​3982)

    Previously esbuild incorrectly treated source map path references as file paths instead of as URLs. With this release, esbuild will now treat source map path references as URLs. This fixes the following problems with source maps:

    • File names in sourceMappingURL that contained a space previously did not encode the space as %20, which resulted in JavaScript tools (including esbuild) failing to read that path back in when consuming the generated output file. This should now be fixed.

    • Absolute URLs in sourceMappingURL that use the file:// scheme previously attempted to read from a folder called file:. These URLs should now be recognized and parsed correctly.

    • Entries in the sources array in the source map are now treated as URLs instead of file paths. The correct behavior for this is much more clear now that source maps has a formal specification. Many thanks to those who worked on the specification.

  • Fix incorrect package for @esbuild/netbsd-arm64 (#​4018)

    Due to a copy+paste typo, the binary published to @esbuild/netbsd-arm64 was not actually for arm64, and didn't run in that environment. This release should fix running esbuild in that environment (NetBSD on 64-bit ARM). Sorry about the mistake.

  • Fix a minification bug with bitwise operators and bigints (#​4065)

    This change removes an incorrect assumption in esbuild that all bitwise operators result in a numeric integer. That assumption was correct up until the introduction of bigints in ES2020, but is no longer correct because almost all bitwise operators now operate on both numbers and bigints. Here's an example of the incorrect minification:

    // Original code
    if ((a & b) !== 0) found = true
    
    // Old output (with --minify)
    a&b&&(found=!0);
    
    // New output (with --minify)
    (a&b)!==0&&(found=!0);
  • Fix esbuild incorrectly rejecting valid TypeScript edge case (#​4027)

    The following TypeScript code is valid:

    export function open(async?: boolean): void {
      console.log(async as boolean)
    }

    Before this version, esbuild would fail to parse this with a syntax error as it expected the token sequence async as ... to be the start of an async arrow function expression async as => .... This edge case should be parsed correctly by esbuild starting with this release.

  • Transform BigInt values into constructor calls when unsupported (#​4049)

    Previously esbuild would refuse to compile the BigInt literals (such as 123n) if they are unsupported in the configured target environment (such as with --target=es6). The rationale was that they cannot be polyfilled effectively because they change the behavior of JavaScript's arithmetic operators and JavaScript doesn't have operator overloading.

    However, this prevents using esbuild with certain libraries that would otherwise work if BigInt literals were ignored, such as with old versions of the buffer library before the library fixed support for running in environments without BigInt support. So with this release, esbuild will now turn BigInt literals into BigInt constructor calls (so 123n becomes BigInt(123)) and generate a warning in this case. You can turn off the warning with --log-override:bigint=silent or restore the warning to an error with --log-override:bigint=error if needed.

  • Change how console API dropping works (#​4020)

    Previously the --drop:console feature replaced all method calls off of the console global with undefined regardless of how long the property access chain was (so it applied to console.log() and console.log.call(console) and console.log.not.a.method()). However, it was pointed out that this breaks uses of console.log.bind(console). That's also incompatible with Terser's implementation of the feature, which is where this feature originally came from (it does support bind). So with this release, using this feature with esbuild will now only replace one level of method call (unless extended by call or apply) and will replace the method being called with an empty function in complex cases:

    // Original code
    const x = console.log('x')
    const y = console.log.call(console, 'y')
    const z = console.log.bind(console)('z')
    
    // Old output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (void 0)("z");
    
    // New output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (() => {
    }).bind(console)("z");

    This should more closely match Terser's existing behavior.

  • Allow BigInt literals as define values

    With this release, you can now use BigInt literals as define values, such as with --define:FOO=123n. Previously trying to do this resulted in a syntax error.

  • Fix a bug with resolve extensions in node_modules (#​4053)

    The --resolve-extensions= option lets you specify the order in which to try resolving implicit file extensions. For complicated reasons, esbuild reorders TypeScript file extensions after JavaScript ones inside of node_modules so that JavaScript source code is always preferred to TypeScript source code inside of dependencies. However, this reordering had a bug that could accidentally change the relative order of TypeScript file extensions if one of them was a prefix of the other. That bug has been fixed in this release. You can see the issue for details.

  • Better minification of statically-determined switch cases (#​4028)

    With this release, esbuild will now try to trim unused code within switch statements when the test expression and case expressions are primitive literals. This can arise when the test expression is an identifier that is substituted for a primitive literal at compile time. For example:

    // Original code
    switch (MODE) {
      case 'dev':
        installDevToolsConsole()
        break
      case 'prod':
        return
      default:
        throw new Error
    }
    
    // Old output (with --minify '--define:MODE="prod"')
    switch("prod"){case"dev":installDevToolsConsole();break;case"prod":return;default:throw new Error}
    
    // New output (with --minify '--define:MODE="prod"')
    return;
  • Emit /* @​__KEY__ */ for string literals derived from property names (#​4034)

    Property name mangling is an advanced feature that shortens certain property names for better minification (I say "advanced feature" because it's very easy to break your code with it). Sometimes you need to store a property name in a string, such as obj.get('foo') instead of obj.foo. JavaScript minifiers such as esbuild and Terser have a convention where a /* @​__KEY__ */ comment before the string makes it behave like a property name. So obj.get(/* @​__KEY__ */ 'foo') allows the contents of the string 'foo' to be shortened.

    However, esbuild sometimes itself generates string literals containing property names when transforming code, such as when lowering class fields to ES6 or when transforming TypeScript decorators. Previously esbuild didn't generate its own /* @​__KEY__ */ comments in this case, which means that minifying your code by running esbuild again on its own output wouldn't work correctly (this does not affect people that both minify and transform their code in a single step).

    With this release, esbuild will now generate /* @​__KEY__ */ comments for property names in generated string literals. To avoid lots of unnecessary output for people that don't use this advanced feature, the generated comments will only be present when the feature is active. If you want to generate the comments but not actually mangle any property names, you can use a flag that has no effect such as --reserve-props=., which tells esbuild to not mangle any property names (but still activates this feature).

  • The text loader now strips the UTF-8 BOM if present (#​3935)

    Some software (such as Notepad on Windows) can create text files that start with the three bytes 0xEF 0xBB 0xBF, which is referred to as the "byte order mark". This prefix is intended to be removed before using the text. Previously esbuild's text loader included this byte sequence in the string, which turns into a prefix of \uFEFF in a JavaScript string when decoded from UTF-8. With this release, esbuild's text loader will now remove these bytes when they occur at the start of the file.

  • Omit legal comment output files when empty (#​3670)

    Previously configuring esbuild with --legal-comment=external or --legal-comment=linked would always generate a .LEGAL.txt output file even if it was empty. Starting with this release, esbuild will now only do this if the file will be non-empty. This should result in a more organized output directory in some cases.

  • Update Go from 1.23.1 to 1.23.5 (#​4056, #​4057)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses.

    This PR was contributed by @​MikeWillCook.

  • Allow passing a port of 0 to the development server (#​3692)

    Unix sockets interpret a port of 0 to mean "pick a random unused port in the ephemeral port range". However, esbuild's default behavior when the port is not specified is to pick the first unused port starting from 8000 and upward. This is more convenient because port 8000 is typically free, so you can for example restart the development server and reload your app in the browser without needing to change the port in the URL. Since esbuild is written in Go (which does not have optional fields like JavaScript), not specifying the port in Go means it defaults to 0, so previously passing a port of 0 to esbuild caused port 8000 to be picked.

    Starting with this release, passing a port of 0 to esbuild when using the CLI or the JS API will now pass port 0 to the OS, which will pick a random ephemeral port. To make this possible, the Port option in the Go API has been changed from uint16 to int (to allow for additional sentinel values) and passing a port of -1 in Go now picks a random port. Both the CLI and JS APIs now remap an explicitly-provided port of 0 into -1 for the internal Go API.

    Another option would have been to change Port in Go from uint16 to *uint16 (Go's closest equivalent of number | undefined). However, that would make the common case of providing an explicit port in Go very awkward as Go doesn't support taking the address of integer constants. This tradeoff isn't worth it as picking a random ephemeral port is a rare use case. So the CLI and JS APIs should now match standard Unix behavior when the port is 0, but you need to use -1 instead with Go API.

  • Minification now avoids inlining constants with direct eval (#​4055)

    Direct eval can be used to introduce a new variable like this:

    const variable = false
    ;(function () {
      eval("var variable = true")
      console.log(variable)
    })()

    Previously esbuild inlined variable here (which became false), which changed the behavior of the code. This inlining is now avoided, but please keep in mind that direct eval breaks many assumptions that JavaScript tools hold about normal code (especially when bundling) and I do not recommend using it. There are usually better alternatives that have a more localized impact on your code. You can read more about this here: https://esbuild.github.io/link/direct-eval/


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@changeset-bot
Copy link

changeset-bot bot commented May 7, 2025

⚠️ No Changeset found

Latest commit: 33b3567

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@dosubot dosubot bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label May 7, 2025
@hannesrudolph hannesrudolph moved this from New to PR [Pre Approval Review] in Roo Code Roadmap May 7, 2025
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label May 8, 2025
@cte cte merged commit 0725b32 into main May 8, 2025
17 checks passed
@cte cte deleted the renovate/esbuild-0.x branch May 8, 2025 19:02
@github-project-automation github-project-automation bot moved this from PR [Pre Approval Review] to Done in Roo Code Roadmap May 8, 2025
bgilbert6 pushed a commit to bgilbert6/Roo-Code that referenced this pull request May 14, 2025
* deleteTasksWithIDs protobus migration

* Moved deleteTasksWithIds to dedicated message type

* Created common StringArrayRequest

* Delete webview-ui/.vite-port
mehmetsunkur pushed a commit to mehmetsunkur/Roo-Code that referenced this pull request May 16, 2025
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
monkeyDluffy6017 added a commit to zgsm-ai/costrict that referenced this pull request May 22, 2025
* v3.15.3 (#3133)

* More robust process killing (#3136)

* Fix empty command bug (#3139)

* Changeset version bump (#3134)

* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>

* Add isSubtask to telemetry (#3141)

* Gemini caching tweaks (#3142)

* Remove help button from title bar (#3150)

* Fix issues with subtasks attempting completion along with commands (#3156)

* Changeset version bump (#3149)

* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>

* Update @google/genai package (#3166)

* perf: optimize code block rendering performance (#3135)

feat: optimize code block rendering performance

Memoize CodeBlock components to prevent unnecessary re-renders:
- Add MemoizedCodeContent for syntax highlighted HTML
- Add MemoizedStyledPre for container element
- Properly type all component props
- Reduce React reconciliation work for complex code blocks

Signed-off-by: Eric Wheeler <[email protected]>
Co-authored-by: Eric Wheeler <[email protected]>

* Changeset version bump (#3167)

* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Chris Estreich <[email protected]>

* Add support for tests that use ESM libraries (#3172)

* Add support for tests that use ESM libraries

* Disable win32 for this test for now

* Tidy up the Cline class a bit (#3100)

* Tidy up the Cline class a bit

* Clean up more comments

* fix: migrate and persist modeApiConfigs for per-mode API profiles (#3071)

* feat: clickable code references in model responses navigate to source lines (#3087)

Co-authored-by: Eric Wheeler <[email protected]>

* Move environment details to a separate module, add tests (#3078)

* Improve Accessibility of Auto-Approve Toggles (#3145)

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

* feat: add VSCode terminal environment inheritance setting (#2862)

Co-authored-by: Eric Wheeler <[email protected]>

* Webview message handler + terminal settings cleanup (#3189)

* chore: Configure Renovate (#1771)

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

* feat: Add Groq and Chutes API providers (#3034)

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

* Organize provider settings into separate components (#3196)

* Use Lucide icons and translations in the code block (#3203)

* Requesty provider fixes (#3193)

Co-authored-by: Chris Estreich <[email protected]>

* Move remaining provider settings into separate components (#3208)

* #1287 - ignore stderr of MCP servers unless it really fails to connect (#1441)

Co-authored-by: cte <[email protected]>

* feat: Add error console to MCP servers - Edited with Roo Code and Anthropic Claude 3.5 (#2722)

Co-authored-by: cte <[email protected]>

* Feat: Vertical settings tabs (#2914)

Co-authored-by: Matt Rubens <[email protected]>

* Fix language select width calculation (#3201)

* Fix/remove path lib webview (#2529)

* chore: prepare for v3.16.0 release (#3214)

* refactor: general UI improvements (#2987)

* Add gemini-2.5-pro-preview-05-06 model (#3222)

Add model gemini-2.5-pro-preview-05-06

* Update setup script to pull latest evals repo (#3200)

* Enable Gemini prompt caching by default (#3225)

* Changeset version bump (#3188)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>

* chore(deps): update dependency @types/node to v20.17.42 (#3194)

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

* chore(deps): update dependency vitest to v3.1.3 (#3212)

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

* chore(deps): update dependency @types/node to v18.19.96 (#3191)

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

* chore(deps): update dependency tsx to v4.19.4 (#3211)

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

* chore(deps): update dependency glob to v11.0.2 (#3209)

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

* chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3205)

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

* chore(deps): update dependency eslint-config-prettier to v10.1.2 (#3204)

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

* chore(deps): update dependency @vscode/test-cli to ^0.0.10 (#3195)

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

* fix(deps): update dependency @types/pdf-parse to v1.1.5 (#3227)

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

* chore(deps): replace dependency npm-run-all with npm-run-all2 ^5.0.0 (#3190)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: cte <[email protected]>

* fix(deps): update dependency fast-xml-parser to v4.5.3 (#3228)

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

* Add editor name to telemetry (#3229)

* Add Dutch localization files (#3231)

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

* Update contributors list (#3131)

Co-authored-by: mrubens <[email protected]>

* fix(deps): update dependency i18next to v24.2.3 (#3232)

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

* fix(deps): update dependency react-textarea-autosize to v8.5.9 (#3233)

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

* fix: wrap footer buttons in About section on narrow screens (#3234)

* feat: Revamp contribution process and templates (#3246)

* fix: update links in issue and pull request templates to relative paths (#3251)

* Update CODE_OF_CONDUCT and CONTRIBUTING documents across multiple lan… (#3254)

* fix(deps): update dependency styled-components to v6.1.17 (#3253)

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

* fix(deps): update dependency remove-markdown to v0.6.2 (#3252)

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

* fix(deps): update react monorepo (#3265)

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

* chore(deps): update dependency @changesets/cli to v2.29.3 (#3266)

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

* chore(deps): update dependency @dotenvx/dotenvx to v1.43.0 (#3272)

* chore(deps): update dependency @testing-library/react to v16.3.0 (#3273)

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

* chore(deps): update dependency @types/node-cache to v4.2.5 (#3274)

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

* chore(deps): update dependency @types/node to v20.17.44 (#3238)

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

* chore(deps): update dependency @types/node to v18.19.98 (#3237)

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

* fix(deps): update dependency zod to v3.24.4 (#3255)

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

* fix(deps): update dependency react-virtuoso to v4.12.7 (#3250)

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

* Tailwind migration (#3235)

Co-authored-by: cte <[email protected]>

* Detect tool loops (#3240)

* Add LiteLLM provider (#3242)

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

* chore(deps): update dependency @vscode/test-electron to v2.5.2 (#3280)

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

* chore(deps): update dependency @vitejs/plugin-react to v4.4.1 (#3279)

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

* Update evals defaults, stop forking cte/evals (#3283)

* chore(deps): update dependency drizzle-kit to ^0.31.0 (#3281)

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

* v3.16.1 (#3292)

* Update contributors list (#3248)

Co-authored-by: mrubens <[email protected]>

* fix: reset the variable `isWaitingForFirstChunk` when catch exception (#3262)

* Changeset version bump (#3230)

* changeset version bump

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Clarify XML tool use formatting instructions (#3295)

* v3.16.2 (#3298)

* Update contributors list (#3296)

docs: update contributors list [skip ci]

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (#3300)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* chore(deps): update dependency mocha to v11.2.2 (#3293)

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

* chore(deps): update dependency prettier to v3.5.3 (#3294)

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

* chore(deps): update dependency @types/node to v20.17.45 (#3302)

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

* chore(deps): update dependency @types/node to v18.19.99 (#3301)

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

* chore(deps): update dependency lint-staged to v15.5.2 (#3290)

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

* chore(deps): update dependency knip to v5.55.0 (#3289)

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

* chore(deps): update dependency globals to v16.1.0 (#3288)

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

* chore(deps): update dependency eslint-plugin-storybook to ^0.12.0 (#3287)

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

* fix: add Elixir (.ex, .exs) file extension support in language parser (#3306)

Co-authored-by: Friedrich Pfitzmann <[email protected]>

* Revert "Tailwind migration" (#3321)

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

* Changeset version bump (#3324)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Update CHANGELOG.md (#3326)

* fix: properly handle mode name overflow (#3328)

* chore(deps): update dependency @types/node to v20.17.46 (#3325)

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

* chore(deps): update dependency @types/node to v18.19.100 (#3323)

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

* chore(deps): update dependency ts-jest to v29.3.2 (#3318)

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

* chore(deps): update dependency rust to v1.86.0 (#3317)

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

* fix(deps): update dependency styled-components to v6.1.18 (#3316)

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

* chore(deps): update dependency knip to v5.55.1 (#3315)

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

* fix: project mcp allways allow (#3332)

* fix: enhance focus styles in select-dropdown and docs url (#3336)

* chore(deps): update dependency typescript to v5.8.3 (#3330)

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

* chore(deps): update dependency typescript-eslint to v8.32.0 (#3331)

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

* chore(deps): update eslint monorepo to v9.26.0 (#3335)

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

* chore(deps): update dependency vite to v6.3.5 (#3334)

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

* Fix: Enforce provider selection in OpenRouter by using 'only' parameter and disabling fallbacks (#3338)

* Move checkpoint code into a separate module (#3291)

* Move presentAssistantMessage into its own module (#3345)

* build: prevent $esbuild-watch error (#1711)

Co-authored-by: Eric Wheeler <[email protected]>

* chore(deps): update eslint monorepo to v9.26.0 (#3340)

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

* Disable Posthog autocapture in the code in addition to in the web console (#3303)

* chore(deps): update dependency esbuild to ^0.25.0 (#3282)

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

* Rename `Cline` to `Task` (#3352)

* chore(deps): update storybook monorepo to v8.6.12 (#3350)

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

* Stop leaking other provider settings (#3357)

* Stop leaking other provider settings

* Also filter out leaked properties on export

* fix display issues with too long profile names in ChatTextArea.tsx (#3371)

* fix: Prevent terminal focus theft on paste after command execution (#3356)

* fix: show properly formatted multi-line commands in preview (#3368)

Co-authored-by: Eric Wheeler <[email protected]>

* Fix not being able to use specific providers on Openrouter (#3354)

* fix: handle unsupported language errors gracefully in read_file tool (#3359)

Co-authored-by: Eric Wheeler <[email protected]>

* fix(prompts): revert to vscodetextarea to prevent race condition (#3343)

* Simplify the process of setting the "active" provider profile (#3366)

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

* fix(deps): update dependency @google/genai to ^0.13.0 (#3374)

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

* fix(deps): update dependency @aws-sdk/client-bedrock-runtime to v3.806.0 (#3373)

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

* chore(deps): update turbo monorepo to v2.5.3 (#3361)

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

* fix(deps): update dependency execa to v9.5.3 (#3360)

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

* Get rid of `ApiConfiguration` type alias, rename `ApiConfigMeta` to `ProviderSettingsEntry` (#3380)

* Export more types to the external API (#3383)

* fix(deps): update dependency drizzle-zod to v0.7.1 (#3393)

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

* chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3385)

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

* chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3384)

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

* fix(deps): update dependency axios to v1.9.0 (#3382)

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

* fix(deps): update dependency @tanstack/react-query to v5.75.7 (#3378)

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

* chore(deps): update eslint monorepo to v9.26.0 (#3397)

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

* fix(deps): update dependency cmdk to v1.1.1 (#3398)

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

* fix(deps): update dependency @libsql/client to ^0.15.0 (#3375)

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

* Improve provider profile management in the external API (#3386)

Co-authored-by: John Richmond <[email protected]>

* Fix saving of OpenAI compatible headers (#3415)

* Fix saving of OpenAI compatible headers

* Code cleanup

* Add test

* Fix: forced-color-adjust in highlight theme (#3424)

* v3.16.4 (#3426)

* Changeset version bump (#3427)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Revert "Improve provider profile management in the external API (#3386)" (#3440)

* Changeset version bump (#3441)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Pr template fix (#3448)

* Fix links to Contributing Guidelines in pull request template

* ../

* Tweaks to the issue/bug intended to make it more intuitive.  (#3452)

* Update bug report template for clarity and improved user guidance

* Add Google Vertex AI and LiteLLM to API Provider options in bug report template

* Refactor bug report template to enforce required fields for reproduct… (#3454)

Refactor bug report template to enforce required fields for reproduction steps and outcome summary

* fix(textarea): empty string as fallback (#3463)

* Updated roadmap (#3469)

* fix: webview terminal output processing error (#3028)

* fix(deps): update dependency lucide-react to ^0.510.0 (#3402)

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

* ClineProvider.finishSubTask should wait for unpausing the parent task (#1870)

* Restore profile management work + fix #3434 (#3449)

Co-authored-by: Matt Rubens <[email protected]>

* Changeset version bump (#3507)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Chris Estreich <[email protected]>

* Improve command execution UI (#3509)

* chore(deps): update dependency @changesets/cli to v2.29.4 (#3501)

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

* fix(deps): update dependency mermaid to v11.6.0 (#3417)

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

* fix(deps): update dependency drizzle-orm to ^0.43.0 (#3401)

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

* fix(deps): update dependency mammoth to v1.9.0 (#3409)

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

* fix: get model id from ApiHandler (#3512)

Not all handlers/providers use apiModelId, but they do all return a
model id from getModel().

* Gemini implicit caching (#3515)

* Update CHANGELOG.md (#3518)

* chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3511)

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

* chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3510)

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

* fix(deps): update dependency @libsql/client to v0.15.5 (#3517)

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

* chore(deps): update dependency typescript-eslint to v8.32.1 (#3516)

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

* Handle directory URI on diagnostics (#3457)

* Use the provider-specific model info for the OpenRouter provider  (#3430)

* Greyscreen fix (#3474)

Co-authored-by: Matt Rubens <[email protected]>

* make apply_diff can deduce when  line number in search part  fix #2990 (#3329)

* fix(deps): update dependency posthog-node to v4.17.1 (#3532)

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

* fix(deps): update dependency posthog-js to v1.240.6 (#3531)

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

* fix(deps): update dependency @tanstack/react-query to v5.76.0 (#3527)

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

* fix(deps): update dependency @aws-sdk/client-bedrock-runtime to v3.808.0 (#3525)

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

* chore(deps): update eslint monorepo to v9.26.0 (#3524)

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

* fix(deps): update dependency react-i18next to v15.5.1 (#3535)

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

* fix: command validation failing on shell array indexing (#3530)

Co-authored-by: Eric Wheeler <[email protected]>

* fix(task): temporary fix for the ask error (#3471)

Co-authored-by: cte <[email protected]>

* Requesty: Only report final usage (#3542)

* Add tests + benchmark for parseAssistantMessage V1 + 2 (#3538)

* fix(deps): update dependency react-markdown to v9.1.0 (#3545)

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

* fix(deps): update dependency posthog-js to v1.241.1 (#3544)

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

* fix(deps): update dependency shiki to v3.4.0 (#3548)

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

* Accidental execution of tool syntax fix (#3456)

Co-authored-by: cte <[email protected]>

* Revert "Accidental execution of tool syntax fix" (#3560)

* Focus improvements (#3539)

* Show LLM streaming file write content (#3241)

* fix(deps): update dependency posthog-js to v1.242.0 (#3562)

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

* Publish Roo Code types to NPM (#3563)

* Revert "Publish Roo Code types to NPM" (#3566)

Revert "Publish Roo Code types to NPM (#3563)"

This reverts commit f031914450e0a4defcdd0ec2f1c4eb8692f75c37.

* fix(deps): update tailwindcss monorepo to v4.1.6 (#3565)

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

* fix(deps): update nextjs monorepo to v15.3.2 (#3564)

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

* Make CONTRIBUTING.md more concise (#3472)

* Add IPC types to roo-code.d.ts (#3568)

* Switch to the new Roo message parser (#3567)

* chore(deps): update actions/checkout action to v4 (#3569)

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

* chore(deps): update actions/setup-node action to v4 (#3570)

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

* chore(deps): update dependency eslint-plugin-react to v7.37.5 (#3575)

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

* chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3574)

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

* chore(deps): update dependency @dotenvx/dotenvx to v1.44.0 (#3521)

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

* Revert "fix(deps): update nextjs monorepo to v15.3.2" (#3578)

* Fix linter warning + run prettier on everything (#3581)

* Add a 'when to use' section to mode definitions (#3571)

* Add a 'when to use' section to mode definitions

* Remove defaults for now

* Refactor: Update custom instructions for 'ask' mode (#3583)

This commit refines the custom instructions for the 'ask' mode. The changes aim to provide clearer guidance to the AI, emphasizing thoroughness in answering questions and caution against prematurely switching to code implementation.

Specifically, the instructions were updated as follows:

- Changed "Make sure to answer the user's questions" to "Always answer the user’s questions thoroughly"
- Changed "don't rush to switch to implementing code" to "do not switch to implementing code unless explicitly requested by the user"
- Changed "Include Mermaid diagrams if they help make your response clearer" to "Include Mermaid diagrams when they clarify your response"

These changes are reflected in both [`src/shared/modes.ts`](src/shared/modes.ts:80) and its corresponding snapshot file [`src/core/prompts/__tests__/__snapshots__/system.test.ts.snap`](src/core/prompts/__tests__/__snapshots__/system.test.ts.snap:5458).

* Refactor: Update new_task tool description and mode examples (#3586)

The description for the `new_task` tool has been simplified for clarity.
Additionally, the example modes listed for the `mode` parameter have been updated to include "debug" instead of "ask".

* feat:merge Roo Code conflicting code (#107)

* feat: merge part of roo code (#111)

* feat: merge part2 of roo code (#114)

* feat: merge Roo Code (#115)

* feat: merge Roo Code (#119)

* feat: merge part of roo code (#121)

* feat: merge part of roo code (#135)

* fix: bug (#137)

* test: Update 'roo' to 'shenma' in snap file to prevent test cases from failing

This update changes the identifier 'roo' to 'shenma' in the snap file and code test file , ensuring that the relevant test cases now pass as expected.

* fix: Fix ts error (#138)

Co-authored-by: mini2s <[email protected]>

* fix: language bug fix (#139)

* fix: bug (#140)

* fix: bug (#142)

* test: Fix failing test cases and update files under "e2e" to ensure the GitHub Action "integration-test" runs successfully

This commit includes fixes for existing failing test cases and necessary updates to files within the "e2e" directory to ensure that the "integration-test" workflow in GitHub Actions executes smoothly.

* fix: language bug fix (#143)

* Fix/unit test case (#144)

* test: Update 'roo' to 'shenma' in snap file to prevent test cases from failing

This update changes the identifier 'roo' to 'shenma' in the snap file and code test file , ensuring that the relevant test cases now pass as expected.

* test: Fix failing test cases and update files under "e2e" to ensure the GitHub Action "integration-test" runs successfully

This commit includes fixes for existing failing test cases and necessary updates to files within the "e2e" directory to ensure that the "integration-test" workflow in GitHub Actions executes smoothly.

---------

Co-authored-by: dengbin <[email protected]>

* Feat roo merge v3 (#146)

* feat: add ZGSM provider settings and update auth configuration

* refactor(zgsm): update ZGSM provider configuration and model handling

* refactor(zgsm): update model selection logic and remove pricing details

---------

Co-authored-by: mini2s <[email protected]>

* Feat roo merge zgsm133 (#147)

* fix: add truncateContent function to limit file content size (#103)

* feat: support custom auth url (#102)

* chore: add zgsm/src to Jest roots for improved test coverage (#104)

* fix the wrong feature request URL

* fix(github actions): ensure "Publish Extension" properly publishes version to GitHub Release (#105)

Updated the "Publish Extension" GitHub Actions workflow to correctly
package and publish releases to GitHub Release. This change ensures that
the release process completes successfully and uploads the appropriate
versioned assets.

Co-authored-by: dengbin <[email protected]>

* version: upgrade to 1.3.3 (#112)

* chore: change the model field in the issue template to not required and optimize contribution documentation description. (#120)

* fix: login text modify (#132)

* fix: user doesn't open webview but trigger completion (#127)

Enhances user authentication by adding logic to manage authentication callbacks without opening the webview when a valid token is present.

* fix: an infinite loop in login (#134)

* fix: simplify ZGSM auth URL generation by removing custom URL options

* feat: add AI-related SVG icons and images for UI components

---------

Co-authored-by: WayneWang00 <[email protected]>
Co-authored-by: weiz3630 <[email protected]>
Co-authored-by: 年欣阳69391 <[email protected]>
Co-authored-by: Chris Nian <[email protected]>
Co-authored-by: dengbinbox <[email protected]>
Co-authored-by: dengbin <[email protected]>
Co-authored-by: Liu Wei <[email protected]>
Co-authored-by: xiaojingming <[email protected]>

* feat: roo code merge (#148)

* fix: add truncateContent function to limit file content size (#103)

* feat: support custom auth url (#102)

* chore: add zgsm/src to Jest roots for improved test coverage (#104)

* fix the wrong feature request URL

* fix(github actions): ensure "Publish Extension" properly publishes version to GitHub Release (#105)

Updated the "Publish Extension" GitHub Actions workflow to correctly
package and publish releases to GitHub Release. This change ensures that
the release process completes successfully and uploads the appropriate
versioned assets.

Co-authored-by: dengbin <[email protected]>

* version: upgrade to 1.3.3 (#112)

* chore: change the model field in the issue template to not required and optimize contribution documentation description. (#120)

* fix: login text modify (#132)

* fix: user doesn't open webview but trigger completion (#127)

Enhances user authentication by adding logic to manage authentication callbacks without opening the webview when a valid token is present.

* fix: an infinite loop in login (#134)

---------

Co-authored-by: WayneWang00 <[email protected]>
Co-authored-by: weiz3630 <[email protected]>
Co-authored-by: 年欣阳69391 <[email protected]>
Co-authored-by: Chris Nian <[email protected]>
Co-authored-by: dengbinbox <[email protected]>
Co-authored-by: dengbin <[email protected]>
Co-authored-by: Liu Wei <[email protected]>
Co-authored-by: xiaojingming <[email protected]>

* feat: roocode merge (#150)

* fix: add truncateContent function to limit file content size (#103)

* feat: support custom auth url (#102)

* chore: add zgsm/src to Jest roots for improved test coverage (#104)

* fix the wrong feature request URL

* fix(github actions): ensure "Publish Extension" properly publishes version to GitHub Release (#105)

Updated the "Publish Extension" GitHub Actions workflow to correctly
package and publish releases to GitHub Release. This change ensures that
the release process completes successfully and uploads the appropriate
versioned assets.

Co-authored-by: dengbin <[email protected]>

* version: upgrade to 1.3.3 (#112)

* chore: change the model field in the issue template to not required and optimize contribution documentation description. (#120)

* fix: login text modify (#132)

* fix: user doesn't open webview but trigger completion (#127)

Enhances user authentication by adding logic to manage authentication callbacks without opening the webview when a valid token is present.

* fix: an infinite loop in login (#134)

---------

Co-authored-by: WayneWang00 <[email protected]>
Co-authored-by: weiz3630 <[email protected]>
Co-authored-by: 年欣阳69391 <[email protected]>
Co-authored-by: Chris Nian <[email protected]>
Co-authored-by: dengbinbox <[email protected]>
Co-authored-by: dengbin <[email protected]>
Co-authored-by: Liu Wei <[email protected]>
Co-authored-by: xiaojingming <[email protected]>

* feat: roocode merge (#151)

* fix: add truncateContent function to limit file content size (#103)

* feat: support custom auth url (#102)

* chore: add zgsm/src to Jest roots for improved test coverage (#104)

* fix the wrong feature request URL

* fix(github actions): ensure "Publish Extension" properly publishes version to GitHub Release (#105)

Updated the "Publish Extension" GitHub Actions workflow to correctly
package and publish releases to GitHub Release. This change ensures that
the release process completes successfully and uploads the appropriate
versioned assets.

Co-authored-by: dengbin <[email protected]>

* version: upgrade to 1.3.3 (#112)

* chore: change the model field in the issue template to not required and optimize contribution documentation description. (#120)

* fix: login text modify (#132)

* fix: user doesn't open webview but trigger completion (#127)

Enhances user authentication by adding logic to manage authentication callbacks without opening the webview when a valid token is present.

* fix: an infinite loop in login (#134)

---------

Co-authored-by: WayneWang00 <[email protected]>
Co-authored-by: weiz3630 <[email protected]>
Co-authored-by: 年欣阳69391 <[email protected]>
Co-authored-by: Chris Nian <[email protected]>
Co-authored-by: dengbinbox <[email protected]>
Co-authored-by: dengbin <[email protected]>
Co-authored-by: Liu Wei <[email protected]>
Co-authored-by: xiaojingming <[email protected]>

* feat: merge roocode (#155)

* Rename cline_docs -> docs (#3587)

* Update contributors list (#3299)

Co-authored-by: mrubens <[email protected]>

* fix(deps): update dependency posthog-js to v1.242.1 (#3602)

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

* Use a shadcn dialog for the announcement (#3604)

* feat: add buildDocLink utility and 21 Internal Links to Docs (#3418)

Co-authored-by: Matt Rubens <[email protected]>

* Add build vsix Workflow (#3600)

* build: enable source maps for improved debugging (#3596)

Co-authored-by: Eric Wheeler <[email protected]>

* v3.16.7 (#3614)

* [Condense] Condense messages with an LLM rather than truncating (#3582)

Co-authored-by: Matt Rubens <[email protected]>

* Fix type generation (#3619)

* Update contributors list (#3612)

Co-authored-by: mrubens <[email protected]>

* v3.17.0 (#3622)

* Changeset version bump (#3556)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: correct Changelog link in localized README files (#3629)

The Changelog link in `locales/ja/README.md` and other localized
READMEswas pointing to a broken relative path, resulting in 404s.This
commit updates the link to use a correct relative path
(`../../CHANGELOG.md`)so that it works across all locales.

* Fix incorrect reserved tokens calculation on OpenRouter (#3626)

fix: improve token reservation logic in calculateTokenDistribution

* Fix command display in the approval required case (#3636)

* Changeset version bump (#3637)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Chris Estreich <[email protected]>

* Fix how custom instructions are loaded into the API request (#3638)p

* Lock the versions of vsce and ovsx (#3643)

* Revert "Switch to the new Roo message parser" (#3649)

* Changeset version bump (#3645)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>

* Import settings bug fix / improvements (#3657)

* Export ProviderName type to Roo-Code-Types (#3675)

* Log Cleanup to Remove Cline (#3704)

* Rename Errors & Fix Spelling Mistake

* Update src/core/task/Task.ts

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

---------

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

* #3679 - Fixes packaging to include correct tiktoken.wasm (lite) (#3697)

- also, additions to .gitignore and .vscodeignore to prevent the IntelliJ .idea and .qodo folders from being included for git and packaging.

* Adds refresh models button for Unbound provider (#3663)

* Adds refresh models button for Unbound provider

* Adds changeset

* Optimizes code to prevent memory leak, add error messages

* Adds unbound messages to all supported languages

---------

Co-authored-by: Pugazhendhi <[email protected]>

* Add Qwen3 model series to the Chutes provider (#3710)

* Add Qwen3 model series to the Chutes provider

New models for the Chutes provider:

- Qwen/Qwen3-235B-A22B
- Qwen/Qwen3-32B
- Qwen/Qwen3-30B-A3B
- Qwen/Qwen3-14B
- Qwen/Qwen3-8B

* add changeset

* fix(webview): Fix links to filename:0 (#3727)

* fix(webview): Fix links to filename:0

* Add changeset

* LM studio reasoning support (thinking block) (#3719)

lmstudio reasoning support (thinking block)

Similar to ollama implementation in #1080

* feat(evals): add UI and backend support for importing and injecting f… (#3606)

* [Condense Context] Track metrics around context condensing and show in UI

* Add UI component

* account for system prompt when estimating new context size

* add header

* bug fix

* nit

* nit

* refactor

* fix

* add unit tests for condense

* update sliding-window tests

* add getApiMetrics.test.ts

* fix failing tests

* use chat.json

* add translations

* add tests for ContextCondenseRow

* add changeset

* camelCase

* use Markdown for summary

* use tailwind

* non default export

* rm test :/

* Make prompt input textareas resizable (#3691) (#3739)

* feat: move play audio to webview to ensure cross-platform (#3659)

Co-authored-by: sam hoang <[email protected]>

* refactor:  import multiple times (#3745)

* Add YAML support for .roomode files alongside JSON processing (#3711)

* ✨ feat(settings): Add allowedMaxRequests feature inspired by Cline (#3631)

* feat(settings): Introduce the "auto-approve request count" feature from Cline

This is the first minor UI feature I've added, so please let me know if I'm missing anything! (translations, organization, etc!)

Please see commits for details

introduce allowedMaxRequests to globalSettingsSchema
update ExtensionState and its context with allowedMaxRequests
implement UI for setting max requests in AutoApproveMenu component
prompt user when auto-approval limit is reached with i18n support
increment consecutiveAutoApprovedRequestsCount and reset upon user approval
add translations for auto-approved request limit reached prompt in multiple languages
add new UI for "auto_approval_max_req_reached" in ChatRowContent
display prompt with title, description, and button for user action

🔧 chore(gitignore): add .idea to .gitignore to exclude IDE-specific files
- remove .idea/workspace.xml to clean up repository

* 🔧 chore(gitignore): add IDE configuration files to ignore list

- add .idea directory to ignore JetBrains IDE configurations

* 🌐 i18n(chat): add translation keys for api request limit

- introduce translation keys for "title" and "unlimited" in multiple languages
- update description for api request limit in various languages

* 🌐 i18n(chat): migrate auto-approved request limit translations

- move translations from common.json to chat.json across locales
- update component to use Trans for dynamic text rendering

* Update the UI for setting max requests

* Hide the auto-approve limit warning once clicked

---------

Co-authored-by: Matt Rubens <[email protected]>

* Move error message for settings import failure into the correct position (#3752)

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

* feat: use template variables for version numbers in announcement strings (#3755)

* Auto-reload core changes in dev mode (#3284)

Co-authored-by: Matt Rubens <[email protected]>

* Moved repo to new org (#3756)

* Use yaml as default custom modes format (#3749)

* [Condense] Add a button to condense the task context (#3623)

* [Condense] Add a button to condense the task context

* wip

* wip

* wip

* bring back delete size

* account for the system prompt in the context

* update tests to use systemPrompt

* add type

* translations

* nit

* update tests

* filter to the current task

* nit

* refactor

* nit

* non interactive option

* simplify chat summary UI

* changeset

* nit

* fix check-types

* throw

* [Condense] Fix double counting last message when condensing (#3763)

* Get package publisher and name from package.json + command type safety (#3766)

* Lm studio and ollama usage fix (#3707)

* integration

* Fix

* [Condense] Change condense icon (#3768)

* [Condense] Change condense icon

* change to fold

* feat: add gemini-2.5-flash-preview-05-20 models (#3769)

* Add Gemini Flash 2.5 05-20 variants for the Vertex provider (#3758)

* feat(api): add gemini-2.5-flash-preview-05-20 model configuration

* feat(tests): update apiModelId to gemini-2.5-flash-preview-05-20 in ProviderSettingsManager tests in case the old version is deprecated

* chore: add changeset

* feat(api): update vertexModels to add gemini-2.5-flash-preview-05-20 variants

* chore: update changeset

* [Condense] Show indicator message when context is condensing (#3765)

* [Condense] Show indicator message when context is condensing

* changeset

* translations

* Another grey screen fix. (#3644)

Memory memory memory

* Fix: Missing or inconsistent syntax highlighting across UI components (#3656)

* fix: Missing or inconsistent syntax highlighting across UI components

- Change file listings to use 'shellsession' for terminal-like highlighting
- Use 'markdown' for code definitions and instructions
- Add file extension-based language detection for new files
- Ensure consistent 'diff' highlighting for all diff content
- Use 'xml' language for error messages
- Make language property required in CodeAccordian
- Set default fallback to 'txt' instead of undefined

Fixes: #3655
Signed-off-by: Eric Wheeler <[email protected]>

* chore: make language property required in CodeBlock

- Updated CodeBlockProps interface to make language property required
- Updated mock implementation to match the interface change
- Ensured CodeAccordian always provides a fallback language value

Signed-off-by: Eric Wheeler <[email protected]>

---------

Signed-off-by: Eric Wheeler <[email protected]>
Co-authored-by: Eric Wheeler <[email protected]>

* Add contact section to pull request template for communication (#3771)

* Update contributors list (#3620)

Co-authored-by: mrubens <[email protected]>

* More VSCode command / build fixes (#3780)

---------

Signed-off-by: Eric Wheeler <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: மனோஜ்குமார் பழனிச்சாமி <[email protected]>
Co-authored-by: KJ7LNW <[email protected]>
Co-authored-by: Eric Wheeler <[email protected]>
Co-authored-by: Canyon Robins <[email protected]>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: hatsu <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: xyOz <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: vagadiya <[email protected]>
Co-authored-by: pugazhendhi-m <[email protected]>
Co-authored-by: Pugazhendhi <[email protected]>
Co-authored-by: zeo <[email protected]>
Co-authored-by: Remon Oldenbeuving <[email protected]>
Co-authored-by: avtc <[email protected]>
Co-authored-by: Shariq Riaz <[email protected]>
Co-authored-by: sam hoang <[email protected]>
Co-authored-by: Noritaka Kobayashi <[email protected]>
Co-authored-by: R-omk <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: ChuKhaLi <[email protected]>
Co-authored-by: mini2s <[email protected]>

* Feat merge roocode v4 (#1) (#156)

* Rename cline_docs -> docs (#3587)

* Update contributors list (#3299)



* fix(deps): update dependency posthog-js to v1.242.1 (#3602)



* Use a shadcn dialog for the announcement (#3604)

* feat: add buildDocLink utility and 21 Internal Links to Docs (#3418)



* Add build vsix Workflow (#3600)

* build: enable source maps for improved debugging (#3596)



* v3.16.7 (#3614)

* [Condense] Condense messages with an LLM rather than truncating (#3582)



* Fix type generation (#3619)

* Update contributors list (#3612)



* v3.17.0 (#3622)

* Changeset version bump (#3556)




* fix: correct Changelog link in localized README files (#3629)

The Changelog link in `locales/ja/README.md` and other localized
READMEswas pointing to a broken relative path, resulting in 404s.This
commit updates the link to use a correct relative path
(`../../CHANGELOG.md`)so that it works across all locales.

* Fix incorrect reserved tokens calculation on OpenRouter (#3626)

fix: improve token reservation logic in calculateTokenDistribution

* Fix command display in the approval required case (#3636)

* Changeset version bump (#3637)





* Fix how custom instructions are loaded into the API request (#3638)p

* Lock the versions of vsce and ovsx (#3643)

* Revert "Switch to the new Roo message parser" (#3649)

* Changeset version bump (#3645)




* Import settings bug fix / improvements (#3657)

* Export ProviderName type to Roo-Code-Types (#3675)

* Log Cleanup to Remove Cline (#3704)

* Rename Errors & Fix Spelling Mistake

* Update src/core/task/Task.ts



---------




* #3679 - Fixes packaging to include correct tiktoken.wasm (lite) (#3697)

- also, additions to .gitignore and .vscodeignore to prevent the IntelliJ .idea and .qodo folders from being included for git and packaging.

* Adds refresh models button for Unbound provider (#3663)

* Adds refresh models button for Unbound provider

* Adds changeset

* Optimizes code to prevent memory leak, add error messages

* Adds unbound messages to all supported languages

---------



* Add Qwen3 model series to the Chutes provider (#3710)

* Add Qwen3 model series to the Chutes provider

New models for the Chutes provider:

- Qwen/Qwen3-235B-A22B
- Qwen/Qwen3-32B
- Qwen/Qwen3-30B-A3B
- Qwen/Qwen3-14B
- Qwen/Qwen3-8B

* add changeset

* fix(webview): Fix links to filename:0 (#3727)

* fix(webview): Fix links to filename:0

* Add changeset

* LM studio reasoning support (thinking block) (#3719)

lmstudio reasoning support (thinking block)

Similar to ollama implementation in #1080

* feat(evals): add UI and backend support for importing and injecting f… (#3606)

* [Condense Context] Track metrics around context condensing and show in UI

* Add UI component

* account for system prompt when estimating new context size

* add header

* bug fix

* nit

* nit

* refactor

* fix

* add unit tests for condense

* update sliding-window tests

* add getApiMetrics.test.ts

* fix failing tests

* use chat.json

* add translations

* add tests for ContextCondenseRow

* add changeset

* camelCase

* use Markdown for summary

* use tailwind

* non default export

* rm test :/

* Make prompt input textareas resizable (#3691) (#3739)

* feat: move play audio to webview to ensure cross-platform (#3659)



* refactor:  import multiple times (#3745)

* Add YAML support for .roomode files alongside JSON processing (#3711)

* ✨ feat(settings): Add allowedMaxRequests feature inspired by Cline (#3631)

* feat(settings): Introduce the "auto-approve request count" feature from Cline

This is the first minor UI feature I've added, so please let me know if I'm missing anything! (translations, organization, etc!)

Please see commits for details

introduce allowedMaxRequests to globalSettingsSchema
update ExtensionState and its context with allowedMaxRequests
implement UI for setting max requests in AutoApproveMenu component
prompt user when auto-approval limit is reached with i18n support
increment consecutiveAutoApprovedRequestsCount and reset upon user approval
add translations for auto-approved request limit reached prompt in multiple languages
add new UI for "auto_approval_max_req_reached" in ChatRowContent
display prompt with title, description, and button for user action

🔧 chore(gitignore): add .idea to .gitignore to exclude IDE-specific files
- remove .idea/workspace.xml to clean up repository

* 🔧 chore(gitignore): add IDE configuration files to ignore list

- add .idea directory to ignore JetBrains IDE configurations

* 🌐 i18n(chat): add translation keys for api request limit

- introduce translation keys for "title" and "unlimited" in multiple languages
- update description for api request limit in various languages

* 🌐 i18n(chat): migrate auto-approved request limit translations

- move translations from common.json to chat.json across locales
- update component to use Trans for dynamic text rendering

* Update the UI for setting max requests

* Hide the auto-approve limit warning once clicked

---------



* Move error message for settings import failure into the correct position (#3752)




* feat: use template variables for version numbers in announcement strings (#3755)

* Auto-reload core changes in dev mode (#3284)



* Moved repo to new org (#3756)

* Use yaml as default custom modes format (#3749)

* [Condense] Add a button to condense the task context (#3623)

* [Condense] Add a button to condense the task context

* wip

* wip

* wip

* bring back delete size

* account for the system prompt in the context

* update tests to use systemPrompt

* add type

* translations

* nit

* update tests

* filter to the current task

* nit

* refactor

* nit

* non interactive option

* simplify chat summary UI

* changeset

* nit

* fix check-types

* throw

* [Condense] Fix double counting last message when condensing (#3763)

* Get package publisher and name from package.json + command type safety (#3766)

* Lm studio and ollama usage fix (#3707)

* integration

* Fix

* [Condense] Change condense icon (#3768)

* [Condense] Change condense icon

* change to fold

* feat: add gemini-2.5-flash-preview-05-20 models (#3769)

* Add Gemini Flash 2.5 05-20 variants for the Vertex provider (#3758)

* feat(api): add gemini-2.5-flash-preview-05-20 model configuration

* feat(tests): update apiModelId to gemini-2.5-flash-preview-05-20 in ProviderSettingsManager tests in case the old version is deprecated

* chore: add changeset

* feat(api): update vertexModels to add gemini-2.5-flash-preview-05-20 variants

* chore: update changeset

* [Condense] Show indicator message when context is condensing (#3765)

* [Condense] Show indicator message when context is condensing

* changeset

* translations

* Another grey screen fix. (#3644)

Memory memory memory

* Fix: Missing or inconsistent syntax highlighting across UI components (#3656)

* fix: Missing or inconsistent syntax highlighting across UI components

- Change file listings to use 'shellsession' for terminal-like highlighting
- Use 'markdown' for code definitions and instructions
- Add file extension-based language detection for new files
- Ensure consistent 'diff' highlighting for all diff content
- Use 'xml' language for error messages
- Make language property required in CodeAccordian
- Set default fallback to 'txt' instead of undefined

Fixes: #3655


* chore: make language property required in CodeBlock

- Updated CodeBlockProps interface to make language property required
- Updated mock implementation to match the interface change
- Ensured CodeAccordian always provides a fallback language value



---------




* Add contact section to pull request template for communication (#3771)

* Update contributors list (#3620)



* More VSCode command / build fixes (#3780)

* Merge remote-tracking branch 'upstream/main' into feat-merge-roocode-v4

---------

Signed-off-by: Eric Wheeler <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: மனோஜ்குமார் பழனிச்சாமி <[email protected]>
Co-authored-by: KJ7LNW <[email protected]>
Co-authored-by: Eric Wheeler <[email protected]>
Co-authored-by: Canyon Robins <[email protected]>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: hatsu <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: xyOz <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: vagadiya <[email protected]>
Co-authored-by: pugazhendhi-m <[email protected]>
Co-authored-by: Pugazhendhi <[email protected]>
Co-authored-by: zeo <[email protected]>
Co-authored-by: Remon Oldenbeuving <[email protected]>
Co-authored-by: avtc <[email protected]>
Co-authored-by: Shariq Riaz <[email protected]>
Co-authored-by: sam hoang <[email protected]>
Co-authored-by: Noritaka Kobayashi <[email protected]>
Co-authored-by: R-omk <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: ChuKhaLi <[email protected]>
Co-authored-by: mini2s <[email protected]>

* test: Update part of code-aq's test cases to ensure they can pass

This commit comments out parts of the test cases that are currently failing, ensuring the rest of the tests can run successfully. These commented-out test cases are planned to be fixed and re-enabled in future iterations.

* ci: Adjust the GitHub Actions trigger rules for code-aq project and comment out some jobs

This commit modifies the workflow trigger conditions of GitHub Actions in the code-aq project, and comments out parts of the jobs that are currently failing to optimize the continuous integration process.

* feat: merge roocode (#160)

* Rename cline_docs -> docs (#3587)

* Update contributors list (#3299)

Co-authored-by: mrubens <[email protected]>

* fix(deps): update dependency posthog-js to v1.242.1 (#3602)

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

* Use a shadcn dialog for the announcement (#3604)

* feat: add buildDocLink utility and 21 Internal Links to Docs (#3418)

Co-authored-by: Matt Rubens <[email protected]>

* Add build vsix Workflow (#3600)

* build: enable source maps for improved debugging (#3596)

Co-authored-by: Eric Wheeler <[email protected]>

* v3.16.7 (#3614)

* [Condense] Condense messages with an LLM rather than truncating (#3582)

Co-authored-by: Matt Rubens <[email protected]>

* Fix type generation (#3619)

* Update contributors list (#3612)

Co-authored-by: mrubens <[email protected]>

* v3.17.0 (#3622)

* Changeset version bump (#3556)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: correct Changelog link in localized README files (#3629)

The Changelog link in `locales/ja/README.md` and other localized
READMEswas pointing to a broken relative path, resulting in 404s.This
commit updates the link to use a correct relative path
(`../../CHANGELOG.md`)so that it works across all locales.

* Fix incorrect reserved tokens calculation on OpenRouter (#3626)

fix: improve token reservation logic in calculateTokenDistribution

* Fix command display in the approval required case (#3636)

* Changeset version bump (#3637)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <[email protected]>
Co-authored-by: Chris Estreich <[email protected]>

* Fix how custom instructions are loaded into the API request (#3638)p

* Lock the versions of vsce and ovsx (#3643)

* Revert "Switch to the new Roo message parser" (#3649)

* Changeset version bump (#3645)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <[email protected]>

* Import settings bug fix / improvements (#3657)

* Export ProviderName type to Roo-Code-Types (#3675)

* Log Cleanup to Remove Cline (#3704)

* Rename Errors & Fix Spelling Mistake

* Update src/core/task/Task.ts

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

---------

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

* #3679 - Fixes packaging to include correct tiktoken.wasm (lite) (#3697)

- also, additions to .gitignore and .vscodeignore to prevent the IntelliJ .idea and .qodo folders from being included for git and packaging.

* Adds refresh models button for Unbound provider (#3663)

* Adds refresh models button for Unbound provider

* Adds changeset

* Optimizes code to prevent memory leak, add error messages

* Adds unbound messages to all supported languages

---------

Co-authored-by: Pugazhendhi <[email protected]>

* Add Qwen3 model series to the Chutes provider (#3710)

* Add Qwen3 model series to the Chutes provider

New models for the Chutes provider:

- Qwen/Qwen3-235B-A22B
- Qwen/Qwen3-32B
- Qwen/Qwen3-30B-A3B
- Qwen/Qwen3-14B
- Qwen/Qwen3-8B

* add changeset

* fix(webview): Fix links to filename:0 (#3727)

* fix(webview): Fix links to filename:0

* Add changeset

* LM studio reasoning support (thinking block) (#3719)

lmstudio reasoning support (thinking block)

Similar to ollama implementation in #1080

* feat(evals): add UI and backend support for importing and injecting f… (#3606)

* [Condense Context] Track metrics around context condensing and show in UI

* Add UI component

* account for system prompt when estimating new context size

* add header

* bug fix

* nit

* nit

* refactor

* fix

* add unit tests for condense

* update sliding-window tests

* add getApiMetrics.test.ts

* fix failing tests

* use chat.json

* add translations

* add tests for ContextCondenseRow

* add changeset

* camelCase

* use Markdown for summary

* use tailwind

* non default export

* rm test :/

* Make prompt input textareas resizable (#3691) (#3739)

* feat: move play audio to webview to ensure cross-platform (#3659)

Co-authored-by: sam hoang <[email protected]>

* refactor:  import multiple times (#3745)

* Add YAML support for .roomode files alongside JSON processing (#3711)

* ✨ feat(settings): Add allowedMaxRequests feature inspired by Cline (#3631)

* feat(settings): Introduce the "auto-approve request count" feature from Cline

This is the first minor UI feature I've added, so please let me know if I'm missing anything! (translations, organization, etc!)

Please see commits for details

introduce allowedMaxRequests to globalSettingsSchema
update ExtensionState and its context with allowedMaxRequests
implement UI for setting max requests in AutoApproveMenu component
prompt user when auto-approval limit is reached with i18n support
increment consecutiveAutoApprovedRequestsCount and reset upon user approval
add translations for auto-approved request limit reached prompt in multiple languages
add new UI for "auto_approval_max_req_reached" in ChatRowContent
display prompt with title, description, and button for user action

🔧 chore(gitignore): add .idea to .gitignore to exclude IDE-specific files
- remove .idea/workspace.xml to clean up repository

* 🔧 chore(gitignore): add IDE configuration files to ignore list

- add .idea directory to ignore JetBrains IDE configurations

* 🌐 i18n(chat): add translation keys for api request limit

- introduce translation keys for "title" and "unlimited" in multiple languages
- update description for api request limit in various languages

* 🌐 i18n(chat): migrate auto-approved request limit translations

- move translations from common.json to chat.json across locales
- update component to use Trans for dynamic text rendering

* Update the UI for setting max requests

* Hide the auto-approve limit warning once clicked

---------

Co-authored-by: Matt Rubens <[email protected]>

* Move error message for settings import failure into the correct position (#3752)

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

* feat: use template variables for version numbers in announcement strings (#3755)

* Auto-reload core changes in dev mode (#3284)

Co-authored-by: Matt Rubens <[email protected]>

* Moved repo to new org (#3756)

* Use yaml as default custom modes format (#3749)

* [Condense] Add a button to condense the task context (#3623)

* [Condense] Add a button to condense the task context

* wip

* wip

* wip

* bring back delete size

* account for the system prompt in the context

* update tests to use systemPrompt

* add type

* translations

* nit

* update tests

* filter to the current task

* nit

* refactor

* nit

* non interactive option

* simplify chat summary UI

* changeset

* nit

* fix check-types

* throw

* [Condense] Fix double counting last message when condensing (#3763)

* Get package publisher and name from package.json + command type safety (#3766)

* Lm studio and ollama usage fix (#3707)

* integration

* Fix

* [Condense] Change condense icon (#3768)

* [Condense] Change condense icon

* change to fold

* feat: add gemini-2.5-flash-preview-05-20 models (#3769)

* Add Gemini Flash 2.5 05-20 variants for the Vertex provider (#3758)

* feat(api): add gemini-2.5-flash-preview-05-20 model configuration

* feat(tests): update apiModelId to gemini-2.5-flash-preview-05-20 in ProviderSettingsManager tests in case the old version is deprecated

* chore: add changeset

* feat(api): update vertexModels to add gemini-2.5-flash-preview-05-20 variants

* chore: update changeset

* [Condense] Show indicator message when context is condensing (#3765)

* [Condense] Show indicator message when context is condensing

* changeset

* translations

* Another grey screen fix. (#3644)

Memory memory memory

* Fix: Missing or inconsistent syntax highlighting across UI components (#3656)

* fix: Missing or inconsistent syntax highlighting across UI components

- Change file listings to use 'shellsession' for terminal-like highlighting
- Use 'markdown' for code definitions and instructions
- Add file extension-based language detection for new files
- Ensure consistent 'diff' highlighting for all diff content
- Use 'xml' language for error messages
- Make language property required in CodeAccordian
- Set default fallback to 'txt' instead of undefined

Fixes: #3655
Signed-off-by: Eric Wheeler <[email protected]>

* chore: make language property required in CodeBlock

- Updated CodeBlockProps interface to make language property required
- Updated mock implementation to match the interface change
- Ensured CodeAccordian always provides a fallback language value

Signed-off-by: Eric Wheeler <[email protected]>

---------

Signed-off-by: Eric Wheeler <[email protected]>
Co-authored-by: Eric Wheeler <[email protected]>

* Add contact section to pull request template for communication (#3771)

* Update contributors list (#3620)

Co-authored-by: mrubens <[email protected]>

* More VSCode command / build fixes (#3780)

* fix: fix diffview scoll display (#3783)

* refactor: simplify loop syntax in combineApiRequests and XmlMatcher (#3776)

* Feat merge roocode v4 (#1)

* Rename cline_docs -> docs (#3587)

* Update contributors list (#3299)

Co-authored-by: mrubens <[email protected]>

* fix(deps): update dependency posthog-js to v1.242.1 (#3602)

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

* Use a shadcn dialog for the announcement (#3604)

* feat: add buildDocLink utility and 21 Internal Links to Docs (#3418)

Co-authored-by…
hannesrudolph pushed a commit that referenced this pull request May 24, 2025
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants