Repository navigation
v0.4.7
修「同一个包在已安装列表里出现两次,而点第二条的开关会关掉第一条」。
变更
- 已安装列表按包归并:同一个包被 Loader 加载多条 entry 时合并成一行。
ds-harness-remote0.5.18 的 bundle patch 插了两条name相同的子条目
(常规宿主 + dsh-TUI 专用,disabled表达式互斥),此前显示两行文字、版本、
兼容区间完全相同的卡片,无法分辨哪条在跑。 - 开关按 entryId 精确寻址:
bundleEntryId()不再把「bundle 里第一个声明的
id」当成这个包的 id。此前点第二条的开关,写进 profile patch 的是第一条的 id——
关掉的是真正在跑的那条,被点的那条本来就停用。 - 不猜:同名多条且无法按 entryId 精确匹配时拒绝写入(
nowDisabled为
null),不再挑一个 id 去改别的行。
为什么
- 起因是「已安装」里
liguobao/ds-harness-remote出现两次,版本、描述、需求
区间完全一致。取证:包里dsh.bundle.patch声明两条同名 entry,
listInstalled()按 Loader entry 逐条列、不按包名归并;而bundleEntryId()
只取第一个- id:,于是两行读同一个开关位、写同一个 id。 - 影响面:已安装插件里目前只有
ds-harness-remote是多 entry 包,但机制通用
——任何以后这么设计的插件都会踩。