2.0 KiB
Correções após regressão de 31/08/2026
Esta rodada corrige quatro comportamentos observados no relatório de regressão sem reintroduzir o runtime conversacional legado.
1. Cancelamento múltiplo após confirmação
O snapshot transacional do framework já preservava corretamente os argumentos confirmados. O defeito estava no preflight de execução do MCP do Contas, que tentava resolver novamente o subject de apresentação (por exemplo, Tamboro Mensal, Paramount+) mesmo quando items[] já continha múltiplas entidades canônicas pré-validadas. Agora items[] é a fonte de verdade nessa condição e não há segunda resolução textual.
2. Contestação com valor incompatível
Uma divergência de valor comprovada pelo CVAL passa a ser recuperável: o item permanece preservado, apenas valor volta para coleta e a resposta informa o valor autoritativo encontrado na fatura. O contrato de auditoria mantém reason=CVAL e acrescenta recoverable_reason=amount_not_supported_by_invoice.
O runtime genérico ganhou suporte opcional a parameter_message emitido por um pre-validator de domínio. O framework apenas apresenta essa mensagem enquanto permanece em COLLECTING_PARAMETERS; ele não interpreta a regra de negócio.
3. Encerramento explícito
Expressões inequívocas como entendi, obrigado, era só isso encerram a sessão como resolvido, desde que não exista transação ou workflow ativo. Isso evita que uma despedida caia em fallback/guardrail sem consumir confirmações pendentes.
4. Continuação plural após explicação de fatura
Frases como as duas mesmo, pode seguir imediatamente após contas_invoice_explanation permanecem no contexto de explicação e não são confundidas com finalização genérica.
Regressão
- Testes novos e direcionados: 58/58 no Contas e 30/30 no runtime transacional do framework.
tests/migration: 818 PASS / 2 FAIL.- Os 2 FAIL restantes são preexistentes nesta base: caso histórico de
validar_contestacaocom TIM Fashion/R$50 e fraseologia determino_desconto.