更新说明(CHANGELOG)
September 22, 2026 · View on GitHub
0.1.6(2026-09-22)
- 修复:dsh 0.1.7-alpha.1 下 Git 页签整页崩溃(“读取不到目录”的真正原因)。该版本把分支图标导出由
IconBranchOutline16改名为IconBranchOutlineRegular/IconBranchOutlineMedium,插件直接渲染了被删除的primitives.IconBranchOutline16,于是 React 收到 undefined 元素类型抛出 #130,整个conversation.view被错误边界替换成空白。现改为运行时按存在的导出回退解析(IconBranchOutline16 → Regular → Medium → 空组件), 新旧 dsh 均可渲染。 - 新增回归测试
test/primitives-compat.test.js:分别用 0.1.6 / 0.1.7 / 未来无该导出的三种 primitives 形状断言 图标解析,并扫描构建产物确保没有把被删除的 primitive 直接当作 JSX 类型使用。 - 说明:0.1.5 的会话
cwd修复(props.sessionId)仍然有效,本次崩溃掩盖了它。
0.1.5(2026-09-18)
- 修复:dsh 0.1.6-alpha.2 下 Git 面板读不到当前目录。该版本从会话列表 store
(
useSessions/SessionListState)移除了current字段,而插件原先靠s.current取当前会话的cwd,取值恒为空,面板因此找不到仓库。现改为优先读取conversation.view槽位提供的sessionId(s.byId[sessionId]?.cwd),并保留s.current作为旧运行时回退;Git 视图与文件视图里的同一段 选择器一起修正。 - 新增回归测试
test/client-cwd.test.js:从构建产物中提取选择器,分别在 0.1.6-alpha.2 与旧版 store 形状下断言 cwd 解析。
0.1.4(2026-09-14)
- 新增:分支 / 标签统一下拉:顶栏的分支胶囊改为一个下拉框,用
<optgroup>分组列出「本地分支 / 远程分支 / 标签」;选项值带branch:/tag:前缀(分支与标签可能同名),据此分别调用switchBranch或新增的switchTag(git switch --detach refs/tags/<name>,检出为 detached HEAD)。 tagsop 现在额外返回current(当前检出的标签,仅在 detached HEAD 时非空),胶囊据此回显当前 ref (在标签上时显示标签名,而不是HEAD (no branch))。- 自举保护:
status新增self字段(该目录是否就是插件自身的源码树)。当面板指向插件自己的仓库时, 从下拉框选标签会先弹确认(提示会替换正在运行的插件前端代码)——此前直接检出v0.1.1会让插件实时退回旧 版本,表现为分支按钮弹出旧的页内菜单;选分支不拦截,保证能一键切回。
0.1.3(2026-09-03)
- 移动端适配(Git 视图):窄屏下面板自动单列堆叠、历史区固定约 5 行(178px)、底部提交栏由「挤压状态卡」改为堆叠布局、预留底部安全区(修复根节点与提交栏安全区内边距被重复叠加的问题)。
- 原生分支选择器:统一桌面与移动端——点击分支胶囊调用
showPicker()打开原生<select>(隐藏的原生 select 覆盖层,而非叠加自绘胶囊);修复branchSelectRef声明在DiffView导致的白屏;长分支名完整显示(不再截断)。 - 交互与兼容:
patch-client.mjs作为权威构建产物;文件行显示指针光标(而非文本 I-beam);Git 视图内隐藏 dsh-pocket 的「复制文件」按钮,并阻止 dsh-pocket 文件守卫截获 Git 文件行的点击。 - 发布说明:
package.json版本提升到0.1.3,tagv0.1.3已推送,npm 已发布dsh-git-graph@0.1.3(含 provenance);GitHub 未为该 tag 创建 Release(此前仅v0.1.1、v0.1.2有 Release)。
0.1.2(2026-09-03)
- 修复:dsh
0.1.2-alpha.5会话区新增的「可调宽面板」手柄(data-width-handle)在全屏 Git 页签上显示为 竖条——在 Git 视图激活时将其隐藏([data-conversation-scroll]:has([data-git-view]) ~ [data-width-handle], 仅影响 Git 页签,聊天/轨迹视图的可调宽面板不受影响)。 - 准备收录:新增
screenshots.json(市场详情页截图声明,指向docs/screenshots/git-panel.png); 仓库添加dsh-plugintopic;cordis.patch.yml注释更新为 Git 专用。
0.1.1(2026-09-03)
- 改为 Git-only:移除「文件」浏览/编辑页签与
/fsAPI(原 CodeMirror 文件编辑器在 dsh0.1.2-alpha.5运行时上会触发 MutationObserver 死循环,先整体下线;宿主/fs代码保留,便于以后恢复)。 - 兼容性:
- 检测 alpha.5 的批处理 boot manifest(
window.__DSH_BOOT__.batches),该运行时下文件编辑器自动降级为 备选渲染(无 MutationObserver);rc.2 保留完整 CodeMirror。 - 宿主重复路由优雅跳过(桌面/其它插件已注册
/git、/fs时不再崩溃)。
- 检测 alpha.5 的批处理 boot manifest(
- npm ↔ GitHub 关联 + CI:
package.json增加repository/homepage/bugs(指向 GitHub 仓库);.github/workflows/ci.yml(push/PR 跑测试,Node 20/22)+release.yml(打v*标签自动npm publish --provenance,tag 版本须与 package.json 一致)。 - 文档:中英 README 精简为 Git-only 描述;加入 Git 面板截图
(
docs/screenshots/git-panel.png,从桌面工程 git 历史恢复);发布元数据同步。 - 测试:改为 git-only 断言(
apply()只注册/git;/fs返回no-route)。
0.1.0(2026-09-02)
- 初始发布(unscoped
dsh-git-graph):打包「Git + 文件浏览」为可安装的 dsh bundle 插件。- Git:状态 / 分支 / 差异 / 暂存 / 提交 / 推送拉取 / 提交图 / 溯源等
/gitJSON API + 浏览器 Git 页签。 - 文件浏览:
/fstree/read/write + 文件树 / 预览 / 编辑页签(后于 0.1.1 下线)。 - 加固:大文件/超长单行守卫(
tooBig)、/fs越界拦截(invalid-path)、宿主路由注册容错。
- Git:状态 / 分支 / 差异 / 暂存 / 提交 / 推送拉取 / 提交图 / 溯源等
备注
- 曾以 scoped 名
@enoughpower/dsh-git-graph发布过0.1.0/0.1.1;由于 2FA 绕过 token 无法执行 撤包(npm 限制),该包仍在 registry 上,请使用 unscoped 的dsh-git-graph。 - 发布流程:
npm version patch && git push --tags→ GitHub Actions 自动测试、发布到 npm(带 provenance)并创建对应的 GitHub Release。