Skip to content

Releases

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:56

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 07:31

设置面的这一版:插件设置搬到「插件」页 ▸ @linxueyuan/dsh-git 详情页的配置区,那一页设置重写成宿主风格并补齐全部配置项,界面文案开始跟随宿主语言。

dsh plugin --profile <profile> add @linxueyuan/dsh-git

npm:https://www.npmjs.com/package/@linxueyuan/dsh-git · 安装后重启 DSH 并硬刷新页面(host 半是 Node 模块,不随页面刷新重新加载)。


变更

  • 插件设置换了入口:从「设置 ▸ 内置插件」的页签搬到「插件」页 ▸ @linxueyuan/dsh-git 详情页的配置区。
    原来的两个席位都不再使用 —— plugins.item(渲染在「插件」页的官方组里,而那是官方设置页的席位)
    与 settings.plugins.tab(「内置插件」清单分区的一个页签)。现在是官方为「bundle 自己的配置」留的
    keyed 席位 plugins.bundle.config,key 取 bundle 的包名 @linxueyuan/dsh-git
    (不是配置命名空间 dsh-git:宿主按包名派发,写错会让整段配置区静默消失)。
    卡片内容与数据面一条未动:宿主 Config(autoSec)、GitHub Desktop 那几页偏好、令牌与仓库清单都在。
    scripts/verify-plugin.mjs 新增一条反向判据钉住「席位 key === package.json 的 name」。
  • 详情页里的设置项打平成一个列表(改前抄的是设置弹窗那套横向页签)。
    六个页面(账号 / Git / 外观 / 通知 / 提示与确认 / 无障碍)现在各是一个带标题的小节,
    同时可见、一列到底;不再需要先点页签才能看到内容,也不再有多余的一层页签控件。
    末尾那块「插件配置(宿主设置文档)」保持不变。
  • 详情页那一页设置重写成宿主风格,不再复刻 GitHub Desktop 的偏好页。
    分组(按旧页签顺序):通用(界面缩放)、账号、Git、外观、通知、
    提示与确认、Diff 与无障碍,末尾是插件配置(宿主设置文档) 里的 Pulls 自动刷新周期。
    控件用宿主自己的 Switch 与令牌,与 DSH 设置界面的观感一致。
    GitHub Desktop 那几页偏好(账号 / Git / 外观 / 通知 / 提示与确认 / 无障碍)没有删 ——
    它们仍在右侧栏齿轮打开的偏好弹窗里。
  • 设置页补齐了全部配置项(改前的第一版宿主风格页面只放了其中一部分):
    账号(登录态 / 退出登录 / 登录 GitHub.com 的设备码流程 / 企业实例地址 / 个人访问令牌)、
    Git 身份(姓名 / 邮箱 / 默认分支,写全局 git config)、
    外观(主题 / 标签宽度 / 日期·时间·数字格式 / 优先绝对日期)、
    通知(多一个「发送测试通知」与「本次会话已发出 N 条」)。
  • 账号那一组与偏好弹窗共用同一个状态机(令牌表单默认收起、点了才展开;非 github.com
    的实例不再静默登 github.com,而是展开令牌表单并说明原因)。已登录时只留一行身份
    (头像 + @login)与「退出登录」按钮,登录面整块收起 —— 改前同屏既有「已登录 @x」
    又摆着「请输入访问令牌」。头像地址与镜像 Accounts 页同源,两处必然一致。
  • 设置页占满可用宽度。改前它被一条同名的无关规则(.gw-settings{width:min(560px,…)},
    属于 Desktop 风格的设置弹窗)卡在 560px —— 设置页自己的类名前缀现在统一成
    gw-plugin-settings*,不再与那一套重叠。
  • 设置项的样式对齐 dsh-context:标签在左、控件在右,枚举是胶囊下拉(36px 高 / 18px 圆角),
    输入是全宽文本框,分组标题 + 一条细分隔线,提示行 12px 次要色;动作类配置项(退出登录 /
    登录 / 发送测试通知)是同一套胶囊按钮。
  • 界面文案开始跟随宿主语言(中文 / English)。这一版覆盖的是上面那一页设置;
    其余界面文案仍是既有的中文/英文原样,后续增量迁移。插件在「插件」列表里的标题与说明
    也随语言切换(locale/zh.json / locale/en.json)。

