@Override
    public void appStarted() {
      var app = ApplicationManager.getApplication();
      if (!(app.isCommandLine() || app.isHeadlessEnvironment() || app.isUnitTestMode())) {
        ProcessIOExecutorService.INSTANCE.execute(() -> {
          try {
            var launcherName = ApplicationNamesInfo.getInstance().getScriptName();
            @SuppressWarnings("SpellCheckingInspection")
            var scriptName = switch (launcherName) {
              case "phpstorm" -> "pstorm";
              case "pycharm" -> "charm";
              case "rubymine" -> "mine";
              default -> launcherName;
            };
            var scriptFile = PathEnvironmentVariableUtil.findInPath(scriptName);
            if (scriptFile != null) {
              var content = Files.readString(scriptFile.toPath());
              if (content.contains(MARKER1) && content.contains(MARKER2) && !app.isDisposed()) {
                var title = ApplicationBundle.message("cli.launcher.obsolete.title");
                var message = ApplicationBundle.message("cli.launcher.obsolete.message", scriptFile);
                new Notification("IDE and Plugin Updates", title, message, NotificationType.INFORMATION)
                  .addAction(NotificationAction.createSimple(ApplicationBundle.message("cli.launcher.obsolete.action"), () -> showInstructions(null)))
                  .notify(null);
              }
            }
          }
          catch (Exception e) {
            Logger.getInstance(ObsoleteScriptLookupTask.class).info(e);
          }
        });
      }
    }
@Override
    public void appStarted()