Skip to content

Releases

v0.7.1 — @whybebabo/dsh-file-review-tab

Choose a tag to compare

@whybebabo whybebabo released this 10 Oct 02:21

发布 @whybebabo/dsh-file-review-tab@0.7.1 — 撤销/重做与跨通道排序的正确性修复。

安装

dsh plugin --profile web add @whybebabo/dsh-file-review-tab

刚发布的版本首次安装可能被 pnpm 的 minimumReleaseAge(默认 24 小时)挡下,用精确版本可绕过:@whybebabo/dsh-file-review-tab@0.7.1。

修复内容

对审查 Tab 做了一轮复查,发现「同一轮内被多次改动的文件无法可靠回滚」,以及改动列表里出现若干虚假条目。每项修复都配了在修复前代码上会失败的回归套件。

多次结算的撤销/重做(静默损坏 + 重做失败)

  • diffsFromBeforeAfter 用一个共享下标裁剪 hunk 的尾部上下文,两侧长度不等的 hunk 会违反 oldLines - newLines == net delta —— 撤销写入了损坏内容却报告成功。现在每一侧按自己的长度裁剪。
  • 不同结算的 hunk 锚定在不同文本上。它们现在带 mutation 坐标戳,transformFile 应用同一结算的 hunk 时从后往前,遍历结算时撤销反向、重做正向。此前重做会在完全可逆的文件上误报冲突。

跨通道排序(run_code 与模型直编)

  • 两个通道(对话快照、Host 录制器)是异步合并的,数组顺序只是合并产物。结算现在带事件 seq 并按它交错;transformFile 对乱序到达的载荷做防御性重排。此前「run_code 插入 + 同文件结尾的模型直编」会同时破坏撤销与重做。
  • 删除是事件而非长期标记:deletedSeq 让后续的跨通道写入能证明它重建了该路径,因此被重建的文件不再被误标「已删除」(那会隐藏它的 diff 与撤销/重做控件)。顺序无法证明时保留删除,而不是猜测。

录制突变重新拉取

  • rootsKey 只看 call-id,长时间运行的 run_code 永不重取,只显示第一批。roots 现在报告有多少嵌套派发已结算,该计数驱动重取。节流从一个固定锚点(上次拉取,或武装时刻)起算,快速结算的 root 既不会推迟也不会饿死自己的拉取。

删除路径提取

  • 分词丢弃了引号边界,accept() 按逗号切分每个 token,把 rm 'a,b.txt' 报成两个路径。现在只有未加引号的逗号才是 PowerShell 列表分隔符。
  • del /q file.txt 与 shred -n 3 file.txt 不再把开关或选项值泄漏为删除路径;按命令的开关集合让 rd /tmp 仍是路径,并处理 --、内联 -Path:x 与紧贴的 /a:h。

归档深链

  • 深链解析只搜索当前挂载的行,折叠归档中的目标永远找不到,待处理的滚动会被清除且不重试。planDeepLink 现在对所有可渲染轮次解析,并报告需要展开的归档页数。

验证

  • pnpm typecheck 干净;pnpm build 逐字节可重现
  • pnpm test 14/14 套件通过(9 → 14,新增 undo-redo、interleaved-mutations、mutation-order、deep-link、deleted-paths)
  • 新增回归套件在修复前代码上确实失败(deleted-paths 实测 10 条 FAIL),证明测试非空转
  • test 现在通过 pretest 先重建,src/ 改动不会再对着过期 lib/ 通过
  • 发布 tarball SHA-256 与本地构建一致:6827412F…C6D
  • 版本号未编入产物:lib/client.js 与 0.7.0 的哈希完全相同

v0.7.0 — @whybebabo/dsh-file-review-tab

Choose a tag to compare

@whybebabo whybebabo released this 09 Oct 04:11

发布 @whybebabo/dsh-file-review-tab@0.7.0 — 本 fork 的 DSH 0.2.0 版本。

安装

dsh plugin --profile web add @whybebabo/dsh-file-review-tab

为什么是 scoped 包名

npm 上的裸名 dsh-file-review-tab 由上游作者持有(维护者 phynez_1103,最高 0.5.0,面向 DSH 0.1.5),本仓库无权发布到该名下,因此改以 @whybebabo/dsh-file-review-tab 发布。装裸名拿到的是上游 0.5.0,不是本版本。

相对上游 main(1de22fc)的差异

项 上游 0.5.0 本版本 0.7.0
目标 DSH 0.1.5 0.2.0-rc.2
Typert 编解码 旧 schema: 形状 严格 TypertCodec.create()
turnTail 槽位 链式(首声明者胜) 加法列表(id + order)
尾部卡片 自定义 原生 ui-deliverables 同款 + 撤销/审查按钮
侧边栏表头 自定义 原生 38px 对照条 + 分栏/换行/刷新
自动归档 无 最近 5 轮内联,更早分页(每页 10 轮)
删除文件可见 无 解析 rm 族命令
Code Mode (PTC) 无 run_code 子调用入所属轮次

验证

  • typert.host.js 的 package、bundle 注册 id、cordis 行 name 三者均为 @whybebabo/dsh-file-review-tab
  • pnpm test 9 个套件全过;pnpm build 逐字节可重现
  • 发布 tarball SHA-256 与本地构建一致:911C545D…3990D5F