Skip to content

T-302 - Publicar na trilha o resultado e a variante das etapas de simulação e sugestão - #424

Merged
pedro-fs-garcia merged 1 commit into
developfrom
feature/T-302-publicar-resultado-e-variante-das-etapas
Nov 13, 2026
Merged

pedro-fs-garcia merged 1 commit into
developfrom
feature/T-302-publicar-resultado-e-variante-das-etapas

Conversation

@pedro-fs-garcia

Copy link
Copy Markdown
Collaborator

O que muda

Os nós do codegen que publicam no-concluido no fluxo de simulação e sugestão passam a informar sobre qual resultado agiram e qual variante da etapa executaram, nos campos que a T-300 acrescentou ao contrato.

  • NoConcluido ganha resultado_id, e ConclusaoDaTrilha ganha modo_geracao, motivo_sugestao, desfecho_busca e candidatas_simuladas, com os vocabulários do schema.
  • Decisão e sugestão publicam o resultado que já usam na chave do evento, e a sugestão publica também o motivo.
  • A linha que encerra a busca da meta publica a vencedora, o desfecho e a quantidade de candidatas. Quando a busca termina sem solução, a linha não traz resultado_id.
  • A geração publica gerado, ou correcao com o resultado que falhou no worker e um resumo próprio. A derivação publica derivado com o resultado de sucesso da versão de origem, que buscar_codigo_simulado passa a devolver.

Decisões

  • evento_id não muda em nenhum nó, para que a reentrega de um evento publicado antes desta mudança continue deduplicada.
  • Campo ausente fica fora do payload. A serialização omite só o que não foi atribuído, então resultado_id é atribuído depois de montar o evento e só quando existe: um null explícito seria recusado pelo contrato.
  • A quantidade de candidatas é calculada uma vez e vai igual para a trilha e para busca_meta_candidatos.
  • buscar_codigo_simulado desempata pelo resultado mais recente do código, o mesmo que a api liga à simulação.

Observabilidade

  • Nenhuma métrica, label ou log novo. busca_meta_candidatos continua recebendo o mesmo valor.

Fora do escopo

  • dispatch_execution, extração, reextração, validação e explicação. desfecho_explicacao é da T-316.
  • A gravação dos campos novos em trilhas_auditoria depende da T-301 implantada na api.

Verificação

  • make pre-commit no codegen: ruff e mypy sem erros, 1640 testes passaram e 70 foram pulados (as integrações com serviços reais).
  • Com RUN_RABBITMQ_INTEGRATION=1 e RUN_POSTGRES_INTEGRATION=1, test_rabbitmq_integracao.py, test_busca_meta_integracao.py e test_derivacao_postgres.py passaram com broker e Postgres reais.
  • Os testes cobrem:
    • decisão e sugestão de uma regra inviável apontando o mesmo resultado, com a sugestão trazendo proposta ou limite;
    • o encerramento da busca com vencedora e nos três desfechos sem solução, com a contagem igual à observada em busca_meta_candidatos;
    • a geração comum com gerado, a correção com o resultado erro_codigo e a derivação com o resultado e o prompt_id da origem;
    • a reentrega republicando a mesma linha, com o mesmo evento_id, na sugestão, na correção, na derivação e no encerramento da busca;
    • os exemplos no-concluido-geracao-derivada e no-concluido-encerramento-busca publicados e validados contra o schema oficial, também no broker real.
  • Não verificado:
    • test_limpeza_postgres.py, que não rodou localmente porque espera o Postgres do compose na porta padrão;
    • a conferência ponta a ponta dos três jobs (sugestão, busca da meta e correção) em trilhas_auditoria, que depende da T-301 implantada.

Closes #376

- decisão, sugestão, encerramento da busca e geração apontam o resultado sobre o qual agiram; o evento_id não muda, para a reentrega continuar deduplicada
- a conclusão diz o modo da geração, o motivo da sugestão e o desfecho e as candidatas da busca, com a mesma contagem que vai à métrica
- campo ausente fica fora do payload: um null explícito seria recusado pelo contrato
- a origem da derivação desempata pelo resultado mais recente do código, como a api liga a simulação

Review: auto
@pedro-fs-garcia
pedro-fs-garcia merged commit fc0ef5b into develop Nov 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant