diff --git a/cmd/core-runtime/main.go b/cmd/core-runtime/main.go index 89ffc89..f44ee37 100644 --- a/cmd/core-runtime/main.go +++ b/cmd/core-runtime/main.go @@ -1783,7 +1783,7 @@ func renderResearchReply(query string, result epistemics.ResearchResult, researc return "Проверяемых данных пока не найдено. Могу повторить поиск или уточнить, что именно проверить.", false } if isInternetStatusQuery(query) { - return "Интернет работает: Домовой получил ответ от внешних источников.\n\n" + strings.Join(lines, "\n\n"), true + return "Интернет работает: Домовой получил ответ от внешнего источника.", true } if nearestFlightQuery(query) && !containsFlightTimeEvidence(strings.Join(lines, " ")) { return "Нашёл расписание по маршруту, но точное время ближайшего вылета в доступных фрагментах не указано. Откройте источник и выберите ближайший рейс:\n\n" + strings.Join(lines, "\n\n"), true diff --git a/cmd/core-runtime/main_test.go b/cmd/core-runtime/main_test.go index 3034495..f993504 100644 --- a/cmd/core-runtime/main_test.go +++ b/cmd/core-runtime/main_test.go @@ -126,6 +126,18 @@ func TestInternetStatusQueryRecognizesConnectionChecks(t *testing.T) { } } +func TestInternetStatusReplyDoesNotLeakIncidentalSearchResults(t *testing.T) { + result := epistemics.ResearchResult{Findings: []epistemics.ResearchFinding{{ + State: epistemics.FindingSupported, + Source: epistemics.Source{Locator: "https://example.test", Title: "Incidental page"}, + Excerpt: epistemics.SourceExcerpt{Text: "A response was received."}, + }}} + reply, backed := renderResearchReply("проверь, работает ли интернет", result, nil) + if !backed || reply != "Интернет работает: Домовой получил ответ от внешнего источника." { + t.Fatalf("unexpected internet status reply: %q", reply) + } +} + func TestCognitiveChannelQuestionUsesHumanSafeHealthReply(t *testing.T) { reply := humanCognitiveChannelReply(interaction.InformationRequestCognitiveChannelStatus, interaction.SpeechActQuestion, capability.Health{State: capability.HealthAvailable, CapabilityID: "provider-secret-model"}, nil) if !strings.Contains(reply, "доступен") || strings.Contains(reply, "provider-secret-model") {