dsh-background-by-model 0.2.4 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.zh.md CHANGED
@@ -1,142 +1,236 @@
1
- # dsh-background-by-model
2
-
3
- <p align="center">
4
- <a href="https://github.com/HarmlessFunny/dsh-background-by-model"><img src="https://img.shields.io/github/stars/HarmlessFunny/dsh-background-by-model?style=social" alt="GitHub stars"></a>
5
- </p>
6
-
7
- [English](README.md) | 中文
8
-
9
- > 派生自 [`Tkingxiao/dsh-any-background`](https://github.com/Tkingxiao/dsh-any-background),并重命名为 `dsh-background-by-model`。
10
-
11
- 一个 **DeepSeek Harness** 外观插件,让你完全自定义 Web 端的主题色、背景壁纸,以及分部位精细的透明度与模糊度控制。
12
-
13
- ---
14
-
15
- ## 截图
16
-
17
- <p align="center">
18
- <img src="example_img/image.png" alt="自定义主页" width="720">
19
- <br/>
20
- <em>自定义主页 · 壁纸与主题色同时生效</em>
21
- </p>
22
-
23
- <p align="center">
24
- <img src="example_img/image-2.png" alt="主题色选择器" width="720">
25
- <br/>
26
- <em>主题色选择器 · PS 风格色轮 + 精确 HSL/RGB 输入</em>
27
- </p>
28
-
29
- <p align="center">
30
- <img src="example_img/image-3.png" alt="分部位透明度与模糊度" width="720">
31
- <br/>
32
- <em>分部位透明度与模糊度 · 主背景、侧边栏、卡片、设置面板</em>
33
- </p>
34
-
35
- <p align="center">
36
- <img src="example_img/image-4.png" alt="背景编辑器" width="720">
37
- <br/>
38
- <em>背景编辑器 · 图片/视频壁纸支持拖动平移与滚轮缩放</em>
39
- </p>
40
-
41
- <p align="center">
42
- <img src="example_img/image-6.png" alt="动态生成背景" width="720">
43
- <br/>
44
- <em>动态生成背景 · 网格渐变 / Shader / 几何图案预设</em>
45
- </p>
46
-
47
- <p align="center">
48
- <img src="example_img/image-9.png" alt="几何背景 低多边形模式" width="720">
49
- <br/>
50
- <em>动态生成背景 · 几何 低多边形模式预览</em>
51
- </p>
52
-
53
- <p align="center">
54
- <img src="example_img/image-10.png" alt="配置导出导入" width="720">
55
- <br/>
56
- <em>配置的导出和导入进行分享</em>
57
- </p>
58
-
59
- ## 功能特性
60
-
61
- - **PS 风格色轮** — 在色相环上选取色相,在内嵌方形中调整饱和度与明度,实时生成 30+ 个 CSS 设计令牌。
62
- - **精确 HSL / RGB 输入** — 通过数值精确输入颜色,与色轮实时双向同步。
63
- - **智能取色** — 一键从壁纸提取主题色:采样可见区域、量化像素、剔除灰色/近黑/近白,选出现量最大的鲜亮色。视频壁纸自动截帧参与取色。纯客户端完成。
64
- - **吸管取色** — 在壁纸上悬停预览颜色,点击即可选为主题色。
65
- - **背景壁纸** — 上传任意图片作为壁纸,在视口比例的编辑器中拖动平移、滚轮缩放。
66
- - **视频壁纸** — 上传视频作为动态壁纸:静音循环播放、刷新不丢失(落盘持久化 + HTTP 流式播放,支持 Range seek);自动截取一帧用于预览、主题色提取与位置编辑参考。
67
- - **位置编辑器** — 图片与视频共用同一套编辑器:拖动平移、滚轮缩放、一键重置;图片与视频的位置状态各自独立保存,互不覆盖。
68
- - **布局模式** — 适应 / 填充 / 拉伸 / 平铺 / 居中五种排布,图片与视频通用;「适应」模式下编辑器提交的构图在窗口缩放、跨屏移动后保持一致。
69
- - **动态生成背景** — 支持网格渐变、Shader、几何图案,可调节扩散范围、色彩强度并锁定种子。
70
- - **分部位界面透明度** — 主背景、侧边栏、卡片面板(含对话框周围的选项框/菜单)、输入框与控件(发送框、Cordis 插件面板)、设置面板与壁纸各自独立滑块。
71
- - **分部位界面模糊度** — 每个界面部位可独立调整毛玻璃 `backdrop-filter` 模糊(0–60 px),并通过宿主的稳定选择器为发送框与 Cordis 面板提供真实背景模糊。
72
- - **对话视图卡片** — 消息列表自动包裹为半透明卡片,轨迹页可整页调节透明度与模糊,让壁纸从内容后方透出来。
73
- - **主题导出 / 导入** — 一键导出为自包含的 `dsh-background-by-model-theme.json`(配置 + 壁纸,视频以 data URL 内嵌),可随时导入还原。
74
- - **文件持久化** — 所有设置保存到文件系统 `~/.dsh/.dsh-background-by-model-data/`,不再依赖 `localStorage`。
75
- - **中英双语** — 完整的中英文界面,自动跟随语言设置。
76
- - **主题守护** — 宿主重置主题后自动重新激活自定义主题。
77
-
78
- ## 近期优化
79
-
80
- ### v0.2.4
81
-
82
- - **修复 dsh 0.1.5 持久化失效** — 主题/背景图的 RPC 通道改为在插件自身 `webServer` 作用域内直接注册为 prefix 路由(保留 Host/Origin 鉴权围墙),不再经由 `connection.rpc.handle`(其 effect 绑定到 connection 服务上下文,导致部分 0.1.5 宿主挂载失败)。此前请求落到 SPA 兜底并返回 405、从未写入磁盘的设置,现可正常持久化(0.1.2 与 0.1.5 均已验证)。
83
- - **声明宿主版本兼容** — 新增 `engines.dsh: ">=0.1.2-rc.1"`,声明插件所支持的 DeepSeek Harness 宿主版本范围。
84
- - **修复深色徽章令牌(issue #9)** — 深色预设下 `*-tertiary` 徽章表面(轨迹工具/上下文徽章、连接胶囊、计划 chip)与背景色过于接近,浅色标签文字不可读;现已对齐原生深色 800/900 阶令牌,亮色文字落在正确深色徽章上。
85
-
86
- ### v0.2.3
87
-
88
- - **宽表格收进文本栏** — 当对话区透明度/模糊度被调大(边框因此可见)时,宽 Markdown 表格被收回文本栏宽度内、在边框处横向滚动,不再向右溢出裁切;边框不可见时不干预,保留 DSH 官方默认外扩行为。
89
- - **网络 URL 壁纸** — 填入图片网址即可直接作为壁纸:插件下载图片并写入本地壁纸文件(替换原有持久化图片)。由于远程来源最终落到本地持久化文件,主题导出/导入无需任何额外适配:导出主题时内嵌图片数据,接收方无需访问原始网址也能还原。
90
- - **深色主题下编辑器确认按钮清晰可见** — 背景编辑器「确认」按钮改为与「取消/重置」一致的实色表面 + 清晰边框 + 可读文字,不再使用半透明的主题色淡染,深色主题下不再看不清。
91
- - **维护性清理** — 移除 `dsh.client.inject` 中未使用的 `@deepseek-ai/dsh-client-ui-renderer` 条目,并将插件自有 RPC 错误码对齐新版 harness 的命名规范。
92
-
93
- ## 安装
94
-
95
- ### 方式一:npm 安装(推荐)
96
-
97
- ```sh
98
- dsh plugin --profile web add github:HarmlessFunny/dsh-background-by-model
99
- # 若已发布到 registry:
100
- dsh plugin --profile web add dsh-background-by-model
101
- ```
102
-
103
- 然后启动:
104
-
105
- ```sh
106
- dsh web
107
- ```
108
-
109
- 插件会出现在设置面板的 **“主题”** 分类中。
110
-
111
- ### 方式二:npx(无需全局安装)
112
-
113
- ```sh
114
- npx @deepseek-ai/dsh plugin --profile web add github:HarmlessFunny/dsh-background-by-model
115
- npx @deepseek-ai/dsh web
116
- ```
117
-
118
- ### 方式三:本地构建(开发)
119
-
120
- `lib/` 目录已提交,安装后无需构建。修改 `src/` 后重新构建:
121
-
122
- ```sh
123
- git clone https://github.com/HarmlessFunny/dsh-background-by-model.git
124
- cd dsh-background-by-model
125
- pnpm install
126
- pnpm run bundle
127
- pnpm dsh plugin --profile web add "dsh-background-by-model"
128
- pnpm dsh web
129
- ```
130
-
131
- ## 兼容性
132
-
133
- - **[`dsh web`](https://github.com/deepseek-ai/deepseek-harness)** — 同时兼容 npm 发布版与新版源码构建。插件会自动检测宿主携带的客户端模块表(新版 `@deepseek-ai/dsh-client-store` 或旧版 `@deepseek-ai/dsh-client-runtime`),并在运行时据此解析 `defineStore`。
134
- - **[deepseek-harness-desktop](https://github.com/anywhere-labs/deepseek-harness-desktop)** — 支持
135
-
136
- ## Star History
137
-
138
- [![Star History Chart](https://api.star-history.com/chart?repos=HarmlessFunny/dsh-background-by-model&type=timeline&legend=bottom-right)](https://www.star-history.com/?repos=HarmlessFunny%2Fdsh-background-by-model&type=timeline&legend=bottom-right)
139
-
140
- ## 许可
141
-
142
- MIT
1
+ # dsh-background-by-model
2
+
3
+ <p align="center">
4
+ <a href="https://github.com/HarmlessFunny/dsh-background-by-model"><img src="https://img.shields.io/github/stars/HarmlessFunny/dsh-background-by-model?style=social" alt="GitHub stars"></a>
5
+ <a href="https://www.npmjs.com/package/dsh-background-by-model"><img src="https://img.shields.io/npm/v/dsh-background-by-model" alt="npm version"></a>
6
+ </p>
7
+
8
+ [English](README.md) | 中文
9
+
10
+ > 派生自 [`Tkingxiao/dsh-any-background`](https://github.com/Tkingxiao/dsh-any-background),并重命名为 `dsh-background-by-model`。
11
+
12
+ 一个 **DeepSeek Harness** 外观插件,核心是一份**有序的模型规则列表**:每条规则自带壁纸、主题色、布局模式、取景、透明度与模糊度,切换模型即切换背景。
13
+
14
+ > **v0.3.0 是破坏性更新**:视频背景、生成式背景与全局主题色均已被移除。详见[从 0.2.x 升级](#从-02x-升级)。
15
+
16
+ ---
17
+
18
+ ## 模型规则如何工作
19
+
20
+ 一条规则 = 一个**匹配串** + **一整套背景外观**。切换模型时,插件读取当前会话的模型名,自上而下扫描列表,使用**第一条**“匹配串出现在模型名里”的规则(忽略大小写)。如果一条都没命中,就使用**第 1 条**——规则 1 同时兼任兜底。
21
+
22
+ 示例列表:
23
+
24
+ | # | 匹配串 | 背景图 |
25
+ | --- | --- | --- |
26
+ | 1 | `deepseek` | 图 1 |
27
+ | 2 | `flash` | 图 2 |
28
+ | 3 | `glm` | 图 3 |
29
+
30
+ | 当前模型 | 结果 | 原因 |
31
+ | --- | --- | --- |
32
+ | `DeepSeek-Flash` | 规则 1 → 图 1 | `deepseek` 先命中 |
33
+ | `GLM-Flash` | 规则 2 → 图 2 | `flash` 比 `glm` 更靠前 |
34
+ | `Qwen-Flash` | 规则 2 → 图 2 | `flash` 命中 |
35
+ | `GLM-Turbo` | 规则 3 → 图 3 | 只有 `glm` 命中 |
36
+ | `Kimi-K3` | 兜底 → 规则 1 → 图 1 | 都没有命中 |
37
+
38
+ 说明:
39
+
40
+ - **顺序即优先级。** 先命中者胜,而不是最精确者胜——需要时拖动规则调整顺序。
41
+ - **匹配串留空**表示该规则不参与匹配、只作为兜底。因此单规则 + 空匹配串就是“一张图到处用”。
42
+ - 匹配串会同时比对 **provider、模型 id 与模型显示名**三者拼接出的字符串,三者任一都能用来选中规则。
43
+ - 当前模型取自**本会话的持久化模型选择**(`modelSelection` 投影,和输入框上的模型选择器读的是同一份值),因此会话内切换模型会立即生效。「模型背景」页顶部会显示当前读到的是哪个模型;如果只读到宿主全局默认模型(不是本会话的选择),会额外标注 **宿主默认**。
44
+
45
+ > 提醒:上面这张示例表里**没有 `kimi`**,所以切到 Kimi 会走到兜底 = 规则 1 = 图 1,看起来像“没反应”。想给 Kimi 单独配图,就加一条匹配串为 `kimi` 的规则。
46
+
47
+ ## 截图
48
+
49
+ 同一套界面、同一份配置,只因为当前模型不同:
50
+
51
+ <p align="center">
52
+ <img src="example_img/wallpaper-deepseek.webp" alt="DeepSeek 下的外观" width="880">
53
+ <br/>
54
+ <em>DeepSeek V4.1 Flash · 命中匹配串含 <code>deepseek</code> 的规则:浅色壁纸 + 与图相配的主题色</em>
55
+ </p>
56
+
57
+ <p align="center">
58
+ <img src="example_img/wallpaper-kimi.webp" alt="Kimi 下的外观" width="880">
59
+ <br/>
60
+ <em>Kimi K2.7 Code · 命中匹配串含 <code>kimi</code> 的规则:深色壁纸 + 深色主题,整个界面跟着换肤</em>
61
+ </p>
62
+
63
+ <p align="center">
64
+ <img src="example_img/rule-editor.webp" alt="单条规则的编辑器" width="660">
65
+ <br/>
66
+ <em>「模型背景」页的单条规则 · 图片、布局模式、主题色(色轮 / HSL / RGB / 从本图提取 / 从图片取色)、背景透明度与背景模糊度,都是这一条规则自己的属性</em>
67
+ </p>
68
+
69
+ <p align="center">
70
+ <sub>示例壁纸素材来源于 bilibili <a href="https://space.bilibili.com/4168597">ZipZipPipe</a></sub>
71
+ </p>
72
+
73
+ ## 功能特性
74
+
75
+ ### 模型规则
76
+
77
+ - **有序规则列表** — 可新增、删除、拖动排序并命名规则;每条规则用自己的匹配串参与匹配,先命中者生效,规则 1 兼任兜底。
78
+ - **实时状态提示** — 「模型背景」页顶部会显示当前状态,例如「当前模型 deepseek-flash → 命中 · 规则 1」,方便当场验证规则写对没有;检测不到当前模型时会给出提示。
79
+ - **外观随规则走** — 壁纸、主题色、布局模式、取景、透明度与模糊度都是每条规则自己的属性;除「界面」页外没有任何全局外观项。
80
+ - **导入 / 导出** — 一键把**每一条规则连同它的图片**导出为 `dsh-background-by-model-theme.json`(版本 3,图片以 base64 内联),可随时导入还原。
81
+ - **文件持久化** — 所有设置与图片保存到文件系统 `~/.dsh/.dsh-background-by-model-data/`,不依赖 `localStorage`。
82
+ - **自动迁移** — 旧版单壁纸配置在首次读取时自动升级,详见[从 0.2.x 升级](#从-02x-升级)。
83
+ - **中英双语** — 完整的中英文界面,自动跟随语言设置。
84
+ - **主题守护** — 宿主重置主题后自动重新激活自定义主题。
85
+
86
+ ### 每条规则自带的外观
87
+
88
+ - **背景图片** — 上传任意图片作为该规则的壁纸,每条规则一张独立图片文件。
89
+ - **主题色** — HSL 色轮 + 数值输入 + 灵感色板,支持「从本图提取」与吸管「从图片取色」;不设主题色时跟随系统主题。实时生成整套 CSS 设计令牌。
90
+ - **布局模式** — 适应 / 填充 / 拉伸 / 平铺 / 居中。
91
+ - **取景** — 在视口比例的编辑器中拖动平移、滚轮缩放;**仅「适应」模式下可编辑**,提交的构图在窗口缩放、跨屏移动后保持一致。
92
+ - **背景透明度** — `0–100%`,作用于该规则的壁纸层。
93
+ - **背景模糊** — `0–60 px`,作用于壁纸层。
94
+
95
+ ### 全局设置(「界面」页)
96
+
97
+ - **分部位界面透明度** — 主背景、侧边栏、卡片面板(含对话框周围的选项框/菜单)、输入框与控件(发送框、Cordis 插件面板)、设置面板与对话文本框各自独立滑块。
98
+ - **分部位界面模糊度** — 每个界面部位可独立调整毛玻璃 `backdrop-filter` 模糊(`0–60 px`),并通过宿主的稳定选择器为发送框与 Cordis 面板提供真实背景模糊。
99
+ - **对话与轨迹页** — 消息列表自动包裹为半透明卡片,轨迹页可整页调节透明度与模糊,让壁纸从内容后方透出来。
100
+
101
+ ## 设置界面
102
+
103
+ 设置的 **「主题」** 分类下现在有三个选项卡:
104
+
105
+ | 选项卡 | 作用范围 | 内容 |
106
+ | --- | --- | --- |
107
+ | **界面** | 全局,所有模型共用 | 主背景、侧边栏、卡片面板、输入框与控件、设置面板、对话文本框、轨迹页的透明度与模糊度 |
108
+ | **模型背景** | 每条规则 | 有序规则列表、顶部实时状态,以及每条规则的壁纸、主题色、布局模式、取景、透明度与模糊度 |
109
+ | **配置** | — | 导入 / 导出整套规则(`dsh-background-by-model-theme.json`) |
110
+
111
+ 原先的 **「色彩」** 选项卡已删除——主题色改为每条规则自己的属性;原 **「背景」** 选项卡已改造成 **「模型背景」**。
112
+
113
+ ## 存储位置与迁移
114
+
115
+ 数据目录:`~/.dsh/.dsh-background-by-model-data/`(Windows:`C:\Users\<你>\.dsh\.dsh-background-by-model-data\`)
116
+
117
+ | 文件 | 内容 |
118
+ | --- | --- |
119
+ | `theme-config.json` | 规则列表 + 全局「界面」设置 |
120
+ | `modelbg-<slot>` | 每条规则的图片,保存为原始字节,无扩展名 |
121
+
122
+ ### 从 0.2.x 升级
123
+
124
+ v0.3.0 **移除**了三项功能:
125
+
126
+ - **视频背景** — 不再支持。
127
+ - **生成式背景** — 网格渐变(mesh)、Shader、几何图案(pattern)均已移除。
128
+ - **全局主题色** — 改为每条规则自带。
129
+
130
+ 除此之外升级是自动且无损的:首次读取时,如果发现旧格式配置(没有 `rules` 数组),插件会把旧的单张 `wallpaper.jpg` 变成**规则 1**,匹配串留空(即纯兜底),并继承旧的主题色、布局模式、透明度、模糊与取景;同时清理旧版遗留的视频文件。老用户升级后外观保持不变——只有想按模型区分背景时,才需要自己再加规则。
131
+
132
+ ## 安装
133
+
134
+ ### 方式一:npm 安装(推荐)
135
+
136
+ ```sh
137
+ dsh plugin --profile web add dsh-background-by-model
138
+ # 或者直接从仓库安装:
139
+ dsh plugin --profile web add github:HarmlessFunny/dsh-background-by-model
140
+ ```
141
+
142
+ 装完需要重启 `dsh web`。
143
+
144
+ 插件会出现在设置面板的 **“主题”** 分类中。
145
+
146
+ ### 方式二:npx(无需全局安装)
147
+
148
+ ```sh
149
+ npx @deepseek-ai/dsh plugin --profile web add github:HarmlessFunny/dsh-background-by-model
150
+ npx @deepseek-ai/dsh web
151
+ ```
152
+
153
+ ### 方式三:本地构建(开发)
154
+
155
+ `lib/` 目录已提交,安装后无需构建。修改 `src/` 后重新构建:
156
+
157
+ ```sh
158
+ git clone https://github.com/HarmlessFunny/dsh-background-by-model.git
159
+ cd dsh-background-by-model
160
+ pnpm install
161
+ pnpm run bundle # 产物在 lib/
162
+ pnpm run typecheck
163
+ ```
164
+
165
+ 本地开发挂载方式:在 profile 的 `package.json` 里加 `link:` 依赖并把它加进 `dsh.profile.bundles`:
166
+
167
+ ```jsonc
168
+ {
169
+ "dependencies": {
170
+ "dsh-background-by-model": "link:E:/DeepSeek/dsh-background-by-model"
171
+ },
172
+ "dsh": {
173
+ "profile": {
174
+ "bundles": ["dsh-background-by-model"]
175
+ }
176
+ }
177
+ }
178
+ ```
179
+
180
+ 改完 `src/` 必须重新执行 `pnpm run bundle` 才会生效——挂载的 profile 加载的是 `lib/`。
181
+
182
+ ## 兼容性
183
+
184
+ - **[`dsh web`](https://github.com/deepseek-ai/deepseek-harness)** — 同时兼容 npm 发布版与新版源码构建。插件会自动检测宿主携带的客户端模块表(新版 `@deepseek-ai/dsh-client-store` 或旧版 `@deepseek-ai/dsh-client-runtime`),并在运行时据此解析 `defineStore`。
185
+ - **[deepseek-harness-desktop](https://github.com/anywhere-labs/deepseek-harness-desktop)** — 支持
186
+
187
+ ## 常见问题
188
+
189
+ **所有模型看起来都一样,为什么?**
190
+ 多半是第 1 条规则的匹配串是空的,它成了纯兜底、把整个列表兜住了。给规则 1 填一个匹配串,或把更具体的规则加到兜底规则**上面**。
191
+
192
+ **`GLM-Flash` 命中了不是我想用的规则。**
193
+ 匹配是先命中者胜,而不是最精确者胜。把更具体的规则往上拖,或调整顺序让你想要的规则排在前面。
194
+
195
+ **图片存在哪?**
196
+ 在 `~/.dsh/.dsh-background-by-model-data/`:每条规则一个 `modelbg-<slot>` 文件,外加 `theme-config.json`。
197
+
198
+ **能分享整套配置吗?**
199
+ 可以,在 **「配置」** 页导出即可;导出的 JSON 会把每条规则的图片内联进去。
200
+
201
+ **支持视频或生成式背景吗?**
202
+ 不支持。两者都在 0.3.0 中移除,每条规则使用一张静态图片。
203
+
204
+ ## 近期优化
205
+
206
+ ### v0.3.1
207
+
208
+ - **文档与截图更新** — 截图换成当前的三选项卡界面:同一份配置在 DeepSeek 与 Kimi 下的两种外观,外加单条规则的编辑器。旧的七张图(还带着已删除的「色彩」选项卡与旧「背景」页)已删除,图片体积从 3.6 MB 降到 220 KB。
209
+ - **npm 包内附截图** — `example_img/` 现在包含在发布包里,npm 页面上的 README 不再有裂图。
210
+ - **素材致谢** — 示例壁纸素材来源于 bilibili [ZipZipPipe](https://space.bilibili.com/4168597)。
211
+
212
+ ### v0.3.0
213
+
214
+ - **模型规则取代单张全局壁纸** — 背景改由有序规则列表驱动,每条规则用匹配串比对当前会话的模型名来选中(先命中者胜,规则 1 兜底);匹配串会同时比对 provider、模型 id 与显示名三者。
215
+ - **外观从全局下放到每条规则** — 壁纸、主题色、布局模式、取景、背景透明度与背景模糊都成为规则自身的属性,不同模型可以有完全不同的外观。
216
+ - **设置选项卡重构** — 现在是 **「界面」**(全局)、**「模型背景」**(规则列表)与 **「配置」**(导入/导出);**「色彩」** 选项卡随全局主题色一并删除,原 **「背景」** 选项卡改造成 **「模型背景」**。
217
+ - **实时状态提示** — 「模型背景」页会显示当前模型及其命中的规则(例如「当前模型 deepseek-flash → 命中 · 规则 1」),检测不到时给出提示。
218
+ - **导出格式 v3** — `dsh-background-by-model-theme.json` 现在包含全部规则配置**以及**每条规则的图片(base64 内联)。
219
+ - **破坏性移除** — 视频背景、生成式背景(网格渐变 / Shader / 几何图案)与全局主题色均已移除。
220
+ - **旧配置自动迁移** — 0.3.0 之前的配置会变成匹配串留空的规则 1 并继承旧外观,旧版遗留的视频文件会被清理。
221
+ - **切换更顺,并带淡入淡出** — 壁纸改用 object URL 绘制,同一张图只解码一次,不再每次切换重新解码;规则切换现在是 320 ms 交叉淡入(新图在旧图上方淡入,底层始终保持不透明,中途不会发亮)。同时移除了拖动滑块时的低清壁纸降级:它会在每次壁纸变化时对整张大图额外解码并缩放,而且它换上的低清图下一帧就被重新覆盖、实际并未生效。
222
+ - **修复“切换模型没反应”** — 三处叠加:① 旧实现读取的 `ctx.modelDirectories` 在插件上下文里不可见(它注册在 ui-model-selection 自己的作用域),于是悄悄退回了宿主全局默认模型;② 本插件的客户端 bundle **早于** `api-session-controller` 加载,`ctx.get('sessions')` 在 `apply()` 时通常还不存在,旧代码在这一步直接放弃、永不重试(这是“完全没反应”的直接原因);③ 状态行拿一个全局默认值冒充了本会话模型。现在改读**本会话自己的持久化模型选择**(`ctx.sessions.binding(id).session.projections.faceOf('modelSelection')`,即模型选择器读的同一份值),以 400 ms 间隔等待 `sessions` 服务出现(最多 2 分钟),带 1.5 秒兜底轮询与会话切换重绑定;只拿到宿主默认值时标注 **宿主默认**,并且状态行会指出是哪一环失败(未挂载 / 无当前会话 / 无投影投影为空)。
223
+
224
+ ### v0.2.4
225
+
226
+ - **修复 dsh 0.1.5 持久化失效** — 主题/背景图的 RPC 通道改为在插件自身 `webServer` 作用域内直接注册为 prefix 路由(保留 Host/Origin 鉴权围墙),不再经由 `connection.rpc.handle`(其 effect 绑定到 connection 服务上下文,导致部分 0.1.5 宿主挂载失败)。此前请求落到 SPA 兜底并返回 405、从未写入磁盘的设置,现可正常持久化(0.1.2 与 0.1.5 均已验证)。
227
+ - **声明宿主版本兼容** — 新增 `engines.dsh: ">=0.1.2-rc.1"`,声明插件所支持的 DeepSeek Harness 宿主版本范围。
228
+ - **修复深色徽章令牌(issue #9)** — 深色预设下 `*-tertiary` 徽章表面(轨迹工具/上下文徽章、连接胶囊、计划 chip)与背景色过于接近,浅色标签文字不可读;现已对齐原生深色 800/900 阶令牌,亮色文字落在正确深色徽章上。
229
+
230
+ ## Star History
231
+
232
+ [![Star History Chart](https://api.star-history.com/chart?repos=HarmlessFunny/dsh-background-by-model&type=timeline&legend=bottom-right)](https://www.star-history.com/?repos=HarmlessFunny%2Fdsh-background-by-model&type=timeline&legend=bottom-right)
233
+
234
+ ## 许可
235
+
236
+ MIT
Binary file
Binary file