mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
fix(core): deduplicate ModelInfo emission in GeminiClient (#17075)
This commit is contained in:
@@ -1827,7 +1827,6 @@ ${JSON.stringify(
|
||||
expect(events).toEqual([
|
||||
{ type: GeminiEventType.ModelInfo, value: 'default-routed-model' },
|
||||
{ type: GeminiEventType.InvalidStream },
|
||||
{ type: GeminiEventType.ModelInfo, value: 'default-routed-model' },
|
||||
{ type: GeminiEventType.Content, value: 'Continued content' },
|
||||
]);
|
||||
|
||||
@@ -1915,13 +1914,13 @@ ${JSON.stringify(
|
||||
const events = await fromAsync(stream);
|
||||
|
||||
// Assert
|
||||
// We expect 4 events (model_info + original + model_info + 1 retry)
|
||||
expect(events.length).toBe(4);
|
||||
// We expect 3 events (model_info + original + 1 retry)
|
||||
expect(events.length).toBe(3);
|
||||
expect(
|
||||
events
|
||||
.filter((e) => e.type !== GeminiEventType.ModelInfo)
|
||||
.every((e) => e.type === GeminiEventType.InvalidStream),
|
||||
).toBe(true);
|
||||
.filter((e) => e.type === GeminiEventType.ModelInfo)
|
||||
.map((e) => e.value),
|
||||
).toEqual(['default-routed-model']);
|
||||
|
||||
// Verify that turn.run was called twice
|
||||
expect(mockTurnRunFn).toHaveBeenCalledTimes(2);
|
||||
|
||||
@@ -626,10 +626,10 @@ export class GeminiClient {
|
||||
);
|
||||
modelToUse = finalModel;
|
||||
|
||||
this.currentSequenceModel = modelToUse;
|
||||
if (!signal.aborted) {
|
||||
if (!signal.aborted && !this.currentSequenceModel) {
|
||||
yield { type: GeminiEventType.ModelInfo, value: modelToUse };
|
||||
}
|
||||
this.currentSequenceModel = modelToUse;
|
||||
const resultStream = turn.run(modelConfigKey, request, linkedSignal);
|
||||
let isError = false;
|
||||
let isInvalidStream = false;
|
||||
|
||||
Reference in New Issue
Block a user