Skip to content

Add OutboundChecker interface for on-demand URL testing#195

Merged
myleshorton merged 2 commits intomainfrom
bandit-check-outbounds
Mar 23, 2026
Merged

Add OutboundChecker interface for on-demand URL testing#195
myleshorton merged 2 commits intomainfrom
bandit-check-outbounds

Conversation

@myleshorton
Copy link
Contributor

Summary

  • Adds OutboundChecker interface to adapter/group.go with a single CheckOutbounds() method
  • Adds MutableGroupManager.CheckOutbounds(group) that delegates to the interface
  • Used by radiance (PR Wire BanditURLOverrides through to MutableURLTest radiance#333) to trigger immediate bandit callback URL tests when a new config arrives, instead of waiting for the next 3-minute scheduled interval

Context

The bandit proxy assignment system creates probes with a 20s expiry window. Without on-demand testing, the client's 3-minute URL test interval means every probe expires before being tested. This interface lets radiance fire the test immediately on fresh config receipt.

Test plan

  • go vet ./adapter/... passes
  • Existing MutableGroupManager tests still pass
  • Verified that MutableURLTest already implements CheckOutbounds() (line 144 of mutableurltest.go)

🤖 Generated with Claude Code

Allows callers to trigger an immediate URL test cycle on a group,
used by radiance to fire bandit callbacks as soon as a new config
with URL overrides arrives rather than waiting for the next scheduled
3-minute interval.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 23, 2026 16:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a small adapter-level interface and a corresponding MutableGroupManager entry point so callers can trigger an immediate outbound URL-test cycle for groups that support it (intended to enable on-demand testing on fresh config receipt rather than waiting for the periodic scheduler).

Changes:

  • Introduces adapter.OutboundChecker with CheckOutbounds().
  • Adds MutableGroupManager.CheckOutbounds(group) that looks up a group and delegates to adapter.OutboundChecker.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
adapter/groups/manager.go Adds MutableGroupManager.CheckOutbounds() delegating to a group interface.
adapter/group.go Adds OutboundChecker interface to represent groups supporting on-demand outbound checks.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Release mutex before calling checker.CheckOutbounds() to avoid
  holding the lock during potentially long network operations
- Add unit tests for CheckOutbounds: delegates to OutboundChecker,
  errors on missing group, errors on non-checker group, errors when closed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@myleshorton
Copy link
Contributor Author

YOLOing this one...

@myleshorton myleshorton merged commit cba29d5 into main Mar 23, 2026
3 checks passed
@myleshorton myleshorton deleted the bandit-check-outbounds branch March 23, 2026 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants