Merge remote-tracking branch 'origin/perf/team-page-lag-optimization' into perf/team-page-lag-optimization

This commit is contained in:
777genius 2026-05-31 00:37:10 +03:00
commit 0b0eb45784

View file

@ -4645,7 +4645,7 @@ describe('TeamDataService', () => {
), ),
]); ]);
const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never); const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never);
const extract = ( const extract = (
service as unknown as { service as unknown as {
extractLeadSessionTextsFromJsonl: ( extractLeadSessionTextsFromJsonl: (
@ -4680,25 +4680,25 @@ describe('TeamDataService', () => {
const originalExtract = ( const originalExtract = (
service as unknown as { service as unknown as {
extractLeadAssistantTextsFromJsonl: ( extractLeadAssistantTextsFromJsonlLines: (
jsonlPath: string, rawLines: readonly string[],
leadName: string, leadName: string,
leadSessionId: string, leadSessionId: string,
maxTexts: number maxTexts: number
) => Promise<Array<{ text: string }>>; ) => Promise<Array<{ text: string }>>;
} }
).extractLeadAssistantTextsFromJsonl.bind(service); ).extractLeadAssistantTextsFromJsonlLines.bind(service);
const assistantSpy = vi const assistantSpy = vi
.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never) .spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never)
.mockImplementation(async (...args: unknown[]) => { .mockImplementation(async (...args: unknown[]) => {
const [targetPath, leadName, leadSessionId, maxTexts] = args as [ const [rawLines, leadName, leadSessionId, maxTexts] = args as [
string, readonly string[],
string, string,
string, string,
number, number,
]; ];
await new Promise((resolve) => setTimeout(resolve, 25)); await new Promise((resolve) => setTimeout(resolve, 25));
return originalExtract(targetPath, leadName, leadSessionId, maxTexts); return originalExtract(rawLines, leadName, leadSessionId, maxTexts);
}); });
const extract = ( const extract = (
service as unknown as { service as unknown as {
@ -4732,20 +4732,20 @@ describe('TeamDataService', () => {
const originalExtract = ( const originalExtract = (
service as unknown as { service as unknown as {
extractLeadAssistantTextsFromJsonl: ( extractLeadAssistantTextsFromJsonlLines: (
jsonlPath: string, rawLines: readonly string[],
leadName: string, leadName: string,
leadSessionId: string, leadSessionId: string,
maxTexts: number maxTexts: number
) => Promise<Array<{ text: string }>>; ) => Promise<Array<{ text: string }>>;
} }
).extractLeadAssistantTextsFromJsonl.bind(service); ).extractLeadAssistantTextsFromJsonlLines.bind(service);
let appended = false; let appended = false;
const assistantSpy = vi const assistantSpy = vi
.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never) .spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never)
.mockImplementation(async (...args: unknown[]) => { .mockImplementation(async (...args: unknown[]) => {
const [targetPath, leadName, leadSessionId, maxTexts] = args as [ const [rawLines, leadName, leadSessionId, maxTexts] = args as [
string, readonly string[],
string, string,
string, string,
number, number,
@ -4753,7 +4753,7 @@ describe('TeamDataService', () => {
if (!appended) { if (!appended) {
appended = true; appended = true;
await fs.appendFile( await fs.appendFile(
targetPath, jsonlPath,
`${JSON.stringify( `${JSON.stringify(
createLeadAssistantEntry( createLeadAssistantEntry(
'assistant-2', 'assistant-2',
@ -4764,7 +4764,7 @@ describe('TeamDataService', () => {
'utf8' 'utf8'
); );
} }
return originalExtract(targetPath, leadName, leadSessionId, maxTexts); return originalExtract(rawLines, leadName, leadSessionId, maxTexts);
}); });
const extract = ( const extract = (
service as unknown as { service as unknown as {
@ -4781,7 +4781,7 @@ describe('TeamDataService', () => {
const second = await extract(jsonlPath, 'team-lead', 'lead-1', 150); const second = await extract(jsonlPath, 'team-lead', 'lead-1', 150);
expect(assistantSpy).toHaveBeenCalledTimes(2); expect(assistantSpy).toHaveBeenCalledTimes(2);
expect(first).toHaveLength(2); expect(first).toHaveLength(1);
expect(second).toHaveLength(2); expect(second).toHaveLength(2);
}); });
@ -4797,24 +4797,24 @@ describe('TeamDataService', () => {
const originalExtract = ( const originalExtract = (
service as unknown as { service as unknown as {
extractLeadAssistantTextsFromJsonl: ( extractLeadAssistantTextsFromJsonlLines: (
jsonlPath: string, rawLines: readonly string[],
leadName: string, leadName: string,
leadSessionId: string, leadSessionId: string,
maxTexts: number maxTexts: number
) => Promise<Array<{ text: string }>>; ) => Promise<Array<{ text: string }>>;
} }
).extractLeadAssistantTextsFromJsonl.bind(service); ).extractLeadAssistantTextsFromJsonlLines.bind(service);
let releaseFirstInvocation = () => {}; let releaseFirstInvocation = () => {};
let firstInvocationStartedResolve: (() => void) | null = null; let firstInvocationStartedResolve: (() => void) | null = null;
const firstInvocationStarted = new Promise<void>((resolve) => { const firstInvocationStarted = new Promise<void>((resolve) => {
firstInvocationStartedResolve = resolve; firstInvocationStartedResolve = resolve;
}); });
const assistantSpy = vi const assistantSpy = vi
.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never) .spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never)
.mockImplementation(async (...args: unknown[]) => { .mockImplementation(async (...args: unknown[]) => {
const [targetPath, leadName, leadSessionId, maxTexts] = args as [ const [rawLines, leadName, leadSessionId, maxTexts] = args as [
string, readonly string[],
string, string,
string, string,
number, number,
@ -4825,7 +4825,7 @@ describe('TeamDataService', () => {
releaseFirstInvocation = () => resolve(); releaseFirstInvocation = () => resolve();
}); });
} }
return originalExtract(targetPath, leadName, leadSessionId, maxTexts); return originalExtract(rawLines, leadName, leadSessionId, maxTexts);
}); });
const extract = ( const extract = (
service as unknown as { service as unknown as {
@ -4877,7 +4877,7 @@ describe('TeamDataService', () => {
), ),
]); ]);
const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never); const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never);
const extract = ( const extract = (
service as unknown as { service as unknown as {
extractLeadSessionTextsFromJsonl: ( extractLeadSessionTextsFromJsonl: (
@ -4911,7 +4911,7 @@ describe('TeamDataService', () => {
), ),
]); ]);
const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never); const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never);
const extract = ( const extract = (
service as unknown as { service as unknown as {
extractLeadSessionTextsFromJsonl: ( extractLeadSessionTextsFromJsonl: (
@ -4929,7 +4929,7 @@ describe('TeamDataService', () => {
await expect(extract(jsonlPath, 'team-lead', 'lead-1', 150)).rejects.toThrow(); await expect(extract(jsonlPath, 'team-lead', 'lead-1', 150)).rejects.toThrow();
expect(first).toHaveLength(1); expect(first).toHaveLength(1);
expect(assistantSpy).toHaveBeenCalledTimes(2); expect(assistantSpy).toHaveBeenCalledTimes(1);
}); });
it('tolerates a partial trailing line and does not keep a sticky stale result after the file is fixed', async () => { it('tolerates a partial trailing line and does not keep a sticky stale result after the file is fixed', async () => {
@ -4943,7 +4943,7 @@ describe('TeamDataService', () => {
]); ]);
await fs.appendFile(jsonlPath, '{"type":"assistant"', 'utf8'); await fs.appendFile(jsonlPath, '{"type":"assistant"', 'utf8');
const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never); const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never);
const extract = ( const extract = (
service as unknown as { service as unknown as {
extractLeadSessionTextsFromJsonl: ( extractLeadSessionTextsFromJsonl: (
@ -4991,7 +4991,7 @@ describe('TeamDataService', () => {
), ),
]); ]);
const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never); const assistantSpy = vi.spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never);
const extract = ( const extract = (
service as unknown as { service as unknown as {
extractLeadSessionTextsFromJsonl: ( extractLeadSessionTextsFromJsonl: (
@ -5023,20 +5023,20 @@ describe('TeamDataService', () => {
const originalExtract = ( const originalExtract = (
service as unknown as { service as unknown as {
extractLeadAssistantTextsFromJsonl: ( extractLeadAssistantTextsFromJsonlLines: (
jsonlPath: string, rawLines: readonly string[],
leadName: string, leadName: string,
leadSessionId: string, leadSessionId: string,
maxTexts: number maxTexts: number
) => Promise<Array<{ text: string }>>; ) => Promise<Array<{ text: string }>>;
} }
).extractLeadAssistantTextsFromJsonl.bind(service); ).extractLeadAssistantTextsFromJsonlLines.bind(service);
let shouldFail = true; let shouldFail = true;
const assistantSpy = vi const assistantSpy = vi
.spyOn(service as never, 'extractLeadAssistantTextsFromJsonl' as never) .spyOn(service as never, 'extractLeadAssistantTextsFromJsonlLines' as never)
.mockImplementation(async (...args: unknown[]) => { .mockImplementation(async (...args: unknown[]) => {
const [targetPath, leadName, leadSessionId, maxTexts] = args as [ const [rawLines, leadName, leadSessionId, maxTexts] = args as [
string, readonly string[],
string, string,
string, string,
number, number,
@ -5044,7 +5044,7 @@ describe('TeamDataService', () => {
if (shouldFail) { if (shouldFail) {
throw new Error('transient parse failure'); throw new Error('transient parse failure');
} }
return originalExtract(targetPath, leadName, leadSessionId, maxTexts); return originalExtract(rawLines, leadName, leadSessionId, maxTexts);
}); });
const extract = ( const extract = (
service as unknown as { service as unknown as {
@ -5079,10 +5079,10 @@ describe('TeamDataService', () => {
), ),
]); ]);
const firstSpy = vi.spyOn(firstService as never, 'extractLeadAssistantTextsFromJsonl' as never); const firstSpy = vi.spyOn(firstService as never, 'extractLeadAssistantTextsFromJsonlLines' as never);
const secondSpy = vi.spyOn( const secondSpy = vi.spyOn(
secondService as never, secondService as never,
'extractLeadAssistantTextsFromJsonl' as never 'extractLeadAssistantTextsFromJsonlLines' as never
); );
const firstExtract = ( const firstExtract = (
firstService as unknown as { firstService as unknown as {