Repository navigation
🐳 鲸程 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。