# 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.
