Update: compress/hard constrained token usage (#136)

* setup truncation & folder structure

* fix: xml in prompt; qwen code in stats page

* fix: clear & continue logic

* preflight

* add maxSessionLimit in README
This commit is contained in:
Fan
2025-07-30 18:14:24 +08:00
committed by GitHub
parent a08bcb2f41
commit df5c4e8079
29 changed files with 1117 additions and 386 deletions

View File

@@ -54,13 +54,9 @@ export class ClearcutLogger {
this.config = config;
}
static getInstance(config?: Config): ClearcutLogger | undefined {
if (config === undefined || !config?.getUsageStatisticsEnabled())
return undefined;
if (!ClearcutLogger.instance) {
ClearcutLogger.instance = new ClearcutLogger(config);
}
return ClearcutLogger.instance;
static getInstance(_config?: Config): ClearcutLogger | undefined {
// Disable Clearcut Loggerto avoid network request
return undefined;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Clearcut expects this format.

View File

@@ -57,6 +57,7 @@ describe('loggers', () => {
};
beforeEach(() => {
vi.clearAllMocks(); // 清除之前测试的 mock 调用
vi.spyOn(sdk, 'isTelemetrySdkInitialized').mockReturnValue(true);
vi.spyOn(logs, 'getLogger').mockReturnValue(mockLogger);
vi.spyOn(uiTelemetry.uiTelemetryService, 'addEvent').mockImplementation(
@@ -146,7 +147,7 @@ describe('loggers', () => {
'event.name': EVENT_USER_PROMPT,
'event.timestamp': '2025-01-01T00:00:00.000Z',
prompt_length: 11,
prompt: 'test-prompt',
// 移除 prompt 字段,因为 shouldLogUserPrompts 现在返回 false
},
});
});

View File

@@ -38,8 +38,7 @@ import { uiTelemetryService, UiEvent } from './uiTelemetry.js';
import { ClearcutLogger } from './clearcut-logger/clearcut-logger.js';
import { safeJsonStringify } from '../utils/safeJsonStringify.js';
const shouldLogUserPrompts = (config: Config): boolean =>
config.getTelemetryLogPromptsEnabled();
const shouldLogUserPrompts = (_config: Config): boolean => false; // 禁用用户提示日志
function getCommonAttributes(config: Config): LogAttributes {
return {