Safeguard
Product•

Safe, Balanced or Aggressive: which fix strategy in JetBrains?

The Safeguard JetBrains plugin offers Safe, Balanced and Aggressive dependency fixes. Use Balanced by default, Safe near a release, Aggressive on a branch.

Safeguard Security Team
4 min read

In the Safeguard JetBrains plugin, choose Balanced for everyday fixes, Safe when a release is close, and Aggressive only on a throwaway branch with good tests. Safe means minor version updates only, Balanced means minor and patch updates, and Aggressive means the latest available version. You review the diff before anything is applied.

Where do the strategies appear?

Per Safeguard's IDE support documentation, you place the cursor on a flagged dependency, press Alt plus Enter (Option plus Return on a Mac) and choose Fix with Safeguard AI. The plugin then asks for a strategy and shows a diff. To fix a whole package or project, right-click its node in the Safeguard tool window and choose Fix All Vulnerabilities. Balanced is the documented default.

The plugin covers IntelliJ IDEA, PyCharm, WebStorm, PhpStorm, Rider, GoLand, RubyMine, CLion, DataGrip and Android Studio, from IDE version 2023.3 with JDK 17 or later.

How do the three strategies differ in practice?

The docs define the strategies in one line each. Here is what those definitions mean when you are the one who has to ship.

Safe: minor updates only. The documentation's wording is minor version updates. Choose it when you cannot afford surprises: a release freeze, a service with thin tests, or a dependency you suspect is fragile. The cost is that some fixes will not be on offer, because the patched version may sit outside the allowed range. When that happens, the finding stays open and you need a deliberate decision, not a quiet bump.

Balanced: minor and patch updates. This covers most vulnerability fixes, since maintainers often backport security fixes into patch or minor releases. It is a sensible default because the set of changes is limited to versions that should stay compatible.

Aggressive: the latest available version. This can cross a major version. That can fix a vulnerability that has no backport, and it can also break your build. Use it where you can afford to find out: a feature branch, a service with strong tests, a dependency you were going to upgrade anyway.

A note on wording: "should stay compatible" is the expectation of semantic versioning, not a guarantee. Maintainers sometimes break things in minor releases. The tests, not the label, decide.

A simple decision table

SituationStrategyWhy
Normal weekly cleanupBalancedLimited change, most fixes available
Release in a few daysSafeMinimal risk of behavior change
No minor or patch fix existsAggressive, on a branchA major bump may be the sole path
Library with weak testsSafe, then manualTests cannot catch a bad upgrade
Dependency already due for upgradeAggressiveYou are paying the cost anyway

What should you check in the diff?

Do not approve a diff because the tool produced it. Look at:

  1. Which files changed. The manifest and lockfile are expected. Anything else needs a reason.
  2. Version jumps. A major jump needs a read of the changelog.
  3. Transitive changes. A lockfile can move several packages for one fix.
  4. Peer dependencies. A new version may require a newer framework version.

Then run your tests before you commit. If you use a pull request workflow, remember the plugin is not a merge gate: the JetBrains docs describe scanning, viewing and fixing, so enforcement belongs in CI or in a review step.

Open the IDE gate demo

What about VS Code and Cursor?

The extension for VS Code and Cursor uses the same three names through a setting called safeguard.remediationStrategy, defaulting to balanced. It also has a setting that applies fixes on save, which the docs say to enable with caution. Do not turn that on in a repository you have not tested with automated fixes.

What to do

  1. Keep Balanced as the team default.
  2. Switch to Safe during release freezes and write the reason in the pull request.
  3. Use Aggressive only on a branch, with the full test suite.
  4. Read every diff, especially version jumps and lockfile changes.
  5. Run tests before committing.

Quick check

What is the default fix strategy?

Balanced, which allows minor and patch updates, per Safeguard's IDE support docs.

Does Aggressive always pick a major version?

It picks the latest available version, which may or may not be a major jump. Read the diff to see.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.