Skip to content

v0.4.0 · 鲸程(预计时间重做 + 可配置)

Latest

Choose a tag to compare

@uuhihj uuhihj released this 25 Oct 11:17
· 2 commits to main since this release

🐳 鲸程 v0.4.0 · 预计时间重做 + 可配置

这次跨了两个版本(0.3.0 + 0.4.0),一共 12 项改动。如果你之前装的是 0.2.0,最直观的变化是:预计时间终于不瞎报了,面板也不再每秒闪一下。


⏱ 0.4.0 · 预计时间重做(重点)

以前的 ETA 是「按你说了多少字猜」。我拿 1481 个真实任务复盘了一遍:

你消息的字数 旧算法估的 真实中位耗时 偏差
20 字以内 2 分钟 1.1 分钟 偏慢 1.8×
20–80 字 3 分钟 0.8 分钟 偏慢 3.9×
200–500 字 8 分钟 1.3 分钟 偏慢 6.0×

现在改成按 已经跑到第几步 查真实分布(0-2 步中位 18 秒 → 25 步以上 683 秒),并且:

  • 有 TODO 就看待办:agent 列了待办时,面板显示 3/7 项,剩余时间 = 已完成项平均耗时 × 剩余项数。这是唯一能提前知道「还剩几件事」的信号。
  • 越用越准:每次任务结束把「第 N 步时还剩多久」记到本机($DSH_HOME/dsh-progress-stats.json,不联网),攒够 20 条就替掉内置值。
  • 不再假装:超过这类任务的常见耗时才报橙色「已超预估」,短任务不会拖到 4 分钟才认栽。

说实话:这是概率估计,不是精确预测。同一个任务可能 1 分钟也可能 10 分钟(实测 P90 是中位的 12.7 倍)。所以这个数字只有两种状态可信:正常递减,或明确的「已超预估」。

⚙️ 0.3.0 · 可配置 + 少打扰

  • 五个配置项:protocolHint / pollMs / doneHoldMs / doneKeepMs / maxTasks(在 profile 的 cordis.patch.yml 里覆盖)。
  • 每轮提醒可关:不想每轮吃约 150 字的上报提醒 → protocolHint: false。
  • 一键隐藏:面板右上 × 收成 12px 淡点,点它恢复(– 仍是常规收起)。
  • 跟随皮肤:颜色改读宿主 CSS 变量,浅色皮肤下不再是块黑补丁。
  • 进度条终于平滑:不再每秒重建 DOM(之前每重建一次都会打断 CSS 动画),现在只更新数字与宽度。

🐛 修掉的问题

  • 多开窗口时超过 64 个会话会误删正在跑的任务(旧逻辑删"最早插入"的,且只在任务结束时才清理)→ 改为按"最久没活动"淘汰,任务创建时也检查。
  • 进度文件被写到一半时任务条整块消失 → 2 秒内沿用上一次有效读数(文件被删仍立即消失,不会留幽灵任务)。
  • 英文任务名匹配不到中文关键词表,会显示一长串原文 → 补了英文规则,并按单词边界截断。
  • 测试里写死了作者本机路径,别人 clone 后跑不了 npm test → 改用 os.tmpdir()。

安装 / 升级

# 从 npm(推荐)
dsh plugin --profile desktop add dsh-progress-widget

# 从 GitHub(固定这一版)
dsh plugin --profile desktop add github:uuhihj/task-progress-bar#v0.4.0

--profile 换成你实际在用的那个(桌面版一般是 desktop),装完重启 dsh。

兼容性

  • DeepSeek Harness 0.2.x;0.1.5 及更早未验证(面板能显示,但自动上报提醒可能静默失效,不会崩)。
  • 纯本地运行:只读本机一个进度文件,不联网、不收集数据。
  • MIT。

完整能力清单与配置说明见 README。