Skip to content

[Bug] 显式目录链接丢失目标,且无法进入目录打开流程 #2113

Closed

Description

@xuesecanmeng

What happened? / 问题描述

聊天中显式指向已有本地目录的 Markdown 引用链接,可能失去可点击的链接目标;即使链接目标被保留,当前打开链路也仍按普通文件处理,缺少目录打开流程。

这容易让用户误以为目录不存在或链接写错。普通 TXT、HTML 文件链接与目录链接的表现不一致。

Steps to reproduce / 复现步骤

  1. 在 Windows 上启动 PI-Desktop,打开一个本地工作区,例如 C:\link-demo。

  2. 在工作区中准备以下真实存在的文件和目录:

    link-demo/
      examples/
        readme.txt
        demo.html
      输出目录/
        child.txt
    
  3. 让助手在回复中给出以下 Markdown 链接,或使用已经包含这些链接的会话。绝对路径需替换为实际工作区路径:

    [普通 TXT](examples/readme.txt)
    [HTML 页面](examples/demo.html)
    [相对目录](examples/)
    [Windows 绝对目录](<C:\link-demo\输出目录>)
  4. 比较文件链接和目录链接的点击行为;可在开发者工具中检查目录链接是否保留 href。

Expected behavior / 预期行为

  • 显式目录链接不应仅因没有文件扩展名而丢失链接目标。
  • 对于实际存在且当前权限允许访问的目录,点击后应按目录处理,能够打开目录或浏览其内容,而不是套用普通文件的解析与预览流程。
  • 本问题不要求新增默认应用菜单、调整默认打开设置、放宽目录访问范围,或自动识别正文中的普通目录名。

Actual behavior / 实际行为

已在 Windows 实例中确认

  • Windows 绝对目录路径对应的链接文字仍然显示,但渲染后的 <a> 没有 href,无法正常点击打开。
  • 同一会话中的 TXT、HTML 文件链接正常保留 href;相对目录链接 examples/ 也保留了 href。
  • 上述目标均为真实存在的文件或目录,不是失效路径。

实际渲染中,绝对目录链接的相关 DOM 如下(省略无关属性):

<a target="_blank" rel="noopener noreferrer">目录:Windows 绝对路径</a>

左键点击“相对目录”链接,被识别为文件,并报错无法打开;同时点击“Windows 绝对目录”没有反应。
Image

“相对目录”链接元素正常,“Windows 绝对目录”引用元素缺少 href 属性
Image

examples目录存在
Image
Image

HTML链接能够正常访问
Image

App version / 应用版本

main分支,提交:0de385f064e58cf9c2605e45bfc07953b529749d,本地开发构建。

Operating system / 操作系统

Windows

Extra environment / 其他环境信息

  • 基准分支:上游 main。
  • 提交:0de385f064e58cf9c2605e45bfc07953b529749d。
  • 使用独立数据目录和合成示例文件,无需调用模型即可检查渲染后的链接。
  • Windows 绝对目录链接丢失 href 已在真实 Electron 实例中确认;相对目录的后续打开限制来自源码核对,尚未记录其实际点击结果。
  • 未在 macOS、Linux 实测。

Logs / 日志

无

Screenshots / 截图

见实际行为

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions