deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:LyaxZ/dsh-fonttune
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
DeepSeek Harness(DSH)字体插件:对话(会话 Markdown 正文)拥有完整的排印控制——字体族、字号、行高、字重;界面(设置页、侧栏、工作区、按钮)提供字体与字重并默认跟随对话;代码独立成轴,另有连字与特性开关;整套配置可存为预设方案。配置入口是原生卡片(分区收起 + 摘要),改完即时生效:0.2 线在「插件」页的已安装栏目里(点开本插件的卡片),rc 线在 设置 → 插件 → 插件配置。
+n / -n 显示,范围按当前字体实测):偏移叠加在每个元素自身的字重上,标题仍按 DSH 的层级(h1~h3 700、h4~h6 与加粗 600、表头 500、正文 400)逐级保持"标题明显粗于正文",调重调轻都不会把层级抹平,代码块里的粗体也不会被压平。界面偏移是一条把对话 Markdown 整棵子树排除在外、只铺 body 与自带字重的元素表的规则:真机实测(活页面计算样式)它把界面的文本元素改到目标值、对话 markdown 里的元素一个都没动,所以改界面字重不会碰到对话。滑块按档计数:读数就是档数(例如 -1 0 +1),档数由字体决定——卡片会在页面里量出所选字体在正文处实际能渲染出几种粗细,一档取变化足够明显的那一档(不是最细的那一档),范围到正文再也换不到字形为止(加粗与标题到顶后停住),所以档数可能比之前少,但每挪一格都看得出来,数字也不会出现"几百几百";换字体会重新测量。文档里存的仍是字重偏移(旧值自动换算),换字体不会把设置改坏;字体只有常规与粗体两档时就只有 2 个档位,要连续可选用字重档位多的字体或可变字体=>、!= 这类连字),高级模式另有 font-feature-settings 特性值输入一份包同时支持三条宿主线——0.1.7-alpha.1 / alpha.2(下限)、0.1.7-rc.1 / rc.2、0.2.0-rc.1 / rc.2:安装方式与宿主线无关,三条线都验证过「设置卡片可用、样式真的作用到页面、卡片上的改动写得进去」。
| 插件版本 | 支持的 DSH 版本 |
|---|---|
| 0.4.x(最新,0.4.1) | 0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2 |
| 0.3.x(0.3.6) | 0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2 |
| 0.2.x(0.2.8) | 0.1.5-rc.3、0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2 |
每个大版本只列该系列最新的一个补丁版本(新功能引入的缺陷都在其后的补丁里修掉了,所以同一个大版本内直接用最新补丁即可;旧补丁仍可继续用,插件不破坏既有接口)。
通过 DSH CLI 安装:
dsh plugin --profile web add dsh-fonttune
也可以从 GitHub 安装:
dsh plugin --profile web add github:LyaxZ/dsh-fonttune
或以本地目录安装:
dsh plugin --profile web add <插件目录路径>
安装后重启一次 DSH 并打开 Web UI;之后改设置不需要重启。
-1 … +2),所以档数可能比之前少、但每挪一格都看得出变化,也不会出现"几百几百"的数字;换字体后档数会重新测量cordis.patch.yml,更早的版本是 settings.yaml),跟随 profile 走src/shared.cjs —— 纯函数核心:字体名消毒与解析、配置归一化、注入样式的生成src/index.mjs —— 宿主半:注册 dsh-fonttune 设置命名空间(schemastery schema,含长度与取值范围校验),并通过 webserver/index-inject 把一个打过标记的 <style> 随首页下发,首帧即是设置里的字体;那个元素随后由浏览器半认领并接管(页面里只有这一份样式表,规则可增可删)src/client.js —— 浏览器半:设置卡片、选字体面板、字体枚举与样式注入build.mjs —— 零依赖构建:内联共享核心、套上 window.__ModuleLoader__.load({id, factory}) 外壳、拷贝宿主半,并校验客户端 bundle 只 require shell 预注入的模块test/run.mjs —— 离线检查(自建 DOM / cordis / 设置面替身、真实 schemastery schema、CSS 生成与注入、消毒对抗用例、双语文案键一致性、选字体面板的分组规则、令牌轮询的省电闸门);test/render-card.mjs 用 mini React hooks 运行时真实渲染卡片组件(含强制展开态与强制状态,覆盖 0.1.0 那类发布阻断崩溃),把每个控件的回调都点一遍(未接线的回调只有真点下去才会暴露),并渲染第二次覆盖「状态变化后 hook 顺序改变」这一类崩溃;test/artifacts.mjs 校验 lib/ 与当前 src/ 逐字节一致(npm run verify 跑全部三套)。devDependency 钉的是最新的 schemastery(^3.18.4),也就是 alpha 那套方言——它带 .volatile(),解析出来的字段是引用而不是值,所以这几套检查都通过宿主半导出的 plainConfigValue 取值(和插件读配置同一条路);运行时用的是宿主自带的那份(rc.2/rc.3 是 3.18.2,没有该修饰符,那条形态由真机探针覆盖)npm run verify:browser -- "<带 token 的地址>"(先起一个受管实例:dsh web --port 0 --no-open,它会打印地址)。默认只跑只读的几支(browser-probe / ui-walk / host-line-probe / style-verify);加 --writers 再跑会写设置命名空间的几支(slider-walk / split-walk / split-verify / weight-verify,各自先快照用户层、退出前还原),--only a,b 挑子集;每支的退出码就是判定。test/set-user-layer.mjs <url> '<json>' 是在被中断的运行之后还原用户层的工具test/host-line-probe.mjs 是与宿主线无关的那一支:只断言两条线都必须成立的事——页面无报错、插件只维护一份样式表、设置真的作用到文档(DFP_EXPECT_FAMILY / DFP_EXPECT_WEIGHT 给了就顺带断言计算样式)、设置页里能找到并渲染出 .dfp-card(哪条线的座位都行)、以及从卡片上改一个值真的写进去。换宿主线(rc ↔ alpha)后先跑它;调试「alpha 上卡片写不进去」这类问题时设 DFP_PROBE=1,插件会往控制台打一行 [dfp-probe](服务了哪些命名空间、认领了哪个、座位当前是什么状态)test/weight-verify.mjs 在真实页面里量三条字重轴(界面 / 对话 / 代码)的独立性与「样式表只有一份、不刷新关掉跟随立即回落」,并逐级断言会话字重的阶梯(+180 与 −100 两个方向下 h2 > strong > 正文,且每组都等于自身基准 + 偏移);test/split-verify.mjs 量对话/代码两条字号轴的独立性、外加退役的界面字号轴什么都不动,并用一条 h1~h4 探针断言每个标题级别只吃一次偏移(±3 各验一遍,h1 > h2 > h3 ≥ h4);test/slider-walk.mjs 与 test/split-walk.mjs 驱动真实卡片(拖动不写、松手才写;简单模式两格与整条栈的往返);另有市场条目的维护脚本 test/market-pr.mjs(status / update / refresh / reopen / open / about)与诊断脚本 test/market-inspect.mjs(PR 状态、评论、CI 与分支差异)docs/ —— 0.2.0 的背景调研与功能规格(设计阶段的记录,含当时的取舍理由;与最终实现不同的地方以 README/CHANGELOG 为准,两份文件文首都有说明)。不在 npm files 清单内,不随包发布react、react/jsx-runtime、react-dom、@deepseek-ai/cordis、@deepseek-ai/dsh-client-* 等);dsh.client.inject 只是加载顺序声明,不是 require 许可node build.mjs(或 npm run watch)把 src/ 生成到 lib/,浏览器加载的是 lib/,只改 src/client.js 不构建的话页面看到的还是旧包;npm test 只检查功能,node test/artifacts.mjs(在 npm run verify 里)专门校验 lib/ 与当前 src/ 逐字节一致。改宿主半(src/index.mjs)或 cordis.patch.yml 需重启 DSHMIT © 2026 LyaxZ
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。