百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
返回工具页/返回 Issues 列表
#5907·CLIProxyAPI

插件配置默默地丢弃了错误/空值,并破坏了重新排序的列表(SaveConfigPreserveComments 合并)

作者: cls3389创建于 2026年9月17日更新于 2026年9月17日
标签Fixed

□ 总结

‘PUT /v0/ 管理/plugins/:id/config' 返回'200 {"状态":"ok" }`并重写了配置文件,但被保存的值默默地做** not**生效. 根源是“ SaveConfigPreserve Comments” (“ 内部/ config/ config yaml.go” ) 中保存注释的合并, 不适合插件配置子树 。

□ 根源

当持续时,处理者会将现有的"config.yaml"装入"yaml". 节点 " 树,并将新编组的配置合并到原地( " 相接地平线 " / " 相接地平线 " )。 合并有三种行为 损坏插件配置:

  1. ** 只为新密钥提供附录**( " 相接地图 " ,大约为 " config yaml.go:196-213 " ):旧树上不存在的密钥,只有在其值为非零时才提供附录。 因此启用:假',超时:0','',[]'永远不能第一次被写出——新价值悄悄被放弃.
  2. 序列合并通过身份对对象元素进行对接("重排序列Formerge"/"相接序列Element"):用于插件"vision models"等对象列表,重排或去除一个条目,以匹配的身份字段定位对旧的节点进行对接,将旧元素的分接字段从错误模型上留下.
  3. ** 嵌入式绘图仅为附件**:去除嵌入式密钥(如 " 桥 " 下的一个桥)不会被合并所删除。

插件配置是插件(`PluginInstanceConfig. Raw'已经保存了整个子树),所以失去的合并在这里没有倒挂——保存的文件应该精确地映射出记忆中的配置.

□再现.

带有布尔 / 数字 / 列表设置的任何插件( 例如带有“ vision models” 的视觉桥) :

  1. PUT/v0/管理/plugins/<id>/config ' 改变主要 型号',设置一些启用:假',并重排vision 型号'。
  2. 观察 " 200 " 和正在撰写的文件。
  3. 在热量再装入后, " GET " 重新装入:假布林和新顺序缺失;旧值仍然存在。

□ 建议修正

将整个 " plugins.configs " 子树替换为生成的树,然后在 " CommerceMappingPreserve " 中跳过这条路径。 我有一个包含测试(`内部/配置/插件 配置 save test.go')的工作补丁,覆盖了虚假的布尔语、重新排列的列表、被删除的插件和新创建的子树;很高兴打开一个PR.

□ 环境

  • CLIProxyAPI v7.2.159(也见于更早的版本)
  • Linux/amd64, Docker(英语:

内容来源: router-for-me/CLIProxyAPI

查看 GitHub 原文在 GitHub 查看讨论