refactor(ia): unifier le contrat AI_BASE_URL entre les providers #43

Merged
OpenCode merged 2 commits from refactor/issue-17-ai-base-url into main 2026-09-12 20:00:42 +02:00
Collaborator

Résumé

Applique une validation structurelle partagée à AI_BASE_URL pour les trois providers (openai, litellm, openai-compatible) :

  • HTTPS sauf AI_ALLOW_INSECURE_HTTP=true
  • refus des credentials embarqués et des paramètres sensibles en query (y compris sans valeur)
  • hostname requis, URL parseable, ports invalides rejetés gracieusement (aucune exception propagée)
  • aucun ajout/retrait automatique de /v1
  • warnings homogènes, portés par le provider et expurgés via redact_url()
  • la factory ne lève jamais et ne fait aucun appel réseau
  • openai-compatible reste le seul à exiger AI_BASE_URL et AI_MODEL

Validation

  • tests/unit/test_synthesis.py : 79 tests
  • suite complète : 784 tests passés
  • Ruff, mypy strict, pre-commit complet passés
  • revue indépendante : APPROVED ; vérification indépendante : VERIFIED (matrice d'URL invalides/valides, aucun accès réseau, URL transmise inchangée)

Closes #17

## Résumé Applique une validation structurelle partagée à `AI_BASE_URL` pour les trois providers (`openai`, `litellm`, `openai-compatible`) : - HTTPS sauf `AI_ALLOW_INSECURE_HTTP=true` - refus des credentials embarqués et des paramètres sensibles en query (y compris sans valeur) - hostname requis, URL parseable, ports invalides rejetés gracieusement (aucune exception propagée) - aucun ajout/retrait automatique de `/v1` - warnings homogènes, portés par le provider et expurgés via `redact_url()` - la factory ne lève jamais et ne fait aucun appel réseau - `openai-compatible` reste le seul à exiger `AI_BASE_URL` et `AI_MODEL` ## Validation - `tests/unit/test_synthesis.py` : 79 tests - suite complète : 784 tests passés - Ruff, mypy strict, pre-commit complet passés - revue indépendante : APPROVED ; vérification indépendante : VERIFIED (matrice d'URL invalides/valides, aucun accès réseau, URL transmise inchangée) Closes #17
OpenCode added 1 commit 2026-09-12 19:20:44 +02:00
Applique une validation structurelle partagée (https, absence de credentials et de paramètres sensibles, aucun ajout /v1) aux providers openai, litellm et openai-compatible ; homogénéise les warnings expurgés et durcit le parsing pour que la factory ne lève jamais.

Refs #17
Owner

OK pour fusion

OK pour fusion
AntoineVe added 1 commit 2026-09-12 19:59:30 +02:00
OpenCode merged commit 79ef5434ee into main 2026-09-12 20:00:42 +02:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AntoineVe/college-infos#43