fix(codex): dejar de escribir el wire_api que ya no arranca - #24
Merged
Merged
Conversation
Codex 0.154 no carga un config.toml con wire_api = "chat": imprime el error y sale antes de levantar la TUI. Esa linea la escribiamos nosotros, y a proposito - el /responses del cluster respondia en un unico evento terminal, asi que "responses" significaba la respuesta entera de golpe al final en vez de ir saliendo. El endpoint ya manda deltas, y el valor ya no existe, asi que el motivo se ha caido por los dos lados. Escribir "responses" no bastaba. El writer salia antes de tiempo en cuanto veia api.nan.builders en el fichero, de modo que a un miembro con la seccion ya escrita no le llegaba nunca: actualizaba el CLI, volvia a pasar por Setup y su Codex seguia sin abrir. Ahora, si la seccion es nuestra y dice "chat", se reescribe esa linea y solo esa - no el wire_api de otro proveedor, no su key, no el formato del fichero. De paso, model_context_window se anadia al final del fichero, y en TOML una clave suelta despues de una tabla pertenece a esa tabla: a quien tuviera entradas [projects.*] le acababa dentro del ultimo proyecto que confio, donde Codex no la lee. Va por encima de la primera cabecera de tabla. Queda pendiente en el cluster: el SSE de /responses no emite response.output_item.added ni content_part.added para el item de mensaje, asi que Codex registra "OutputTextDelta without active item", descarta los deltas y pinta la respuesta desde output_item.done. Codex funciona; el texto sigue llegando de golpe hasta que eso se arregle en el backend. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Sep 17, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Un miembro reporta que Codex se cierra nada más abrirlo:
model_providers.nanlo escribimos nosotros, y ese valor estaba puesto a propósito: el/responsesdel cluster respondía en un único evento terminal, así que"responses"significaba ver la respuesta entera de golpe al final en vez de ir saliendo. Comprobado contra el cluster antes de tocar nada: el endpoint ya manda deltas. Y Codex 0.154 ha quitado"chat"del todo. El motivo del valor viejo se ha caído por los dos lados.Qué cambia
wire_api = "responses", tanto en el config nuevo como en la sección que añade a uno existente.api.nan.buildersen el fichero, así que a un miembro con la sección ya puesta no le servía de nada actualizar el CLI: volvía a pasar por Setup y su Codex seguía sin abrir. Ahora, si la sección es nuestra y dice"chat", se reescribe esa línea y solo esa — ni elwire_apide otro proveedor, ni su key, ni el formato del fichero. Hecho a mano y no con una librería TOML porque un round trip reflowea el documento entero (comentarios, espaciado, comillas del miembro) para cambiar una palabra en una línea.model_context_windowva al root. Se añadía al final del fichero, y en TOML una clave suelta después de una tabla pertenece a esa tabla: a quien tuviera entradas[projects.*]le acababa dentro del último proyecto que confió, donde Codex no la lee. Ahora se inserta por encima de la primera cabecera de tabla. (Comprobado de paso: la advertenciaModel metadata not foundsale igualmente, se imprime antes de leer el override — el comentario que decía que esa clave la silenciaba era falso y queda corregido.)Verificación
nanconwire_api = "responses", en unCODEX_HOMEaparte: arranca y responde.~/.codex/config.tomlreal con la sección ya escrita: el diff es exactamente una línea.config_test.go— que se escribe un protocolo que Codex carga, que una sección vieja se repara sin tocar la del vecino ni la key, que un fichero ya reparado no se reescribe, y que la ventana de contexto cae en el root y no dentro de[projects.*].go build ./...,go vetygo test ./...en verde.Lo que esto no arregla
El texto sigue llegando de golpe al final. No es el CLI: el SSE de
/responsesemiteresponse.output_item.addedpara el item de razonamiento pero no para el de mensaje, nicontent_part.added, así que Codex registraERROR codex_core::util: OutputTextDelta without active item, descarta esos deltas y pinta la respuesta desdeoutput_item.done. Para recuperar el streaming hay que emitir esos dos eventos en el backend antes de los deltas. Va aparte, en el cluster.🤖 Generated with Claude Code