Merge pull request #1254 from QwenLM/chore/no-chat-recording-flag

Add chat recording toggle (CLI + settings) and disable recording in tests
This commit is contained in:
tanzhenxin
2025-12-15 19:16:14 +08:00
committed by GitHub
13 changed files with 128 additions and 59 deletions

View File

@@ -318,6 +318,7 @@ export interface ConfigParameters {
generationConfig?: Partial<ContentGeneratorConfig>;
cliVersion?: string;
loadMemoryFromIncludeDirectories?: boolean;
chatRecording?: boolean;
// Web search providers
webSearch?: {
provider: Array<{
@@ -457,6 +458,7 @@ export class Config {
| undefined;
private readonly cliVersion?: string;
private readonly experimentalZedIntegration: boolean = false;
private readonly chatRecordingEnabled: boolean;
private readonly loadMemoryFromIncludeDirectories: boolean = false;
private readonly webSearch?: {
provider: Array<{
@@ -572,6 +574,8 @@ export class Config {
._generationConfig as ContentGeneratorConfig;
this.cliVersion = params.cliVersion;
this.chatRecordingEnabled = params.chatRecording ?? true;
this.loadMemoryFromIncludeDirectories =
params.loadMemoryFromIncludeDirectories ?? false;
this.chatCompression = params.chatCompression;
@@ -618,7 +622,9 @@ export class Config {
setGlobalDispatcher(new ProxyAgent(this.getProxy() as string));
}
this.geminiClient = new GeminiClient(this);
this.chatRecordingService = new ChatRecordingService(this);
this.chatRecordingService = this.chatRecordingEnabled
? new ChatRecordingService(this)
: undefined;
}
/**
@@ -738,7 +744,9 @@ export class Config {
startNewSession(sessionId?: string): string {
this.sessionId = sessionId ?? randomUUID();
this.sessionData = undefined;
this.chatRecordingService = new ChatRecordingService(this);
this.chatRecordingService = this.chatRecordingEnabled
? new ChatRecordingService(this)
: undefined;
if (this.initialized) {
logStartSession(this, new StartSessionEvent(this));
}
@@ -1267,7 +1275,10 @@ export class Config {
/**
* Returns the chat recording service.
*/
getChatRecordingService(): ChatRecordingService {
getChatRecordingService(): ChatRecordingService | undefined {
if (!this.chatRecordingEnabled) {
return undefined;
}
if (!this.chatRecordingService) {
this.chatRecordingService = new ChatRecordingService(this);
}

View File

@@ -69,6 +69,8 @@ async function createMockConfig(
targetDir: '.',
debugMode: false,
cwd: process.cwd(),
// Avoid writing any chat recording records from tests (e.g. via tool-call telemetry).
chatRecording: false,
};
const config = new Config(configParams);
await config.initialize();