YUXI-Dev / dsh-motion-plugin

목록에 있음

Complete UI motion patch for DeepSeek‑Harness 为 DSH 的web UI的每个交互增加动效的补丁

main도구 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:YUXI-Dev/dsh-motion-plugin

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 0fdba85동기화 2026. 8. 18.

dsh-motion-complete Deepseekharness动画补全计划

为 DSH 的web UI的每个交互增加动效,即装即用、卸载即还原


这是什么(?)

此项目为DeepSeek Harness(deepseek-ai/deepseek-harness)的 Web 界面做了一批 UI 动效(消息入场、菜单/面板出入场、设置面板开合、模型菜单翻页与推理等级滑块、侧边栏悬浮与拖拽、工作区行动画与 View Transition、标签滑动指示条、chevron 旋转等)。这些改动此前只存在于个别安装中,重装 DSH 即丢失。

(作者因为发现DSH的web界面几乎每个按钮都没有交互动画,让人非常不爽,于是用DSH做了这个项目)(确信)

本项目把它们打包为可安装、可卸载、可校验的补丁:

安装

前置条件

  • DSH 版本为 0.1.0-rc.60.1.0-rc.7(执行时自动校验并按版本选用补丁集)
  • Node.js ≥ 18
  • 有权限写 DSH 安装目录(全局 npm 安装场景建议使用管理员/提权终端)

步骤

# 1. 把本仓库克隆/拷贝到任意目录(无需放进 node_modules)
cd 你的dsh-motion-complete的安装路径

# 2. 执行安装(自动探测 DSH 安装位置;也可用 --target 显式指定)
node bin/apply.mjs

# 显式指定安装根(Windows 全局安装典型路径):
node bin/apply.mjs --target "C:\Users\<用户>\AppData\Roaming\npm\node_modules\@deepseek-ai\dsh"

# 3. 刷新 Web 页面(强刷 Ctrl+Shift+R 并重启 DSH 更稳妥)——全部动效即生效

预期输出(节选):

dsh-motion-complete 1.1.0 — 安装
DSH 安装: C:\...\node_modules\@deepseek-ai\dsh(版本 0.1.0-rc.7 ✓,支持: 0.1.0-rc.6 / 0.1.0-rc.7)
  ✓ 已安装  dsh-client-ui-settings-general/lib\client.js
  ...(共 17 个文件)
安装完成:应用 17 个文件,跳过 0 个(已安装)。
能力说明
即装即用node bin/apply.mjs 一次性应用全部改动,刷新页面全部生效
卸载还原node bin/apply.mjs --revert 还原到官方原版
版本可校验三重校验(DSH 版本、目标包版本、文件 hash)+ 锚点恰好一次计数 + 应用后复核 + 两阶段提交(全部校验通过才写盘,失败零写入)
多版本同一主题包同时支持 0.1.0-rc.60.1.0-rc.7,安装时按当前 DSH 版本自动选用对应补丁集
幂等重复安装自动跳过已安装文件;重复卸载自动跳过未安装文件
零回归只搬运已定稿动效,不改任何交互语义(插件列表手风琴、审批提交语义、菜单键盘导航、表单草稿等均保持原样)
无障碍动效中已有的 prefers-reduced-motion 处理原样保留(CSS 禁用动画;JS 延迟卸载/定时器在 reduce 下归零)

常用参数

参数作用
--target <dir>指定 DSH 安装根(node_modules/@deepseek-ai/dsh 所在目录);默认自动探测
--revert卸载:完整还原全部 17 个文件
--check只检查状态(每个文件是原版/已安装/未知),不写任何文件
--dry-run安装/卸载的完整校验演练,不写任何文件

卸载

node bin/apply.mjs --revert

卸载后所有被改文件还原为官方原版(还原后 hash 复核,不一致会报错中止)。刷新页面(强刷)即完全还原。

注意:卸载前请勿手动修改任何 lib/client.js / dist 文件,否则会被「文件状态未知」保护拦下(见故障排查)。

工作原理与安全设计

bin/apply.mjs 是一个零依赖的 Node 脚本,补丁数据全部内嵌在 patches/manifest.json(每个 DSH 版本一份补丁集:17 个目标文件 × 精确锚点对 + 原版/安装态 SHA256)。

安全模型(任何一项不满足都会明确报错并中止,绝不静默失效、绝不写坏文件):

  1. 版本校验:DSH 版本 + 每个目标包版本,必须与 manifest 锁定值精确一致;
  2. hash 校验:目标文件必须是「已知原版」或「已知安装态」之一,否则视为被第三方修改,拒绝触碰;
  3. 锚点计数:每个替换锚点在目标文本中必须恰好出现 1 次;
  4. 两阶段提交:先完成全部文件的校验(含"应用后文本"的 hash 复核),全部通过才统一写盘——任何失败零写入,不存在半补丁状态;
  5. 写盘次序:先全部写盘、后输出日志,stdout 管道异常中断不影响写盘结果。

故障排查

现象原因处理
安装后动效没出现页面未刷新 / 浏览器缓存强刷 Ctrl+Shift+R;确认 DSH 服务仍在运行
DSH 版本不匹配,已中止当前 DSH 版本不在支持列表按提示查看支持版本;安装受支持的版本,或等待发布适配新版本的主题包
文件状态未知…拒绝触碰目标文件既非原版也非本主题包安装态(被手动修改、或装过其他补丁)恢复该文件(重装对应 DSH 包)后重试;不要强行覆盖
锚点校验失败,已中止文件内容与清单锚点不符(版本不对或文件被改动)同上;确认 DSH 版本与支持列表一致
卸载后仍有动效页面缓存强刷页面;如仍存在,执行 --check 查看是否有文件处于未知状态
系统开启"减少动态效果"属正常设计所有已定稿动效在 prefers-reduced-motion: reduce 下按原样禁用/归零

如遇到其它问题,欢迎通过作者本人邮箱&QQ反馈^_^:3536989081@qq.com

项目结构

dsh-motion-complete/
├── package.json                 # 包声明(name/version/bin)
├── bin/
│   └── apply.mjs                # 安装/卸载/检查脚本(唯一入口,零依赖)
├── patches/
│   └── manifest.json            # manifest v2:versions[](每 DSH 版本 17 目标:版本、hash、锚点对)
├── README.md                    # 本文档
├── CHANGELOG.md                 # 版本历史
└── .gitignore

프로젝트 파일 및 신호

표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.

플러그인 매니페스트감지됨

저장소 정보

언어
JavaScript
라이선스
보고되지 않음
마지막 업데이트
2026. 8. 18. 오전 11:03

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.