From be416b7766eb028a504c488ed0062ba78e8b02a4 Mon Sep 17 00:00:00 2001 From: OpenClaw Bot Date: Sat, 21 Mar 2026 14:27:52 +0100 Subject: [PATCH] fix(diarization-ui): download markdown with sanitized document title filename --- app.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index d608512..aca29fb 100644 --- a/app.py +++ b/app.py @@ -308,7 +308,16 @@ def download_md(doc_id: int): d = c.execute("SELECT title,content_md FROM documents WHERE id=?", (doc_id,)).fetchone() if not d: raise HTTPException(404, "not found") - return PlainTextResponse(d["content_md"], headers={"Content-Disposition": f"attachment; filename=document_{doc_id}.md"}) + + base = (d["title"] or f"document_{doc_id}").strip() + safe = "".join(ch if ch.isalnum() or ch in ("-", "_", " ") else "_" for ch in base).strip() + safe = safe.replace(" ", "_") or f"document_{doc_id}" + filename = f"{safe}.md" + + return PlainTextResponse( + d["content_md"], + headers={"Content-Disposition": f"attachment; filename={filename}"}, + ) @app.post("/document/{doc_id}/rename", response_class=HTMLResponse)