Skip to content

[Feature] 增加插件版本锁定功能或“仅向上更新”策略 #7575

@uuutt2023

Description

@uuutt2023

Description / 描述

期望行为
希望能增加一种机制,允许用户忽略特定插件的版本检查,或者强制只进行“向上更新”。

建议的解决方案
建议通过以下两种方式之一来解决此问题:

  1. 方案 A:插件版本锁定 (Lock)

    • 在插件管理面板中,为每个插件增加一个“锁定版本”的开关(🔒图标)。
    • 当开启锁定时,AstrBot 跳过对该插件的版本检查,不提示更新也不提示降级。
    • 配置文件(如 data/config.json 或插件元数据)中记录锁定状态。
  2. 方案 B:语义化版本更新策略

    • 在检查更新时,仅当 源版本号 > 本地版本号 时提示更新。
    • 如果 源版本号 < 本地版本号,视为“本地开发版”或“超前版”,不显示更新提示,也不显示“回退”按钮。
    • 或者增加一个全局配置项 plugin_update_mode,可选值为 all (默认), upgrade_only (仅向上更新)。

补充说明
这对于插件开发者或尝鲜用户非常重要,可以避免本地测试代码被意外覆盖。

Use Case / 使用场景

问题描述
在 AstrBot 4.23+ 版本中,存在一种场景:某些插件开发者拥有未发布到 GitHub Release/Source 的本地测试版(版本号通常高于源版本号)。当用户手动安装此类插件后,每次打开插件管理面板(Dashboard),系统都会检测到源版本号较低,从而提示需要“回退版本”或显示更新状态异常。

Image

目前的更新机制似乎只比较版本号大小,而忽略了用户的“锁定”意愿,导致无法保留本地的高版本测试版插件,且容易造成误操作。

复现步骤

  1. 获取一个插件的本地测试版文件(假设版本为 v2.0.0-beta)。
  2. 在 AstrBot 面板中安装该插件。
  3. 确认该插件在 GitHub 源上的最新 Release 版本较低(例如 v1.5.0)。
  4. 打开插件管理面板。
  5. 现象:面板显示该插件需要“更新”(实际上是降级),或者一直提示有新版本,干扰正常使用。

环境信息

  • AstrBot 版本: 4.23+
  • 操作系统: Linux Ubuntu
  • 部署方式: Docker

Willing to Submit PR? / 是否愿意提交PR?

  • Yes, I am willing to submit a PR. / 是的,我愿意提交 PR。

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coreThe bug / feature is about astrbot's core, backendenhancementNew feature or requestfeature:pluginThe bug / feature is about AstrBot plugin system.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions