前言¶
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