Skip to content

Releases

v0.1.3 — 打开插件就能配置(插件页直接出配置区)

Choose a tag to compare

@WONGIII WONGIII released this 03 Oct 17:02

v0.1.3 — 打开插件就能配置,不用再点进「包含的组件」

之前的路径是:插件页 → 点开插件 → 再点「包含的组件」里那一行带 › 的标题 → 才看到两个输入框。多一步。

插件页其实支持包级别的配置区:plugins.bundle.config 槽位,key = 包名,渲染位置就在插件标题下方。
这一版把同一份表单(同一个 SettingsFormModel / 同一个 configForms scope)同时注册到两个槽位:

  • plugins.bundle.config,key @dsh-external/dsh-turn-status-text → 插件自己的页面,标题下直接配置;
  • plugins.row.config,key @dsh-external/dsh-turn-status-text#dsh-turn-status-text → 那一行也保留自己的页面(给需要从组件视角进入的人)。

两处都以 view: 'page' 渲染,仍然由 configForms.whileServed([NS]) 守卫;whileServed 的注册回调现在返回一个把两个槽位一起注销的 disposer。
自检相应加强:断言两个槽位、两个 key、每个槽位每次激活只注入一次、两处共用同一个组件。

实测(headless Chromium,真实 UI):打开 @dsh-external/dsh-turn-status-text 页面后

{"configSection":true,"labels":["自定义文字","文字颜色"],"rowDetailOpen":false,"version":"v0.1.3","fieldsInsideOwnPage":true}

rowDetailOpen:false 说明没有进入「包含的组件」;截图见 docs/plugins-config.png。

MIT © 2026 WONGIII

v0.1.2 — 插件页里真的能配置了(入口挂到 plugins.row.config)

Choose a tag to compare

@WONGIII WONGIII released this 29 Sep 15:59

v0.1.2 — 插件页里真的能配置了