兼容

  • 端到端部署测试已在 @deepseek-ai/dsh@0.2.0-rc.2 上通过(run)。

Full Changelog:v1.1.1...v1.2.0

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 03:23

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 02:30

Full Changelog: v1.0.0...v1.1.0

1.0.0 · 官方右侧栏里的本地 Git + GitHub 远端页签

Choose a tag to compare

@LinXueyuanStdio LinXueyuanStdio released this 07 Oct 04:35

在 DSH 官方右侧栏里装一个本地 Git 工作台,连同四个 GitHub 远端页签 —— 一个插件、六个页签:Changes(按文件暂存、逐行 diff、提交)、History,以及 Code / Issues / Pull requests / Actions(远端由 host 半代理)。提交信息由 DSH 里已经配好的模型生成,不依赖 Copilot,也不需要额外的 API key。

dsh plugin --profile <profile> add @linxueyuan/dsh-git

npm:https://www.npmjs.com/package/@linxueyuan/dsh-git · 安装后重启 DSH 并硬刷新页面(host 半是 Node 模块,不随页面刷新重新加载)。


首个版本。

新增

  • 官方右侧栏页签 —— 在 DSH 右侧栏注册一个 tab(实例 id dsh-git,显示名 git),
    与官方其它页签同一套交互;侧栏「插件」页与「设置 ▸ 内置插件」两处都有设置卡片。
  • 多仓库下拉 —— 你显式添加过的本地仓库;登录 GitHub 后还能列出你有权限的远端仓库。
  • Changes —— 文件级暂存 / 取消暂存、逐行 diff、提交(摘要 + 描述),
    提交信息可由 DSH 模型列表里已配好的模型生成。
  • History —— 提交列表;选中提交显示说明、短 sha 与 +/− 统计,
    以及该提交改动的文件与逐行 diff。
  • Code —— 远端文件树;没有远端时退化为本地工作区视图,不是空页。
  • Issues —— 列表 + 详情,可新建、评论、关闭 / 重开。
  • Pull requests —— 列表 + 详情,可新建 PR。
  • Actions —— workflow runs 列表,可重跑或取消。
  • 同步与分支 —— fetch / pull / push;强推只允许 --force-with-lease
    (全库没有裸 --force)。分支可切换、新建、重命名;可检出某个提交(分离头)或 cherry-pick。
  • 克隆 —— 走 host 半,且关掉 protocol.ext.*。
  • GitHub 登录 —— Personal Access Token(细粒度需 Contents R / Issues RW /
    Pull requests RW / Actions RW;经典 Token 用 repo);
    在 profile 里填了 OAuth App 的 clientId 时额外提供设备码登录。

安全

  • /dsh-git/* 路由只接受 loopback 请求,局域网 / 远程访问一律 403。
  • git 只能操作你显式添加过的仓库清单里的路径,其他路径返回 workspace-unknown。
  • 令牌只存在 host 半:挂在宿主凭据接缝 ctx.credentials 的 GITHUB_TOKEN 上,
    界面只显示尾 4 位;git 通过环境变量拿凭据,不进 argv、不进 .git/config。
    令牌不在插件的通用状态域里(整域读 / 写 / 导出 / 备份都不会带上它)。
  • GITHUB_TOKEN=… dsh 是只读覆盖(写它会被拒),轮换令牌不需要改代码。
  • 静止保护是明文 + 文件权限(文件 0600 / 目录 0700),没有加密 ——
    与宿主 credentials-local 自己的做法一致,详见 README 的「GitHub 登录与令牌」一节。

已知边界

  • 远端页签以 GitHub 为准;本地未推送的提交在 Code 树里看不到对应文件。
  • 暂存是文件级的(M1),没有 hunk 级暂存。

构建说明。 本版本的 npm 产物是发布时本机构建的,对应提交 e2e0286(该提交的 package.json 与 npm 上那份逐字段一致);当时工作区含尚未提交的 src/ 改动,因此无法从任一提交逐字节重建这份 tarball。之后的版本走 .github/workflows/release.yml,从 tag 的干净检出构建,可复现。