Skip to content

feat(packages): add update check for packages, skills and MCP servers - #1112

Open
3316891527 wants to merge 2 commits into
AAswordman:devfrom
3316891527:feat/plugin-check-update
Open

feat(packages): add update check for packages, skills and MCP servers#1112
3316891527 wants to merge 2 commits into
AAswordman:devfrom
3316891527:feat/plugin-check-update

Conversation

@3316891527

@3316891527 3316891527 commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

变更说明 / Description

背景与动机 / Context and motivation

issue #1099 希望为已安装插件提供版本更新检查。经讨论收敛范围:第一版只做单插件入口(插件详情对话框内"检查更新"按钮),不做进入包管理时的自动全量检查;版本选择交给市场详情页已有的版本列表,本 PR 不实现批量更新。后续将同一能力扩展到技能与 MCP 服务器。

改动范围 / Changes

  • 插件详情对话框删除按钮左侧新增"检查更新"按钮。
  • 抽取共享组件 MarketUpdateChecker(5 态结果)与 MarketUpdateCheckButton(按钮+弹窗),插件 / 技能 / MCP 三类入口共用同一套状态机。
  • 技能详情对话框新增"检查更新"按钮(删除旁);MCP 服务器详情操作栏新增"检查更新"按钮(repo 链接与卸载之间,仅已安装时显示)。
  • 通过安装时写入的 market marker(<插件目录>/.operit/market.json)判定插件是否来自市场安装;本地导入(无 marker)提示非市场来源,无法检查。技能按技能目录读取 marker;MCP 同时支持 config 目录与 installedPath 两种形态,任一命中即返回。
  • 点击后请求市场静态 JSON(MarketStatsApiService.getEntry),以 versionId 对比判定是否有更新。
  • 五种结果状态:已最新、有更新(前往更新 + 取消)、非市场来源、市场条目缺失、检查失败。
  • "前往更新"关闭详情框并导航到该插件的市场详情页。
  • 8 语言文案(values 及 values-en / es / id / ko / ms / pt-rBR / ro)。
    不包含:进入包管理自动全量检查、多插件批量更新、版本选择 UI(复用市场详情页)。

兼容性与风险 / Compatibility and risks

  • 无数据格式、API、配置、性能或安全面影响。
  • 新增按钮不改变现有删除 / 关闭按钮行为;仅市场安装(有 marker)的插件可检查更新,与现网安装流程语义一致。

关联 Issue / Related issue

Resolves #1099(范围收敛为单插件入口,见背景与动机)

验证方式 / Verification

检查或命令:GitHub Actions android-build.yml(assembleDebug)
环境与变体:Ubuntu runner,Android SDK 完整依赖
结果:构建通过(run 33954664937,success;含技能/MCP 检查更新按钮的最新构建 run 33966989717,success)

检查或命令:实机测试(插件详情页检查更新)
环境与变体:Android 真机
结果:
- 市场下载旧版 -> 检测到有新版,可跳转到市场详情页 ✅
- 文件直接导入 -> 识别不到 marker,提示非市场来源无法更新 ✅
- 市场安装最新版 -> 提示已是最新版本,检测不到更新 ✅
- 断网 -> 检查失败提示,不崩溃 ✅
- 市场条目已下架(EntryMissing):无现成条目可构造,未实机验证(代码有兜底分支)

检查或命令:实机测试(技能 / MCP 检查更新按钮)
环境与变体:Android 真机
结果:待安装最新构建 APK 后验证(市场安装可检测版本、本地导入提示非市场来源)

证据 / Evidence

检查清单 / Checklist

  • 我已记录可复现验证和未运行项原因 / Reproducible verification and reasons for unrun checks are recorded
  • 日常开发 PR 的目标分支为 dev;如目标为 main,我已说明这是维护者发布同步 / The target branch is dev for regular work; if it is main, I explained why this is a maintainer-led release sync
  • 我已确认 Candidate checks 覆盖改动范围,并会处理技术失败项 / Candidate checks covers the change scope and technical failures will be addressed
  • 最终 diff 无无关、临时、生成、二进制或敏感内容 / Final diff has no unrelated, temporary, generated, binary, or secret content
  • 已提供对应的回归、UI、文档/字符串或兼容性证据 / Relevant regression, UI, docs/strings, or compatibility evidence is provided

@3316891527 3316891527 changed the title feat(packages): add per-plugin update check with market detail jump feat(packages): add update check for packages, skills and MCP servers Sep 6, 2026
@CATMIAOZHI
CATMIAOZHI self-requested a review September 7, 2026 00:16

@CATMIAOZHI CATMIAOZHI left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CLEAN:完整差异和实际调用链的静态审计未发现有充分证据的 P1/P2。

审计提交:d7e3a4510915f8fed8427734c5a84a715f15ef98,目标分支 dev。已先请求 CATMIAOZHI review,再完成独立工作树全 diff、实际调用链和独立 agent 复核;git diff --check 通过。已核对包、Skill、配置型及物理安装 MCP 的标记读写位置,以及检查 → 市场详情 → 安装更新 → 刷新状态的调用链。

验证范围:上游仓库该 HEAD 的 check-runs 为 0,审计前无 review 线程,已有普通评论也已核查。当前 PR workflow 仅匹配 development,本 PR 的目标为 dev;构建/单测 push workflow 匹配 main。已核对工作流实际任务及 Actions Variables(GITEE_OWNER、GITEE_REPO)。已核实作者 fork 的 Android Build 对应本次 HEAD 且成功;该运行只有构建步骤,没有 JVM 单测执行步骤,因此不将其视为单测通过。遵守目标仓库 AGENTS.md,本次未执行本地编译、测试、Lint 或真机验证,未修改源码。

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.

2 participants