Repository navigation
Releases: zengweicheng666/dsh-svn-tools
Releases · zengweicheng666/dsh-svn-tools
Release list
v0.13.4
README 重写为中英双语(默认中文,右上角互为切换入口),并补上缺失的 LICENSE。本版无功能代码改动。
文档
- 结构重排:简介与特性 → 安装(插件市场 / 裸仓库 / 版本 pin / 本地源码)→ 快速上手 → 侧边栏面板(载体 · 变更 · 提交 · 历史 · 在线/离线/只读)→ Agent 工具 33 个 → 设置 10 项 → 版本兼容 → 更新与安装形态 → 安全模型 → 自检与开发 → FAQ → 许可;顶部加徽章与目录。
- 原先夹在正文里的超长段落改为表格与列表(三种历史回退操作、离线数据来源、载体矩阵、设置表都可按行查阅)。
- 新增 README.en.md(英文版,与中文版一一对应);两版语言切换入口:
[简体中文](README.md) · [English](README.en.md)。 - 新增 LICENSE(MIT)—— package.json 与 README 此前已声明/链接但文件缺失。
可验证性
- 新增
scripts/verify-readme.mjs(npm run verify:readme):校验两版内部锚点全部命中标题、无重复标题(GitHub 会加后缀破坏锚点)、互为切换入口、LICENSE 存在、文档点名的svn_*工具集合与代码注册集合完全一致、10 项设置在中英两版都有说明、两版都带当前版本号、package.json的files含 README.en.md 与 LICENSE。 - 6 个自检脚本在本机 0.1.6 上全部通过。
元数据
package.json:version: 0.13.4;files补README.en.md/LICENSE/scripts/verify-readme.mjs;scripts增加verify:readme。
安装:dsh plugin --profile web add github:zengweicheng666/dsh-svn-tools
v0.13.3
代码审计修复与加固。共修复宿主 7 项、浏览器半侧 5 项缺陷,移除安装期脚本,并新增一套回归断言。
宿主
- 仓库 URL 不再被当成文件路径:
svn_list/svn_cat/svn_export/svn_copy/svn_move/svn_mkdir传svn://host/repo时曾被解析成C:\…\svn:\host\repo(实测 E020024)。 svnPath与「命令超时倍数」现在覆盖全部命令(原先svn_cat、历史比对取内容、update-start三处硬编码)。- 信任栅栏的 Origin 比较改为
.host(与上游api-request-trust一致,含端口)。 - 只读模式把
export计入写方法(它会--force写盘)。 - 位置参数防选项注入:
propget/propset/propdel的 name、checkout/switch的 url、merge/mergeinfo的 source、changelist的 name、relocate的 from/to 拒绝以-开头(--config-dir=…可让 svn 执行攻击者的 diff-cmd/editor-cmd)。 repoRelTarget增加文件系统包含性校验并拒绝./..段(原先可被…/../../x逃逸工作副本)。- 提交前的
svn delete失败不再被吞掉,改为新增failed列表随结果上报。
浏览器半侧
- 「不是工作副本」判定收紧:E155004(已锁定)与 E155036(旧格式)不再被误判为检出场景(原先会让面板切到检出表单并禁用分支/清理/更新)。
- 传输错误重试只用于读方法:
commit/update等写操作不再被重放。 - 客户端写方法表补齐
export/propset/propdel,只读模式下按钮正确置灰。 - 载体在挂载前先读宿主解析出的设置(新增
/svn/api/settings,适配 0.2.x 无 settingsScope):配off/better-sidebar不会再先闪出一个自带侧边栏分页。 - 异步加载(log/diff/blame/locks)不再抢走用户已切换的页面;框选增加
ev.buttons复位与pointerleave(消除幽灵框选)。
工程
- 移除
preinstall脚本:自 0.13.0 起它只打印提示,却触发 pnpm 依赖脚本授权并在allowBuilds里按版本累积条目;市场目录的runs code at install time (preinstall)红线随之消失。 - 新增
scripts/verify-hardening.mjs,并在既有脚本中补充针对以上修复的断言。 - 声明
engines.dsh: >=0.1.0-rc.6(与 peer 一致)。
验证
- 本机 0.1.6 与真实 0.2.0-rc.2 运行时上自检通过;并分别用门禁(
dsh-app-boot)与市场(dshmarket/lib/discovery-compatibility)自身的判定函数实测本 manifest:0.1.0-rc.6及以上全部 compatible,0.1.0-rc.5拦截。
安装(裸仓库 spec,可正常收到后续更新提示):dsh plugin --profile web add github:zengweicheng666/dsh-svn-tools
v0.13.2
peer 兼容范围改为「rc.6 及以上全部支持」。
修复
peerDependencies.@deepseek-ai/dsh-tools由^0.1.0-rc.6 || ^0.2.0-rc.1改为>=0.1.0-rc.6:自带侧边栏自0.1.0-rc.6起就有,因此不再按大版本切段(旧写法会把 0.3.x / 1.x 误判成不兼容而被门禁拦下)。- 判定依据取自门禁自身实现(
dsh-app-boot的evaluatePluginCompatibility):只检查@deepseek-ai/dsh与@deepseek-ai/dsh-*两类 peer,且用semver.satisfies(runtime, range, { includePrerelease: true }),预发布参与比较。按该调用实测:0.1.0-rc.5拦截;0.1.0-rc.6/0.1.6-alpha.1/0.2.0-rc.2/0.2.1-alpha.1/0.3.0-rc.1/1.0.0放行。 - 取舍:范围不设上限,未来若 DSH 出现破坏性变更,门禁不会提前拦截;由代码自身的兼容策略兜底(设置层自动在
installSection(0.1.x)与Config派生表单(0.2.x)之间选择;侧边栏载体按sidebarRightTabs/betterSidebar的可用性注册)。
验证
- 四个自检脚本在 0.1.6 与真实 0.2.0-rc.2 运行时上均通过;peer 判定用门禁同款 semver 调用逐版本实测。
安装:dsh plugin --profile web add github:zengweicheng666/dsh-svn-tools#v0.13.2
v0.13.1
兼容 DSH 0.2.x。
修复
- 安装被 0.2.x 兼容门禁拒绝:
peerDependencies.@deepseek-ai/dsh-tools由^0.1.0-rc.6放宽为^0.1.0-rc.6 || ^0.2.0-rc.1(同时支持 0.1.x 与 0.2.x;0.3.x 仍会被门禁拦住并提醒)。此前在 dsh 0.2.0-rc.2 上安装会被判定不兼容并回滚 profile。 - 0.2.x 的设置入口:新增导出
Config(schemastery)。0.2.x 已移除旧版 settings.yaml 命名空间机制,改为按 profile 条目 id 从插件自己的Config派生配置表单;apply()现在以解析后的条目 config 为基准,仅在服务提供installSection(0.1.x)时注册命名空间。 - 0.1.x 行为不变:设置仍在
/settings.yaml的dsh-svn-tools:段,卡片仍带「检测」「恢复默认」等交互。 - 客户端无需改动:
slots/sidebarRightTabs/sidebar.right.pane.tab/ 向导入口在 0.2.0-rc.2 中名称未变;设置卡片在 0.2.x 自然降级,面板改由/svn/api/root提供解析后的配置。
验证
- 四个自检脚本在 0.1.6 与真实 0.2.0-rc.2 运行时(含全部 peer 依赖 + 真实 SVN 工作副本)均通过;
Config({})在两个运行时解析结果一致且拒绝非法值。
安装:dsh plugin --profile web add github:zengweicheng666/dsh-svn-tools#v0.13.1
v0.13.0
侧边栏载体可选 + 设置集中配置。
新增
- 侧边栏面板可在「DSH 自带右侧栏(0.1.5+)」与 dsh-better-sidebar 之间切换(设置 → 插件 → 插件配置 → SVN 工具):
auto(默认):有自带侧边栏就用它,否则回退 dsh-better-sidebarnative/better-sidebar/off(只用 33 个 svn_* agent 工具)- 所选载体不可用时自动回退到另一个并在卡片里说明;切换即时生效
- 新设置命名空间
dsh-svn-tools(落/settings.yaml):sidebarCarrier、svnPath(带「检测」)、commandTimeoutScale、historyPageSize、historyCacheEnabled、historyCacheMaxEntries、autoAddUnversioned、autoDeleteMissing、showUnversionedDefault、defaultView - 宿主侧接入:svn/svnversion 路径解析、命令超时倍数、历史缓存开关与上限、提交前自动 add/delete 开关(关闭时把跳过的文件回报面板)、
/svn/api/root暴露解析值与用户覆盖、新增只读/svn/api/check-svn
变更
- 侧边栏载体与设置服务改为可选依赖(ctx.inject):缺任一服务不再让客户端 bundle 卡住
- preinstall 从「缺少 dsh-better-sidebar 即中止安装」改为只提示不拦截
- 声明 repository/homepage/bugs:dsh-update-checker 依赖已安装 manifest 的 repository 字段 + GitHub Release 才能识别本插件
验证
- 四套校验全绿:verify-offline-modes / verify-offline-host / verify-settings / verify-settings-host
安装
dsh plugin --profile web add github:zengweicheng666/dsh-svn-tools#v0.13.0