🎁 New

  • New tool: GitKraken

✨ Improvements

  • Allow black to format python interface files

  • Update mypy run_from to respect nested setups

  • Support graphite@>=1.0.0

🔧 Fixes

  • Support non-utf8 filepaths for checkov

  • Fix how tflint runs on newer version, and add docs for how to use global config

🎁 New

  • Announcing Trunk shell-hooks: Watches your current working directory to ensure that Trunk-managed tools, linters, and runtimes are available in PATH.

✨ Improvements

  • Trunk check will now hide pre-existing issues by default. The new --show-existing command-line flag can be used to show them.

  • Trunk check will now omit prompts if not running with an interactive terminal.

  • Trunk tools can now list extra packages to be installed.

  • Runtime-based tools (ie, python) must now be explicitly enabled.

🔧 Fixes

  • Several Windows fixes.

  • Fixes for Emacs-based LSP clients.

  • The LSP server will now limit the number of retries for linting files that are modified mid-run.

  • Miscellaneous fixes.

🎁 New

  • Added inline annotations in trunk.yaml to guide a user towards tracking their trunk.yaml in git.

🔧 Fixes

  • Fixed a bug where the extension attempted to initialize trunk when the workspace is not rooted in a git repository.

Trunk Merge now offers two modes for creating merge queues: "Single" and "Parallel". The Single mode operates as a standard first-in, first-out merge queue, where pull requests (PRs) are added and merged in the order they arrive. In Parallel mode, Trunk Merge can create multiple queues.

When a PR is added in Parallel mode, it checks if the changes in the PR impact the same areas as other PRs in the queue. Depending on this, the PR is either placed in an existing queue or a new one is created for it. This method allows PRs that don't interfere with each other to be tested and merged simultaneously, improving efficiency while ensuring accurate testing.

Excited to try out parallel mode? Some benefits you can expect are:

  • Parallel PR Testing/Merging: Dynamic queues allow simultaneous merging of related PRs across different code areas, avoiding delays from unrelated PRs.

  • Lower CI Burn: Only PRs affecting the same code areas are retested if a PR in the Merge Queue fails or is removed, lowering CI strain.

  • Scalable Merging: Parallel queues manage any number of PRs regardless of team size by focusing on interdependent PRs.

Getting Started:


  • This update aims to enhance productivity and reduce bottlenecks in the merge process, particularly for teams experiencing growth and increased PR volume.

  • Continuous integration and code quality remain a top priority, with the new system designed to uphold these standards while increasing efficiency.

🎁 New

  • The install flow is streamlined to guide users to a welcome page, or to open their trunk config, depending on their workbench state.

🔧 Fixes

  • Fixed issues for users with spaces in their install paths.

  • Fixed issues for detecting whether the user can init trunk in their current workspace state.

  • The extension now only opens trunk.yaml automatically on first time use after install.

🎁 New

  • New tools: gulptailwindcsstscwebpack.

  • New formatter: dotnet-format (MacOS support coming soon).

✨ Improvements

  • Change trufflehog to use --only-verified by default, reducing false positives.

  • Find line/col information from markdown-link-check.

  • Support running sourcery with open source license (currently incompatible on Windows).

  • Gate linter upgrade validation to also include Windows tests.

  • Add fix command for standardrb.

🔧 Fixes

  • Fix trufflehog line number errors.

  • Remove trunk install from codespaces setup.

  • Fix osv-scanner execution env.

🎁 New

  • The extension helps guide users towards committing their trunk.yaml.

🔧 Fixes

  • Fixed some telemetry issues

  • Fixed some additional issues with initialization in Windows.

🎁 New

  • Single-player mode will now auto-upgrade all linters periodically.

  • Linters now have a maximum concurrency setting. Trunk will never run a linter more than this number of times simultaneously.

✨ Improvements

  • Trunk now gives an error message when you include a version specifier in a disabled entry.

  • Added the --only-detected-formatters and --only-detected-linters flags

  • LSP Server de-deuplicates code actions.

🔧 Fixes

  • Fixed a memory leak in the daemon process.

🎁 New

  • The extension now streams logs to ${workspace}/.trunk/logs/vscode.log.

  • Made minor changes to verbiage in the UI.

🔧 Fixes

  • trunk.addToolsToPath now defaults to false.

  • Fixed an issue with some Windows users where install paths with spaces were not handled correctly.

  • Fixed a bug where the extension occasionally sent incorrect file contents on init.

🎁 New

  • Mark inline diagnostics as generated by Trunk.

  • Updated the tree view to show new/preexisting issue counts.

  • Open the status bar on install.

🔧 Fixes

  • Fixed some bugs with initialization.

  • improved telemetry.

🔧 Fixes

  • Fix bug where trunk init --single-player-mode would fail if you do not have a .git/info directory.

  • Proper handling of percent encoding in SARIF output.

  • Do not use proxy settings when connecting to the daemon using TCP loopback.

  • Windows fixes.

🎁 New

✨ Improvements

  • Add issue URL to ruff and support for v0.1.0.

  • Disable trivy fs-vuln subcommand by default.

  • Add direct config files for tfsec.

  • Added filetype haskell.

🔧 Fixes

  • Fix clang-tidy issue URL.

✨ Improvements

  • Trunk now always uses TCP instead of unix domain sockets to communicate with its daemon.

  • Trunk tools now does health checks to ensure installed versions match the expected versions.

  • LSP Server optimizations.

  • trunk-ignore-all can now be used to ignore formatting diagnostics.

🔧 Fixes

  • Allow linter definitions to override environment variables as intended.

  • Various Windows bug fixes.

  • Better error reporting for various issues.

🎁 New

  • Re-added the ability to format files from tree view navigation menus.

  • Added the ability to autofix issues from the tree view navigation menus.

  • Added the ability to disable linters via tree view navigation menus and code actions.

  • The eye icon in the status bar now toggles the visibility of preexisting issues.

  • Preexisting and low-severity issues are now rendered in gray.

🔧 Fixes

  • Fixed a bug where commands were registered before the extension had properly initialized.

  • Fixed telemetry.

✨ Improvements

  • Update svgo to use new fix_verb / fix_prompt support.

🔧 Fixes

  • Fix issues with custom parsers and python formatters on Windows non-utf8 filepaths.

✨ Improvements

  • Oxipng now uses the language "unoptimized image" rather than "unformatted file."

  • Improved crash reporting for internal errors.

🔧 Fixes

  • Be more resilient to permission-denied errors in the file watcher.

  • The LSP Server will now retry linting a file when it detects the file has changed, rather than leaving stale diagnostics.

🎁 New

  • Added a new setting for controlling whether to add Trunk Tools to PATH.

🔧 Fixes

  • Fixed a runtime error that could occur when the extension was activated on Windows.

🎁 New

  • New tool: clangd.

✨ Improvements

  • Don't autoenable gokart and tfsec.

  • Lower the hadolint timeout.

  • Update definitions to use the new run_from syntax.

  • Add mts as a typescript file extension.

  • Update jq definition and release label.

  • Update copy on oxipng autofixes.

  • Update default ruff config to not report diagnostics for python docstrings.

  • Update tool testing framework to use healthchecks.

🔧 Fixes

  • Fix tfsec output related to trivy migration.

  • Fix trufflehog to ignore PagerDutyApiKey and LaunchDarkly, which can include many false positives.