Files
dsh-desktop/patches/dsh-client-ui-settings-general@0.1.7-alpha.2.patch
zp-home 69982afb28 feat(beta): beta 通道切到 dsh 0.1.7-alpha.2 内核
把 beta 与 market 从 0.1.7-alpha.1 升到 0.1.7-alpha.2,重建 vendor
运行时、前移 patch、重写 resolutions。stable 的产品内核保持
0.1.5-rc.2 不变。alpha.2 上游没有增删包(仍是 309 个 tarball)。

vendor 与依赖
- vendor/dsh-runtime/0.1.7-alpha.2/ 由 scripts/sync-vendored-runtime.mjs
  --write --channel beta 生成,打包前先跑了上游 pnpm run clean 再从零
  构建(原因见下方 subprocess-local)。
- 移除 0.1.7-alpha.1 目录;0.1.6-alpha.2 目录 #1136 的提交说明写了移除,
  但实际仍被跟踪且已无任何引用,本提交一并删掉。
- root resolutions 按通道重写:stable 的 rc.2 条目原样保留,beta 的
  alpha.1 条目全部换成 alpha.2。
- 上游把内部 DSH 依赖改为精确版本、vendor 依赖改为 ~ 范围,并抬了一批
  cordis 框架包。.yarnrc.yml 的 npmPreapprovedPackages 追加:cosmokit
  1.8.5、cordis 4.0.4、cordis-plugin-group 1.0.4 / include 1.0.9 /
  loader 1.0.5 / timer 1.1.6、schemastery 3.18.4(旧条目保留给 stable)。
- beta / market / next 的 package.json 同步抬 cordis 4.0.4 与上述插件,
  schemastery ^3.18.4;否则 workspace 提供的 cordis-plugin-group 1.0.3
  满足不了 alpha.2 包要求的 ~1.0.4。
- yarn.lock 是本仓库唯一一份,next 的 @deepseek-ai/dsh* 依赖号与
  upstream-reference.json 也在本提交里跟到 alpha.2;next 的源码改动在
  下一个提交。

patch 前移(17 → 17)
17 个 patch 全部改名到 @0.1.7-alpha.2,16 个内容不变、可原样打上。

dsh-subprocess-local 的 patch 改挂到 runner-launch-B2zsQ1Dz.js:
alpha.2 里这个 chunk 换了哈希,index.js 和 runner.js 都改从
B2zsQ1Dz 导入。旧名 DGV26RBf 之所以还能"打上",是因为本地上次构建
alpha.1 时留在 lib/ 的旧产物被 files 里的 lib/runner-*.js 一起打进了
tarball——patch 打在一个没人加载的文件上,Windows 的私有 runner 因此
拿不到 ELECTRON_RUN_AS_NODE,会以 GUI 模式拉起 Electron。beta 的
package.spec 里"starts the private runner in Electron Node mode"这条
用例抓到了它。修法:上游 clean 后重新构建打包(逐包比对确认除去这个
旧 chunk 外,其余差异只有 package.json 键序和三处 .d.ts 联合类型的
成员顺序),再把 patch 按新文件名重新生成。

测试与注释
- market 的 contracts.spec、stable 的 desktop-runtime-environment.spec
  里的 beta 版本号跟到 0.1.7-alpha.2。
- "Beta rides dsh 0.1.7-alpha.1" 一类描述通道当前版本的注释改成不带
  预发布号的 0.1.7;描述"alpha.1 删掉/改名了某 API"的历史注释保留。
2026-09-23 03:49:29 +08:00

49 lines
1.7 KiB
Diff

diff --git a/lib/client.js b/lib/client.js
index fc005c4..f44c61f 100644
--- a/lib/client.js
+++ b/lib/client.js
@@ -201,6 +201,32 @@ window.__ModuleLoader__.load({
* to the step, so a mounted-but-deciding step paints nothing here.
*/
const RECOVERY_CONFIRMATION_MS = 2e3;
+ /** Desktop-owned display glyph kept local until the upstream slot accepts icons. */
+ function IconDesktopSettings({ size = 16, className }) {
+ return (0, react_jsx_runtime.jsxs)("svg", {
+ width: size,
+ height: size,
+ viewBox: "0 0 16 16",
+ fill: "none",
+ xmlns: "http://www.w3.org/2000/svg",
+ className,
+ "aria-hidden": "true",
+ children: [(0, react_jsx_runtime.jsx)("rect", {
+ x: "1.5",
+ y: "2.5",
+ width: "13",
+ height: "9",
+ rx: "1.5",
+ stroke: "currentColor",
+ strokeWidth: "1.25"
+ }), (0, react_jsx_runtime.jsx)("path", {
+ d: "M5 14h6M8 11.5V14",
+ stroke: "currentColor",
+ strokeWidth: "1.25",
+ strokeLinecap: "round"
+ })]
+ });
+ }
/** Minimum visible time for the connecting pill; shorter attempts read as flicker. */
const CONNECTING_MIN_VISIBLE_MS = 800;
/** Nav glyph by section id; unknown ids fall back to the settings gear. */
@@ -225,6 +251,10 @@ window.__ModuleLoader__.load({
className: SettingsRoot_module_css_default.navIcon,
size: 16
});
+ if (id === "desktop") return (0, react_jsx_runtime.jsx)(IconDesktopSettings, {
+ className: SettingsRoot_module_css_default.navIcon,
+ size: 16
+ });
return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineMedium, {
className: SettingsRoot_module_css_default.navIcon,
size: 16