contract(supabase): agent Hermes dédié par utilisateur — schéma + Edge Function (T-115, T-116) #105
Loading…
Reference in a new issue
No description provided.
Delete branch "contract/T-115-hermes-agent-per-user"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Tâche
T-xxx — (titre dans docs/STATUS.md)
Changements
Contrat modifié ?
packages/contract/supabase/migrations—docs/API.md/docs/DATA.mdmis à jour, labelcontract, approbation humaine requiseTests
scripts/check.shvertImpacts cross-domaine
Fichiers hors périmètre de l'agent (et pourquoi) :
Suivi
docs/STATUS.mdmis à jour (ligne de la tâche)docs/CHANGELOG.md: entrée ajoutée sous Unreleaseddocs/DECISIONS.md/docs/ECARTS.mdmis à jour si décision ou écartVérification post-déploiement (2026-09-06, orchestrator) : la fonction
provision-hermes-agentest bien déployée et exécute son propre code (GET/OPTIONS→405 method_not_allowed, plus jamaisInvalidWorkerCreation).Problème trouvé :
POSTsans JWT (ou avec un JWT bidon, ou sans body) renvoie systématiquement500 {"error":"function_not_configured"}au lieu du401attendu — ce garde-fou (index.ts) précède la vérification du JWT et se déclenche siSUPABASE_URL/SUPABASE_SERVICE_ROLE_KEY/HERMES_OPERATOR_URL/HERMES_OPERATOR_API_KEYest vide côté conteneurfunctions. Le rejet 401 attendu n'a donc pas pu être vérifié.Vérifié à part : l'opérateur hermes-swarm est joignable et sain (
/healthz→{"status":"ok"}). Aucun JWT utilisateur réel disponible dans cette session pour tester le chemin nominal.PR non mergée (migration T-115 toujours en attente d'approbation humaine, règle 3b). Détail complet dans
docs/STATUS.md(ligne T-116 et « Vérifications manuelles en attente »).Le 500 function_not_configured précédent était dû à un `restart` du conteneur functions qui ne rechargeait pas les variables d'environnement (les 4 étaient déjà présentes). Après `docker compose up -d --force-recreate` fait par l'humain, POST sans JWT / JWT bidon / body vide renvoie désormais 401 {"error":"unauthorized"} de façon stable — garde-fou de config et vérification JWT confirmés atteints. Reste un test avec un vrai JWT utilisateur (login réel, hors périmètre agent) pour valider le provisioning de bout en bout. PR #105 toujours non mergée (migration T-115, règle 3b). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015yEJwho9a66ZhLao91PtaG