diff --git a/mateclaw-server/src/main/java/vip/mate/channel/web/ChatController.java b/mateclaw-server/src/main/java/vip/mate/channel/web/ChatController.java
index 06f384aca..2e8a67641 100644
--- a/mateclaw-server/src/main/java/vip/mate/channel/web/ChatController.java
+++ b/mateclaw-server/src/main/java/vip/mate/channel/web/ChatController.java
@@ -1731,6 +1731,11 @@ private boolean isClientDisconnect(Throwable e) {
|| lower.contains("client abort") || lower.contains("closed");
}
+ /** Markdown link pointing at a generated-file download URL. Used by the
+ * StreamAccumulator to surface generated artifacts in the run-overview rail. */
+ private static final java.util.regex.Pattern GENERATED_FILE_LINK_PATTERN =
+ java.util.regex.Pattern.compile("\\[([^\\]]+)\\]\\(([^)]*?/api/v1/files/generated/[a-zA-Z0-9-]+)\\)");
+
/**
* 流式累积器 — 收集 StreamDelta 事件,持久化到 DB。
*
@@ -1753,6 +1758,8 @@ private final class StreamAccumulator {
private final List