aboutsummaryrefslogtreecommitdiff
path: root/src/integration/assets/omp
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-21 17:26:45 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-21 17:26:45 +0300
commit734bf3c09d292012b45b93a4813ccdd0cf26d08a (patch)
tree819c7138d9fe03ea53985701aa3e48310397362a /src/integration/assets/omp
parent4421c0febbb03a1a4264729a70fb7c440a3b9ca8 (diff)
fix: release pi and omp agents on shutdown
Diffstat (limited to 'src/integration/assets/omp')
-rw-r--r--src/integration/assets/omp/herdr-agent-state.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/integration/assets/omp/herdr-agent-state.ts b/src/integration/assets/omp/herdr-agent-state.ts
index a933e867..ba97b1c7 100644
--- a/src/integration/assets/omp/herdr-agent-state.ts
+++ b/src/integration/assets/omp/herdr-agent-state.ts
@@ -144,6 +144,19 @@ function sendState(state: AgentState, message?: string, seq = nextReportSeq()):
});
}
+function releaseAgent(): Promise<void> {
+ return sendRequest({
+ id: `${source}:release:${Date.now()}:${Math.random().toString(36).slice(2)}`,
+ method: "pane.release_agent",
+ params: {
+ pane_id: paneId,
+ source,
+ agent: "omp",
+ seq: nextReportSeq(),
+ },
+ });
+}
+
let sendInFlight = false;
let queuedState: QueuedState | undefined;
@@ -343,4 +356,12 @@ export default function (pi) {
scheduleIdle();
});
+
+ pi.on("session_shutdown", async () => {
+ if (!rootSession) {
+ return;
+ }
+ clearPendingTimers();
+ await releaseAgent();
+ });
}