mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-15 00:21:09 -07:00
fix(core): deduplicate ModelInfo emission in GeminiClient (#17075)
This commit is contained in:
committed by
Sandy Tao
parent
588c1a6d16
commit
3441b88375
@@ -1624,7 +1624,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' },
|
||||
]);
|
||||
|
||||
@@ -1712,13 +1711,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);
|
||||
|
||||
@@ -628,9 +628,10 @@ export class GeminiClient {
|
||||
);
|
||||
modelToUse = finalModel;
|
||||
|
||||
if (!signal.aborted && !this.currentSequenceModel) {
|
||||
yield { type: GeminiEventType.ModelInfo, value: modelToUse };
|
||||
}
|
||||
this.currentSequenceModel = modelToUse;
|
||||
yield { type: GeminiEventType.ModelInfo, value: modelToUse };
|
||||
|
||||
const resultStream = turn.run(modelConfigKey, request, linkedSignal);
|
||||
let isError = false;
|
||||
let isInvalidStream = false;
|
||||
|
||||
Reference in New Issue
Block a user