Skip to content

Releases: ThinkofRain1213/dsh-project-groups

0.3.4 — 修复与 dsh-auto-expand 的样式互相干扰

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 27 Oct 19:18

修复

  • 同时安装 dsh-auto-expand 时,设置页的分组标题会贴到分隔线上。标题与其上方分隔线的间距会从 16px 变成 4px,两处都出现:卡片顶部那一段,以及每条分隔线下方。只装本插件时一切正常,所以症状只在两个插件同时启用时出现;关掉 dsh-auto-expand 立刻恢复。

    原因:两个插件的设置卡片都叫 src/client/settings-card.module.css,而 CSS Modules 的类名哈希只由这个文件名算出、不含包名——于是两边生成了完全相同的类名(实测 10 个)。两个插件的样式表会同时生效,dsh-auto-expand 的 .section > :first-child { margin-top: -12px } 因此落到了本插件的 <h3> 上。那条规则对它自己是对的(它的每组第一个元素是带内边距的行),对本插件不对(本插件的第一个元素是标题,不带内边距)。

    修法:生成本插件类名时把包名并入名字来源,两个插件从此各用各的类名。这只改变类名本身,不改变任何样式规则的内容,所以除了上面对这处间距的修复,界面没有任何其它变化。

    不受影响的部分:dsh-smooth-cursor-patched、dsh-smooth-stream-patched 等其它插件没有同名样式表,未受此问题影响。

内部

  • 新增 verify:css-isolation 并接入 pnpm check:比对同级目录所有已构建插件的类名集合,交集必须为空。此前的门禁只测本插件自己,测不出跨插件撞名。

v0.3.3

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 26 Oct 23:11

0.3.3 — 2026-10-27

修复

  • 分支出的会话现在继承父会话的项目。此前从「分叉会话」(侧栏菜单 / Ctrl+Alt+F)或「在新对话中分支」(消息下方)产生的子会话一律落到「未分组」,需要手动拖一次。现在分支完成时会自动归入父会话所在的项目,且只写这一次——之后你把它拖到别处或拖回「未分组」,系统都不会再改。

    • 父会话本来就在「未分组」时,子会话同样不归类(与官方按父会话归属取用的行为一致)。
    • 已存在的历史分支不会自动归位。
  • 规范选择对话框的两处显示错误:

    • 「甲.md」等文件名此前比对话框标题右移 40px,现已与标题左对齐(根因:列表是 <ul>,浏览器默认给了 40px 缩进)。
    • 该行字号此前比「选择底层工作区」对话框里的明显偏大,现已一致(根因:font: inherit 简写重置了字号)。

变更

  • 设置页的纵向间距统一为一种节奏。此前「行与行」与「行到组」都是 32px,而组标题到它下面的内容只有 8px——同一张卡里两种密度,组标题比行标题贴得更近。现在:
    • 相邻设置行 24px、组标题到内容 6px、卡片顶部与底部各 16px、跨分隔线 32px。
    • 三条分隔线现在是等距的:「注入内容」与「状态差异」之间那条此前与另外两条不一致。
    • 「底层工作区」的标题与说明改为与其它标题同样的 6px,原来那处是独有的 4px。

兼容性

只支持 DSH >=0.2.1-rc.2 <0.2.2。本版跟随 DSH 0.2.1-rc.3 做了 vendored 源码重同步。

v0.3.2 — 跟进 DSH 0.2.1

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 17 Oct 12:49

DSH 0.2.1 已发布,而 0.3.1 的 peer 钉死在 0.2.0-rc.2 —— 插件会在启动兼容性检查处被判定不兼容、拒绝加载,插件页显示「与 DSH 0.2.1-rc.1 不兼容」。

本版把整棵 vendored 源码与全部依赖跟进到 0.2.1 线,并追到最新的 0.2.1-rc.2。

修复

  • 插件重新可以加载:三个 @deepseek-ai/dsh-* peer 由 0.2.0-rc.2 改为 0.2.1-rc.2;补入 @deepseek-ai/dsh-api-remote-access;cordis 4.0.1 → 4.0.5(0.2.1 整套包 peer 在 ~4.0.5);zod 由 ^4.4.3 改为精确 4.4.3 —— DSH 自己的包就是不带宽度的精确值,写 ^ 会解析到 4.6.5 并让每个领域 schema 变成类型错误。

变更

  • src/vendored/ 重新同步到 0.2.1:上游从 0.2.0-rc.2 到 0.2.1-rc.1 改了 16 个文件(+617/−217),其中 7 个是本目录 patch 过的;三方合并产生 23 处冲突并逐一解决。patch 足迹为 10 个文件 / 107 个 hunk(上一版 75 条)。
  • 0.2.1-rc.1 → 0.2.1-rc.2 没有任何源码改动:ui-workspace/src 在两个 tag 之间逐字节相同(28 个文件,哈希全等),只有版本号跟着走。
  • 「新建会话」的第二个参数做成共存:上游用它传草稿内容与 Agent 预设,本插件原本用它传「新会话落到哪个项目」。现在签名是 startSession(工作区?, beforeOpen?, options?),两者由同一个回调组合。
  • 会话行「水位线」模型、新的 keyed toast 插槽架构、折叠条数上限的移除,都跟随上游改动贯穿到了每个 patch 区域。

