Repository navigation
Releases
dsh-wx-skin v0.2.1 — DSH 0.1.7-rc.2 适配 / 官方桌面端支持
🔧 变更
- DSH 0.1.7-rc.2 兼容补齐:
0.1.7-rc把两批表面从令牌/半透明混色改成了别的东西,皮肤跟着补上。- 所有下拉 / 右键菜单 / 列表框迁到了新的
MenuSurface原语,材质层改用--dsw-menu-surface-fill(菜单内吸顶分组标题仍读--dsw-specific-menu,两个都绑定,菜单头尾才不会深浅不一)。 - 「改动文件」的 diff 行从 8%/12% 的
color-mix换成不透明字面量,现补上--dsw-alias-file-diff-{added,deleted}-{bg,gutter}四个令牌;-marker是前景色,有意不动。 - 表面令牌覆盖数 20 → 25,明暗两套同步覆盖。
- 所有下拉 / 右键菜单 / 列表框迁到了新的
- 修正过时注释:darwin 近乎不透明的
--dsw-specific-menu覆盖已从 shell 的base.css移到 ui-theme 的design-platform.css(值不变,!important照旧胜出)。
🖥️ 官方桌面端支持
官方桌面端(apps/desktop)就是同一个 Web 客户端套一层 Electron 壳,插件不需要独立构建;这次把两处载体差异处理掉了:
- 目录选择器双载体择优:桌面端由渲染进程 preload 在页面脚本执行前装好
globalThis.__DSH_DIRECTORY_PICKER__,打开的是绑定应用窗口的 Electron 文件夹对话框(harness 自己的原生目录流程也优先用它)。插件现在优先走它,只有在没有它的 Web 部署里才回落uiWorkspace.pickDirectory()——否则桌面端同一次点击会另开一个不受窗口约束的宿主侧 OS 选择器。 - 宿主路由接受桌面端文档来源
dsh-app://app(与回环 authority 同列白名单)。Electron 转发时本就删掉origin/sec-fetch-site,这一步让两种 Electron 行为下都成立;Origin对脚本是禁止修改的请求头,网页无法借用桌面端来源,因此没有放宽「跨站浏览器」这道围栏。 - 两端共用同一份
$DSH_HOME/dsh-wx-skin.settings.json,浏览器 GUI 里换的壁纸,桌面端打开是同一张。
桌面端安装(该 profile 由 Electron 独占,按官方约定不经 CLI):应用内 设置 → 插件 → 安装,粘贴本插件的绝对路径(安装向导里的「本地插件目录」形态),再用开发菜单的「重启应用与 Host」。详见 README 方式四。
✅ 质量
- 192 个单元测试全绿(原 182),新增:
host-routes的desktop carrier用例(删除origin/sec-fetch-site的转发请求、带dsh-app://app来源、远程来源仍 403)与skin-picker的双载体用例(桌面优先且只开一个对话框、无uiWorkspace也可用、取消/失败语义、全局消失后回落)。 tsc类型检查(宿主 + 客户端)与构建全部通过。
📦 安装
# npm(推荐)
pnpm dsh plugin --profile web add dsh-wx-skin@0.2.1
# 或本 Release 附件
pnpm dsh plugin --profile web add file:<下载目录>/dsh-wx-skin-0.2.1.tgz安装后重启 dsh web(本次同时改了宿主半区),刷新页面,打开 设置 → 皮肤。
📋 兼容基准
DSH 0.1.7-rc.2(checkout tag dsh-v0.1.7-rc.2,commit 477b4f4205);上一基准 0.1.7-alpha.2(00102833df)。
dsh-wx-skin v0.2.0 — 设置页重做 / DSH 0.1.7 适配 / 壁纸适合度
⚠️ 破坏性变更:设置界面重做——移除「背景来源」下拉框与整套预设色板。旧设置会自动迁移(source: 'preset'读作未设置),文件夹缓存与其它设置原样保留。
✨ 新增
- 设置进官方面板:皮肤设置作为独立一页挂进 harness 设置面板(官方加法页位
settings.section),由面板自己负责位置、内边距与滚动——彻底解决此前浮层在侧栏底部被窗口边缘裁切的问题。 - 以路径为中心的背景模型:设置页只有「文件夹」和「本地文件」两行。
- 「文件夹」显示当前文件夹路径(可用 harness 宿主目录选择器,也可手填)。
- 「本地文件」显示当前背景图片的完整路径(URL 背景显示 URL)。
- 在「本地文件」行粘贴图片绝对路径 → 「应用」,即自动切到它所在文件夹,并从这张图继续切换。
- 用系统文件对话框选图时,若已加载文件夹里有唯一同名图片,也会定位到它并从它继续(同名歧义时不做猜测,退回编码图并提示)。
- 适合度:填充 / 适应 / 拉伸 / 平铺 / 居中(Windows 壁纸同款语义)。
- 预览框放大:高度
min(36vh, 340px)并改用contain,完整显示整张图不再裁切。
🔧 变更
- 顺序切换改为目录顺序:按文件名自然排序 ±1、两端回绕——选到第 10 张,「下一张」是第 11 张、「上一张」是第 9 张。随机模式仍保留「一轮内不重复」。
- 侧栏入口迁移到官方
sidebar.footer.action插槽:不再查询 shell 内部类名、不再注入 DOM、不再挂 MutationObserver;保留「上一张 / 下一张」快捷键,56px 图标轨下退化为两个图标。 - 自动重扫、host 持久化(
~/.dsh/dsh-wx-skin.settings.json)、明暗主题适配等行为不变。
🧩 DSH 兼容
- 适配基准 DSH
0.1.7-alpha.2(commit00102833df):浏览器侧路由改为文档相对(<base href="./">)、补齐--dsw-specific-menu覆盖、平台模块表与插槽契约逐项核对。 - 不再依赖
sidebarCol/logoRow/newSession等 shell 内部类名,全部改为官方插槽(settings.section+sidebar.footer.action)。
✅ 质量
- 182 个单元测试(新增
route-resolution路由守卫、global-skin-css配色守卫、skin-path路径词汇)、tsc类型检查、构建全部通过。
📦 安装
# npm(推荐)
pnpm dsh plugin --profile web add dsh-wx-skin@0.2.0
# 或本 Release 附件
pnpm dsh plugin --profile web add file:<下载目录>/dsh-wx-skin-0.2.0.tgz安装后重启 dsh web,刷新页面,打开 设置 → 皮肤。
v0.1.5 — 上一张回退 / 文件夹自动同步
dsh-wx-skin v0.1.5
新增:上一张
- 侧栏与面板「文件夹路径」分组都新增「上一张」入口
- 顺序模式:按文件名回退,首张回绕到末张
- 随机模式:回到上一次显示过的那张(新增浏览历史,上限 64 条)
- 无路可退时按钮与侧栏入口置灰,点击不切换、不弹框
修复:新加入文件夹的图片读不到
- 新增文件夹自动同步:页面重新获得焦点 / 切回标签页、每 60 秒、打开面板、启动后各触发一次重扫
- 合并式更新:按路径保留当前图片(文件被删则按原序号就近落位)、按路径过滤本轮记录与历史;新文件不被标记为已用,自然进入未切换队列
- 重扫不会改变当前来源(用着预设时不会被切回文件夹),列表无变化时不写设置
- 「重新加载」仍可手动立即重扫;同一文件夹的增删不再重置本轮
构建
- 修复 tsdown 中 CSS Modules 类名映射顺序导致构建不可字节复现的问题(与官方 client 预设一致地排序),
发布附件与 npm tarball 从此内容一致
安装
pnpm dsh plugin --profile web add dsh-wx-skin@0.1.5
# 或使用下方 tarball 附件
pnpm dsh plugin --profile web add file:<dsh-wx-skin-0.1.5.tgz 的绝对路径>若从 0.1.3 及更早版本升级,需重启一次
dsh web(宿主路由是 0.1.4 引入的)。
测试
147 例 vitest 全绿,含宿主路由回环集成测试、面板调色板对比度守卫、生命周期契约、切换/回退算法与合并式重扫单测。
v0.1.4 — 文件夹轮播壁纸 / DSH 0.1.6 适配
dsh-wx-skin v0.1.4
适配基准:deepseek-harness dsh-v0.1.6-alpha.1
新增:文件夹轮播壁纸
- 面板顶部「背景来源」下拉框在「图片」与「文件夹」之间切换,只显示该分组对应的控件
- 文件夹分组:手填绝对路径,或调用宿主原生目录选择器;可选「包含子文件夹」
- 宿主扫描文件夹(位图白名单、跳过隐藏项与符号链接;上限 2000 张 / 20000 项 / 递归深度 6)
- 「下一张」按顺序(文件名自然序)或随机切换,一轮内不重复;整轮走完后重置,且不会立即回放当前这张
- 侧栏常驻「下一张」入口,不打开面板也能换图;图片列表 / 当前序号 / 本轮已用记录持久化(只存路径,不占 localStorage 图片配额)
修复
- 兼容 DSH 0.1.6-alpha.1:逐项核对闭包工厂产物、模块表种子词、combo 端点、webServer 路由、主题令牌、侧栏 DOM 锚点
- 生命周期:通过
ctx.effect归还副作用,client-hmr 重载/插件行停用后不再残留或重复侧栏入口 - 「选择文件夹」按钮修复(目录选择器服务晚于本插件挂载才 provide,改为作用域可选依赖 + 懒解析桥)
- 未加载文件夹时点「下一张」不切换、不弹面板/对话框(侧栏入口置灰并提示)
- 面板配色跟随明暗主题(
--wx-panel-*+color-scheme),修复暗色主题下「浅底浅字」 - 面板显示当前图片名称:文件夹=文件名 / 本地图片=所选文件名 / URL=路径末段 / 预设=预设名,悬停显示完整路径或 URL
安装
# npm
pnpm dsh plugin --profile web add dsh-wx-skin@0.1.4
# 或使用下方 tarball 附件
pnpm dsh plugin --profile web add file:<dsh-wx-skin-0.1.4.tgz 的绝对路径>升级后需重启一次
dsh web(本版新增了宿主路由)。
测试
127 例 vitest 全绿,含宿主路由真实回环集成测试(扫描/路径收敛 403/HEAD/缓存头/跨站拒绝)、面板调色板对比度守卫、生命周期契约与切换算法单测。
dsh-wx-skin v0.1.3
dsh-wx-skin v0.1.3
适配 DeepSeek Harness 0.1.5-rc.2(2026-09-10 官方最新版):
- 侧栏「皮肤」入口挂载选择器同步新版 shell(
data-pane属性已下线,改用sidebarCol/logoRow/newSession锚点) - tsdown 构建契约对齐官方
platform.ts/tsdown.client.ts(补dsh-client-ui-dockkit模块行,迁移至deps.neverBundle/alwaysBundle) - 其余机制在新版上均保持兼容,已实机验证:插件加载、
/pluginscombo 路由、宿主持久化(~/.dsh跨端口恢复)、18 个--dsw-*半透明表面令牌、明暗主题适配
安装
dsh plugin --profile web add dsh-wx-skin@0.1.3或下载下方 dsh-wx-skin-0.1.3.tgz 离线安装:
dsh plugin --profile web add file:<tgz 绝对路径>dsh-wx-skin v0.1.1
dsh-wx-skin v0.1.1
- 「透出」滑杆下限从 50% 放宽到 0%(表面可完全透出背景,可读性由「暗化」控制)
- 构建产物同步更新(npm / GitHub 双渠道)
dsh-wx-skin v0.1.0
dsh-wx-skin v0.1.0
DeepSeek Harness (DSH) Web GUI 皮肤插件 —— 侧栏「皮肤」面板,自选本地图片 / URL 作为全屏磨砂背景。
功能
- 侧栏「皮肤」入口 + 弹出设置面板
- 选择本地图片(不限文件大小,≤4096px 保原分辨率)或图片 URL
- 6 款预设(纯色 / 渐变)
- 暗化 0–80%、模糊 0–24px、透出 50–100% 滑杆
- 明暗主题自动适配,设置持久化(localStorage)
- 纯浏览器端 client 插件,不修改 DSH 仓库
安装
# 方式一:使用本 Release 的 tarball(在 DSH 源码 checkout 目录)
pnpm dsh plugin --profile web add file:<本文件绝对路径>
# 方式二:从 npm 安装(发布后)
pnpm dsh plugin --profile web add dsh-wx-skin@0.1.0重启 dsh web 后刷新 http://127.0.0.1:3080,侧栏出现「皮肤」入口。