diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-21 17:26:45 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-21 17:26:45 +0300 |
| commit | 734bf3c09d292012b45b93a4813ccdd0cf26d08a (patch) | |
| tree | 819c7138d9fe03ea53985701aa3e48310397362a /src/integration/assets/omp | |
| parent | 4421c0febbb03a1a4264729a70fb7c440a3b9ca8 (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.ts | 21 |
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(); + }); } |
