task lifecycle + heartbeat resilience: preserve archived done tasks and reset heartbeat session on pairing-loop errors

This commit is contained in:
DBT
2026-03-02 10:31:31 +00:00
parent eb4f1dc82a
commit d2f680debb
3 changed files with 46 additions and 0 deletions

View File

@@ -1199,6 +1199,20 @@ func (al *AgentLoop) processSystemMessage(ctx context.Context, msg bus.InboundMe
)
continue
}
if strings.ToLower(strings.TrimSpace(msg.Metadata["trigger"])) == "heartbeat" {
al.sessions.ResetSession(sessionKey)
messages = al.contextBuilder.BuildMessages(
[]providers.Message{},
"",
msg.Content,
nil,
originChannel,
originChatID,
responseLang,
)
logger.WarnCF("agent", "Heartbeat session reset after repeated provider pairing error", map[string]interface{}{"session_key": sessionKey})
continue
}
}
logger.ErrorCF("agent", "LLM call failed in system message",
map[string]interface{}{