Files
agent_contas/docs/FIX_WORKFLOW_EXECUTION_ID_TRANSACTION_SCOPE_20260901.md
2026-09-01 11:24:03 -03:00

1.2 KiB

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.