Repository navigation
v1.4.2
🐛 MisMiss v1.4.2 — Docker 下终于存得下设置
单文件挂载写配置不再 EBUSY · 补偿复选框不再崩 · 输入法回车不再误提交
v1.4.2 以修复为主,另带两处插件弹窗的体验改进。
- Docker 部署保存设置终于能用了——上版本去掉只读挂载只解决了「没权限写」,
还没解决「挂载点不能被重命名替换」,这次补齐 - 批量补偿的复选框点一下就崩,已修
- 插件的操作弹窗现在支持多行文本;用中文输入法时,确认候选词的回车不再
被当成提交
🐛 Bug 修复
Docker 部署下面板保存设置仍然失败(Device or resource busy)
这是 v1.4.1 那个修复的遗留半截:
- v1.4.1 去掉了
config.yml挂载的:ro,解决了「没权限写」 - 但没解决
rename():Docker 把config.yml以单文件方式挂进容器时,
/app/config.yml本身是一个挂载点,而「先写临时文件、再重命名替换」这个
保证原子性的写法里,重命名到挂载点上内核必然返回EBUSY
于是更新源设置 / 更新提示消息 / 日志等级 / 端口这四个入口在 Docker 下依然全部失败,
报错是 配置文件不可写(/app/config.yml):[Errno 16] Device or resource busy。
现在改为分情况处理:
- 能原子替换就原子替换——普通(非 Docker)安装的行为完全不变,写一半崩溃
仍然不会毁掉原文件 - 替换不了(目标是挂载点)就退回直接覆写——牺牲原子性换取可用性,
否则这个文件在 Docker 下根本写不进去
批量补偿的复选框点一下就崩
把补偿改成「默认全选、用选项排除」时,状态变量改了名,但「逐个查看」里那个
复选框的处理函数漏改了一处 —— 点它会直接抛 ReferenceError,不是显示错乱,
是功能完全不可用。已修正。
全局消息的请求体类型不正确
面板「全局消息」发出的请求体在类型上不符合浏览器 fetch 的要求。运行时本来
无碍(客户端有兜底转换),但它会让发布构建直接失败,影响后续打包。已修正。
🔧 改进优化
插件操作弹窗:多行文本与输入法
- 新增多行文本字段——插件的
_ui_schema.json动作字段可用
input_type: "textarea"声明多行输入(rows指定行数,默认 3)。
回车换行、Ctrl / Cmd + Enter 提交,占位符里也写了这条提示 - 输入法回车不再误提交——用中文输入法打字时,按回车是「确认候选词」,
但此前会被当成「提交」而把半截内容发出去。现在会识别输入法的组合状态
(isComposing),确认候选词的回车不再触发提交(所有回车提交的输入框都修了) - 列表项里的回车不再冒泡——在多值字段的条目里换行,不会再去触发外层的提交
⚠️ 升级注意
- 如果你在 v1.4.1 上遇到过「配置文件不可写(…):
[Errno 16] Device or resource busy」,
本版本修的就是它。保存设置失败不影响在线更新——更新流程本身不写config.yml
(它会跳过这个文件),所以可以直接在线升级到本版本 - 无需再改动
docker-compose.yml——挂载层面的:ro在 v1.4.1 已经去掉,
本版本是从代码侧补齐「挂载点写不了」的兼容。两步都到位后才能正常保存设置:- 从 v1.4.0 及更早升级:
docker-compose.yml的:ro要去掉(v1.4.1 的更新包会自动带上),
再加上本版本的代码修复 - 从 v1.4.1 升级:只需要本版本
- 从 v1.4.0 及更早升级:
MisMiss v1.4.2 — 让「保存」真的保存下来 🔧