fix(coding-agent): decouple codex session cleanup
This commit is contained in:
24
packages/ai/src/session-resources.ts
Normal file
24
packages/ai/src/session-resources.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
export type SessionResourceCleanup = (sessionId?: string) => void;
|
||||
|
||||
const sessionResourceCleanups = new Set<SessionResourceCleanup>();
|
||||
|
||||
export function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void {
|
||||
sessionResourceCleanups.add(cleanup);
|
||||
return () => {
|
||||
sessionResourceCleanups.delete(cleanup);
|
||||
};
|
||||
}
|
||||
|
||||
export function cleanupSessionResources(sessionId?: string): void {
|
||||
const errors: unknown[] = [];
|
||||
for (const cleanup of sessionResourceCleanups) {
|
||||
try {
|
||||
cleanup(sessionId);
|
||||
} catch (error) {
|
||||
errors.push(error);
|
||||
}
|
||||
}
|
||||
if (errors.length > 0) {
|
||||
throw new AggregateError(errors, "Failed to cleanup session resources");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user