diff --git a/bin/.gradle-8.2.pkg b/bin/.gradle-8.13.pkg
similarity index 100%
rename from bin/.gradle-8.2.pkg
rename to bin/.gradle-8.13.pkg
diff --git a/bin/gradle b/bin/gradle
index 3b1d289..2c1f94a 120000
--- a/bin/gradle
+++ b/bin/gradle
@@ -1 +1 @@
-.gradle-8.2.pkg
\ No newline at end of file
+.gradle-8.13.pkg
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index ba31ff5..0ca8b02 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ version = project.properties["version"] ?: "1.0-SNAPSHOT"
plugins {
id("java")
kotlin("kapt") version "2.0.21"
- id("org.jetbrains.intellij.platform") version "2.0.1"
+ id("org.jetbrains.intellij.platform") version "2.3.0"
id("org.jetbrains.kotlin.jvm") version "2.0.21"
id("org.jetbrains.kotlin.plugin.serialization") version "2.0.21"
diff --git a/gradle.properties b/gradle.properties
index 93ce8ef..7be92a9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,5 +9,5 @@ IIC.eap.go_plugin.version=251.17181.16
GO.release.version=243.21565.208
GO.eap.version=251.17181.28
# The oldest supported versions.
-IIC.from.version=222.4554.10
-GO.from.version=222.4554.12
+IIC.from.version=232.10335.12
+GO.from.version=232.10335.12
diff --git a/src/main/kotlin/com/squareup/cash/hermit/HermitCleanupService.kt b/src/main/kotlin/com/squareup/cash/hermit/HermitCleanupService.kt
new file mode 100644
index 0000000..a45f94c
--- /dev/null
+++ b/src/main/kotlin/com/squareup/cash/hermit/HermitCleanupService.kt
@@ -0,0 +1,12 @@
+package com.squareup.cash.hermit
+
+import com.intellij.openapi.Disposable
+import com.intellij.openapi.components.Service
+import com.intellij.openapi.project.Project
+
+@Service(Service.Level.PROJECT)
+class HermitCleanupService(private val project: Project) : Disposable {
+ override fun dispose() {
+ Hermit.remove(project)
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/squareup/cash/hermit/HermitProjectManagerListener.kt b/src/main/kotlin/com/squareup/cash/hermit/HermitProjectManagerListener.kt
deleted file mode 100644
index 1976ac0..0000000
--- a/src/main/kotlin/com/squareup/cash/hermit/HermitProjectManagerListener.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.squareup.cash.hermit
-
-import com.intellij.openapi.project.Project
-import com.intellij.openapi.project.ProjectManagerListener
-
-
-class HermitProjectManagerListener : ProjectManagerListener {
- override fun projectOpened(project: Project) {
- Hermit(project).open()
- }
-
- override fun projectClosing(project: Project) {
- Hermit.remove(project)
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/squareup/cash/hermit/HermitProjectStartupActivity.kt b/src/main/kotlin/com/squareup/cash/hermit/HermitProjectStartupActivity.kt
new file mode 100644
index 0000000..0fba7a6
--- /dev/null
+++ b/src/main/kotlin/com/squareup/cash/hermit/HermitProjectStartupActivity.kt
@@ -0,0 +1,13 @@
+package com.squareup.cash.hermit
+
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.startup.ProjectActivity
+
+class HermitProjectStartupActivity: ProjectActivity {
+ override suspend fun execute(project: Project) {
+ Hermit(project).open()
+
+ // Ensure HermitCleanupService is initialized and disposal is registered
+ project.getService(HermitCleanupService::class.java)
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/squareup/cash/hermit/action/EnableHermitAction.kt b/src/main/kotlin/com/squareup/cash/hermit/action/EnableHermitAction.kt
index a5e460f..8cd708f 100644
--- a/src/main/kotlin/com/squareup/cash/hermit/action/EnableHermitAction.kt
+++ b/src/main/kotlin/com/squareup/cash/hermit/action/EnableHermitAction.kt
@@ -3,7 +3,6 @@ package com.squareup.cash.hermit.action
import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.openapi.actionSystem.AnActionEvent
-import com.intellij.openapi.progress.PerformInBackgroundOption
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.progress.Task
import com.intellij.openapi.project.Project
@@ -18,7 +17,7 @@ class EnableHermitAction : NotificationAction("") {
}
class BackgroundableWrapper(project: Project, title: String, private val task: Runnable)
- : Task.Backgroundable(project, title, true, PerformInBackgroundOption.DEAF) {
+ : Task.Backgroundable(project, title, true) {
override fun run(indicator: ProgressIndicator) {
task.run()
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index 057d83c..86a46a8 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -19,7 +19,6 @@
-
@@ -40,6 +39,7 @@
+