ajuste no contas
This commit is contained in:
22
docs/FIX_WORKFLOW_EXECUTION_ID_TRANSACTION_SCOPE_20260901.md
Normal file
22
docs/FIX_WORKFLOW_EXECUTION_ID_TRANSACTION_SCOPE_20260901.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user