ajuste no contas
This commit is contained in:
39
docs/FIX_TRANSACTION_STATUS_AND_PREVALIDATED_VAS_20260901.md
Normal file
39
docs/FIX_TRANSACTION_STATUS_AND_PREVALIDATED_VAS_20260901.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Correção cirúrgica — status transacional e VAS pré-validado
|
||||
|
||||
## Escopo
|
||||
|
||||
Esta correção parte da versão estável anterior à expansão de `terminal outcomes` e altera apenas dois contratos já existentes.
|
||||
|
||||
### 1. `active_transaction` e `transaction_status` não podem divergir
|
||||
|
||||
`AgentRuntimeMixin._set_active_transaction()` agora atualiza também `state["transaction_status"]` com o mesmo `status` da transação instalada.
|
||||
|
||||
Isso evita que um status terminal da operação anterior (`COMPLETED`, por exemplo) sobreviva à criação de uma nova transação em `AWAITING_CONFIRMATION`. Sem essa invariável, o boundary do turno seguinte pode interpretar a nova confirmação como resíduo da transação encerrada e limpar seus latches antes do roteamento.
|
||||
|
||||
Não foi criada regra para a palavra `sim`, nem bypass de roteamento.
|
||||
|
||||
### 2. VAS estratégico reutiliza resolução já validada
|
||||
|
||||
`validar_vas_subject` já é o resolver autoritativo side-effect-free na fronteira transacional. Quando ele resolve um VAS e redireciona a ação para `tratar_vas_estrategico`, os `resolved_arguments` agora carregam:
|
||||
|
||||
- `subject` canônico;
|
||||
- `_vas_subject_prevalidated=true`;
|
||||
- `type` quando conhecido (`bundle`/`estrategico`).
|
||||
|
||||
Na execução da tool estratégica, `_preflight_subject()` não executa uma segunda resolução por `invoice_evidence` quando esse marcador está presente. Isso evita o caso em que `Aya Audiobooks Premium` era `ELIGIBLE` na pré-validação e depois virava `NEEDS_PARAMETER / subject_not_resolved` ao executar a tool efetiva.
|
||||
|
||||
## O que não foi alterado
|
||||
|
||||
- `agent_graph` e reset global de contexto;
|
||||
- route stickiness;
|
||||
- confirmation classifier;
|
||||
- estados terminais globais;
|
||||
- idempotência;
|
||||
- guardrails;
|
||||
- fluxo de múltiplos VAS.
|
||||
|
||||
## Testes
|
||||
|
||||
- testes direcionados novos + relacionados: 16 PASS;
|
||||
- VAS/transação/cancelamento/conversation policy: 420 PASS;
|
||||
- suíte `tests/migration`: 833 PASS / 2 FAIL históricos já existentes e não relacionados.
|
||||
Reference in New Issue
Block a user