2.4.0.4 release notes

2.4.0.4

  • Issue 2951 - Added first-class support for UI Bundles and Salesforce Multi-Framework. Note that this feature requires native IDE JavaScript/TypeScript/CSS/React support, so you'll need to pair Illuminated Cloud with either a commercial JetBrains IDE or a free 2026.1+ JetBrains IDE. A demonstration video is available here.

    As part of this work, the Illuminated Cloud application-level settings tab LWC has been renamed UI Frameworks and now includes options for configuration of both Lightning Web Components and UI Bundles behavior. The new/changed options are:
    • LWC
      • Enable LWC local development - LWC local development support has existed for some time, but it wasn't possible to disable it. Now it can be disabled if desired, but it is enabled by default.
      • Disable deploy-on-save of LWC source files when the local development server is running - This option was moved from the Deployment tab (previously called Validation and Deployment) to be closer to its related settings. The behavior is unchanged.
    • UI Bundles
      • Build UI bundles on deployment - When enabled, automatically runs npm run build for UI bundles included in a deployment request to bring them up-to-date before deploying them. If that build fails, the deployment request fails fast and the errors are reported. Enabled by default.
      • Only build out-of-date bundles - When enabled, UI bundles are only built on deployment if they appear to be out-of-date based on a comparison of UI bundle's main files' last modified timestamps against those in the UI bundle's build and dist sub-directories. Enabled by default, but if you use tools that change files' last modified dates explicitly, e.g., when they are reverted in version control, you may need to disable it.
      • Enable UI bundle local development - Analogous to the same feature for LWC above. When enabled, context actions are added to help start, restart, and stop a local development server for each UI bundle. Enabled by default.
      • Disable deploy-on-save of UI bundle files when the local development server is running - Again, this is analogous to the same feature for LWC above. When enabled and a UI bundle local development server is running, deploy-on-save is automatically disabled for that UI bundle's files. Enabled by default.
      • Open the local development server as: [External | Internal | Internal split] - Determines where/how the browser is opened when a local development server is started for a UI bundle as one of:
        • External - The IDE's configured default browser is used.
        • Internal - An IDE editor tab is used or reused if it already exists.
        • Internal split - An IDE editor tab is used or reused if it already exists as a right-side split.
        The default is Internal split as that works very nicely for a real-time preview.
    • Unit Tests - These are effectively the same configuration options added recently for LWC Jest test execution in free 2026.1+ JetBrains IDEs, but extended to support both LWC Jest tests and UI Bundle Vitest tests.

      Note that I've found that, at least on Windows, DAP-based debugging of Vitest tests works with vite 5.x, 6.x, and 8.x, but for some reason it doesn't seem to work properly with 7.x. If you find that the DAP-based debugger is never stopping at your test code breakpoints, try changing the vite version in the UI bundle's package.json file and running npm install.

      I've also found a few other issues with UI bundles specific to Windows/ARM64. The workarounds are described in the logged issue.

    As stated above, it's now possible to start, restart, and stop local development servers for UI bundles from any source file in those bundles using Alt/Opt+Enter context actions or right-click context menu actions. Changes made locally should be reflected in the local development preview nearly instantaneously.

    IC now includes a File | New | UI Bundle action that prompts for:
    • Name - The UI bundle's symbolic name.
    • Template - The template upon which the resulting bundle is based, currently either Default which is basically empty and React basic which is a boilerplate stub for a Salesforce platform-aware React application. React basic by default.
    • Run 'npm install' - Whether or not to run npm install from the UI bundle directory immediately after creating the new bundle. Enabled by default.

    UI Bundles support should be considered beta-level given that the underlying UI Bundles feature itself is also beta.

  • Added structure view and Next/Previous Method navigation in Jest and Vitest test files.
  • Added browser type selection support to the Generate ApexDoc and Save Flow Diagram actions. In both cases, the last selected browser type for a given action is retained across invocations.

    Note that I'm currently unable to add support to the LWC local development server Start action because it insists on opening the browser itself. I've reported that to Salesforce, asking if an option can be added to the associated command to have it output the URL to be opened just as with the sf org open command.

  • IC now properly processes nested .forceignore files.
  • Message view tabs created by Illuminated Cloud for executed sub-processes now retain ANSI formatting from those processes, and also use ANSI formatting for section headers.
  • Implemented a number of fixes, refinements, and optimizations around new project creation and initial project configuration.
  • Fixed a few issues with how IC determines whether or not the host JetBrains IDE provides first-class support for JavaScript, TypeScript, and CSS.
  • I know I say this frequently, but this build includes a significant set of other under-the-hood fixes and improvements. If you find any issues or regressions, please let me know and I'll address them ASAP.

Other news

  • The next two major items on my plate are:
    • Salesforce Summer '26 updates to ensure they're ready for the final platform release in about a month.
    • Moving the public issue tracker and IC user guide from Bitbucket to GitHub well before the August 20, 2026 deadline.