Skip to content

registry 去重标准:聚合包里已登记的渠道,算不算「已存在」?(以 AStudio 为例) #614

Open

Description

@Gyl1219

背景

现在 AStudio 渠道在 registry 里有两个入口、两套登录(登录页 + chat/completions vs 桌面会话复用 + /model-gateway/v1/responses),同一个账号的每日登录积分池两边共用。

为什么提这个

#502 评审时,我的四个渠道被要求删除,理由是(原话引用):

有四个渠道和 registry 里现有的插件重了:officeace(officeace-auth)、autoclaw / autoclaw-cn(opencode-autoclaw-auth)、loomy(opencode-loomy-auth),还有 MiniMax Code 国际版(opencode-minimax-auth 的 minimax-code-global)。同一个订阅出现两个入口、两套登录、两套额度,用户会搞不清该装哪个,出了问题也说不清是哪个插件的。

#595 合并后,astudio 出现的情况与这段描述一致。我不要求谁下架——两个实现各有取舍(桌面会话复用对装了官方客户端的用户更方便;登录页不依赖本地文件、跨平台)。

想确认的

  1. 去重的判据是「渠道是否重复」还是「包的形态(独立包 vs 聚合包)」?
  2. 如果判据是后者,希望能写进贡献文档,让多渠道包的作者有明确预期;
  3. astudio 的两个入口后续如何处置:都保留并在 README 标注差异,还是 deprecate 其一?

建议

把去重标准写进 CONTRIBUTING.md / README 的贡献章节,例如:渠道已存在于 registry(含聚合包的 providers 数组)时,新增独立包需要说明差异(登录方式、端点、能力)并在 PR 描述里注明。

另:我这边已备好一个把 providers-hub 的 providers 补全(现登记 5 条 → 包内实际 9 条)的小改动,等这个标准明确后再提交,避免先斩后奏。

Activity

  1. yetone commented on Nov 1, 2026

    @yetone
    Contributor

    谢谢你把这个问题提出来。你说得对:#595 合并时我们没有按 #502 那条标准去对照 providers-hub 里已有的 hub-astudio,这是我们评审的疏漏,不是你那边的问题。

    定下来的标准如下:

    1. 判据是渠道,不看包的形态。 registry 里已有的渠道,包括聚合包 providers 数组里登记的,都算「已存在」。
    2. 同一渠道再加一个独立包,必须说清楚差别:登录方式、端点、能力,以及它能做到而现有入口做不到的地方。PR 描述里要写,README 和 registry 的 summary 里也要写,让用户知道该装哪个。说不出差别的就不合并。
    3. AStudio 两个入口都保留。 两边的取舍是真实存在的:桌面会话复用对装了官方客户端的用户更方便,登录页不依赖本地文件、能跨平台。我们会在两边的 README 和 summary 里注明差别,并说明两边共用同一个每日积分池。不 deprecate 其中任何一个。
    4. 这条标准会写进 README 的贡献章节,改好后贴在这里。

    关于 providers-hub 把 providers 补全(5 → 9 条):欢迎提交。registry 里的 providers 应该和包里实际提供的一致。在 #502 里因为和独立包重复而删掉的那四个渠道(officeace、autoclaw / autoclaw-cn、loomy、MiniMax Code 国际版),按上面第 2 条,如果你那边的实现确实有独立包没有的东西,可以在 PR 里写明差别再加回来;没有的话还是交给独立包。

  2. yetone commented on Nov 1, 2026

    @yetone
    Contributor

    按上面的决定改好了,提交 236071c(已推到 main)。

    去重标准写在 README 的 The market → One channel already listed(README 只有英文)。要点:

    • 看渠道,不看包的形态;astudio 和 hub-astudio 是同一个渠道。聚合包 providers 数组里登记的渠道也算已存在。
    • 给已存在的渠道加独立包,要在 PR 描述、包的 README、registry 的 summary(中英文)三处写清楚差别:登录方式、端点、能力,以及它能做到而现有入口做不到的地方。说不出差别的不合并。
    • 同一渠道保留两个入口时,两边写明共用的东西(比如同一账号的积分池)。

    AStudio 两个入口,差别是对照两边代码写的(opencode-astudio-auth 0.1.0 和 magpie-providers-hub 0.5.2 的 src/astudio.mjs):

    astudio(opencode-astudio-auth) hub-astudio(magpie-providers-hub)
    登录 读取桌面端登录态(ASTUDIO_HOME、Windows 注册表、~/.acode),或粘贴 modelBearerToken 本地登录页:手机验证码、账号密码或微信扫码(含极验),不依赖桌面端
    模型端点 /model-gateway/v1/responses /model-gateway/v1/chat/completions
    每日积分 做一次会话活跃,记前后余额差,不调用领取接口 调 client-popups 领每日奖励和新人礼包弹窗

    两边读的都是同一账号的 agent.xfyun.cn/xingchen-studio/points/balance,所以同一账号只有一个每日积分池。

    • packages/astudio/README.md 加了「与 Providers Hub 的 hub-astudio 的区别」一节,astudio 升到 0.1.1,让发布出去的 README 跟着更新。
    • registry 里两条的 summary(中英文)都写了上面的差别和共用积分池。
    • providers-hub 的 README 在 Gyl1219/magpie-providers-hub,这边改不了。@Gyl1219 方便的话,可以在那边的 AStudio 部分加一句同样的说明,上面的表可以直接拿去用。补全 providers(5 → 9)的 PR 也欢迎提。

    在 mote 上用 HOME=$(mktemp -d) 跑了 bun scripts/check.mjs(✓ registry.json,#612 的校验通过,所有包 ✓)和 bun test(4709 pass,0 fail)。

    这个 issue 先开着,等你确认。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions