1.2 KiB
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_workflowreutiliza oexecution_idviaaresume. - 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_idnemworkflow_execution_idde estado terminal anterior.
Alterações
contas_mcp/.../main.py: chamadas que iniciam workflow removemworkflow_execution_idresidual e deixamWorkflowRuntimegerar um ID novo.retomar_workflow: permanece o único caminho que reutiliza ID existente.agent_runtime.py:_set_active_transactionsó reutilizatransaction_idde transação realmente ativa e removeworkflow_execution_idresidual 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.