兼容性

  • 只支持 DSH 0.2.1-rc.2。更早的宿主会被启动检查拒绝(这是 DSH 的设计,不是插件的判断)。

验证

  • pnpm check:845 条断言,0 失败
  • 用 DSH 自己的兼容规则对 0.2.1-rc.2 运行时求值:无未满足要求

v0.3.1 — 641 条审查发现的处置,以及不再替上游维护 bug

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 15 Oct 07:51

v0.3.1 — 641 条审查发现的处置,以及不再替上游维护 bug

一次质量与安全修整,没有新功能。外部工具对 0.3.0 的树跑出 641 条发现,全部核对完毕
(其中若干条经实测判定不成立,逐条记录在 DESIGN.md 第 27 章)。

使用者会感知到的修复:

  • 发送到默认工作区的入口不再误报「工作区已消失」——解析结果此前用 undefined 表示三种不同
    结局(确实没有 / 查询抛错 / 服务已销毁),调用方一律按「设置指向的工作区不存在」上报;
  • 新建项目对话框补上中文输入法守卫,组字期间按回车不再用半成品名字把项目建出来;
  • 底层工作区的措辞统一(基层工作区 → 底层工作区),缺失对话框改说「缺失:」而非「当前:」。

清单变化:新增顶层 types 字段;4 个宿主外部依赖移入 peerDependencies。

内部:pnpm check 851 条断言,另有 10 项上游原生缺陷记录在案(按「不替上游维护 bug」的原则
只记录不修);src/vendored/ 回到「上游 + 我们必需的补丁」,审查期间替上游做的 52 处修复
已移出主线(存于 backup/upstream-bugfixes-20261014-2048)。

其中一条修复本身就是错的,且从未随任何版本发布:给快捷键默认值补 web:linux 会让
register 抛错,而它在 ctx.effect 内同步执行,导致整个客户端插件加载失败、侧栏完全不可用。
上游刻意不写这个键是有原因的,详见 CHANGELOG。

v0.3.0 — 关联链接、注入预览与一致性修复

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 13 Oct 07:47

新增「关联链接」与「注入预览」,并修掉注入文案与侧栏动画上的若干不一致。

