Skip to content

fix(chat): 修复跨平台文件链接打开 - #321

Merged
su-fen merged 5 commits into
Stack-Cairn:mainfrom
AlphaCatMeow:fix/chat-file-links
Jul 29, 2026
Merged

fix(chat): 修复跨平台文件链接打开#321
su-fen merged 5 commits into
Stack-Cairn:mainfrom
AlphaCatMeow:fix/chat-file-links

Conversation

@AlphaCatMeow

Copy link
Copy Markdown
Contributor

问题

聊天中的本地文件路径会经过通用 Markdown URL 安全策略,导致合法文件链接显示为 [blocked],桌面端和 Gateway WebUI 也缺少一致、安全的一键打开流程。

修复

  • 将可识别的聊天文件路径改写为内部受信标记,并通过显式点击处理器打开
  • 桌面 GUI 与 Gateway WebUI 提供一致的文件链接行为
  • 相对路径仅由会话历史中保存的可信工作目录解析,不信任请求携带的目录
  • 保留显式转义的 Markdown 链接为字面文本
  • 文本和脚本只进入编辑器;目录进入文件树或文件管理器
  • 系统关联打开仅允许被批准的被动预览格式
  • 可执行文件、脚本、活动内容、未知二进制和 macOS bundle 不会被执行
  • 文件系统操作带 25 秒超时和 4 路并发上限;Gateway 请求脱离串行 envelope 循环
  • 适配上游 assistant-unit transcript 重构,并保留新的 Markdown 代码块折叠策略

集成

  • 保留实现提交 a219478a578b39ef413bdd034a0ea43739f11f2e
  • 保留加固提交 c8267a11e20c09ebbed15594e7076a8c3fd2cec5
  • 通过 merge commit c9c9875130747b1f9fdd4c3612696f77d823aa24 集成 upstream/main65caf803efcd92ea1b0ba8417d3d96bef39b1539,未重写上述提交

验证

  • GUI focused Node tests: 43 passed
  • Gateway file-link tests: 5 passed
  • GUI production build: passed
  • Gateway WebUI production build: passed
  • Rust chat_file_links tests: 5 passed
  • Rust cargo check --lib: passed
  • Rust formatting check: passed
  • Focused Biome checks: passed
  • Mirror check: 116 files passed
  • git diff --check: passed
  • GUI and Gateway Markdown mirrors are byte-identical
  • Cargo.lockCargo.toml 与无关未跟踪文件均未进入 PR

AlphaCatMeow and others added 5 commits July 29, 2026 07:44
- 在 Markdown sanitize 前安全改写本地文件链接
- 统一桌面端与 Gateway Web 的点击打开链路
- 后端规范化路径并阻止脚本及可执行文件运行
- 补充解析、渲染、网关与安全策略测试
@su-fen
su-fen merged commit b6d6231 into Stack-Cairn:main Jul 29, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants