MaiBot
MaiBot copied to clipboard
fix: 修复保存toml时的空行累计bug和注释丢失问题
-
- [x]
main分支 禁止修改,请确认本次提交的分支 不是main分支
- [x]
-
- [x] 我确认我阅读了贡献指南
-
- [x] 本次更新类型为:BUG修复
- [ ] 本次更新类型为:功能新增
-
- [x] 本次更新是否经过测试
- 请填写破坏性更新的具体内容(如有):
- 请简要说明本次更新的内容和目的:
问题描述
- 空行累积 Bug:WebUI 每次保存配置文件时,
[[chat.talk_value_rules]]等 AoT 结构后的空行会不断增加 - 注释丢失:WebUI 保存配置后,用户在 TOML 文件中手动添加的注释会被清除
解决方案
toml_utils.py:
- 新增
_update_toml_doc()函数:递归合并字典,保留原文件注释和格式 - 增强
save_toml_with_format():新增preserve_comments参数(默认 True),自动读取原文件并合并 - 添加空行规范化:使用
re.sub(r'\n{3,}', '\n\n', output)将连续空行压缩为最多 1 个
config_routes.py:
- 移除冗余的
_update_dict_preserve_comments()函数 - 简化
update_bot_config和update_model_config,利用增强后的save_toml_with_format - 更新 section 更新接口,使用
_update_toml_doc替换本地函数
plugin_routes.py:
- 简化
update_plugin_config,移除冗余的手动读取合并逻辑,直接使用save_toml_with_format