Repository navigation
Releases: tu1918/dsh-git-plugin
Release list
v1.0.1
仓库正规化:许可证、元数据、截图,以及一条会静默漏掉 harness 下一个预发布版的 peer 范围。
插件行为没有任何变化。 这一版改的全是「装之前能读到什么」和「装的时候能不能解析对」。
本次改动
- 新增
LICENSE——package.json从第一次提交起就写着license: MIT,但仓库里一直没有许可证正文,GitHub 因此报licenseInfo: null。现在 MIT 正文在仓库根,npm 打包会自动带上(附件因此从 5 个文件变成 6 个)。 package.json补上repository/homepage/bugs/author—— 这四个此前一个都没有。其中repository最要紧:它让这个包认领这个仓库,而不只是恰好住在里面。- peer 范围补上显式
||分支 ——^0.2.0-rc.2→^0.2.0-rc.2 || >=0.2.1-0 <0.3.0(dsh-llm与dsh-credentials)。node-semver 只允许预发布版满足「有比较符落在同一个major.minor.patch元组上、且那个比较符自己带预发布标签」的范围,所以^0.2.0-rc.2收得下0.2.0-rc.3,却会静默排除0.2.1-alpha.1。理由写在 README 里那两个范围的旁边——没有理由的范围,正是那种会被后人「顺手简化」回去的东西。 - 新增
screenshots.json+ 截图 —— 面板在真实dsh web里的样子:Git 标签页、分支栏、暂存 / 更改 / 未跟踪三区叠着提交框,下面是带泳道的最近提交。这也是它第一次在 jsdom 之外被看到。 - README —— 截图放在开头;
Install改成以预构建的 release 附件为主,link:那条退为「改插件时用」。
安装
dsh plugin --profile web add https://github.com/tu1918/dsh-git-plugin/releases/latest/download/dsh-git-panel.tgz
# 然后重启 `dsh web` —— bundle 只在启动时组合附件名刻意不带版本号,所以上面这条链接跨版本一直有效:latest/download/ 只在请求时解析 tag,文件名是照字面取的,带版本的资产名会在发版次日 404。
为什么是 1.0.1 而不是把 v1.0.0 的标签挪过来
被打包进附件的 package.json 变了(peer 范围 + 元数据),所以挂在 v1.0.0 上的那个附件已经不再描述这个提交构建出来的东西。标签一旦公开就不该再移动,所以往上加了一版,v1.0.0 原样保留。
校验
npm run check 全绿:tsc --noEmit + 630 项测试 + build。附件本身也从一个隔离的 $DSH_HOME 用上面那条 latest/download 链接真装了一遍(装得上、config 树里出现 - id: ui-git-panel、dsh web 起来后插件自己的路由回自己的信封)。
v1.0.0
DSH Web GUI 右侧栏 git 面板的 v1.0.0:M5b 之后的一批收尾——F-1 缺陷、依赖升到 DSH 0.2.0-rc.2、两处观感修正,以及 v1.0 发布本身。已交付范围见 README 的「What works today」。
本次改动
- git 操作端到端有界(F-1) —— 此前点取回(fetch)等操作可能一直转圈。现在宿主侧的 deadline 由 SIGTERM 升级到 SIGKILL,并以进程 结束 为准,而不是等
close事件:父进程退出后仍占着管道的 helper 不再拖住结果。请求在宿主与浏览器各带一条时限,超时后的写操作会明说 结果未知(git 可能还在跑)并回读仓库,不再谎报成功或失败。 - 依赖升到 DSH 0.2.0-rc.2 —— 随发行版发布的类型与生产实际运行的那份 DSH 对齐;
legacy-peer-deps的绕行随 0.1.5-rc.1 一起消失。 - 取回字形重画 —— 「拉取」旁那枚由虚线箭头改成 云 + ↓,靠形状而不是线型与「拉取」区分;该字形自己的默认尺寸 13 → 15px。
- 禁用的主按钮文字保持可读。
- v1.0 发布收尾 —— 版本号
0.1.0→1.0.0,README 与已交付范围对齐,安装路径在隔离的$DSH_HOME里核对过。
附件
dsh-git-panel-1.0.0.tgz(120.5 kB)—— 本次发布的安装包,lib/index.js 与 lib/client.js 已构建好,装它不需要 devDependencies,也不需要现场构建。
安装
需要 DSH >= 0.2.0-rc.2 与 git >= 2.20。装完都必须重启 dsh web —— bundle 只在启动时组合。面板随后通过右侧栏的 + 出现,名字是「Git changes」。
A. 一条命令,用本次发布的预构建包(推荐)
dsh plugin --profile web add https://github.com/tu1918/dsh-git-plugin/releases/download/v1.0.0/dsh-git-panel-1.0.0.tgz(这个链接是钉住 tag 的写法,不会随下次发版失效。想要 latest 形式的链接,得让附件名不带版本号——带版本的资产名配上 latest/download/ 会在下次发版当天静默 404。)
B. 从源码目录(开发/改代码时)
git clone https://github.com/tu1918/dsh-git-plugin.git
cd dsh-git-plugin && npm install # prepare 会跑 build,产出 gitignore 的 lib/
dsh plugin --profile web add link:"$PWD"lib/ 是派生产物、不入库,所以这条路必须先构建;一次都没构建过的检出会在 dsh web 启动时报 missing bundle,而不是静默少一块。
校验
npm run check 全绿:tsc --noEmit + 630 项测试 + build。
附件本身也按它自己的路径验过一遍:在隔离的 $DSH_HOME 里 dsh plugin add <本附件> → profile 依赖写成 file:…/dsh-git-panel-1.0.0.tgz 并装好(只拉 vscode-diff,peer 依赖由 harness 提供)→ dsh --profile web --dump-config 出现 - id: ui-git-panel 一层 → dsh web --port 3099 起来后 GET /git-panel/status?session=none 回插件自己的信封 no-session,即 host 半确实从装好的包里挂载成功;包内 lib/*.js 与本地构建逐字节一致。附件直链的匿名请求也确认过:200,120517 字节。