fix: release pi and omp agents on shutdown
This commit is contained in:
parent
4421c0febb
commit
734bf3c09d
|
|
@ -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();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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: "pi",
|
||||
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();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5972,8 +5972,8 @@ mod tests {
|
|||
assert!(PI_EXTENSION_ASSET.contains("pane.report_agent\""));
|
||||
assert!(PI_EXTENSION_ASSET.contains("pi.on(\"agent_start\""));
|
||||
assert!(PI_EXTENSION_ASSET.contains("pi.on(\"agent_end\""));
|
||||
assert!(!PI_EXTENSION_ASSET.contains("pane.release_agent"));
|
||||
assert!(!PI_EXTENSION_ASSET.contains("session_shutdown"));
|
||||
assert!(PI_EXTENSION_ASSET.contains("pane.release_agent"));
|
||||
assert!(PI_EXTENSION_ASSET.contains("pi.on(\"session_shutdown\""));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("agent_session_path"));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("agent_session_id"));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("ctx?.hasUI !== true"));
|
||||
|
|
@ -5981,8 +5981,8 @@ mod tests {
|
|||
assert!(OMP_EXTENSION_ASSET.contains("pane.report_agent\""));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("pi.on(\"agent_start\""));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("pi.on(\"agent_end\""));
|
||||
assert!(!OMP_EXTENSION_ASSET.contains("pane.release_agent"));
|
||||
assert!(!OMP_EXTENSION_ASSET.contains("session_shutdown"));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("pane.release_agent"));
|
||||
assert!(OMP_EXTENSION_ASSET.contains("pi.on(\"session_shutdown\""));
|
||||
assert!(
|
||||
CLAUDE_HOOK_ASSET.contains("agent_session_id")
|
||||
|| CLAUDE_HOOK_ASSET.contains("--agent-session-id")
|
||||
|
|
|
|||
Loading…
Reference in New Issue