v0.1.1 把设置搬到了「插件」页,但入口没挂对:插件页只给注册过 plugins.row.config 的行渲染那个带 › 的「配置」标题
(ui-plugin-manager 的 rowConfigKey() = <包名>#<row id>,configure.has(row) 决定是否可点)。
v0.1.1 注册的是 plugins.item(那是「官方」分组的位置),于是这一行在插件页里是纯文本、没有入口 —— 你们看到的就是这个。

这一版:

  • 注册 plugins.row.config,key = @dsh-external/dsh-turn-status-text#dsh-turn-status-text,仍然用 configForms.whileServed([NS]) 守卫;
  • 组件同时处理平台给的两种 view:列表里的摘要行(summary)与整页(page);
  • 设置值仍然就是这一行 Config 上的两个 volatile() 字段,改动由 Host 落到当前 profile 的 cordis.patch.yml 里那一行的 config: 段。

实测(真实桌面端 0.2.0-rc.2,headless Chromium 走真实 UI):

  1. 侧栏 插件 → 点开 @dsh-external/dsh-turn-status-text;
  2. 该行标题变成按钮:aria-label="配置 @dsh-external/dsh-turn-status-text";
  3. 点开 → 渲染 自定义文字 / 文字颜色 两个字段(docs/plugins-config.png);
  4. 填 宝宝正在努力思考… {duration} + #ff5500 → 保存;
  5. 回会话读状态行:
{"found":true,"rowClass":"xz4KEq_running","text":"宝宝正在努力思考…宝宝正在努力思考… 6分43秒",
 "rowColor":"rgb(255, 85, 0)","deepDivingVar":"#ff5500","shimmerVar":"#ff5500"}

Host 侧同时可见:node tools/verify-live.mjs → OK: dsh-turn-status-text is served -> {"text":"宝宝正在努力思考… {duration}","color":"#ff5500"}。

自检也补上了这一环:断言注册进 plugins.row.config、key 是 <包名>#<row id>、摘要/整页两种 view、以及表单状态与动作的注入。

MIT © 2026 WONGIII

v0.1.1 — 设置改到「插件」页:按 0.2.0-rc 的真实配置契约重写

Choose a tag to compare

@WONGIII WONGIII released this 29 Sep 14:53

v0.1.1 — 修好「插件页配置」这条链路

一次对运行中部署(DSH 0.2.0-rc.2)的独立复核发现:v0.1.0 的文字/颜色引擎是有效的(实测通过),但设置卡片指向了一个在新版里已经不存在的位置——
settings.plugin.item 槽位与 settingsScope 服务都没了,settings.register() 也不在设置服务上。于是那次发布里"卡片"永远不可能出现。

这一版按新版真实契约重写设置那一半:

  • 设置项就是这一行的 Config:cordis.patch.yml 里 - id: dsh-turn-status-text 这个 row id 就是设置条目的 key;
    两个字段声明为 volatile(),所以能在插件页里改、保存后立即生效、不用重启也不用刷新。
  • 卡片改用平台自己的设置 UI:SettingsFormModel + SettingsForm + SettingsValueField + settingsTextField(@deepseek-ai/dsh-client-ui-primitives),
    注册进插件页的 plugins.item 卡片列表,并用 configForms.whileServed([NS]) 守卫:没组合这一行的部署里看不到任何痕迹。
    自己写的卡片 CSS、取色盘、预览行、写入管线全部删除。
  • 读写走 ctx.configForms.get('dsh-turn-status-text')(与部署自带设置页同一个 ConfigFormController:getSnapshot/subscribe/set/mutate),颜色规则由它的订阅回调重新同步。
  • 配置入口:侧栏 插件 页 →(已安装)→ 选中本插件 → 配置 →「状态文案」。(设置页里那套「插件 → 可配置」在 0.2.0-rc 已经没有了。)
  • 自检重写:按真实形状 mock(ConfigForms 的 get/whileServed、平台表单模型、plugins.item 注册),并把"编辑 → 保存 → 落到设置 → 渲染到状态行"整条链路跑通。
  • 修正两处不实描述:流光的着色来自 --dsw-alias-label-shimmer(由 .X_running 从 --dsw-alias-label-deep-diving-shimmer 映射),
    所以规则里两个自定义属性是必需的;卡片也不再声称有取色盘、预览行或平台图标。

实测(真实桌面端、改写后的 bundle):状态行读数 硬邦邦思考中… 10分3秒,rowColor rgb(255, 85, 0),两个着色变量均为 #ff5500。

兼容性:卡片按 0.2.0-rc 契约实现;0.1.7-rc 及更早的部署仍然支持文案覆盖与上色两条路径(那时本来也没有这套设置 API)。

MIT © 2026 WONGIII

v0.1.0 — 「深度求索中,用时 ···」改成你自己的文字和颜色

Choose a tag to compare

@WONGIII WONGIII released this 29 Sep 14:12

dsh-turn-status-text v0.1.0

把聊天区那行 「深度求索中,用时 12秒 ···」 换成你自己写的文字和你自己选的颜色,在 设置 → 插件 → 可配置 里改,保存即生效。

能改什么

  • 文字:任意文字;写 {duration} 占位符可以保留实时用时(宝宝正在努力思考… {duration} → 宝宝正在努力思考… 12秒)。
  • 颜色:调色盘或 #4d6bfe / #abc。整行统一上色——文字、左侧小鲸鱼、以及文字的流光渐变(TextShimmer 用 currentColor 画,所以流光继续跑)。
  • 恢复默认:每个字段一个,清空保存即回到部署原文案 / 主题原色。

只改「进行中」那行;一轮结束后的「已完成,用时 …」保持原样。设置存在 $DSH_HOME/settings.yaml 的 turn-status-text: 段,跨浏览器、重启后仍在;插件不联网。

安装

dsh plugin --profile <你的 profile> add github:WONGIII/dsh-turn-status-text

桌面端在侧栏 插件 页里填同一个 GitHub 地址(桌面端 profile 由 Electron 应用独占管理,CLI 会拒绝)。

装完重启一次 DSH。 插件行是 host 侧 Loader 行,浏览器半侧由它对外提供,需要重新组合配置才会挂上;只刷新页面不够。

兼容性

部署 文案键 上色锚点
0.2.0-rc(当前桌面端) chat.deepDiving / chat.deepDivingFor [data-chat-running]
0.1.7-rc message.turnProcess.deepDivingFor [data-turn-process]
0.1.7 之前 chat.deepDiving .<hash>_turnStatus(运行时发现)

验证

  • node tools/selfcheck.mjs:假 DOM + 与线上同语义的 LocaleRuntime/SettingsScope 跑真实 bundle,覆盖文案优先级、{duration} 填充与占位符收敛、颜色归一化、注入规则的精确 CSS 文本、页面全局覆盖与回退、非法颜色不写盘、两字段原子写、卸载清理。
  • 真实桌面端实测(tools/live-probe.mjs,headless Chromium + CDP 读真实 DOM):未设覆盖时 text:"深度求索中,用时 6分29秒 ···"、rowColor:"color(srgb 0.20549 0.367451 0.730196)";打开覆盖后 text:"硬邦邦思考中…"、rowColor:"rgb(255, 85, 0)",--dsw-alias-label-deep-diving 与 --dsw-alias-label-shimmer 同为 #ff5500。截图见 docs/before.png / docs/after.png。
  • GitHub Actions 每次推送跑 tools/*.mjs 语法检查、自检与 host 半侧加载检查。

MIT © 2026 WONGIII