🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

WebUI 性能优化 awa-123-cw/dsh-webui-perf

DeepSeek Harness
awa-123-cw80 天前有提交已提供中文文档扫描:含敏感能力

一键开启长会话渲染与内存优化开关

28.1/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add awa-123-cw/dsh-webui-perf
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 35 处,展示前 29 条)
  • 写入本地文件
    lib/index.js:213
    writeFileSync(ps1, CLEAN_SCRIPT_DEEP)
  • 写入本地文件
    lib/index.js:218
    appendFileSync(debugLog, `${new Date().toISOString()} ${msg}\n`)
  • 读取本地文件
    lib/index.js:222
    dbg(`ps1 bytes=${(() => { try { return readFileSync(ps1, 'utf8').length } catch { return -1 } })()}`)
  • 删除本地文件递归
    lib/index.js:226
    rmSync(dir, { recursive: true, force: true })
  • 读取本地文件
    lib/index.js:242
    const raw = readFileSync(outFile)
  • 执行外部命令固定命令
    lib/index.js:255
    directStdout = execFileSync('powershell.exe', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-File', ps1, '-OutFile', outFile], {
  • 执行外部命令固定命令
    lib/index.js:286
    spawnSync('powershell.exe', [
  • 执行外部命令固定命令
    lib/index.js:304
    execFile('powershell.exe', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', script], {
  • 发起网络请求
    lib/client.js:95
    fetch("/webui-perf/memory", { cache: "no-store" })
  • 发起网络请求
    lib/client.js:151
    fetch("/webui-perf/memory", { cache: "no-store" })
  • 发起网络请求
    lib/client.js:160
    fetch("/webui-perf/clean", { method: "POST", cache: "no-store" })
  • 发起网络请求
    lib/client.js:216
    fetch("/webui-perf/memory", { cache: "no-store" })
  • 发起网络请求
    lib/client.js:224
    fetch("/webui-perf/clean-deep", { method: "POST", cache: "no-store" })
  • 读取本地文件
    patches/apply-patches.mjs:36
    const repo = candidates.find(dir => dir !== undefined && existsSync(join(dir, '.git')))
  • 读取本地文件
    patches/apply-patches.mjs:42
    if (!existsSync(PATCH)) {
  • 执行外部命令固定命令
    patches/apply-patches.mjs:48
    const check = spawnSync('git', [...op, PATCH], { cwd: repo, encoding: 'utf8' })
  • 执行外部命令固定命令
    patches/apply-patches.mjs:56
    const run = spawnSync('git', [...(reverse ? ['apply', '-R'] : ['apply']), PATCH], { cwd: repo, encoding: 'utf8' })
  • 读取本地文件
    patches/apply-runtime-patches.mjs:28
    const libDir = candidates.find(dir => existsSync(join(dir, 'index.js')))
  • 写入本地文件
    patches/apply-runtime-patches.mjs:40
    mkdirSync(backupDir, { recursive: true })
  • 读取本地文件
    patches/apply-runtime-patches.mjs:44
    if (!existsSync(path)) continue
  • 读取本地文件
    patches/apply-runtime-patches.mjs:45
    const source = readFileSync(path, 'utf8')
  • 写入本地文件
    patches/apply-runtime-patches.mjs:52
    copyFileSync(path, backup)
  • 写入本地文件
    patches/apply-runtime-patches.mjs:53
    writeFileSync(path, target, 'utf8')
  • 读取本地文件
    patches/check-patches.mjs:35
    const root = candidates.find((dir) => existsSync(join(dir, 'node_modules/@deepseek-ai/dsh')))
  • 读取本地文件
    patches/check-patches.mjs:49
    const proxyHits = proxyFiles.filter((f) => existsSync(f) && readFileSync(f, 'utf8').includes('"webui-perf"'))
  • 读取本地文件
    patches/check-patches.mjs:49
    const proxyHits = proxyFiles.filter((f) => existsSync(f) && readFileSync(f, 'utf8').includes('"webui-perf"'))
  • 读取本地文件
    patches/check-patches.mjs:61
    if (!existsSync(file)) {
  • 读取本地文件
    patches/check-patches.mjs:65
    const text = readFileSync(file, 'utf8')
  • 读取本地文件
    patches/check-patches.mjs:77
    const referenced = existsSync(indexHtml)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 长会话渲染优化
  • 历史加载优化
  • 高亮缓存优化

README

由 DeepSeek 最新模型翻译生成
dsh-webui-perf 🐳⚡ DeepSeek Harness Web GUI 性能优化开关插件:长代码流式渲染、历史加载、语法高亮/公式/渲染缓存的优化,全部收敛到一个设置面板开关,随时一键开启或回退原始实现。 ✨ 优化内容(开关开启时生效) | 场景 | 优化 | | 流式输出长代码 | 未闭合代码块增量解析(每帧只处理新增字节,O(n²)→O(n)) | | 长代码写完瞬间 | 大代码块(>3000 字符)改空闲回调懒高亮,不再同步阻塞主线程 | | 载入长历史会话 | 增量可见性判断(去掉每 chunk 的全文本 trim/rope 展平);工具调用树深度检查去 BFS | | 长思考(Think 块) | 展开正文 100ms 节流更新,折叠摘要保持实时 | | 重复渲染 | shiki 高亮 / KaTeX / settled markdown 渲染三层 LRU 缓存 | | 读大文件 | ReadBlock 折叠时只高亮可见窗口(head/tail 16 行) | | 内存/显存 | 消息列表 content-visibility(离屏行跳过渲染/布局,长会话内存有界 + 滚动流畅);历史图片缩略图降采样到 ≤640px + 可见性门控(离屏图不加载);缓存上限收紧(>64KB 不缓存) |
展开完整文档(README 剩余 1 节)
dsh-webui-perf 🐳⚡

DeepSeek Harness Web GUI 性能优化开关插件:长代码流式渲染、历史加载、语法高亮/公式/渲染缓存的优化,全部收敛到一个设置面板开关,随时一键开启或回退原始实现。

✨ 优化内容(开关开启时生效)

| 场景 | 优化 |
| 流式输出长代码 | 未闭合代码块增量解析(每帧只处理新增字节,O(n²)→O(n)) |
| 长代码写完瞬间 | 大代码块(>3000 字符)改空闲回调懒高亮,不再同步阻塞主线程 |
| 载入长历史会话 | 增量可见性判断(去掉每 chunk 的全文本 trim/rope 展平);工具调用树深度检查去 BFS |
| 长思考(Think 块) | 展开正文 100ms 节流更新,折叠摘要保持实时 |
| 重复渲染 | shiki 高亮 / KaTeX / settled markdown 渲染三层 LRU 缓存 |
| 读大文件 | ReadBlock 折叠时只高亮可见窗口(head/tail 16 行) |
| 内存/显存 | 消息列表 content-visibility(离屏行跳过渲染/布局,长会话内存有界 + 滚动流畅);历史图片缩略图降采样到 ≤640px + 可见性门控(离屏图不加载);缓存上限收紧(>64KB 不缓存) |
| 主动内存清理 | 右上角常驻 系统可用/总内存指示 + 🧹/♻️ 双档清理(PCL「内存优化」的 WebUI 对应):🧹 由 host 执行系统级 PowerShell 清理(EmptyWorkingSet 清 dsh 自身 + Edge 缓存进程 + 页面缓存/GC);♻️ 二次确认后深度清理(清所有 Edge 渲染进程工作集 + 刷新页面),实测 Edge 渲染进程单次释放 405MB(多标签可达数 GB) |

实测:打开长代码历史会话的主线程冻结从 8.3s → 0.3s(-96%)。

📦 结构

dsh-webui-perf/
├── package.json # 插件清单(host + client 双面) ├── cordis.patch.yml # bundle patch(挂载到 web profile) ├── lib/ │ ├── index.js # host half:注册 webui-perf 设置命名空间 │ └── client.js # 浏览器 half:设置开关行 + localStorage/事件广播 └── patches/ ├── dsh-webui-perf.patch # 对 deepseek-harness 源码的补丁(git apply) ├── apply-patches.mjs # 源码补丁应用/回滚脚本 ├── apply-runtime-patches.mjs # 已安装环境的运行时补丁(api-proxy allowlist) └── check-patches.mjs # 补丁健康检测(升级后必跑)

为什么需要补丁:优化代码在官方包内部(ui-primitives 是 shell 平台模块、ui-conversation/ui-trajectory 是官方 client bundle,插件无法替换),因此优化以带开关的源码补丁形式随插件发布;插件本体负责开关 UI 与状态广播(localStorage + dsh:webui-perf-change 事件,cordis-free 通道)。关闭开关即回退官方原始实现。

🚀 安装

1. 应用官方包补丁

方式 A:源码构建(推荐,可长期维护)

在 deepseek-harness 源码 checkout 里
git clone --depth 1 https://github.com/deepseek-ai/deepseek-harness.git
cd dsh-webui-perf/patches
node apply-patches.mjs # git apply --check + apply(自动备份语义,可 --reverse 回滚)

重新构建 cd
npm run build:lib:client
pnpm --filter @deepseek-ai/dsh-web-frontend run build
部署 dist 到 dsh-web-frontend/dist,lib/client.js 到各 client 包 lib/

方式 B:已安装环境(免构建)

node patches/apply-runtime-patches.mjs # 打 api-proxy allowlist(自动备份)
再把构建好的 dist 与 client bundle 部署到 node_modules 对应包

2. 安装插件本体

把 dsh-webui-perf 加入 web profile:

// D:\dsh\profiles\web\package.json
{
"dependencies": { "dsh-webui-perf": "link:D:/dsh-plugins/dsh-webui-perf" },
"dsh": { "profile": { "bundles": [ /* ... */, "dsh-webui-perf" ] } }
}

(或使用 super-injector 的 dev_install_package 热装配。)

3. 重启 dsh

dsh web

🎛️ 使用

设置 → 通用 → WebUI 性能优化 开关:

- 开:全部优化生效(默认)
- 关:立即回退官方原始实现(无需刷新页面)

开关状态持久化在用户设置文档(webui-perf.enabled),切换通过 localStorage + CustomEvent 实时广播给运行中的优化代码。

↩️ 回滚

源码补丁回滚
node apply-patches.mjs --reverse

运行时补丁回滚
node patches/apply-runtime-patches.mjs --reverse

插件移除从 profile package.json 的 dependencies/bundles 移除 dsh-webui-perf,重启即可

🔍 升级后检测(重要)
dsh 官方升级会覆盖 node_modules 产物,补丁可能悄悄失效(开关不再起作用,且设置面板会显示「补丁缺失」警告)。升级后请运行健康检测:

node patches/check-patches.mjs # 检测三类补丁痕迹(allowlist / client bundle / dist)
node patches/check-patches.mjs --fix # 缺失时自动重打 api-proxy allowlist

检测项:
1. api-proxy allowlist 是否仍含 webui-perf(设置开关暴露的前提)
2. ui-conversation / ui-trajectory client bundle 是否含优化开关代码
3. web dist(index.html 实际引用的 chunk)是否含 ui-primitives 优化代码

检测结果也实时显示在设置面板:官方补丁缺失时,开关行变为红色警告(「补丁缺失:请重跑 patches/apply-runtime-patches.mjs 后重启 dsh」),不会假装生效。

✅ 兼容性

- deepseek-harness 0.1.0-rc.5 / 0.1.0-rc.6
- 随插件附带的 1021 项官方测试全部通过(ui-primitives / ui-conversation / ui-trajectory)

📄 License

MIT
预览分享卡片长什么样 ↓awa-123-cw/dsh-webui-perf
分享 · DeepSeek Harness Hub
awa-123-cw/dsh-webui-perf

一键开启长会话渲染与内存优化开关

这是你的仓库?认领条目

回到顶部