Repository navigation
v0.31.0 · tools-ui 1.4.1
本 tag 发 @wil-works/evoke-tools-ui 1.4.1(patch:缺陷修复;其余四包版本未变,矩阵自动跳过)。
修的死订阅
--ot-* 的语义权威在办公产品侧(画布色由产品 CSS 定义),这类消费方只想拿主题变化信号、不希望框架覆写自己的令牌——本该用 EtThemeBridge / observeThemeChanges 传 palette = {} 实现,实际收不到任何通知:
- 去重签名只由解析结果的值拼成,而
last初值是空串 → 空登记表签名恒为''→signature === last永远成立 → 连挂载首值都不发。 - 修法:签名改为
class | data-theme | data-density | 解析结果值,last初值null(挂载必发一次)。签名刻意不含style:本件写回的行内--ot-*只改 style 属性,含它就自激循环。 - 行为变化是加法式的(消费者只会多收不会少收):纯切档(色值不变、只有
data-density/class变)现在重发一次并重写同值。1.4.0 的@changeJSDoc 承诺「挂载即发首值」,到本版才在所有登记表形态下为真。
测试
theme-palette.test.js原「订阅」用例自记"简化:不真驱动 mutation" → 改成真驱动MutationObserver回调逐拍断言;新增palette = {}只订阅用例;两条编码旧契约的用例按新契约更新。- 变异对照:退回旧实现 → 4 条红;还原 → 全绿。
- 修一处测试卫生:断言失败未
unmount会把观察器泄漏到下一个用例(表现为"下一条莫名变红"),已try/finally收口。
验证
单测 476 例全绿;build:tools 十道门全绿;docs-tools:build(含 G11)绿;tools + docs-tools 两套 playwright 72 例全过(无基线含首页徽标,改版本号不需重录);pre-release-check 通过。
下游
office-works 已升 ^1.4.0 并把底带表页签换成 EtSheetTabs(其全仓 950 例 + e2e 18/18 双引擎通过);主题联动换 <et-theme-bridge :palette="{}" @change> 待本版本被其消费。