Repository navigation
Releases
v1.4.0 — 测试与 CI
测试与 CI
- 19 个用例,只用
node:test,零依赖,本地约 90 ms 跑完(npm test,不需要 install)。 - 覆盖:
- 颜色工具(解析 / 混色夹取 / CSS 输出格式)与
buildStyles的确定性、token 覆盖; - 每个
preset.json的结构、锚点合法性、asset形状(目录穿越防护契约),
以及"每个预设都能真的生成出带 token 的 CSS"这个端到端 smoke test; - 客户端 half 的装载契约——用假的
__ModuleLoader__真的装一遍。这一半坏了不会报错,
只会静默失效,所以必须测; - 宿主半边可导入 +
package.json对外契约(dsh.bundle.patch/dsh.client)没被改坏。
- 颜色工具(解析 / 混色夹取 / CSS 输出格式)与
- CI:GitHub Actions,Node 20 / 22 双版本,
actions/*@v5。替换掉原来的deno.yml
(Deno 跑不了这些node:test用例,仓库里也没有 Deno 测试 ⇒ 每次 push 必红)。
修掉一个真实缺陷
parseColor('rgb(1,2)') 以前会返回 { r: 1, g: 2, b: undefined } 而不报错,
让 undefined 一路渗进生成的 CSS。现在缺分量或非数字一律抛错,并有用例锁住。
顺带一条经验:第一版测试对第三方素材断言了文件存在,结果"本地绿、CI 红"
—— 那些素材按.gitignore不入库,干净克隆里没有。已被 CI 抓到并改正。
v1.3.0 — 一条命令安装
一条命令安装
本包现在声明 dsh.bundle.patch,装进 profile 后会被 reconcile 自动并进
dsh.profile.bundles 并生效 —— 不用再手改 cordis.patch.yml:
dsh plugin --profile web add dsh-visual-system修掉一个会被忽略的坑
原来的 files 字段写的是 "presets",会把 presets/*/assets/ 下的第三方素材
(Steam 创意工坊封面、59MB 视频)一起发布到 npm —— 而 .gitignore 对 npm 打包完全无效。
现在只发布 presets/*/preset.json + 自绘的 presets/demo/assets:
npm 包从 ~75 MB 降到 491 KB / 17 个文件。
(发布前的自检:npm pack --dry-run 必须看一眼文件清单。)
v1.2.0 — 客户端半边:桌面端也生效
客户端半边:主题现在在桌面端也生效
原来只有宿主侧注入(webserver/index-inject),只在 web 端有效:桌面端窗口加载的是打包页面
dsh-app://app/,只消费注入表里的全局变量条目,不吃 style/html 行。
这次改成「宿主算 + 客户端贴」:
- 新增
lib/client.js:手写客户端 bundle(官方闭包工厂格式
window.__ModuleLoader__.load({id, factory})),在渲染进程里贴<style>与
#dsh-visual-media,每 4 秒轮询状态 —— 不需要构建工具,因为不依赖平台模块。 index.js新增GET /dsh-visual/state,一次给出「当前预设 + 生成好的 CSS + 素材地址」。package.json增加exports["./client"]与dsh.client声明(inject为空)。
实测:品红探针预设在不重启、不重载的情况下几秒内让桌面端整屏变色,撤销后自动恢复。
web 与桌面端的渲染进程是同一套前端,所以两端行为一致。
另外确认:桌面端对 cordis.patch.yml 支持热插拔 —— 存盘即加载、删掉即卸载
(删掉那段 insert 后 /dsh-visual/* 立刻变 404)。
v1.1.0 — 极光演示壁纸 + 真实截图 + 桌面端支持范围实测
这次更新
- 自绘极光演示壁纸:新增
tools/make-demo-wallpaper.ps1(纯 System.Drawing,可复现、无版权问题)。
做法是光斑先在 1/8 分辨率绘制、再高质量放大,得到柔和的光带。 - 真实截图:
preview/加入主界面与切换页截图(只含自绘 demo 预设)。 - 支持范围实测:桌面端能加载插件、路由可用,但
webserver/index-inject的 style/html
注入不被消费(桌面窗口加载的是打包页面dsh-app://app/)。README 已写明原因与路线图
——改成客户端插件即可两端通用。 - demo 预设配色与极光对齐(青 / 紫 / 琥珀),
veil降到 0.34 让壁纸透出来。
v1.0.0 — 首个公开版本
首个公开版本。
- 壁纸驱动视觉系统:一份 preset.json(颜色锚点 + 媒体)换一整套配色与背景
- 宿主侧插件(web profile),带 /dsh-visual/ 切换器与素材/配置路由
- 素材路由支持 Range 与 ETag;含目录穿越防护
- tools/:Wallpaper Engine .pkg / .tex 提取工具
注意:本仓库只含代码、预设定义与一张自绘演示壁纸;第三方素材(创意工坊场景等)不入库。