Loop detector: repeating-cycle guard (A→B→A→B evaded stop forever) - #59
Merged
Conversation
Per-signature counting peaks at windowSize/cycleLen — for any 2-tool cycle in a window of 6 that's 3, below the stop threshold of 5, so an alternating loop could NEVER be stopped (observed live: endless sim_rotate → sim_screenshot the user had to interrupt). The detector now also finds the trailing block of length 2-3 repeating verbatim and nudges/stops on REPETITION count, with a names-only cycle label and a cycle-specific nudge message. Uniform runs keep the original path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Per-signature counting peaks at windowSize/cycleLen — for any 2-tool
cycle in a window of 6 that's 3, below the stop threshold of 5, so an
alternating loop could NEVER be stopped (observed live: endless
sim_rotate → sim_screenshot the user had to interrupt). The detector now
also finds the trailing block of length 2-3 repeating verbatim and
nudges/stops on REPETITION count, with a names-only cycle label and a
cycle-specific nudge message. Uniform runs keep the original path.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com