Skip to content

fix: fail close provider-scoped routes when no provider endpoints match#158

Draft
petersimmons1972 wants to merge 26 commits into
thushan:mainfrom
petersimmons1972:agent/codex/issue-84-provider-fail-closed
Draft

fix: fail close provider-scoped routes when no provider endpoints match#158
petersimmons1972 wants to merge 26 commits into
thushan:mainfrom
petersimmons1972:agent/codex/issue-84-provider-fail-closed

Conversation

@petersimmons1972

Copy link
Copy Markdown

Summary\n- Provider-scoped route selection now uses strict compatibility filtering so requests do not fall back to unrelated endpoint types.\n- Added regression test for healthy non-matching endpoints returning provider-specific not-found.\n\n## Changes\n- internal/app/handlers/handler_provider_common.go: added and switched provider endpoint resolution to it.\n- internal/app/handlers/handler_provider_test.go: added .\n\n## Validation\n- go test ./internal/app/handlers\n\nCloses #84

petersimmons1972 and others added 26 commits May 21, 2026 21:59
… (#1)

Adds discovery.type: "fc" — Olla polls Flight Controller /registry every 15s
and atomically reconciles its backend set, meeting the <30s convergence SLO.

- internal/adapter/discovery/fc_repository.go: FCDiscoveryPoller with Poll()
  and RunLoop(). Converts FC RegistryEntry{Host,Models[]{Name,Port}} into
  EndpointConfig slices and calls LoadFromConfig (thread-safe atomic map swap
  already in StaticEndpointRepository). Fail-open: FC unreachable → warn and
  preserve existing endpoint set.
- internal/adapter/discovery/fc_repository_test.go: 3 tests — convert,
  remove-stale (core acceptance criterion), fail-open on FC unavailability
- internal/config/types.go: FCDiscoveryConfig{RegistryURL, PollInterval};
  DiscoveryConfig.FC added
- internal/app/services/discovery.go: "fc" switch case validates registry_url,
  defaults poll_interval to 15s, runs initial blocking poll at startup,
  launches background RunLoop goroutine; fcPollerCancel called on Stop()

ADV.1 advisory recommendation: Path A chosen over Path C (Reconciler) because
Olla has no hot-reload path — ConfigMap volume mount convergence is 30-60s+
making <30s SLO unreliable without an Olla fork change anyway.

Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…aker-config

fix(olla): honor endpoint circuit breaker config
…fig-followup

fix(olla): finish breaker config rollout for oblivion-gb10-vllm
…tus-main

feat(olla): expose breaker state in endpoint status
…dels-main

feat(olla): enforce allowed model aliases
Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
… (#1)

Adds discovery.type: "fc" — Olla polls Flight Controller /registry every 15s
and atomically reconciles its backend set, meeting the <30s convergence SLO.

- internal/adapter/discovery/fc_repository.go: FCDiscoveryPoller with Poll()
  and RunLoop(). Converts FC RegistryEntry{Host,Models[]{Name,Port}} into
  EndpointConfig slices and calls LoadFromConfig (thread-safe atomic map swap
  already in StaticEndpointRepository). Fail-open: FC unreachable → warn and
  preserve existing endpoint set.
- internal/adapter/discovery/fc_repository_test.go: 3 tests — convert,
  remove-stale (core acceptance criterion), fail-open on FC unavailability
- internal/config/types.go: FCDiscoveryConfig{RegistryURL, PollInterval};
  DiscoveryConfig.FC added
- internal/app/services/discovery.go: "fc" switch case validates registry_url,
  defaults poll_interval to 15s, runs initial blocking poll at startup,
  launches background RunLoop goroutine; fcPollerCancel called on Stop()

ADV.1 advisory recommendation: Path A chosen over Path C (Reconciler) because
Olla has no hot-reload path — ConfigMap volume mount convergence is 30-60s+
making <30s SLO unreliable without an Olla fork change anyway.

Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
Co-authored-by: Peter Simmons <petersimmons1972@gmail.com>
…n-aifleet

Rebase AI Fleet Olla changes onto upstream main
Fix model config and discovery defaults
@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 931ed337-ce9e-4603-aa94-2bd875104780

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

1 participant