diff --git a/web-ui/index.html b/web-ui/index.html
index fcfc914..95aa246 100644
--- a/web-ui/index.html
+++ b/web-ui/index.html
@@ -4735,7 +4735,7 @@ function renderChatMessages() {
${msg.role === 'user' ? 'You' : (msg.mode === 'agentic' ? 'CherryClaw (Agent)' : 'CherryClaw')}
- ${msg.role === 'ai' ? renderAssistantContent(msg.content) : `
${renderMarkdown(msg.display !== undefined ? msg.display : msg.content)}
`}
+ ${msg.role === 'ai' ? renderAssistantContent(msg.content) : `
${renderMarkdown(msg.display !== undefined ? msg.display : msg.content, { hideDownload: true })}
`}
${msg.role === 'ai' ? renderArtifacts(msg.artifacts) : ''}
${msg.role === 'ai' ? renderFileDownloads(msg.steps, msg.processEntries, msg.content) : ''}
${msg.role === 'ai' && msg.processEntries && msg.processEntries.length ? renderProcessPill(msg.processEntries) : ''}
@@ -8498,7 +8498,8 @@ function _normalizeFileUrl(url) {
return url;
}
-function _renderLinkButton(text, url) {
+function _renderLinkButton(text, url, opts) {
+ var hideDownload = opts && opts.hideDownload;
url = _normalizeFileUrl(url);
var fileExts = ['.pptx','.pdf','.xlsx','.xls','.docx','.doc','.zip','.csv','.mp4','.mp3'];
var isDownload = fileExts.some(function(ext) { return text.toLowerCase().endsWith(ext); })
@@ -8523,7 +8524,7 @@ function _renderLinkButton(text, url) {
+ '
'
+ '📄 ' + text + ''
+ '
'
- + '
⬇ 저장'
+ + (hideDownload ? '' : '
⬇ 저장')
+ '
'
+ ''
+ '
'
@@ -8661,7 +8662,7 @@ function toggleTxtEmbedBtn(btn) {
}
}
-function renderMarkdown(text) {
+function renderMarkdown(text, opts) {
if (!text) return '';
// Extract existing
![]()
tags before escaping so they survive escHtml()
@@ -8695,12 +8696,12 @@ function renderMarkdown(text) {
// Links: [text](url) — render download links for file types as buttons, PPTX gets preview
html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, function(_, text, url) {
- return _renderLinkButton(text, url);
+ return _renderLinkButton(text, url, opts);
});
// Bare /api/files/... URLs — auto-convert to download buttons even without markdown syntax
html = html.replace(/(\s|^)(\/api\/files\/[^\s<"]+)/g, function(_, space, url) {
- return space + _renderLinkButton(decodeURIComponent(url.split('/').pop() || 'download'), url);
+ return space + _renderLinkButton(decodeURIComponent(url.split('/').pop() || 'download'), url, opts);
});
// Bold