# Workflow execution ID por transação ## Contrato `workflow_execution_id` pertence à execução de workflow da transação ativa, não à sessão. - Nova transação que inicia workflow: nova execução (`WorkflowRuntime.arun(..., execution_id=None)` gera UUID novo). - Mesmo workflow pausado: `retomar_workflow` reutiliza o `execution_id` via `aresume`. - Transação encerrada: o ID permanece apenas como histórico/evidência e não pode iniciar outra execução. - Uma nova transação não herda `transaction_id` nem `workflow_execution_id` de estado terminal anterior. ## Alterações - `contas_mcp/.../main.py`: chamadas que iniciam workflow removem `workflow_execution_id` residual e deixam `WorkflowRuntime` gerar um ID novo. - `retomar_workflow`: permanece o único caminho que reutiliza ID existente. - `agent_runtime.py`: `_set_active_transaction` só reutiliza `transaction_id` de transação realmente ativa e remove `workflow_execution_id` residual ao abrir uma nova transação. ## Testes - 4 testes específicos do contrato: PASS. - 95 testes de workflows/transações/cancelamento relacionados: PASS. - Suite `tests/migration`: 837 PASS / 2 FAIL históricos não relacionados.