Skip to content

feat(plugin): 支持 catalog v2 与最高兼容版本选择 - #177

Merged
ztzpro merged 1 commit into
mainfrom
feat
Oct 1, 2026
Merged

ztzpro merged 1 commit into
mainfrom
feat

Conversation

@ztzpro

@ztzpro ztzpro commented Oct 1, 2026

Copy link
Copy Markdown
Member

feat(plugin): 支持 catalog v2 与最高兼容版本选择

改动说明

  • 将官方目录升级为 schemaVersion 2:每个插件只保留一个 ID,所有发布版本及其包信息保存在 versions 中。
  • 不保留旧客户端默认包或模块顶层版本、下载字段。
  • 从完整历史中,按当前宿主版本、SDK 和目标框架选择最高兼容版本,支持较旧主程序首次安装兼容插件。
  • 没有兼容版本时保留原因说明、禁用安装,并在下载前阻断请求。
  • 更新候选必须高于已安装版本,不将旧版本冒充更新,也不自动降级。
  • 首次引导与手动安装共用选择规则,权限确认使用选中版本的声明,不使用不兼容新版的权限信息。
  • 缓存保留完整历史;宿主升级后重新计算,不依赖重新下载目录才能恢复此前被排除的版本。

版本比较与提示

  • 修正预发布数字标识符比较,正确处理 beta.10、beta.5 等版本顺序。
  • 保留既有 SatisfiesMinimum 兼容特例,不扩大到带明确 beta/rc 下界的情况。
  • 增加简体中文、繁体中文、英文和日文的兼容性提示与安装状态。
  • 更新相关架构约束、API 文档和 Unreleased 记录。

兼容性与范围

  • 这是目录协议的破坏性变更,不是 SDK 主版本或主程序主版本升级。
  • 主程序发布版本保持 1.8.0-beta.4,SDK 契约保持 1.8。
  • 新客户端只接受 v2;旧 v1 缓存会被拒绝,但不会自动删除或触发网络刷新。
  • 旧客户端无法读取 v2 官方目录,但主程序、基础手势和已安装兼容插件仍可运行。
  • 需要与官方插件仓库的目录生成、历史迁移和 Schema 改动协调上线。
  • 本 PR 不发布目录、安装插件或自动提升主程序版本。

BREAKING CHANGE: 官方目录仅接受 schemaVersion 2;v1 目录及缓存不再支持。需要协调新版客户端与 v2 目录发布。

- 将官方目录模型改为 id + versions,仅接受 schemaVersion 2,不保留旧客户端默认包字段
- 按宿主版本上下界、SDK 主次版本和目标框架选择最高兼容插件版本
- 无兼容版本时显示原因并禁用安装,在下载前拦截不兼容请求
- 使用版本优先级判断更新,避免将旧兼容版本误报为更新或自动降级
- 让首次引导安装复用相同选择规则,仅确认和下载实际选中版本的权限与资产
- 缓存保留完整历史,随当前宿主环境重新选择,不保存过滤后的目录
- 修正预发布数字标识符比较,使 beta.10 正确高于 beta.5,并保留既有最低版本兼容规则

BREAKING CHANGE: 官方目录读取仅支持 catalog v2,旧 v1 目录及缓存不再可用;需要协调发布 v2 目录并手动刷新,不影响已安装且兼容的插件运行。
@ztzpro
ztzpro merged commit f1a7df4 into main Oct 1, 2026
1 check passed
@ztzpro
ztzpro deleted the feat branch October 1, 2026 00:47
pattoneirc pushed a commit to pattoneirc/StarPie that referenced this pull request Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant