Skip to content

fix(models): bind provider detection to DNS labels - #5961

Draft
RaresKeY wants to merge 1 commit into
odysseus-dev:devfrom
RaresKeY:fix/provider-hostname-label-matching
Draft

fix(models): bind provider detection to DNS labels#5961
RaresKeY wants to merge 1 commit into
odysseus-dev:devfrom
RaresKeY:fix/provider-hostname-label-matching

Conversation

@RaresKeY

@RaresKeY RaresKeY commented Aug 8, 2026

Copy link
Copy Markdown
Member

Summary

Make provider detection label-aware so a configured host matches only the exact provider root or a real subdomain, including a trailing-dot FQDN, and rejects suffix lookalikes. Explicit endpoint-kind and local-port handling remain unchanged. This improves capability metadata classification; it is not intended to be an authorization or network-security boundary.

Target branch

  • This PR targets dev, not main. All PRs land in dev; main is curated by the maintainer at each release. If your PR is on main by accident, click "Edit" on this PR and change the base.

Linked Issue

Fixes #5950

Related: #5794, #815

Type of Change

  • Bug fix (non-breaking — fixes a confirmed issue)
  • New feature (non-breaking — adds new behaviour)
  • Breaking change (changes or removes existing behaviour)
  • Refactor / cleanup (behaviour unchanged)
  • Documentation only
  • CI / tooling / configuration

Checklist

  • I searched open issues and open PRs — this is not a duplicate.
  • This PR targets dev
  • My changes are limited to the scope described above — no unrelated refactors or whitespace changes mixed in.
  • I actually ran the app (docker compose up or uvicorn app:app) and verified the change works end-to-end. Type-checks and unit tests are not enough.

Focused capability-reader tests passed; live provider connections and the full application suite have not been run.

How to Test

  1. Run env PYTHONHASHSEED=0 ODYSSEUS_INTERNAL_TOKEN=test-only-internal-token python -m pytest -q tests/test_model_capability_readers.py; the validated head reports 21 passing tests with one existing warning.
  2. Verify a provider root host, a real subdomain, and a trailing-dot FQDN are classified as that provider.
  3. Verify prefix/suffix lookalikes that do not have a DNS-label boundary are rejected.
  4. Verify explicitly typed endpoints and configured local ports retain their existing classification.
  5. Optionally repeat capability discovery against live configured providers; this has not yet been completed.

Visual / UI changes — REQUIRED if you touched anything that renders

Anything that changes what the UI looks like — buttons, icons, padding, colors, fonts, spacing, layout, CSS, HTML, SVG, or any static/js/ module that draws to the DOM — needs all of the following. PRs that change rendering without these WILL be closed.

N/A — no rendered UI files are changed.

  • Screenshot or short clip of the change in the running app, attached below. Mobile screenshot too if the change affects mobile.
  • Style match: the change uses Odysseus's existing visual language. Specifically:
    • Reuse existing CSS variables (--red, --fg, --bg, --card, --border, etc.) — do not introduce new color values, font sizes, or spacing units.
    • Reuse existing button/input/card/border classes. Don't invent parallel styling.
    • No Unicode emoji in UI or code. Use inline SVG (matching the monochrome icon style already in static/index.html) or plain text.
    • Monospaced font (Fira Code) for primary UI text. Don't override.
    • Dark theme is the default; any light-mode work must be wired through the existing theme system, not hard-coded.
  • No new component patterns. If a similar widget already exists in the app, extend it instead of writing a parallel one.
  • I am not an LLM agent submitting a bulk PR. If you are, please open an issue describing the problem first — bulk auto-generated PRs that don't match the project's visual style are closed on sight, even when the underlying fix is correct.

Screenshots / clips

N/A — no rendered UI files changed.

@github-actions github-actions Bot added the ready for review Description complete — ready for maintainer review label Aug 8, 2026
@RaresKeY
RaresKeY force-pushed the fix/provider-hostname-label-matching branch from 5bcecf4 to ce5dc13 Compare August 9, 2026 00:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready for review Description complete — ready for maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Provider detection accepts suffix-lookalike hostnames

1 participant