mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-14 13:53:02 -07:00
feat(core/ui): enhance retry mechanism and UX (#16489)
This commit is contained in:
@@ -97,6 +97,17 @@ export interface HookEndPayload extends HookPayload {
|
||||
success: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Payload for the 'retry-attempt' event.
|
||||
*/
|
||||
export interface RetryAttemptPayload {
|
||||
attempt: number;
|
||||
maxAttempts: number;
|
||||
delayMs: number;
|
||||
error?: string;
|
||||
model: string;
|
||||
}
|
||||
|
||||
export enum CoreEvent {
|
||||
UserFeedback = 'user-feedback',
|
||||
ModelChanged = 'model-changed',
|
||||
@@ -108,6 +119,7 @@ export enum CoreEvent {
|
||||
HookStart = 'hook-start',
|
||||
HookEnd = 'hook-end',
|
||||
AgentsRefreshed = 'agents-refreshed',
|
||||
RetryAttempt = 'retry-attempt',
|
||||
}
|
||||
|
||||
export interface CoreEvents {
|
||||
@@ -121,6 +133,7 @@ export interface CoreEvents {
|
||||
[CoreEvent.HookStart]: [HookStartPayload];
|
||||
[CoreEvent.HookEnd]: [HookEndPayload];
|
||||
[CoreEvent.AgentsRefreshed]: never[];
|
||||
[CoreEvent.RetryAttempt]: [RetryAttemptPayload];
|
||||
}
|
||||
|
||||
type EventBacklogItem = {
|
||||
@@ -229,6 +242,13 @@ export class CoreEventEmitter extends EventEmitter<CoreEvents> {
|
||||
this.emit(CoreEvent.AgentsRefreshed);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies subscribers that a retry attempt is happening.
|
||||
*/
|
||||
emitRetryAttempt(payload: RetryAttemptPayload): void {
|
||||
this.emit(CoreEvent.RetryAttempt, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* Flushes buffered messages. Call this immediately after primary UI listener
|
||||
* subscribes.
|
||||
|
||||
Reference in New Issue
Block a user