aboutsummaryrefslogtreecommitdiff
path: root/src/integration/assets/omp
diff options
context:
space:
mode:
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();
+ });
}