Chuyển đến nội dung chính

dsh-chat-ux

Đã xác minh

@alm-allen/dsh-chat-ux · v0.2.6 · MIT · Giao diện web

Chat-area UX plugin for the DeepSeek Harness (dsh) web GUI.

Cài đặt

dsh plugin add @alm-allen/dsh-chat-ux

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Thẻ

Tác giả

Readme

dsh-chat-ux

English | 中文

面向 DeepSeek Harness(dsh) Web GUI 聊天区的 UX 优化插件。

装好之后,聊天区里模型吐字不再是整段闪现、思考行不会一直杵在那儿、过程组该开的时候开该收的时候收——而读者自己滚到哪里,都不会被动画抢回去。

它做了什么

  • token 淡入:模型的输出按 token 淡入,思考与正文都覆盖。开销只落在正在流式的那条消息里,不叠到别的插件的样式重算与 DOM 操作上;主线程已经忙不过来时它自己让路。
  • 思考行自动开合:思考时自动展开,这段思考结束就收起;读者自己动过手,就不再打扰。
  • 过程组自动开合:工具调用开始自动展开,这一段跑完再收起,展开收起都走一道卷帘门过渡。展开体里有好几张卡片的行(run_code 的代码加输出)也是一整扇门,不会一张一张地开合。两者共用一个「自动开合」开关,可在插件页关掉。
  • 增强跟随:思考结束、工具调用出现这些"内容要跳"的时刻,把贴底的读者交还给 dsh 的跟随;读者自己滚动离开底部时一概不插手。
  • 组体跟随:标准/简洁档里被限高的过程组,思考与工具输出照样不掉队,组体只滚纵向。
  • 文件变更行:run_code 里 write / edit 的改动,diff 行直接显示在聊天区;直接调用时,路径、输入大小与 +n -m 在参数还在流进来时就显示,两个数随内容往上长,变了的那一位会像读数那样在原地弹到新值(这一段标着 beta、默认关,可在插件页打开)。
  • 光标动效:输入框的光标会滑过去,打字、方向键、点击都算,80 ms。主输入框、提问卡片的作答框、排队消息的编辑框(给跑着的子智能体追加消息时用的那个)都算。
  • 聊天气泡动效(默认开):提交那一下输入框原样浮起来一份——工具栏收进两边的角里淡掉,外形收成气泡,字跟着形状重新排版——一路飞进消息列,整段固定 300 ms。位移与形状同一条曲线、都在合成器上(同一个 FLIGHT_MS 的时间轴),dsh 发消息那一刻主线程再忙,两条也一起走,右边缘不越界。
  • 工作步骤默认标准:网页端把 dsh 的「工作步骤展示」默认补成「标准」(dsh 自己的网页端默认是「详细」)。你之后在 设置 → 通用 → 工作步骤展示 里改过,就以你的选择为准,插件不再动它。
  • 缓存命中率:输入框下方那枚胶囊里的读数恒取一位小数,颜色按 90%~99% 六档走——90 以下是红、99 以上是深绿,中间由红经橙黄、黄、黄绿走到浅绿;「缓存命中」这几个字与读数同色(详细档里那个 token 总量与中间那个分隔点不算在内)。读数一变,变了的那几位会原地弹到新数字:从下方一点的位置落回来,旧的朝反方向淡出(500 ms,低位起手更晚);插件页上可以关掉。
  • 上下文占用改成饼:原来那圈环换成一枚 16px 的实心饼,颜色按 20%~40% 六档走(20 以下绿、40 以上红),读数与饼同色。已占用那一角沿一条折点在圆心的折线切开,并沿角平分线端出去一点,缺口与那一块之间那道缝处处 1.2px 宽;插件页上可以整枚关掉,回到 dsh 原来的环。旁边那串百分比也会跟着弹。
  • 输入框毛玻璃(默认开):输入框自带一条蓝调渐变(两端各一片极淡的色、中间完全透明,端色淡到只是隐约一层),底只让出一成不到,再叠一层轻模糊与顶边亮边、内侧微光、底部内阴影三笔质感;右下角那枚发送按钮(跑起来时是停止)与左下角那枚加号也跟着换成同一套材质:发送是玻璃上的一片蓝,加号是同一块玻璃上的一片灰。下面那排统计与上面那几张卡不受影响,上方那条从画布淡出的过渡带照旧。可在插件页关掉。
  • 轨迹视图收掉输入区:切到「轨迹」那一页时,dsh 会把输入框当浮层压在记录表上;插件把整条输入区收掉,记录表铺到底,切回「对话」原样回来。

安装

在 dsh Web GUI 里打开插件页 →添加插件→ 输入包名:

@alm-allen/dsh-chat-ux

或者直接走命令行(等价于在 profile 目录里执行 pnpm):

dsh plugin --profile web add @alm-allen/dsh-chat-ux

装完重启 dsh、刷新页面即可。卸载用插件页的开关,或:

dsh plugin --profile web remove @alm-allen/dsh-chat-ux

从 GitHub 仓库安装

也可以直接从仓库装 —— 仓库里带了构建产物,所以不需要任何构建授权:

dsh plugin --profile web add github:Alm-Allen/dsh-chat-ux

想锁死到某个 commit(后续推送就改不了你装到的东西):

dsh plugin --profile web add github:Alm-Allen/dsh-chat-ux#<commit-sha>

配置

插件装好后,在插件页的这一行上可以直接改:

项 默认 说明
增强跟随 开 关掉后,思考结束与工具调用出现时不再把读者交还给 dsh 的跟随。
组体跟随 随「增强跟随」 不是单独一项:卡片上只有「增强跟随」那个开关,它同时控制限高过程组里思考与工具输出是否掉队。
自动开合 开 关掉后,思考行与过程组都不再自己展开收起,读者自己点开收起照常。
token 淡入 开 关掉后,新出现的文字直接显示。与别的插件一起用时明显卡顿,可以关这一项。
光标动效 无论何时 三档:关/移动时/无论何时。
聊天气泡动效 开 关掉后,提交时不再有那段起飞,消息照常出现。
命中率转轮 开 关掉后,命中率变化时直接换成新数字。
上下文占用饼 开 关掉后回到 dsh 原来的环。
输入框毛玻璃 开 关掉后,输入区、发送按钮与那枚加号都回到 dsh 原来的样子,背后不再模糊。
实时改动行数 关(beta) 打开后,直接调用 write / edit 时行尾那两个 +n -m 在内容流进来时就长,变了的那一位会像读数那样在原地弹。

「工作步骤展示」不在插件卡片上:它在 dsh 自己的 设置 → 通用 里,插件只在你没选过时把它补成「标准」。

兼容性

  • 在 dsh 0.2.1-alpha.2(网页端)与 0.2.1-alpha.1(桌面端)上开发与验证;0.2.0-rc.2 及更早的老版本照旧可用(2026-10 那两轮适配曾让两处在老版本上静默失效,已按形态判据修掉)。
  • 老版本上只有一处差别对读者可见:「缓存命中」那一枚在 0.2.0-rc.2 及更早不生效——那时 dsh 只有一枚 stats 胶囊,插件按 usage 注册上去会变成第二枚,所以那边干脆不画,读者看到的是 dsh 自己那一枚。
  • Node ^22.19.0 || >=24.0.0。

关于本仓库

这里是插件的源码与发行说明。构建脚本、内部设计文档不在本仓库内,因此 clone 之后不能直接 npm run build;需要用插件请直接安装 npm 上的包。

每个版本的更新记录在 CHANGELOG.md —— 打标签发布时,Release 报告就是从它里面抽的。

许可

MIT