Releases: VDERR/dsh-echocat-skill-panel
Release list
v5.1.3 —— 修复:横栏被压成细线 / 计数丢失标签
EchoCat Skill Panel 5.1.3 — 修复细线横栏与无标签数字
用户可见修复
- 新会话里横栏不再被宿主压缩成一条只有背景的细线。
- DSH 窗口缩窄后,四个统计项仍会显示“回合 / 用到 / 未用 / 调用”,不会只剩数字。
- 窄栏继续保持一行,右侧按钮不会折到第二行、重叠或越界。
- 宽度足够时仍显示完整统计名称和“背景自定义”文字按钮。
实现
- 为横栏外壳、横栏行和条本体设置 48px / 46px 的不可压缩最小高度。
- 窄栏改为左侧摘要弹性收缩、右侧统计与操作区按内容取自然宽度;最窄一档由装饰图标让位,而不是删除信息标签。
- 操作按钮组在所有宽度下都禁止换行。
- 紧凑断点调整为 1240px,覆盖 DSH 保存的自定义会话宽度,不再只按默认 composer 上限判断。
回归门
真实组件套入 DSH hero composer 结构,在八档宿主宽度上检查:外壳高度、四个统计标签可见性、单行布局、横向/纵向溢出、右侧重叠和整体越界。八档全部通过后才允许打包。
v5.1.2 —— 修复:横栏换行导致被裁切
EchoCat Skill Panel 5.1.2 — 修复新会话横栏换行与裁切
现象
新会话的输入框上方横栏看起来是全宽,但计数、摘要或操作按钮会被挤到第二行;宿主的 composer dock 按单行控件布局时,第二行会被裁掉,表现成文字只剩半截或界面没有随宽度自适应。
根因
5.1.1 修复了匿名容器查询,却只验证了 .sr-strip-shell 外框的宽度。真实横栏内部仍有两个冲突:
- 右半栏同时容纳四个计数、展开箭头、
背景自定义和其余操作按钮,固定内容总宽度超过了半栏。 .sr-strip-right与 640px 容器规则允许/强制换行,用第二行掩盖了宽度冲突。
所以旧的宽度契约可以 57/57 全绿,真实组件仍然是两行。
修复
- 横栏和右半栏始终保持单行,不再以换行处理冲突。
- 在宿主 936px composer 上限内,
背景自定义自动收成保留完整aria-label与悬停标题的图标按钮。 - 四个计数在常规宽度显示短标签;在宿主最窄两档只保留数值,完整标签仍保留在每个计数的
title与aria-label中。 - 收紧计数、按钮与间距,但保留摘要省略、中央 EchoCat 标志、四个计数和全部操作功能。
新回归门
新增真实 Chromium 测量 tools/check-strip-responsive.mjs,直接渲染插件自己的组件和最终样式,在宿主四档宽度下检查:
- 横栏只有一行;
- 横向、纵向均不溢出;
- 右半栏内部不重叠、不越界;
- 所有子项都留在横栏边界内。
这项检查在 5.1.1 上四档全部失败,在 5.1.2 上全部通过。
安装
解压后运行 安装.ps1,再从托盘完全退出并重新打开 DSH Desktop Beta。已保存的背景设置、本地图片与其他插件数据不受影响。
v5.1.0 —— 横栏图标显示/隐藏开关
EchoCat Skill Panel 5.1.0 — 横栏图标可以隐藏了
新增
- 「背景自定义」里多了一个「横栏图标」开关:显示 / 隐藏输入框上方横栏中间那只猫标。
- 隐藏后图标的位置会保留,横栏里的四个计数不会移位。横栏是三列布局(左结论 / 中间图标 / 右计数),中间那列是固定的 22px,靠它把结论居中。所以隐藏用的是
visibility而不是display:none—— 后者会把这一列收掉,每拨一次开关结论就横跳一次。实测:显示与隐藏两种状态下,结论的左边缘都是 905px。 - 设置面板里的实时预览也放了一只猫标,拨开关当场就能看到效果 —— 否则被控制的那只标在面板背后,拨了没有任何反应。
没有动的东西
按你的要求,没有破坏现有结构,也没有引入新组件:
- 开关复用上面「背景样式」那排按钮的同一套实现 —— 同
sr-bg-modes容器、同sr-btn按钮、同aria-pressed状态。测试逐字比对了两个表达式,确认构造完全一致,并且这些 class 在样式表里确实有规则(没有规则的新控件才会显得"贴上去的")。 - 新开关放进已有的
sr-bg-section、已有的fieldset(保存中会一起禁用),文案用已有的sr-bg-help。 - 设置存在同一个 IndexedDB 记录里,跟着「保存背景」一起生效 / 取消。
- 取值只有
show/hide两个,非法值一律回落成show;true/0这类"看起来像布尔"的值不会被误当成状态(有测试)。
顺手修掉的一个隐患
猫标原本定义在 panel.js 里。设置面板要用同一个标,而 panel.js 本来就 require('./background-panel.js') —— 反向引用会形成循环依赖。它当时恰好能跑,只是因为函数声明会提升;哪天改成 const 箭头函数就会断。所以把标提取成独立叶子模块 logo-mark.js,两边都引用它:把问题消掉,而不是依赖它碰巧不出事。
验证
- 断言从 1550 条增加到 1571 条,新增覆盖:设置默认值与两种合法值、非法值与"像布尔的值"的回落、CSS 里隐藏规则存在、以及隐藏没有把元素移出布局(明确断言不用
display:none)。 - 新断言是反向验证过的:把
visibility:hidden换成display:none后,两条断言立刻失败(529 → 527),确认它们真的能抓到那个错误,而不是摆设。 - 全部测试、浏览器门 14/14、十二个门全绿。
安装
dsh plugin --profile web add dsh-echocat-skill-panel装完重启 DSH Desktop Beta。已保存的背景设置和本地图片都不受影响。
v5.0.0 —— 改名:dsh-echocat-skill-panel
EchoCat Skill Panel 5.0.0 — 改名:dsh-echocat-skill-panel
这一版只做了一件事:改名。功能、界面、行为与 4.4.2 完全一致,没有任何新功能或修复。
为什么是 5.0.0 而不是 4.5.0
因为它换了一个 npm 包名。包名在 DSH 里不只是名字 —— 它同时是 Loader 条目名、vendor 目录名和客户端 bundle id,插件就是靠这一个字符串被解析的。所以:
- 这是另一个包,不是同一个包的升级;
- 版本号必须高于旧包,否则任何更新检查都会把它当成降级或是别的插件;
- 旧安装不是原地升级(见下)。
⚠️ 从 4.x 升级:必须重装,不能原地更新
插件身份变了,所以 vendor/echocat-skill-panel 和它对应的 junction 不会被新版本接管。旧目录、旧 junction、旧 bundles 条目三者必须一起清掉 —— 只留一个而目录已不存在,会让 profile 拼装失败、应用起不来。
安装.ps1 会自动清理这几个旧名字:echocat-skill-panel、echocat-skill-panel-3.0、echocat-skill-panel-2.0、EchoCat-skill-Panel-2.0、dsh-skill-report。
# 新名字
dsh plugin --profile web add dsh-echocat-skill-panel
npm install dsh-echocat-skill-panel旧包 echocat-skill-panel(以及更早的 echocat-skill-panel-3.0)不再发新版本,它们停在 4.4.2。
改了什么
| 旧 | 新 | |
|---|---|---|
| npm 包名 | echocat-skill-panel |
dsh-echocat-skill-panel |
| GitHub 仓库 | VDERR/echocat-skill-panel |
VDERR/dsh-echocat-skill-panel |
| 目录名 / Loader 条目 / bundle id | echocat-skill-panel |
dsh-echocat-skill-panel |
| 版本 | 4.4.2 | 5.0.0 |
仓库改过名,旧 GitHub 地址仍然有效(GitHub 自动重定向),老的 release 链接和 clone 地址不会失效。
你的设置不会丢
以下几处故意保留旧前缀,因为它们不是身份、而是存储结构:
echocat-skill-panel/sections—— 你展开了哪些区块echocat-skill-panel/prefs—— 筛选与排序偏好echocat-skill-panel/scroll—— 各表面的滚动位置- IndexedDB
echocat-skill-panel-appearance-v1—— 背景自定义的设置和你选的那张本地图片
跟着改名的话,这些数据不会报错、也不会消失,只是再也读不到 —— 表现就是设置全部回到默认、背景和图片不见了。所以它们保持原样,源代码里也写明了原因,避免下次改名再踩。
一个被自己抓住的 bug
改名脚本是逐行判定的,不是无脑全局替换,但仍然改坏了两处,都已修复:
安装.ps1里那份「要清理的旧包名」列表被改成了dsh-echocat-skill-panel-3.0—— 一个从未存在过的包。于是它会去清理不存在的目录,而真正的旧包永远不会被清理,正好触发上面那个"应用起不来"的场景。tools/check-identity.mjs里的旧名常量同样被改写,导致这条守卫在校验一个不存在的名字 —— 它对真正的残留报 clean。
第 2 条还暴露出一个更隐蔽的问题:新名字包含旧名字(dsh-echocat-skill-panel ⊃ echocat-skill-panel),所以任何子串扫描两个方向都会误判。守卫现在用负向后顾来区分,并把两处有意保留的旧名连带理由一起列出来 —— 而不是整文件跳过,因为跳过会让一个文件悄悄不再被检查。
验证
1550 条断言 + 浏览器门 14/14 + 十二个门全绿;身份守卫确认四处身份一致,且除了两条注明的例外,没有任何源文件还提到旧名字。
v4.4.2 —— 背景自定义:液态银蓝、六套预设、本机图片
EchoCat Skill Panel 4.4.2 — 背景自定义
新增功能
- 真实横栏与中心报告右上角增加“背景自定义”;宽屏显示文字,窄屏为带提示的图标。
- 六套低饱和预设,支持液态、柔和渐变、纯色和本地图片。
- 主色、辅助色、高光色、明暗、亮度、饱和度、对比、高光、柔化、遮罩、速度、形变与指针反馈均实际作用于背景;不适用的选项会隐藏。
- 图片支持选择、更换、移除、铺满裁切/完整显示/拉伸及位置。接受 JPG/PNG/WebP,上限 8 MB,在本机缩至长边 1920 像素以内,并单独保存在客户端数据库中,不上传。
- 设置跨本插件表面共享,刷新后保留;实时预览、取消与恢复默认明确分开,保存失败会提示。只限当前客户端,不宣称跨设备同步。
保留与验证
保留 4.3.1 连续液态表面、卡片层级、居中布局、滚动和技能业务。静态模式不持续渲染;隐藏、卸载和减少动态仍受支持。设置使用独立 IndexedDB 空间,不修改技能数据、宿主配置或凭据流程。
相关回归、设置边界测试和真实 React 组件后台离线浏览器验证;最终数字见交付说明。未安装到运行中的 DSH、未重启或操作用户桌面、未发布。真实 DSH 安装验收由用户完成。
v4.4.1 —— 背景自定义:液态银蓝,六套预设,本机图片
EchoCat Skill Panel 4.4.0 — 背景自定义
新增功能
- 真实横栏与中心报告右上角增加“背景自定义”;宽屏显示文字,窄屏为带提示的图标。
- 六套低饱和预设,支持液态、柔和渐变、纯色和本地图片。
- 主色、辅助色、高光色、明暗、亮度、饱和度、对比、高光、柔化、遮罩、速度、形变与指针反馈均实际作用于背景;不适用的选项会隐藏。
- 图片支持选择、更换、移除、铺满裁切/完整显示/拉伸及位置。接受 JPG/PNG/WebP,上限 8 MB,在本机缩至长边 1920 像素以内,并单独保存在客户端数据库中,不上传。
- 设置跨本插件表面共享,刷新后保留;实时预览、取消与恢复默认明确分开,保存失败会提示。只限当前客户端,不宣称跨设备同步。
保留与验证
保留 4.3.1 连续液态表面、卡片层级、居中布局、滚动和技能业务。静态模式不持续渲染;隐藏、卸载和减少动态仍受支持。设置使用独立 IndexedDB 空间,不修改技能数据、宿主配置或凭据流程。
相关回归、设置边界测试和真实 React 组件后台离线浏览器验证;最终数字见交付说明。未安装到运行中的 DSH、未重启或操作用户桌面、未发布。真实 DSH 安装验收由用户完成。
v4.2.0 —— 整个界面重做:一套现代、中性的工具面板
v4.2.0 —— 整个界面重做:一套现代、中性的工具面板
这是一次设计系统级的重做,不是调色。配色、圆角、阴影、字阶、间距一起换 —— 因为它们互相依赖:一张中性灰的卡片配上旧的紫色阴影和胶囊按钮,会比不改更糟。
升级要注意
- 没有任何破坏性改动。 包名、路由、存储的 key、
meta.yaml的写法、已装 skill 的数据全部不变,直接覆盖安装即可。 - host 半侧(服务端那一半)有改动,需要重启 DSH,不是刷新页面。
- 已装的 skill 不受影响;你自己标的颜色标签、停用状态、来源记录都保留。
界面
- 中性工具色板。 之前的 Vapor Chrome(长春花紫 + 水蓝)换成一份中性的灰 + 单一主色:底色
#F5F5F7、卡片纯白、正文#1D1D1F、说明文字#6B7280、发丝线#E5E7EB、主色#2563EB。aqua / ice / lilac 三个装饰色删掉了 —— 全局只有一种主色,用在主操作和选中态。 - 四个色值是算过之后改的,不是照抄:三级灰、成功、警告、危险四个色在浅色底上当文字用的时候过不了 AA(警告色只有 2.80:1,而它正是"本轮没用 skill"这个核心信号)。反解"什么底色能让它过"得到的是负数亮度 —— 也就是任何浅色底都不可能,所以只能让墨色让步。每个都保留原色相、只降一档。
- 圆角和宿主的输入框对齐。 从 DSH 里读出来的值是 22px(
.Ogvy6G_card),而且宿主自己的刻度和我们结构一样:表面 22 / 表面内部的控件 8 / 真正该圆的用 999。所以 22px 给了面板、横栏、卡片、弹窗;按钮、输入框、标签页保持 8。没有无脑全 22 ——.sr-btn--sm只有 22px 高,22px 圆角就是半圆,那正是之前要求去掉的胶囊。 - 深色主题重做,对比度是算出来的。 每个墨色在每个深色表面都过 AA(最差 4.85:1)。两个反直觉的结果:三级灰必须调亮(原本在卡片上只有 4.27:1),而主色按钮上的字必须是深色(白色在上面只有 2.77:1)。
- 去掉了老旧感。 阴影从每级两层叠影改成一层浅影,主色按钮的彩色光晕删掉,磨砂头部后面三个装饰性径向渐变删掉,粗边框统一成 1px,字阶从十六种收敛到四种(14 标题 / 13 正文 / 12 界面 / 11 说明)。
- 卡片底部重新排版:调用次数在左、按钮左对齐紧跟其后、来源在右下角并和按钮同一行对齐。
- 鼠标悬停在卡片上会轻微放大(2%),其他卡片不动。
修掉的 bug(都是这一轮定位的)
- 颜色标签点了没反应。 根因不在颜色功能里:
applySkills把写入响应里的skills数组整个替换掉,而那个数组来自磁盘扫描、不带 provenance —— 所以每次写操作(改色、开关、改名、删除)都会把所有 skill 的颜色和来源记录抹掉,最多 5 秒后才回来。现在改成合并:响应里有的字段生效,没有的保留。 - 插件自带的 skill 混在你的列表里。 它们是 DSH 把插件的 skill 和你的 skill 合并上报的,现在默认隐藏,右上角有开关可以显示,并且卡片上会标出它是哪来的。删除按钮不再对它们显示 —— 它们本来就删不掉。
- "插件自带"开关点一下就消失。 判断显示与否用的是"被过滤掉的数量",而那个数在你点开的瞬间就变成 0 —— 于是开关把自己删了。改成用总数判断。
- 弹窗不会自己消失。 错误提示以前是故意不自动关闭的(理由是要留时间看清 host 的报错)。实际结果是它变成常驻物、每次都要手动清。现在所有提示 1 秒后自动消失,✕ 仍在。
- 横栏的四个图标移进了圆角框里,包括为此把横栏从
<button>改成role="button"的div—— HTML 不允许 button 里套 button。 - 悬停缩放一开始是完全不生效的,前后有四个不同原因(第三个文件里硬编码的
translateY按顺序赢了 / 缩小规则的特异性比放大规则高 / 入场动画的关键帧写了transform,而动画的优先级凌驾于整个级联之上)。现在有一条真实浏览器的门禁:用 CDP 真的移动鼠标,读getComputedStyle().transform。
安装
dsh plugin --profile web add echocat-skill-panel # 走 dsh 的插件安装
npm install echocat-skill-panel # 或直接装进 profile 目录装完重启 DSH Desktop Beta。
这一版新增的验证手段
三条断言换来三个真实 bug,所以补了三种以前没有的检查:
- 真实浏览器门禁(
tools/hover-test.mjs):真的移动鼠标、读浏览器算出来的 transform 和圆角。之前所有关于悬停的断言都是读 CSS 文本 —— 而这条功能坏过四次,每一次都对读文本的断言完全隐形。 - 圆角审计(
tools/radius-audit.mjs):问浏览器每个元素的实际圆角。这个问题读任何一个文件都答不出来,因为答案取决于三层样式里哪一层点了它的名。 - 包身份检查(
tools/check-identity.mjs):包名同时是目录名、Loader 条目名、vendor 目录名和客户端 bundle id,四处必须一致 —— 改名时漏一处就会静默失效。
v4.1.0 — 改名 echocat-skill-panel,配色换 Vapor Chrome,修复颜色标签
v4.1.0 —— 改名了:echocat-skill-panel
-3.0 是最开始在名字里标版本号用的,现在去掉。包名、目录名、Loader 条目名、vendor 目录名是同一个字符串,所以四处一起改,并由 tools/check-identity.mjs 断言它们一致。
升级要注意
旧名字 echocat-skill-panel-3.0 已经停更,新包叫 echocat-skill-panel。直接更新你已经装好的那份不会跨名字 —— 两种方式:
- 重新安装(推荐):下载下面的 zip,跑
安装.ps1。它会把旧的 vendor 目录、旧 junction、旧bundles条目一起清掉再装新的(任何一个残留都会让 profile 装配失败)。 - 手动替换:把
echocat-skill-panel-3.0从dsh.profile.bundles和dependencies里删掉,换成echocat-skill-panel,vendor 目录同名替换。
安装-3.0.ps1 保留了一个转发脚本,旧的快捷方式仍然能用。
这次修掉的 bug
颜色标签点了没反应。 原因不是代码:host 半侧在 DSH 启动时快照,客户端半侧每次刷新页面重新拉取。只按 F5 的话,客户端是新的、host 还是旧的,于是客户端发一个 host 根本不认识的 action,控件没有任何反应也不报错。
- 这个 action 上线两个版本一直没有路由测试 —— 现在补上了,覆盖完整往返:写进插件自己的
.echocat.json(不碰作者的meta.yaml)、从面板读取的 state feed 里读回来、清空是一次真实操作而不是"缺值"、非法 key 返回 400 而不是落盘。 - host 改动需要重启 DSH,客户端改动只要刷新页面。 这条规则值得记住。
界面
- 配色换成 Vapor Chrome(长春花 + 水绿 + 冰蓝 + 丁香紫),标记调色板同步重新调色 —— 键名没改,因为那是写进每个 skill 的
.echocat.json的东西,改名会静默丢掉你已做的全部标记。 - 修复:全插件的"胶囊"其实都不是胶囊。 生成器只给小于 100 的数字补
px,于是border-radius:999少了单位 —— 无效 CSS,被浏览器整条丢弃,回退成 8px 圆角矩形。修复前后用浏览器实测:胶囊控件 3 → 17,方角 18 → 4(剩下 4 个是布局容器)。顺带发现四个圆角分量属性被错列为"无单位",那几条记录等于从未生效。新增tools/check-css-units.mjs守住这个形状 —— 原有断言检查"声明存在",而border-radius:999确实存在,抓不到。 - 分类标签筛选换成颜色块筛选;目录标题写明「点头像框选颜色标签」。
- 四个计数常驻横栏(折叠也显示),展开的报告单独悬浮,不再和横栏合成一个盒子。
- 状态点健康时绿,只有主机不可达时才红。
- 横栏左侧显示
N 个 skill 已准备就绪。 - EchoCat LOGO 居中在横栏,浅色主题用睁眼、深色主题用闭眼(跟随系统偏好和应用内主题两个信号)。
安装
npm i echocat-skill-panel
或从下面的 echocat-skill-panel-4.1.0.zip 解压后跑 安装.ps1。
装完重启 DSH Desktop Beta(host 半侧需要重启;之后只改界面的话刷新页面即可)。
本轮全部改动(180+ 条具名调整)
横栏两侧等宽包裹层让 LOGO 真正居中、计数块紧凑档、仅可 / 调用 与 用过的 保留为功能筛选、滚动条/占位符/选中色/原生强调色统一样式、三档间距层级、单一光源的层次(卡片 e2 / hover e3 / 控件 e1)、字距随字号走、每类控件四个状态齐备、CJK 严格断行、所有实时计数器等宽数字。
4.0.2
echocat-skill-panel-3.0 4.0.2
修掉一个用户可见、而且很显眼的 bug。这次要特别说明:bug 不是我发现的,也不是测试套件发现的 —— 是一位测试员定位、取证并给出修复方案的。定位质量很高,报告里连截图的逐像素测量都有。
症状
打开过一次安装面板(不需要真的装任何东西),之后页面底部就会永久多出一个空白、带细边框、圆角的白盒子。文档高度变成「视口 + 视口」,往下滑就是那个"空白带框、什么都没有的页面"。刷新页面会消失;再打开一次面板又出现。
根因
安装面板是挂到 document.body 上的(为了让 position:fixed 真的相对视口定位,而不是被横栏那一列截住)。这个 host 节点:
- 带着
sr-root sr-portal-host两个类 ——sr-root是面板外框类:height:100%+ 1px 边框 + 圆角 + 白底; - 是模块级、只创建一次、永不删除的;面板关闭时内容变成
null,于是它就成了一个空 div; - 本来有一条规则专门中和它(
display:contents,不生成盒子)。
但那条规则被生成成了后代选择器:
.sr-root .sr-portal-host, .sr-strip-shell .sr-portal-host, … { position:static; display:contents }而 host 自己就是 .sr-root(挂在 document.body 上),不是它的后代 —— 所以这条规则永远匹配不到它要匹配的元素。中和失效,height:100% 和边框照常生效,于是一个空盒子占满了整整一个视口的高度。
为什么 135 项断言全绿却漏了它
守这条规则的断言写的是:
ok('the portal host adds no box of its own', /\.sr-portal-host\{[^}]*display:contents/u.test(RENDERED))它只验证声明进了样式表 —— 而 .sr-root .sr-portal-host{…display:contents} 完美满足这个正则。声明存在 ≠ 规则能命中它要作用的元素。 这正是「断言测量结果、而不是断言意图」这条纪律要防的事,结果还是发生了。
修了什么
rooted: false真正实现了(两个生成器都补上)。这个选项从第一天就写在polish.js的 JSDoc 里,两个生成器都没实现它 —— 这就是这个 bug 的根:任何不以 surface root 开头的选择器都会被静默展开成"后代"。现在记录可以明确声明"这条规则说的是 host 自己"。- portal host 不再带
sr-root外框类。它根本不需要:设计令牌和基础排版由.sr-backdrop提供,而它本身就是 surface root、并且永远是 portal 的内容。这样即使将来某条规则再丢,失败模式也只是"对话框没居中",而不是"整页空白"。 - 把弱断言换成会失败的断言:现在验证"这条选择器能不能匹配 host 本身"和"没有任何规则以 surface 后代的形式去找它"。
- 新增
tools/check-portal-assertions.mjs并纳入npm test:它把同一批断言喂给故意还原成 4.0.1 错误样式表的输入,确认它们真的会 FAIL;同时演示旧断言在两份样式表上都通过,把这个漏洞钉死。
实测(真 Chrome,DevTools 协议)
文档高 页面溢出 host 是否绘制 host 盒子 display
修复前 host 1770 +885 是 820x885 flex
修复后 host 885 +0 否 0x0 contents
node tools/check-portal-host.mjs 在两种窗口尺寸、开/关两种状态下全部 exit 0。
顺带修掉两处工具问题(同一份报告里指出的)
tools/dock-harness.html没有随包发布,所以check-dock-height.mjs在别人机器上必然ENOENT崩掉(我本机有它,所以从没发现)。已补进package.json#files。- 浏览器候选表缺 (x86) Edge 路径。在只装了 Edge 的机器上它会打印 "no browser found" 然后 exit 0 —— 一个看起来和"通过"一模一样的静默跳过。现在 exit 2,因为**「我没测成」不是「测过了」**。
验证
十二个门全绿,1364 项断言(ui-polish 137 + 新增守卫套件 8)。另外这次 pnpm install 也第一次成功了。
装了 4.0.0 / 4.0.1 的话,面板头部的「检查更新」会报出 4.0.2。
4.0.1
echocat-skill-panel-3.0 4.0.1
修两个只在成品上才看得见的问题。
修了什么
npm 包页面上的两张截图是坏的。 package.json 的 files 里没有 docs/,而 README 引用的是 docs/panel.png 和 docs/install-sheet.png;npm 渲染的是打包进去的那份 README,所以那两个图在 npm 页面上一直是 404 —— 3.0.0 和 4.0.0 都一样。在仓库里看不出来,因为文件就在那儿。
这是在你让我更换第一张截图时顺手发现的:把 docs/ 加进 files,截图和新版本一起发出去。第一张截图也换成了当前界面(带搜索筛选、启用/停用开关、检查更新按钮的实际面板)。
版本号有三份拷贝,而只有两份被检查。 package.json、src/version.js(host 半侧)、src/client/theme.js(浏览器半侧 —— 它无法 import host 模块,因为它是独立 bundle,对着宿主冻结的平台模块表解析)。测试只断言了前两份一致,第三份没人看,而它恰恰是最容易被忘掉的。
现在五处一起被断言:三份代码 + README 标题 + 安装说明的版本行。这正是 src/version.js 注释里写的那个漂移风险 —— 以前只是写在注释里,现在会被测试拦下。
顺带
test/release.mjs里有两条断言把'4.0.0'写死了,这次升版本就挂了。其中一条的意思是「检查器默认用发布出去的那个版本」,这是关于默认行为的断言,而不是关于版本号是多少 —— 两条现在都改成跟导入的VERSION比较。一个每次发版都必须手改的测试,只会训练人去改测试。docs/进包:37 → 40 个文件,371KB → 542KB。多出的 171KB 是两张截图和设计要点.md,换来一个图片能正常显示的包页面。- 1354 项断言,十二个门全绿(release 套件 52 → 57)。
安装
npm i echocat-skill-panel-3.0已经装了 4.0.0 的话,面板头部的「检查更新」现在会报出 4.0.1 —— 这次是真的有得可更新了(4.0.0 发布时它还只能报"已是最新")。