Repository navigation
Extra codex passa a exigir openai-codex 0.162.1 - #239
Conversation
O runtime 0.162.1 liga cinco flags novas por padrão. Lidas no fonte do runtime, nenhuma oferece ferramenta ao modelo nem muda o turno de uma linha, e as cinco entram na lista revisada: api_key_model_discovery só age no catálogo baixado com chave de API, e o app-server do provider usa o catálogo estático de model_catalog_json; browser_annotation_api e in_app_voice são portões dos apps de desktop, sem leitor no runtime; instant_interrupt só interrompe a amostragem quando chega entrada nova ao turno em curso, o que o provider não faz; ultrafast_mode só libera service_tier="ultrafast" pedido pela config, que o provider não define. O runtime passou a omitir o item additional_tools do input quando não há ferramenta, e o request dos modelos com use_responses_lite deixou de trazer lista de ferramentas. O teste do request deixa de exigir uma lista, e um teste novo liga view_image e confere que _tool_lists acha a ferramenta nas duas formas de request, o item additional_tools do input e a chave tools do topo. Closes #226
# Conflicts: # CHANGELOG.md
EvidênciaVersão escolhida: Os dois testes, antes e depoisMesmo ambiente (Python 3.13, Flags novas ligadas pelo runtimeAs cinco aparecem em
Onde as ferramentas foram pararNão mudaram de lugar. Nos modelos com Requests capturados pelo servidor falso do teste, um por modelo do catálogo embutido:
O teste deixa de exigir uma lista ( Mutações, com o ramo verde antes e restaurado depois:
Classificação de erros do turnoDo SDK 0.160.1 para o 0.162.1 mudaram só
Com a validação falhando, o SDK entrega a notificação como Testes executadosCada job rodado com
O ramo tem um teste a mais que a Não executados: O teste com a conta do Codex foi feito depois do commit, pela sessão principal; o resultado está abaixo. Teste com a contaFeito pela sessão principal depois do commit, com A SHA revisado: de6d1f1 |
…sconhecido Com CODEX_API_KEY no ambiente, a flag api_key_model_discovery do runtime 0.162.1 faz o `codex debug models` baixar o catálogo da API com essa chave, enquanto o app-server dos turnos a ignora e usa o auth.json. A variável sai do ambiente do `debug models`, e o catálogo passa a vir da mesma credencial dos turnos. Novo teste prende a classificação do turno que falha com código ou variante de CodexErrorInfo que o SDK não declara: ProviderError, uma única thread, sem nova tentativa nem abort.
Evidência após a revisãoA revisão por subagente novo não trouxe achado que bloqueie o PR. Trouxe quatro pontos, todos tratados no commit
Catálogo com
|
| SDK e fonte | codexErrorInfo |
Resultado | turn/start |
|---|---|---|---|
0.160.1, main |
"codigoNovo" |
ProviderAbortError: O app-server do Codex encerrou: TransportClosedError: Turn is no longer streaming |
1 |
0.160.1, main |
{"variantNova": {}} |
idem | 1 |
| 0.162.1, ramo | "codigoNovo" |
ProviderError: Turno Codex falhou: falhou no falso, aviso de erro não recuperável |
1 |
| 0.162.1, ramo | {"variantNova": {}} |
idem | 1 |
Mutações
Cópia de src e tests do commit, PYTHONDONTWRITEBYTECODE=1, -p no:cacheprovider, -o pythonpath=<cópia>/src, import conferido na cópia antes de cada rodada. Suíte: tests/test_codex.py e tests/test_codex_runtime.py, Python 3.13, openai-codex 0.162.1.
| Mutação | Resultado | Teste que reprova |
|---|---|---|
| nenhuma | 247 aprovados | |
CODEX_API_KEY de volta ao ambiente do debug models |
1 falha, 246 aprovados | test_catalogo_e_lido_sem_codex_api_key |
código ou variante desconhecidos levantam ProviderTransientError |
2 falhas, 245 aprovados | test_codigo_de_erro_desconhecido_falha_so_a_linha[codigo] e [variante]: a linha é repetida |
código ou variante desconhecidos levantam ProviderAbortError |
2 falhas, 245 aprovados | test_codigo_de_erro_desconhecido_falha_so_a_linha[codigo] e [variante] |
Suítes, ramo ao lado da main no mesmo ambiente
Python 3.13. O ambiente do codex-provider tem openai-codex 0.162.1 nos dois lados.
| Job | main (92f8086c) |
Ramo (f974cf2d) |
|---|---|---|
| codex-provider | 2 falhas (test_enabled_features_match_reviewed_list, test_request_to_model_offers_only_reviewed_tools), 1208 aprovados, 213 pulados |
1214 aprovados, 213 pulados |
| unit | 1278 aprovados, 120 pulados | 1278 aprovados, 123 pulados |
Os quatro testes a mais no ramo são test_catalogo_e_lido_sem_codex_api_key, os dois casos de test_codigo_de_erro_desconhecido_falha_so_a_linha e test_tool_lists_find_tool_offered_by_runtime. No job unit, sem o extra codex, os três de test_codex.py aparecem como pulados.
- Cobertura de ramos combinada de codex-provider e unit em 3.13: 100% (3111 linhas, 1222 ramos).
- Codex continua opcional: a instalação base não traz
filelock,openai-codexnemopenai-codex-cli-bin, e o extradevnão traz os dois últimos. - Job quality, com os extras dele:
ruff format --check src tests,ruff check src tests,ty check,vultureedeptry srcsem achado. tests/test_codex.pyetests/test_codex_runtime.pycom-X dev -W always::ResourceWarning: 247 aprovados, nenhumResourceWarning.- Não executados neste commit: os jobs em Python 3.11, lowest-direct e codex-windows, que ficam com o CI.
SHA revisado: f974cf2
O quê
Com
openai-codex0.162.1, a versão mais recente, dois testes detests/test_codex_runtime.pyfalham, e por isso o PR do dependabot para essa versão fica vermelho.test_enabled_features_match_reviewed_listacusa cinco flags que o runtime novo liga por padrão e que ninguém revisou (api_key_model_discovery,browser_annotation_api,in_app_voice,instant_interrupt,ultrafast_mode).test_request_to_model_offers_only_reviewed_toolsnão acha lista de ferramentas no request dogpt-6-astrae para ali.Este PR sobe o extra
codexparaopenai-codex==0.162.1, revisa as cinco flags no fonte do runtime, tiraCODEX_API_KEYdo ambiente em que o catálogo de modelos é lido e ajusta o teste do request ao formato novo.Como
_REVIEWED_ENABLED_FEATURES.browser_annotation_apiein_app_voicesão portões dos apps de desktop, sem leitor no runtime;instant_interruptinterrompe a amostragem só quando chega entrada nova ao turno em curso, o que o provider nunca faz, e o prazo usaturn/interrupt, que cancela o turno por outro caminho;ultrafast_modesó liberaservice_tier="ultrafast"pedido pela config, que o provider não define. As duas últimas ganham comentário no teste.api_key_model_discoveryfaz ocodex debug models, que o provider roda para gravar o catálogo demodel_catalog_json, baixar o catálogo da API com aCODEX_API_KEYdo ambiente. O app-server dos turnos ignora essa variável e usa oauth.json, e o catálogo sairia de uma credencial e os turnos, de outra._write_model_catalogpassa a rodar odebug modelssemCODEX_API_KEY. Com um provider falso local, a mesma chamada com a variável exportada fazia umGET /v1/modelsantes da mudança e não faz nenhum depois.test_catalogo_e_lido_sem_codex_api_keyconfere o ambiente do subprocesso.use_responses_lite, as ferramentas vão num itemadditional_toolsdoinput, e nogpt-5.5, na chavetools. O runtime passou a omitir o itemadditional_toolsquando não há ferramenta, e a exigência de achar uma lista deixou de servir de prova. O teste do request passa a exigir só o conjunto vazio e a ausência despawn_agent, e o novotest_tool_lists_find_tool_offered_by_runtimetira o override deview_imagee confere que_tool_listsacha a ferramenta num modelo de cada forma de request.codexErrorInfo; o turno que falha com um deles cai no caso dos demais códigos e falha só a linha, sem nova tentativa. Com o SDK 0.160.1, o mesmo turno abortava a execução inteira comProviderAbortError(TransportClosedError: Turn is no longer streaming) depois de um únicoturn/start.test_codigo_de_erro_desconhecido_falha_so_a_linhaprende o comportamento novo para um código e para uma variante desconhecidos. Os códigos já classificados não mudam.CHANGELOG.md: a entrada do extracodexpassa à 0.162.1 e registra o código desconhecido e o catálogo lido semCODEX_API_KEY.Testes
maincom o runtime 0.162.1, Python 3.13: codex-provider com 2 falhas, as da issue (1208 aprovados, 213 pulados); unit com 1278 aprovados e 120 pulados. Ramo, mesmo ambiente: codex-provider com 1214 aprovados e 213 pulados; unit com 1278 aprovados e 123 pulados, os 3 testes novos detest_codex.pypulados sem o extra. Cobertura de ramos combinada dos dois jobs em 3.13: 100%. Codex continua opcional;ruff format,ruff check,ty,vultureedeptrysem achado._tool_listslendo só o topo reprova o controle novo; o provider semfeatures.view_image=falsereprova o teste do request;CODEX_API_KEYde volta ao ambiente dodebug modelsreprovatest_catalogo_e_lido_sem_codex_api_key; código desconhecido classificado comoProviderTransientErrorou comoProviderAbortErrorreprova os dois casos detest_codigo_de_erro_desconhecido_falha_so_a_linha.-X dev -W always::ResourceWarningpassa semResourceWarning.gpt-6-luna, 2 de 2 linhas processadas, 4532 e 4525 tokens de entrada, nenhum aviso.Closes #226