Add centralized pipeline fallback notifier
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import type {PipelineFallbackDecision} from "./fallback-executor.js";
|
||||
|
||||
export function fallbackNotificationKey(requestId: string, decision: PipelineFallbackDecision): string {
|
||||
return `${requestId}:${decision.stage}:${decision.action}`;
|
||||
}
|
||||
|
||||
export class PipelineFallbackNotificationRegistry {
|
||||
private readonly notifiedKeys = new Set<string>();
|
||||
|
||||
claim(requestId: string, decision: PipelineFallbackDecision): boolean {
|
||||
const key = fallbackNotificationKey(requestId, decision);
|
||||
if (this.notifiedKeys.has(key)) return false;
|
||||
this.notifiedKeys.add(key);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user