feat: add guard in workflow engine

This commit is contained in:
Carlos Florêncio
2026-02-25 02:22:01 +00:00
parent 829236f1be
commit 047d0a604a
@@ -669,6 +669,19 @@ func (s *Service) processOnTurnCompleteViaEngine(ctx context.Context, taskID, se
return false
}
// Guard: skip engine evaluation when session has no workflow step (mirrors legacy path)
session, err := s.repo.GetTaskSession(ctx, sessionID)
if err != nil {
s.logger.Warn("failed to get session for engine on_turn_complete",
zap.String("session_id", sessionID), zap.Error(err))
s.setSessionWaitingForInput(ctx, taskID, sessionID)
return false
}
if session.WorkflowStepID == nil || *session.WorkflowStepID == "" {
s.setSessionWaitingForInput(ctx, taskID, sessionID)
return false
}
result, err := s.workflowEngine.HandleTrigger(ctx, engine.HandleInput{
TaskID: taskID,
SessionID: sessionID,
@@ -759,6 +772,17 @@ func (s *Service) processOnTurnStartViaEngine(ctx context.Context, taskID, sessi
return false
}
// Guard: skip engine evaluation when session has no workflow step (mirrors legacy path)
session, err := s.repo.GetTaskSession(ctx, sessionID)
if err != nil {
s.logger.Warn("failed to get session for engine on_turn_start",
zap.String("session_id", sessionID), zap.Error(err))
return false
}
if session.WorkflowStepID == nil || *session.WorkflowStepID == "" {
return false
}
result, err := s.workflowEngine.HandleTrigger(ctx, engine.HandleInput{
TaskID: taskID,
SessionID: sessionID,