@@ -80,7 +80,7 @@ func TestHasRepeatedToolCalls(t *testing.T) {
8080 t.Run("exact repeat at threshold not detected", func(t *testing.T) {
8181 // maxRepeats=5 means > 5 is needed, so exactly 5 should return false
8282 steps := make([]fantasy.StepResult, 10)
83− for i := 0; i < 5; i++ {
83+ for i := range 5 {
8484 steps[i] = makeToolStep("read", `{"file":"a.go"}`, "content")
8585 }
8686 for i := 5; i < 10; i++ {
@@ -95,7 +95,7 @@ func TestHasRepeatedToolCalls(t *testing.T) {
9595 t.Run("loop detected", func(t *testing.T) {
9696 // 6 identical steps in a window of 10 with maxRepeats=5 → detected
9797 steps := make([]fantasy.StepResult, 10)
98− for i := 0; i < 6; i++ {
98+ for i := range 6 {
9999 steps[i] = makeToolStep("read", `{"file":"a.go"}`, "content")
100100 }
101101 for i := 6; i < 10; i++ {
@@ -110,7 +110,7 @@ func TestHasRepeatedToolCalls(t *testing.T) {
110110 t.Run("steps without tool calls are skipped", func(t *testing.T) {
111111 // Mix of tool steps and empty steps — empty ones should not affect counts
112112 steps := make([]fantasy.StepResult, 10)
113− for i := 0; i < 4; i++ {
113+ for i := range 4 {
114114 steps[i] = makeToolStep("read", `{"file":"a.go"}`, "content")
115115 }
116116 for i := 4; i < 8; i++ {