fix(core): Skip loop check for dividers (#6893)

This commit is contained in:
Sandy Tao
2025-08-22 17:08:16 -07:00
committed by GitHub
parent 1a89d18526
commit da73f13d02
2 changed files with 34 additions and 2 deletions

View File

@@ -558,6 +558,30 @@ describe('LoopDetectionService', () => {
});
});
describe('Divider Content Detection', () => {
it('should not detect a loop for repeating divider-like content', () => {
service.reset('');
const dividerContent = '-'.repeat(CONTENT_CHUNK_SIZE);
let isLoop = false;
for (let i = 0; i < CONTENT_LOOP_THRESHOLD + 5; i++) {
isLoop = service.addAndCheck(createContentEvent(dividerContent));
expect(isLoop).toBe(false);
}
expect(loggers.logLoopDetected).not.toHaveBeenCalled();
});
it('should not detect a loop for repeating complex box-drawing dividers', () => {
service.reset('');
const dividerContent = '╭─'.repeat(CONTENT_CHUNK_SIZE / 2);
let isLoop = false;
for (let i = 0; i < CONTENT_LOOP_THRESHOLD + 5; i++) {
isLoop = service.addAndCheck(createContentEvent(dividerContent));
expect(isLoop).toBe(false);
}
expect(loggers.logLoopDetected).not.toHaveBeenCalled();
});
});
describe('Reset Functionality', () => {
it('tool call should reset content count', () => {
const contentEvent = createContentEvent('Some content.');