Git Tree for DeepSeek Harness
用于DeepSeek Harness的本机Git历史资源管理器。麻省理工学院的许可。没有Python,额外的服务器,iframe或独立端口。
特性
- 交互式SVG分支图和提交细节,具有父/子导航和文件差异。
- 中文/英文用户界面遵循线束语言;浅色/深色呈现遵循主题。
- 对话选项卡旁边的聊天,轨迹和上下文,自动遵循该对话的工作区和存储库。手动存储库路径仍然可用。
- 键入过滤器,搜索,时间/行更改/文件计数排序在两个方向;非时间排序忽略了图边。
- 将任何提交的版本导出为文件快照或独立的Git存储库(可选地在新分支上)。
- 默认为只读。显式警告确认启用本地标签和一键回滚所有未更改的应用程序创建的标签。标签必须手动推送。
- 插件拥有的观察者、订阅和RPC处理程序在卸载时被删除。视图永远不会改变Harness URL、全局文档标题或样式表。
兼容性
第一个版本的目标是DeepSeek Harness 0.2.2-alpha.2 原生客户端/连接api和Node.js 24.9 +. 线束api是预稳定的;假定以前发布的组件版本不兼容。需要最新的系统Git。包的 engines.dsh 强制支持的范围。
安装
安装到你实际使用的配置文件中:
dsh plugin --profile web add dsh-plugin-git-tree-viz
对于本地包,构建并打包,然后安装生成的tarball:
npm ci --ignore-scripts --legacy-peer-deps
npm run check
npm pack --ignore-scripts
dsh plugin --profile web add /absolute/path/dsh-plugin-git-tree-viz-0.1.2.tgz
打开对话并选择 Git历史 以及聊天、轨迹和上下文。它的存储库自动跟踪会话的工作空间,包括Git子目录中的工作空间。更改会话或工作空间将重置图和写访问。如果需要,手动输入另一个存储库路径。视图将图形交互保存在自己的ShadowRoot中,并使用现有的认证连接载体进行所有Git操作。
该包包括其构建的 lib/ 工件;安装发布或Git签出不需要安装/准备脚本。开发依赖关系不是运行时依赖关系。
安全性和语义
只有经过身份验证的所有者Peer才能调用插件通道。源代码写入需要在UI警告之后发出特定于存储库和对等体的功能。在存储库更改、重新挂载和主机生成更改时,视图返回到只读状态。只读源文件仍然可以导出到其他目录。
标签和应用程序所有权引用是自动创建的。 撤销应用程序标签 只删除该应用程序在当前存储库中创建的未更改的标签,包括早期的插件会话。手动标签和随后移动的标签被保留。所有权存在于 refs/git-tree-viz/tags/*,它被排除在可见的历史之外。这些都是本地操作;远程标签需要手动推送。
导出需要在源存储库之外有一个不存在的或空的目标,并且有一个现有的父目录。输出构建在同级暂存目录中,只有在成功时才移动到相应位置。快照读取提交的对象字节,包括 export-ignore 文件,并排除脏/未跟踪的文件。Git副本不会通过硬链接或替代品借用对象,也不会执行签出钩子。子模块为空;LFS指针文件保留,不需要下载对象。拒绝外部快照符号链接;Windows可以将内部链接表示为目标文本。
被接受的突变在宿主解体前就稳定下来了;普通读取是可以取消的。中断或失败的导出仅删除其自己的暂存目录,而不覆盖非空目标。
发展
npm ci --ignore-scripts --legacy-peer-deps
npm run check
测试使用临时的真实Git存储库和DOM环境;不需要模型API密钥。 src/engine.ts 拥有Node操作; src/index.ts 经过认证的Cordis通道; src/client/ 原生导航/生命周期,以及 src/ui/ 派生的维护接口 git-tree-viz. 构建将该接口编译为一个作用域函数;它不会在运行时计算源字符串。
中的部署设置 cordis.patch.yml: gitTimeoutMs (120000), maxOutputBytes (134217728)和 maxPatchCharacters (200000)。无效设置在激活时失败。
已知的限制
- 仅支持本地存储库操作;没有GitHub API或自动推送。
- 在布局前读取整个历史元数据;只绘制附近的图行。
- 不会显示源工作树的更改,也不会执行子模块/LFS下载。
- 对于每个受支持的API版本,必须检查本地客户端兼容性。