Commit Graph

1 Commits

Author SHA1 Message Date
msaldain b88264f41b Cargar .env en los entrypoints de Python
scripts/remote.sh hace `source .env`, pero los procesos de Python no heredan
eso: los SDKs leen variables de entorno, y nada cargaba el archivo. Una clave
correctamente escrita en .env simplemente no existía para el proceso, y el
síntoma —error de autenticación con el archivo bien configurado— es de los
más molestos de diagnosticar.

load_dotenv() se implementa a mano en vez de agregar python-dotenv: son veinte
líneas y evita una dependencia más en el servidor de entrenamiento.

Detalles que importan:

- No pisa variables que ya existan en el entorno. Una variable exportada en la
  shell o inyectada por el orquestador gana sobre el archivo, que es lo que se
  espera en producción.
- Ignora claves con valor vacío: una variable vacía autentica peor que una
  ausente, porque parece presente.
- Acepta la forma `export FOO=bar`, porque el mismo archivo lo consume
  `source .env` desde remote.sh.
- Devuelve nombres, nunca valores: estos archivos tienen secretos y no deben
  terminar en un log.

Además, ClienteAnthropic ahora falla con un mensaje que dice qué hacer cuando
no hay credencial, en vez de propagar el error del SDK.

10 tests nuevos (102 en total).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 23:32:42 -03:00