Enable citations by default for certain users. (#7438)

This commit is contained in:
Tommaso Sciortino
2025-09-02 09:36:24 -07:00
committed by GitHub
parent c29e44848b
commit 997136ae25
5 changed files with 87 additions and 181 deletions

View File

@@ -31,6 +31,8 @@ import {
ConversationFinishedEvent,
ApprovalMode,
parseAndFormatApiError,
getCodeAssistServer,
UserTierId,
} from '@google/gemini-cli-core';
import { type Part, type PartListUnion, FinishReason } from '@google/genai';
import type {
@@ -68,6 +70,15 @@ enum StreamProcessingStatus {
Error,
}
function showCitations(settings: LoadedSettings, config: Config): boolean {
const enabled = settings?.merged?.ui?.showCitations;
if (enabled !== undefined) {
return enabled;
}
const server = getCodeAssistServer(config);
return (server && server.userTier !== UserTierId.FREE) ?? false;
}
/**
* Manages the Gemini stream, including user input, command processing,
* API interaction, and tool call lifecycle.
@@ -490,16 +501,17 @@ export const useGeminiStream = (
const handleCitationEvent = useCallback(
(text: string, userMessageTimestamp: number) => {
if (!settings?.merged?.ui?.showCitations) {
if (!showCitations(settings, config)) {
return;
}
if (pendingHistoryItemRef.current) {
addItem(pendingHistoryItemRef.current, userMessageTimestamp);
setPendingHistoryItem(null);
}
addItem({ type: MessageType.INFO, text }, userMessageTimestamp);
},
[addItem, pendingHistoryItemRef, setPendingHistoryItem, settings],
[addItem, pendingHistoryItemRef, setPendingHistoryItem, settings, config],
);
const handleFinishedEvent = useCallback(