fix: sanitize tab chars and avoid double .md extension in manual download filename

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wizardchen
2026-03-16 18:18:23 +08:00
parent 66c384823b
commit 2fd6e226a5
2 changed files with 15 additions and 2 deletions

View File

@@ -6752,12 +6752,15 @@ func ensureManualFileName(title string) string {
// back to "untitled".
func sanitizeManualDownloadFilename(title string) string {
safeName := strings.NewReplacer(
"\n", "", "\r", "", "/", "-", "\\", "-", "\"", "'",
"\n", "", "\r", "", "\t", "", "/", "-", "\\", "-", "\"", "'",
).Replace(title)
if strings.TrimSpace(safeName) == "" {
safeName = "untitled"
}
return safeName + manualFileExtension
if !strings.HasSuffix(strings.ToLower(safeName), manualFileExtension) {
safeName += manualFileExtension
}
return safeName
}
func (s *knowledgeService) triggerManualProcessing(ctx context.Context,

View File

@@ -72,6 +72,16 @@ func TestSanitizeManualDownloadFilename(t *testing.T) {
title: "知识库文章",
want: "知识库文章.md",
},
{
name: "tab character stripped",
title: "file\tname",
want: "filename.md",
},
{
name: "title already ending in .md not double-extended",
title: "guide.md",
want: "guide.md",
},
}
for _, tt := range tests {