mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-22 19:14:33 -07:00
Fix extensions logging race condition and slash command logging (#12732)
This commit is contained in:
@@ -940,7 +940,7 @@ export class ClearcutLogger {
|
||||
this.flushIfNeeded();
|
||||
}
|
||||
|
||||
logExtensionInstallEvent(event: ExtensionInstallEvent): void {
|
||||
async logExtensionInstallEvent(event: ExtensionInstallEvent): Promise<void> {
|
||||
const data: EventValue[] = [
|
||||
{
|
||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_NAME,
|
||||
@@ -967,12 +967,14 @@ export class ClearcutLogger {
|
||||
this.enqueueLogEvent(
|
||||
this.createBasicLogEvent(EventNames.EXTENSION_INSTALL, data),
|
||||
);
|
||||
this.flushToClearcut().catch((error) => {
|
||||
await this.flushToClearcut().catch((error) => {
|
||||
debugLogger.debug('Error flushing to Clearcut:', error);
|
||||
});
|
||||
}
|
||||
|
||||
logExtensionUninstallEvent(event: ExtensionUninstallEvent): void {
|
||||
async logExtensionUninstallEvent(
|
||||
event: ExtensionUninstallEvent,
|
||||
): Promise<void> {
|
||||
const data: EventValue[] = [
|
||||
{
|
||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_NAME,
|
||||
@@ -991,12 +993,12 @@ export class ClearcutLogger {
|
||||
this.enqueueLogEvent(
|
||||
this.createBasicLogEvent(EventNames.EXTENSION_UNINSTALL, data),
|
||||
);
|
||||
this.flushToClearcut().catch((error) => {
|
||||
await this.flushToClearcut().catch((error) => {
|
||||
debugLogger.debug('Error flushing to Clearcut:', error);
|
||||
});
|
||||
}
|
||||
|
||||
logExtensionUpdateEvent(event: ExtensionUpdateEvent): void {
|
||||
async logExtensionUpdateEvent(event: ExtensionUpdateEvent): Promise<void> {
|
||||
const data: EventValue[] = [
|
||||
{
|
||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_NAME,
|
||||
@@ -1027,7 +1029,7 @@ export class ClearcutLogger {
|
||||
this.enqueueLogEvent(
|
||||
this.createBasicLogEvent(EventNames.EXTENSION_UPDATE, data),
|
||||
);
|
||||
this.flushToClearcut().catch((error) => {
|
||||
await this.flushToClearcut().catch((error) => {
|
||||
debugLogger.debug('Error flushing to Clearcut:', error);
|
||||
});
|
||||
}
|
||||
@@ -1096,7 +1098,7 @@ export class ClearcutLogger {
|
||||
this.flushIfNeeded();
|
||||
}
|
||||
|
||||
logExtensionEnableEvent(event: ExtensionEnableEvent): void {
|
||||
async logExtensionEnableEvent(event: ExtensionEnableEvent): Promise<void> {
|
||||
const data: EventValue[] = [
|
||||
{
|
||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_NAME,
|
||||
@@ -1116,7 +1118,7 @@ export class ClearcutLogger {
|
||||
this.enqueueLogEvent(
|
||||
this.createBasicLogEvent(EventNames.EXTENSION_ENABLE, data),
|
||||
);
|
||||
this.flushToClearcut().catch((error) => {
|
||||
await this.flushToClearcut().catch((error) => {
|
||||
debugLogger.debug('Error flushing to Clearcut:', error);
|
||||
});
|
||||
}
|
||||
@@ -1135,7 +1137,7 @@ export class ClearcutLogger {
|
||||
this.flushIfNeeded();
|
||||
}
|
||||
|
||||
logExtensionDisableEvent(event: ExtensionDisableEvent): void {
|
||||
async logExtensionDisableEvent(event: ExtensionDisableEvent): Promise<void> {
|
||||
const data: EventValue[] = [
|
||||
{
|
||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_NAME,
|
||||
@@ -1155,7 +1157,7 @@ export class ClearcutLogger {
|
||||
this.enqueueLogEvent(
|
||||
this.createBasicLogEvent(EventNames.EXTENSION_DISABLE, data),
|
||||
);
|
||||
this.flushToClearcut().catch((error) => {
|
||||
await this.flushToClearcut().catch((error) => {
|
||||
debugLogger.debug('Error flushing to Clearcut:', error);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1516,10 +1516,10 @@ describe('loggers', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.resetAllMocks();
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should log extension install event', () => {
|
||||
it('should log extension install event', async () => {
|
||||
const event = new ExtensionInstallEvent(
|
||||
'testing',
|
||||
'testing-id',
|
||||
@@ -1528,7 +1528,7 @@ describe('loggers', () => {
|
||||
'success',
|
||||
);
|
||||
|
||||
logExtensionInstallEvent(mockConfig, event);
|
||||
await logExtensionInstallEvent(mockConfig, event);
|
||||
|
||||
expect(
|
||||
ClearcutLogger.prototype.logExtensionInstallEvent,
|
||||
@@ -1551,7 +1551,7 @@ describe('loggers', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('logExtensionUpdate', () => {
|
||||
describe('logExtensionUpdate', async () => {
|
||||
const mockConfig = {
|
||||
getSessionId: () => 'test-session-id',
|
||||
getUsageStatisticsEnabled: () => true,
|
||||
@@ -1565,10 +1565,10 @@ describe('loggers', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.resetAllMocks();
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should log extension update event', () => {
|
||||
it('should log extension update event', async () => {
|
||||
const event = new ExtensionUpdateEvent(
|
||||
'testing',
|
||||
'testing-id',
|
||||
@@ -1578,7 +1578,7 @@ describe('loggers', () => {
|
||||
'success',
|
||||
);
|
||||
|
||||
logExtensionUpdateEvent(mockConfig, event);
|
||||
await logExtensionUpdateEvent(mockConfig, event);
|
||||
|
||||
expect(
|
||||
ClearcutLogger.prototype.logExtensionUpdateEvent,
|
||||
@@ -1602,7 +1602,7 @@ describe('loggers', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('logExtensionUninstall', () => {
|
||||
describe('logExtensionUninstall', async () => {
|
||||
const mockConfig = {
|
||||
getSessionId: () => 'test-session-id',
|
||||
getUsageStatisticsEnabled: () => true,
|
||||
@@ -1616,17 +1616,16 @@ describe('loggers', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.resetAllMocks();
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should log extension uninstall event', () => {
|
||||
it('should log extension uninstall event', async () => {
|
||||
const event = new ExtensionUninstallEvent(
|
||||
'testing',
|
||||
'testing-id',
|
||||
'success',
|
||||
);
|
||||
|
||||
logExtensionUninstall(mockConfig, event);
|
||||
await logExtensionUninstall(mockConfig, event);
|
||||
|
||||
expect(
|
||||
ClearcutLogger.prototype.logExtensionUninstallEvent,
|
||||
@@ -1647,7 +1646,7 @@ describe('loggers', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('logExtensionEnable', () => {
|
||||
describe('logExtensionEnable', async () => {
|
||||
const mockConfig = {
|
||||
getSessionId: () => 'test-session-id',
|
||||
getUsageStatisticsEnabled: () => true,
|
||||
@@ -1658,13 +1657,13 @@ describe('loggers', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.resetAllMocks();
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should log extension enable event', () => {
|
||||
it('should log extension enable event', async () => {
|
||||
const event = new ExtensionEnableEvent('testing', 'testing-id', 'user');
|
||||
|
||||
logExtensionEnable(mockConfig, event);
|
||||
await logExtensionEnable(mockConfig, event);
|
||||
|
||||
expect(
|
||||
ClearcutLogger.prototype.logExtensionEnableEvent,
|
||||
@@ -1696,13 +1695,13 @@ describe('loggers', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.resetAllMocks();
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should log extension disable event', () => {
|
||||
it('should log extension disable event', async () => {
|
||||
const event = new ExtensionDisableEvent('testing', 'testing-id', 'user');
|
||||
|
||||
logExtensionDisable(mockConfig, event);
|
||||
await logExtensionDisable(mockConfig, event);
|
||||
|
||||
expect(
|
||||
ClearcutLogger.prototype.logExtensionDisableEvent,
|
||||
|
||||
@@ -507,11 +507,11 @@ export function logModelSlashCommand(
|
||||
recordModelSlashCommand(config, event);
|
||||
}
|
||||
|
||||
export function logExtensionInstallEvent(
|
||||
export async function logExtensionInstallEvent(
|
||||
config: Config,
|
||||
event: ExtensionInstallEvent,
|
||||
): void {
|
||||
ClearcutLogger.getInstance(config)?.logExtensionInstallEvent(event);
|
||||
): Promise<void> {
|
||||
await ClearcutLogger.getInstance(config)?.logExtensionInstallEvent(event);
|
||||
if (!isTelemetrySdkInitialized()) return;
|
||||
|
||||
const logger = logs.getLogger(SERVICE_NAME);
|
||||
@@ -522,11 +522,11 @@ export function logExtensionInstallEvent(
|
||||
logger.emit(logRecord);
|
||||
}
|
||||
|
||||
export function logExtensionUninstall(
|
||||
export async function logExtensionUninstall(
|
||||
config: Config,
|
||||
event: ExtensionUninstallEvent,
|
||||
): void {
|
||||
ClearcutLogger.getInstance(config)?.logExtensionUninstallEvent(event);
|
||||
): Promise<void> {
|
||||
await ClearcutLogger.getInstance(config)?.logExtensionUninstallEvent(event);
|
||||
if (!isTelemetrySdkInitialized()) return;
|
||||
|
||||
const logger = logs.getLogger(SERVICE_NAME);
|
||||
@@ -537,11 +537,11 @@ export function logExtensionUninstall(
|
||||
logger.emit(logRecord);
|
||||
}
|
||||
|
||||
export function logExtensionUpdateEvent(
|
||||
export async function logExtensionUpdateEvent(
|
||||
config: Config,
|
||||
event: ExtensionUpdateEvent,
|
||||
): void {
|
||||
ClearcutLogger.getInstance(config)?.logExtensionUpdateEvent(event);
|
||||
): Promise<void> {
|
||||
await ClearcutLogger.getInstance(config)?.logExtensionUpdateEvent(event);
|
||||
if (!isTelemetrySdkInitialized()) return;
|
||||
|
||||
const logger = logs.getLogger(SERVICE_NAME);
|
||||
@@ -552,11 +552,11 @@ export function logExtensionUpdateEvent(
|
||||
logger.emit(logRecord);
|
||||
}
|
||||
|
||||
export function logExtensionEnable(
|
||||
export async function logExtensionEnable(
|
||||
config: Config,
|
||||
event: ExtensionEnableEvent,
|
||||
): void {
|
||||
ClearcutLogger.getInstance(config)?.logExtensionEnableEvent(event);
|
||||
): Promise<void> {
|
||||
await ClearcutLogger.getInstance(config)?.logExtensionEnableEvent(event);
|
||||
if (!isTelemetrySdkInitialized()) return;
|
||||
|
||||
const logger = logs.getLogger(SERVICE_NAME);
|
||||
@@ -567,11 +567,11 @@ export function logExtensionEnable(
|
||||
logger.emit(logRecord);
|
||||
}
|
||||
|
||||
export function logExtensionDisable(
|
||||
export async function logExtensionDisable(
|
||||
config: Config,
|
||||
event: ExtensionDisableEvent,
|
||||
): void {
|
||||
ClearcutLogger.getInstance(config)?.logExtensionDisableEvent(event);
|
||||
): Promise<void> {
|
||||
await ClearcutLogger.getInstance(config)?.logExtensionDisableEvent(event);
|
||||
if (!isTelemetrySdkInitialized()) return;
|
||||
|
||||
const logger = logs.getLogger(SERVICE_NAME);
|
||||
|
||||
Reference in New Issue
Block a user