alireza0:s-ui v1.6.1 设置页无法保存是这一版的回归,可先用 API 绕过

在答复设置无法保存的报告时表示这是他在 v1.6.1 引入的回归:面板会记录已执行的一次性数据迁移,并把这些记录与设置放在一起;设置页加载时把找到的内容全部提交,而 v1.6.1 增加了更严格的保存校验,这些记录不是设置项,于是保存被拒绝。该问题影响所有 v1.6.1 安装而不只是升级来的,因为即使无需迁移,这些记录也会在首次启动时写入;配置本身未受损,保存在写入前就被拒绝。修复将在下个版本发布——设置页不再接收非设置项,并已补上测试。在此之前可改用不受影响的 API 修改设置,他给出了修改订阅更新间隔的 curl 示例,并说明一次只发送要改的键即可。

作者原文

Thanks for the clear report — the screenshot with the field names made this immediate to find.

Confirmed, and this is my regression in v1.6.1. The panel records which one-off data migrations have already run, and it stores those records alongside your settings. The settings page loads everything it finds there and sends it all back when you save, but v1.6.1 added a stricter check on what may be saved — and those records are not settings, so the save is refused.

It affects every v1.6.1 install, not only upgrades, because those records are written on first start even when there is nothing to migrate. Nothing in your configuration is damaged: the save is refused before anything is written.

Fixed for the next release: the settings page is no longer handed anything that is not a setting. There is a test for it now, so a future migration cannot bring this back.

Until then, you can change settings through the API, which is not affected. For example, to change the subscription update interval:

curl -X POST -H "Token: <Your API Token>" \
  -d "object=settings" -d "action=set" \
  -d 'data={"subUpdates":"6"}' \
  "http://localhost:2095/app/apiv2/save"

Send only the keys you want to change; the rest keep their values. The setting names are listed here:
https://github.com/alireza0/s-ui/wiki/Settings-Reference