diff options
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(); + }); } |