新增

  • 关联链接:给项目登记上游链接(GitHub 等),与「关联目录」并列在同一对话里增删。
    链接只作标记、不做拦截——格式不对只提示(「需以 http:// 或 https:// 开头」),
    内容不被改写、也不会因此存不进去。
  • 注入预览:设置页新增「当前注入内容预览」,直接显示这个插件此刻会往模型的
    运行时上下文里写什么
    。内容由插件真正的渲染器生成,不是另写一份样本,
    所以它永远是当前的;框内 [方括号] 表示随项目数据变化的值。
  • 分块差异:「不同状态下的分块差异」按段(归属 / 目录 / 链接 / 文档)列出各自的
    空 / 一条 / 多条形态,用来回答"我这种情况会被注入成什么样"。

修复

  • 链接为空时不再整段消失:之前「关联链接」为空会什么都不输出,而「关联目录」
    为空仍会输出一句"未设置"——同一个对话框里两个对等的字段,行为却不一致。
    现在链接与目录逐态对齐:空 / 一条 / 多条。
  • 重新归档会话恢复为"滑动",只有真正的"新建"才淡入:之前把「所属项目」编进了行的
    动画身份,于是每一次归档都表现为淡入——包括删除项目(其会话落入「未分组」)
    和拖拽换项目,而官方在这两种情况下是滑动。现在滑动是默认行为,
    「新建会话」通过一条显式信号告知界面(覆盖顶部「新会话」按钮、快捷键、
    项目行的 +、「未分组」的 +、新建项目、以及定时任务与智能体预设里的新建入口)。
  • 预览里的「目录」段不再夹带链接行:切段时错误地取到了块尾,导致目录段的每个样本
    后面都跟着一行链接。
  • 说明文案不再解释别的开关:注入块下方的说明只讲方括号约定;
    原先那句关于链接校验开关的说明已删除(那个开关自己那一行已经说了)。

变更

  • 关闭「注入项目信息」时,注入预览的差异半区整组隐藏(没有状态可对照),
    关闭提示改用虚线框("这里本该有内容,并说明为什么没有")。

内部

  • 设置卡片排版按官方插件卡的尺度重新标准化:名字 13px、提示 12px/18px、
    行名与组标题分列 500 / 600,块间距 16px(内容到内容 32px),三条零成本分隔线。
  • pnpm check 覆盖 721 条断言(12 个校验脚本 + 7 个自包含探针)。
  • vendored 上游客户端源码现有 75 条登记 patch、涉及 12 个文件。
  • verify:release 继续守住发布事实:版本号三处一致、locale 描述与功能同步、
    两版 README 结构对等、files 覆盖新增文件。

v0.2.0 — 工作文档与规范

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 13 Oct 07:56

新增「工作文档」能力,并修掉若干数据丢失问题。

新增

  • 工作文档:每个项目一份 markdown 文档,统一存放在 $DSH_HOME/project-groups/,
    随会话注入。文档记录的是项目在做什么、做到哪、下一步,因此需要一套结构。
  • 文档规范,三种来源,可在设置页选择:
    • 无——不更新格式:无既定格式则自由书写,有既定格式则在其基础上书写;
    • 默认——插件内置规范,随包分发,插件升级即自动生效;
    • 自定义——上传你自己的 md 规范,可逐个上传 / 切换 / 删除,大小不限。
  • 规范变更检测:规范的身份是内容哈希,所以覆盖同名规范、或插件升级改动内置规范,
    都会被检出。发现文档按旧规范写时,注入要求模型先问你:
    「按新规范重写 / 本次忽略 / 在规范再次变更前忽略」。选重写则按
    spec/REWRITE-FLOW.md 执行,其唯一硬约束是不得因格式迁移而丢失信息。
  • 每项目规范覆盖:开启「为每项目单独调整文档规范」后,新建与编辑项目对话框多出一行
    下拉栏(跟随全局 / 无 / 默认 / 各已上传规范),让单个项目偏离全局选择。
  • 注入开关:「注入项目信息」「注入项目文档」两个开关,关闭后规范组整体禁用。

修复

  • 新建项目时选的规范不再丢失——之前下拉栏能选、能显示,但保存时被静默丢弃
    (客户端动作只解构了 title 与 directories)。同时给两条写入路径加上同一个校验器,
    避免"同一个值能不能存取决于开的是哪个对话框"。
  • 「默认」可作为项目规范存入——之前被文件名校验拦下,选它保存会静默保留原值;
    即使写进去,解析时也没有对应分支,会退到全局选择,与对话框显示的正好相反。
  • 「无」不再触发重写询问——之前会要求模型按一个不存在的规范重构文档。
    「无」的含义是不更新格式,没有迁移目标。
  • 并发写入不再丢字段——同时切换规范模式与文件名时,实测 12/12 次丢失一个字段,现已串行化。
  • 新建项目只出现一次——之前会从列表底部滑入(记录写入与顺序写入之间的中间帧可见)。
  • 门控卡片改按颜色变暗,不再用透明度——透明度会让卡片成为独立合成层,
    点任意开关时闪一下。

变更

  • 新建项目现在会同时打开一个会话,与官方「添加工作区」流程一致。
  • 「自定义」卡片在无可用规范时显示橙色说明,且颜色随高亮变化:只有当你正在用这一格时,
    它的空才值得警告。
  • 未选中规范时的提示改为行内一行,不再弹出第二层对话框(原先那个弹窗的「取消」
    会把整个对话框一起关掉)。

内部

  • vendored 上游客户端源码现有 60 条登记 patch、涉及 11 个文件。
  • pnpm check 覆盖 652 条断言(11 个校验脚本 + 探针);
    另有 pnpm probe:doc-spec(131 条浏览器端到端断言)需要真实 DSH 与可用端口,
    故不在默认链上。
  • 新增 verify:release:守住发布事实——版本号三处一致、locale 描述与功能同步、
    两版 README 结构对等、files 覆盖新增文件。

v0.1.0 — Project Groups / 项目分组

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 30 Sep 10:17

Project Groups / 项目分组

第一个发布版本。把侧栏的「工作区」浏览区改为按项目分组 —— 项目没有目录,只是给会话贴的标签。

插件停用即完全恢复官方行为,两套体系互不影响。

安装

dsh plugin add dsh-project-groups

需要 DSH 0.2.0-rc.2。装完重启 DSH。

它做什么

  • 项目:新建 / 重命名 / 删除 / 排序,标题唯一
  • 归类:会话拖进项目,或从未分组拖回;项目行与未分组桶的 + 各自落点明确
  • 跨组拖拽:会话可在项目之间拖动,落点就是标记线所在的位置
  • 顺序模式:每个项目可独立选择「按时间」或「手动」
  • 底层工作区:探测 / 选择 / 路由;工作区丢失时报出对话框,并可重建(重建前有二级确认)
  • 中英双语:插件列表显示名为「项目分组 / Project Groups」

做法

vendor 官方 ui-workspace 源码并由本插件接管侧栏区域,分组作为前端派生叠加,因此 cwd、归档、删除等官方行为全部保持原样。

  • vendor 源:0.2.0-rc.2,41 条登记 patch / 10 个文件
  • 每处改动满足同一条不变量:不传即等官方行为
  • 全部偏离登记在 src/vendored/README.md 的 patch 表中

质量

  • pnpm check:354 断言 / 13 suites / 0 失败
  • 产物与源码严格同步,prepublishOnly 会强制校验
  • 关键行为有浏览器探针实测(含"停用插件是否真的回到官方")

已知限制

  • 工作文档功能未实现(原定义中的一半),已归类为额外功能,默认不做
  • 定时任务端到端未实测(仅静态验证兼容)

完整设计说明见 DESIGN.md(中文)。