Skip to content

vizcb-codeblock-visualizer v1.7.3

Latest

Choose a tag to compare

@Reseezhang Reseezhang released this 17 Oct 02:56
· 2 commits to main since this release

vizcb-codeblock-visualizer v1.7.3

DeepSeek Harness 可视化插件:模型回答中的 svg / html / ```mermaid 代码块自动渲染为消息底部的图表卡片;支持文件预览(present-files)。mermaid 宿主端 worker 隔离渲染,运行时零网络外联。

v1.7.3 更新内容(自 v1.6.2)

v1.7.3 · 源码隐藏修复(hideSourceBlocks 在 DSH 0.2.0-rc.2 上从未生效)

卡片一直正常渲染,但源码围栏始终留在正文里。根因在链路入口 domFences()(恒返回空数组),三处宿主假设同时不成立:

  • 语言标签类名被 CSS Modules 哈希:旧代码查 [data-code-block-banner] .infostring,真机是 _infostring_7gxqk_45,永不命中
  • 横幅根本不显示语言:宿主 CodeToolbar 用 isLang(lang) ? lang : codeLabel,而 isLang 基于 shiki 语法集 —— svg / mermaid / present-files 都不在其中,只显示通用标签「代码块」,语言在 DOM 上读不到
  • turnTail 槽位与助手消息节点是兄弟:旧实现「向上找最近的含代码祖先」会爬到整个会话,fences 混进其它回合的块 → 与「本轮解析出的块」按序号对账恒错位,且命中数会撞上 >24 守卫直接放弃

修复方式:语言标签按 [class*="infostring"], [class*="language"] 子串匹配;读不到语言时按正文特征识别(^<svg/mermaid 关键字表);确认阶段改用宿主解析出的 code 做归一化内容对账(与顺序、语言标签无关,唯一命中才认);作用域按 data-chat-turn 收窄到本轮;保留「宿主最终没解析出块 → 还原源码」兜底。

顺带修掉一个反向 bug:原「正文正则扫 ```」兜底会把讲解 mermaid 语法的普通代码块误判成图表块并藏掉用户代码。

install-vizcb.ps1 补 UTF-8 BOM:此前无 BOM,Windows PowerShell 5.1 解析会在第 90 行报 Unexpected token '}',脚本完全跑不起来。

v1.7.2 · 插槽兼容:新宿主 list 类插槽强制要求 options.id,缺它时客户端组件从未挂载(宿主侧全绿但 read-turn 永远收不到请求)。

v1.7.1 · 主线程隔离:jsdom 是 CJS 包,会让 DSH 0.2.0-rc.2 的模块解析路由器抛错、插件整体 failed to import;现在 jsdom/DOMPurify 全部只被 worker 线程 import。

安装

  • 方式 A(一键脚本,推荐):下载下方资产 vizcb-codeblock-visualizer-1.7.3-complete-package.zip(已内置全部运行时依赖,无需联网 npm install),解压后在解压目录运行:

    powershell -ExecutionPolicy Bypass -File install-vizcb.ps1 -ProfileName desktop

    脚本会把插件连同随包依赖复制到 profile、并自动写入 dsh.profile.bundles;装完重启 DSH Desktop。

  • 方式 B(git 依赖):profile 的 package.json 添加 "vizcb-codeblock-visualizer": "github:Reseezhang/vizcb-codeblock-visualizer#v1.7.3",并把它加进 dsh.profile.bundles,再执行 dsh plugin --profile desktop install。

  • 详细说明与配置项见 README。

完整包内容

vizcb-codeblock-visualizer-1.7.3-complete-package.zip(44.7 MB,12209 个条目)内含:

  • vizcb-codeblock-visualizer/:插件本体 + 随包 node_modules(mermaid / jsdom / DOMPurify / svgdom 及全部传递依赖)
  • install-vizcb.ps1:一键安装脚本(复制插件 → 检查依赖 → 写入 dsh.profile.bundles → 校验)

本包已实测:解压 → 运行脚本 → 插件目录、随包依赖、worker 模块、bundles 清单、包版本与客户端版本号(均 1.7.3)全部校验通过。

说明

  • 客户端改动无需重启:DSH 0.2.0-rc.2 的 dsh-client-hmr 每 500ms 轮询每个客户端 bundle 的 mtime/ctime/size,变更后经 /plugins/events SSE 推送、浏览器热重载该模块。宿主侧改动(lib/index.js)仍需重启。
  • 完整根因与踩坑记录见仓库 DEVELOPMENT.md 教训 14。