MaiBot icon indicating copy to clipboard operation
MaiBot copied to clipboard

fix: 修复保存toml时的空行累计bug和注释丢失问题

Open Ronifue opened this issue 1 month ago • 0 comments

    • [x] main 分支 禁止修改,请确认本次提交的分支 不是 main 分支
    • [x] 我确认我阅读了贡献指南
    • [x] 本次更新类型为:BUG修复
    • [ ] 本次更新类型为:功能新增
    • [x] 本次更新是否经过测试
  1. 请填写破坏性更新的具体内容(如有):
  2. 请简要说明本次更新的内容和目的:

问题描述

  1. 空行累积 Bug:WebUI 每次保存配置文件时,[[chat.talk_value_rules]] 等 AoT 结构后的空行会不断增加
  2. 注释丢失: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_configupdate_model_config,利用增强后的 save_toml_with_format
  • 更新 section 更新接口,使用 _update_toml_doc 替换本地函数

plugin_routes.py

  • 简化 update_plugin_config,移除冗余的手动读取合并逻辑,直接使用 save_toml_with_format

Ronifue avatar Dec 02 '25 08:12 Ronifue