Releases: yannicksong0106/dsh-550c-boot
Release list
v0.3.2
v0.3.1
变更
- 只是版本号对齐:npm 上的 latest 已经是 0.3.1 —— 0.3.0 那次 PUT 被网络重置后进了 npm 的
暂存流程,随后一次发布把它提交上线,两个版本的代码完全相同。仓库版本随之对齐,免得
「仓库最新」和「npm 最新」对不上。
v0.3.0
变更
- 「检查更新」改成查 npm,优先国内源。原来查 GitHub Releases,实测这台机器上 npmmirror
160ms、registry.npmjs.org 2078ms(13 倍),所以宿主半边先打registry.npmmirror.com、
失败再退官方源,响应里带上来源(source: npmmirror | npmjs)让用户知道这份答案从哪来。
缓存 5 分钟;两个源都问不到时state: unknown并附上错误,不假装知道。
新增
- 直接提供更新服务:新增
POST /dsh-550c-boot/update/apply,宿主调 DSH CLI 执行
plugin --profile <当前 profile> add dsh-550c-boot@latest(唯一受支持的改 profile 方式),
把 CLI 输出原样回报,并提示重启生效。profile 名从DSH_PROFILE读。 - 桌面端走提示词:
dsh plugin硬编码拒绝desktop(profile.toLowerCase() === "desktop",
因为 Electron 应用独占管理它),所以 desktop profile 下不显示「立即更新」,而是给出
「在 设置 → 插件 里安装dsh-550c-boot@latest,然后重启」+ 复制包名按钮。 - 清单权限补上
web:http-route与network:npm-registry(此前只声明了web:index-inject等)。
v0.2.0
新增
- 设置里的「版本与更新」:DSH 自身没有插件更新入口,这一行向本机宿主查询 GitHub 上的最新发布。
请求走宿主半边的同源路由GET /dsh-550c-boot/update(页面 CSP 很紧,而宿主进程本来就管出网),
按下按钮才查、上游结果缓存 10 分钟;有新版本时给出安装包名与发布页,查不到就直说查不到。
宿主半边顺带用global注入行把运行版本交给页面;路由通过可选注入
(ctx.inject(['webServer'], …))注册 —— 没有 HTTP carrier 的 profile 照样有片头,只是这行少个按钮。
修复
- 不再借
dsh-web全家桶的data-dsh-boot-splash标记(维护者 review 指出,真机后果很重)。
那个名字不是豁免而是契约:全家桶会样式化它(pointer-events:none、z-index:9999、不透明底色、
自己的transition),它的 boot shield 还会找到并复用、约 1.2 秒后remove()。装全家桶的用户会
失去点击跳过、失去两段式交接、片头一秒出头被删。现在带自己的data-dsh-550c-boot,用标准的
aria-hidden="true"换同一条拖拽豁免;z-index/background/pointer-events/transition
显式声明在 document 级样式表里并带!important—— 文档树的普通声明本来就压过 shadow 里的:host。 - 0.1.4 给 shadow root 里的
#hud-top标data-window-drag是无效的(维护者 review 指出):
官方规则是html[data-platform=darwin] [data-window-drag]{-webkit-app-region:drag},与 shell 的
同步查询都在文档树里,看不见 shadow root 内的属性。改成一条 40px 的文档级拖拽带,并显式声明
-webkit-app-region:drag(Windows 也生效)。代价:这 40px 里的点击归窗口拖动,跳过按Esc。 - 去掉没有任何源码 import 的
ajv:本插件现在是零运行时依赖。 - 可复现的断言进仓:新增
scripts/test-host.mjs(宿主半边,纯 node,CI 硬门)与
scripts/harness/(浏览器套件:15 用例 / 54 断言,自动起静态服务器,拿不到真实页面时退回内置
兜底页,找不到浏览器则跳过)。此前这些断言都在 gitignore 的.verify/里,新克隆拿不到。
v0.1.4
修复
- macOS 三处收尾(此前只做了"不吞掉窗口拖拽"):
- HUD 让位常量从拍脑袋的
86px改成按 shell 自己数字推导的 76px(红绿灯 x=16 + shell 给它们
留的 52px 条宽 + 8px 呼吸位); - 全屏时让位塌成 0:macOS 全屏收红绿灯、Windows 全屏收 overlay 按钮,preload 用
html[data-fullscreen]报这件事;插件用MutationObserver盯这个属性并镜像到宿主元素,
所以片头正在放的时候切全屏也跟得上; - HUD 条带标
data-window-drag:这是官方 base.css 认的标记("被标记行的空白段可拖、
控件仍可点"),补上之后完整档片头期间窗口不再拖不动。
- HUD 让位常量从拍脑袋的
- darwin 上不再注入标题栏换色样式表:preload 的探针元素只在 win32 创建,那边没有可改的条带。
v0.1.3
修复
- 片头到对话页的交接改成两段式。原来整屏一次性 cross-fade,而片头结尾是一枚放大的高对比度
logo,那半秒里会有一枚灰色 logo 幽灵盖在已经加载好的对话页上(用真实时间的逐帧截图确认过)。
现在:内容先淡进片头自己的底色(--bg,由遮罩自己绘制)→ 一屏干净的黑 → 再淡出黑底露出对话页。
总时长 620ms(内容 200ms,黑底延迟 200ms 后 420ms 淡出)。
v0.1.2 — 标题栏条带透明化
变更
- 桌面标题栏条带改为透明:片头播放期间,右上角那几个原生按钮浮在动画上,不再压着一条
不透明的色带。做法是把 preload 探针元素的background-color设成transparent、符号色设成当前
配色 —— 探针这两个 computed 值就是setTitleBarOverlay({color, symbolColor})的来源。 - 两处只在真机暴露的坑修掉了:颜色必须写在探针元素自己身上(app 把 token 定义在
body上,
:root上的!important因"最近祖先"规则压不过它,整段片头条带都不变);读配色要等增强层样式表
挂上之后再读,否则静默落到兜底值。
v0.1.1 — macOS 窗口拖拽修复
修复:macOS 上片头播放期间窗口拖不动、双击缩放失效。
官方基础样式表把每个 body 直接子元素算成 -webkit-app-region: no-drag,铺满视口的遮罩会把整扇窗口从可拖拽区域里减掉。现在宿主元素带 data-dsh-boot-splash(dsh-web-all 全家桶豁免的标记之一),并自带一条 -webkit-app-region: initial !important,让元素退出该计算;点击 / Esc 跳过不受影响。
验证(.verify/run-harness.mjs 的 darwin 用例,真实 Chromium 的级联判定):
| 探针 | 值 |
|---|---|
appRegionWithoutGuard(对照) |
no-drag |
appRegionWithGuard |
none |
appRegionRestored |
none |
chromeAppRegion(官方 [data-window-drag] 行) |
drag |
overlayGoneAfterClick |
true |
另外 README 写明 dsh.engines.dsh 的 >=0.2.0-rc.1 是有意为之(只在 0.2.0-rc.1 上实测过)。
安装:dsh plugin --profile web add github:yannicksong0106/dsh-550c-boot
或 dsh plugin --profile web add https://github.com/yannicksong0106/dsh-550c-boot/releases/latest/download/dsh-550c-boot.tgz
v0.1.0 — 550C 开机动画
首发版本(v0.1.0)。
- 简易档 4 秒 / 完整档 16 秒,点击画面或 Esc 跳过,四套磷光配色
- 首帧由宿主半边注入:DSH 自带的 "HARNESS / Loading plugins…" 卡片不会露脸
- 桌面窗口的原生标题栏按钮收编成终端配色(让位 + 换色)
安装:dsh plugin --profile web add github:yannicksong0106/dsh-550c-boot
预构建附件 dsh-550c-boot.tgz 与仓库内容一致,可直接:
dsh plugin --profile web add https://github.com/yannicksong0106/dsh-550c-boot/releases/latest/download/dsh-550c-boot.tgz