fix(channels): satisfy tool feedback throttle lint

This commit is contained in:
Anton Bogdanovich 2026-05-07 15:02:53 -07:00
parent af04f0f88b
commit c8611f0734
3 changed files with 8 additions and 3 deletions

View file

@ -144,7 +144,7 @@ type toolFeedbackMessageContentPreparer interface {
} }
type toolFeedbackAnimatorConfigurer interface { type toolFeedbackAnimatorConfigurer interface {
ConfigureToolFeedbackAnimator(ToolFeedbackAnimatorConfig) ConfigureToolFeedbackAnimator(cfg ToolFeedbackAnimatorConfig)
} }
type asyncTask struct { type asyncTask struct {

View file

@ -15,6 +15,7 @@ const defaultToolFeedbackAnimationInterval = 3 * time.Second
const initialToolFeedbackAnimationFrame = "" const initialToolFeedbackAnimationFrame = ""
var toolFeedbackAnimationFrames = []string{"..", "."} var toolFeedbackAnimationFrames = []string{"..", "."}
var retryAfterPattern = regexp.MustCompile(`retry after:? (\d+)`) var retryAfterPattern = regexp.MustCompile(`retry after:? (\d+)`)
// MaxToolFeedbackAnimationFrameLength returns the largest frame suffix length // MaxToolFeedbackAnimationFrameLength returns the largest frame suffix length
@ -304,7 +305,9 @@ func (a *ToolFeedbackAnimator) retryAfterDelay(err error) (time.Duration, bool)
return 0, false return 0, false
} }
errText := strings.ToLower(err.Error()) errText := strings.ToLower(err.Error())
if !errors.Is(err, ErrRateLimit) && !strings.Contains(errText, "too many requests") && !strings.Contains(errText, "429") { if !errors.Is(err, ErrRateLimit) &&
!strings.Contains(errText, "too many requests") &&
!strings.Contains(errText, "429") {
return 0, false return 0, false
} }
match := retryAfterPattern.FindStringSubmatch(errText) match := retryAfterPattern.FindStringSubmatch(errText)

View file

@ -833,7 +833,9 @@ func TestLoadConfig_ToolFeedbackThrottleIntervals(t *testing.T) {
configPath := filepath.Join(dir, "config.json") configPath := filepath.Join(dir, "config.json")
if err := os.WriteFile( if err := os.WriteFile(
configPath, configPath,
[]byte(`{"version":1,"agents":{"defaults":{"tool_feedback":{"enabled":true,"animation_interval_secs":5,"edit_min_interval_seconds":10}}}}`), []byte(
`{"version":1,"agents":{"defaults":{"tool_feedback":{"enabled":true,"animation_interval_secs":5,"edit_min_interval_seconds":10}}}}`,
),
0o600, 0o600,
); err != nil { ); err != nil {
t.Fatalf("WriteFile() error: %v", err) t.Fatalf("WriteFile() error: %v", err)