From 1a8934f88bf4440543df12c4e572369ecb6b3e66 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Tue, 25 Aug 2026 15:04:39 +0300 Subject: [PATCH] Keep creative requests out of travel continuation --- cmd/core-runtime/main.go | 50 ++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/cmd/core-runtime/main.go b/cmd/core-runtime/main.go index d7ea517..3c918d0 100644 --- a/cmd/core-runtime/main.go +++ b/cmd/core-runtime/main.go @@ -510,6 +510,7 @@ func main() { return } var effectiveTaskMessage = interactiondomain.StripAssistantVocative(utterance.Content) + creativeUserRequest := interactiondomain.IsCreativeRequest(utterance.Content) continuationMessage := "" travelContinuation := false var previousTask *interaction.HumanUtterance @@ -531,13 +532,15 @@ func main() { log.Printf("interaction principal history loaded: %d utterances", len(recentUserHistory)) } conversationHistory = append(conversationHistory, recentUserHistory...) - if continuation := interactiondomain.ContinueLocalSearch(effectiveTaskMessage, conversationHistory); continuation != "" { - continuationMessage = continuation - effectiveTaskMessage = continuation - } else if continuation := interactiondomain.ContinueTravelOrigin(effectiveTaskMessage, conversationHistory); continuation != "" { - continuationMessage = continuation - travelContinuation = true - effectiveTaskMessage = continuation + if !creativeUserRequest { + if continuation := interactiondomain.ContinueLocalSearch(effectiveTaskMessage, conversationHistory); continuation != "" { + continuationMessage = continuation + effectiveTaskMessage = continuation + } else if continuation := interactiondomain.ContinueTravelOrigin(effectiveTaskMessage, conversationHistory); continuation != "" { + continuationMessage = continuation + travelContinuation = true + effectiveTaskMessage = continuation + } } if request.ConversationID != "" && interactiondomain.IsRetryRequest(utterance.Content) { if len(conversationHistory) > 0 { @@ -567,12 +570,12 @@ func main() { semantic = continuedSemantic } } - if travelContinuation && interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory) == "" { + if !creativeUserRequest && travelContinuation && interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory) == "" { semantic.CapabilityHints = append(semantic.CapabilityHints, string(capability.CapabilityKindWebResearch)) semantic.NeedsCognition = false semantic.Interpretation.NeedsCognition = false } - creativeRequest := interactiondomain.IsCreativeRequest(utterance.Content) || interactiondomain.IsCreativeRequest(effectiveTaskMessage) + creativeRequest := creativeUserRequest || interactiondomain.IsCreativeRequest(effectiveTaskMessage) creativeReply := interactiondomain.CreativeDeterministicReply(utterance.Content) if creativeReply == "" { creativeReply = interactiondomain.CreativeDeterministicReply(effectiveTaskMessage) @@ -652,13 +655,15 @@ func main() { cognitiveAvailable = false } } - if travelReply := interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory); travelReply != "" { - semantic.Interpretation.Clarification = interaction.ClarificationRequired - semantic.Interpretation.Applicability = interaction.SemanticCandidateClarify - semantic.Reply = travelReply - deterministicReply = travelReply - semantic.NeedsCognition = false - semantic.Interpretation.NeedsCognition = false + if !creativeRequest { + if travelReply := interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory); travelReply != "" { + semantic.Interpretation.Clarification = interaction.ClarificationRequired + semantic.Interpretation.Applicability = interaction.SemanticCandidateClarify + semantic.Reply = travelReply + deterministicReply = travelReply + semantic.NeedsCognition = false + semantic.Interpretation.NeedsCognition = false + } } if err := interactionRepository.AppendUtterance(r.Context(), conversation, utterance, intent, relations); err != nil { http.Error(w, "save chat message", http.StatusInternalServerError) @@ -794,9 +799,11 @@ func main() { planningReply = helpPath.Reply needsCognition = false } - if travelReply := interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory); travelReply != "" { - planningReply = travelReply - needsCognition = false + if !creativeRequest { + if travelReply := interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory); travelReply != "" { + planningReply = travelReply + needsCognition = false + } } if planningReply == "" && needsCognition && cognitiveAttempted && !cognitiveAvailable { planningReply = humanCognitiveDegradedReply(utterance.Content) @@ -907,7 +914,10 @@ func main() { } if identityReply == "" && creativeReply == "" && creativeFallbackReply == "" { stableAct := interactiondomain.ClassifySpeechAct(utterance.Content, utterance.CorrectsUtteranceID) - travelClarification := interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory) + travelClarification := "" + if !creativeRequest { + travelClarification = interactiondomain.TravelSearchClarification(effectiveTaskMessage, conversationHistory) + } if stableReply, stable := interactiondomain.StableConversationalReply(utterance.Content, stableAct); stable && travelClarification == "" { planningReply = stableReply needsCognition = false