fdtree:DeepSeek Harness 工作区文件树与实时 Diff 插件

前言

DeepSeek Harness (DSH) 采用插件化架构,旨在通过模块化组件解决特定场景下的开发痛点。在开发过程中,频繁切换窗口查看文件内容或对比代码差异通常会影响效率。fdtree 旨在解决这一问题。它将文件目录树和实时 Diff 视图嵌入到 DSH 的界面中,提供始终可见且非浮动的文件浏览体验。

核心功能

1. 四列布局与多标签

界面采用四列形态(原生侧边栏 | 对话区 | 文件内容 | 文件树),始终占列,非浮动。内容列默认收起,仅显示文件树。支持多标签打开,文件内容与 Diff 整合为单一视图,无需频繁切换上下文。

2. 实时红绿 Diff 展示

Diff 视图显示删除行(红色)、新增行(绿色)、行号及统计(+N -N)。支持 22 种语言的语法高亮(包括 JS/TS、Python、JSON、Markdown 等)。

3. 智能模式切换

插件根据工作区环境自动切换模式:
* Git 模式:自动检测工作区是否位于 git 仓库内(含父目录)。启用后与 HEAD 对比,实时显示改动、未跟踪及删除状态。git commit 后差异自动归零。
* 基线模式:非仓库目录自动使用基线模式,与打开时的快照对比。支持「📌 设基线」功能。

4. 辅助功能

  • 终端集成:右键目录树节点可弹出菜单,在宿主系统打开终端并自动定位。支持一键 cd 到选中目录(支持 Windows PowerShell/cmd、macOS Terminal.app、Linux 桌面终端)。
  • 性能优化:大文件优化,通过 FsVersion 变更检测避免重复读盘。

安装与启用

在目标机器的 DSH web profile 中安装:

# 方式一:通过 Git 仓库地址安装
dsh plugin --profile web add "https://github.com/musclePatrickStar/fdtree.git"

# 方式二:通过 SSH 安装(注意必须使用 git+ssh:// 完整格式)
dsh plugin --profile web add "git+ssh://git@github.com/musclePatrickStar/fdtree.git"

# 方式三:通过本地路径安装
dsh plugin --profile web add "file:/path/to/fdtree"

更新插件:

# 拉取最新提交并重新解析安装(git 依赖按提交哈希锁定,必须 update 才会升级)
dsh plugin --profile web update fdtree

卸载插件:

dsh plugin --profile web remove fdtree

安全与限制

  • 无外部网络请求:客户端只通过同源 fetch('/fdtree/rpc') 与本机 DSH web 服务器通信,不连接任何外部域名;无遥测、无上报。
  • 只读工作区:插件只读取当前会话工作区内的文件(带路径越界检查),git 命令仅在本地运行并受 DSH 沙箱策略约束,从不执行 fetch/pull/push。
  • 会话隔离:未绑定会话前,所有 RPC 一律拒绝(NO_SESSION),不会暴露任何路径或文件内容。
  • 终端功能:仅在用户显式右键点击时触发,目标目录被限制在工作区内。
  • 数据本地化:所有内容都在你自己的浏览器中渲染展示,不会发送到任何服务器。
  • 信任模型:安装即信任,等同于执行插件作者代码。

总结

fdtree 提供了一个轻量级的文件浏览与 Diff 工具,通过真嵌入布局和智能模式切换,优化了 DSH 中的开发体验。对于需要频繁查看文件结构和代码变更的开发者而言,该插件能有效减少界面切换成本。

  • GitHub 仓库:https://github.com/musclePatrickStar/fdtree
  • 插件目录:https://www.skillhub.cn/plugins/musclePatrickStar/fdtree
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