# Comparación de transporte

- Petición exacta: 68.409 bytes, SHA-256 `81541B212FD2E311B861BC1C42567BE199C4C65FFCCC890FC2600D0DF0C86297`.
- JSON físico: `stream=false`, `model=gpt-oss:20b`, `think=low`, `format=json`, `keep_alive=-1`.
- PHP/cURL: HTTP 200, 96 bytes, `curl_errno=0`, sin cancelación, body SHA-256 `C48A0716FC6F4CE9758B10D8732BF182719C3D9F404E1B1833DC89CAF02EEA6A`.
- curl.exe: HTTP 200, 96 bytes, exit code 0, body SHA-256 `C48A0716FC6F4CE9758B10D8732BF182719C3D9F404E1B1833DC89CAF02EEA6A`.
- Los cuerpos son idénticos byte a byte: `{"model":"","created_at":"0001-01-01T00:00:00Z","message":{"role":"","content":""},"done":false}`.
- El origen no es fetch, AbortController, PHP/cURL, headers ni lectura parcial. Ollama 0.32.6 cierra normalmente la respuesta con el valor cero de `api.ChatResponse`.
- En `server/routes.go`, `writeChatResponse()` inicializa `var resp api.ChatResponse`, recorre el canal del runner y serializa `resp` al cerrarse. El objeto observado demuestra que el canal se cerró sin entregar ningún `api.ChatResponse` ni error.
- No existe una corrección demostrada dentro de LL-Dominus; no se cambió el transporte productivo ni se añadieron reintentos.
