Skip to content

Releases: Hkxtor/CLIProxyAPI-qoder2api-plugin

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 26 Sep 04:02

通过 CPA 插件商店安装(推荐)

在 CPA 的 config.yaml 里把本仓库的 registry.json 加为三方源:

plugins:
  enabled: true
  store-sources:
    - "https://raw.githubusercontent.com/Hkxtor/CLIProxyAPI-qoder2api-plugin/main/registry.json"

重启 CPA 后,在管理面板的插件商店里搜 Qoder 2API 一键安装,
或调用 POST /v0/management/plugin-store/qoder2api/install;
宿主会校验 checksums.txt 并把库装到 plugins/{goos}/{goarch}/。

手动安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

feat: 控制台加入国内版 OAuth 登录入口(国际版/国内版双按钮)

需求:OAuth 登录只有国际版入口。核实后发现登录能力本身已按 region 选端点,
缺的是可见入口(宿主 OAuth 面板只列硬编码 provider,插件不在其中)。

  • 控制台新增「添加账号(OAuth 登录)」卡片,两个按钮分别走 qoder.com / qoder.com.cn
  • 链接与轮询都走宿主接口(qoder-auth-url?region=… / get-auth-status?state=…),
    账号由宿主 savePluginLoginRecords 落盘;不自建登录路由(会消耗会话但不保存账号)
  • 回归测试锁死:两个区域按钮、必须带 region、不得出现自建登录接口

验证边界:两个区域都能生成授权链接(实测 200);国内版授权完成→落盘未实测(无国内账号)。

Full Changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 25 Sep 08:51

通过 CPA 插件商店安装(推荐)

在 CPA 的 config.yaml 里把本仓库的 registry.json 加为三方源:

plugins:
  enabled: true
  store-sources:
    - "https://raw.githubusercontent.com/Hkxtor/CLIProxyAPI-qoder2api-plugin/main/registry.json"

重启 CPA 后,在管理面板的插件商店里搜 Qoder 2API 一键安装,
或调用 POST /v0/management/plugin-store/qoder2api/install;
宿主会校验 checksums.txt 并把库装到 plugins/{goos}/{goarch}/。

手动安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

fix: YAML 列表写法的 extra_models 被静默忽略(配了不生效)

实测:宿主 PATCH 传数组会写成 YAML 块列表,而插件的配置解析器只认标量行,
续行 '- qfmodel' 被跳过 → 面板显示已保存、插件什么都没注册、无报错。
反向验证:字符串形式立即生效(registered_models 19→20,/v1/models 出现 qoder-qfmodel)。

解析前归一化块列表与流式列表写法,并剥掉条目引号;
回归测试覆盖 8 种写法(含列表字段后面仍跟其它键的场景)。

Full Changelog: v0.1.4...v0.1.5

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 25 Sep 08:46

通过 CPA 插件商店安装(推荐)

在 CPA 的 config.yaml 里把本仓库的 registry.json 加为三方源:

plugins:
  enabled: true
  store-sources:
    - "https://raw.githubusercontent.com/Hkxtor/CLIProxyAPI-qoder2api-plugin/main/registry.json"

重启 CPA 后,在管理面板的插件商店里搜 Qoder 2API 一键安装,
或调用 POST /v0/management/plugin-store/qoder2api/install;
宿主会校验 checksums.txt 并把库装到 plugins/{goos}/{goarch}/。

手动安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

feat: extra_models 可恢复旧模型 ID(显式声明不与实时清单去重)

实测确认宿主路由表只认插件注册的 ID,旧 ID(qoder-qfmodel)会被宿主 400 拒掉。
extra_models 作为运维显式声明,允许与实时清单同一上游 SKU 共存,
于是 extra_models: ["qfmodel"] 就能把旧 ID 找回来。去重规则:
实时↔兜底之间按 SKU 去重,extra_models 例外。

Full Changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 25 Sep 08:39

通过 CPA 插件商店安装(推荐)

在 CPA 的 config.yaml 里把本仓库的 registry.json 加为三方源:

plugins:
  enabled: true
  store-sources:
    - "https://raw.githubusercontent.com/Hkxtor/CLIProxyAPI-qoder2api-plugin/main/registry.json"

重启 CPA 后,在管理面板的插件商店里搜 Qoder 2API 一键安装,
或调用 POST /v0/management/plugin-store/qoder2api/install;
宿主会校验 checksums.txt 并把库装到 plugins/{goos}/{goarch}/。

手动安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

feat: 模型 ID 改用人类可读模型名(保留旧 SKU ID 兼容)

需求:客户端/面板里直接显示模型名称,而不是 qoder 的上游 SKU 代号。

宿主实测证据:插件模型条目在 /v1/models 里只有 created/id/object/owned_by,
不带 display_name,所以可读性只能体现在模型 ID 本身。

  • 注册 ID = model_prefix + 上游 display_name(拿不到名称的 SKU 才退回 SKU,不编名字)
  • Name 字段仍保留上游 SKU,执行时用内置别名表还原(Qwen3.8-Flash → qfmodel)
  • 模型目录按上游 SKU 去重,避免 extra_models/兜底清单与实时清单重复注册同一 SKU
  • 顺带修掉既有缺陷:model_mapping 里带前缀的键(qoder-qfmodel: xxx)以前永远匹配不上,
    现在按裸键登记且优先于内置别名
  • 管理页模型表改为「注册 ID(模型名)| 上游 SKU | 上下文 | 最大输出」

兼容性:旧 ID(qoder-qfmodel 等)保持可用,只是不再出现在模型列表里,升级无需改客户端配置。

Full Changelog: v0.1.2...v0.1.3

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 25 Sep 07:56

通过 CPA 插件商店安装(推荐)

在 CPA 的 config.yaml 里把本仓库的 registry.json 加为三方源:

plugins:
  enabled: true
  store-sources:
    - "https://raw.githubusercontent.com/Hkxtor/CLIProxyAPI-qoder2api-plugin/main/registry.json"

重启 CPA 后,在管理面板的插件商店里搜 Qoder 2API 一键安装,
或调用 POST /v0/management/plugin-store/qoder2api/install;
宿主会校验 checksums.txt 并把库装到 plugins/{goos}/{goarch}/。

手动安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

feat: 实现面板 OAuth 登录(auth.login.start / auth.login.poll)

用户报告:加载插件后在面板点 OAuth 登录,报 failed to generate authorization url。
根因:宿主把 GET /v0/management/qoder-auth-url 路由到插件 auth provider 的 StartLogin,
而插件只实现了文件型 auth(identifier/parse/refresh),返回 unknown method: auth.login.start。

按上游 qoder2api 的 device flow + PKCE 实现两个 ABI 方法:

  • start: {DeviceLoginBase}?nonce=&challenge=&challenge_method=S256&client_id=…
  • poll : {PollEndpoint}?nonce=&verifier=&challenge_method=S256(404=未授权,200={token,refresh_token})

登录产物与导入路径完全同构:同一 parseQoderCredential 可读回,Metadata 带 refresh_token
(宿主据此认定可刷新),因此额度/签到/刷新链路无需改动。区域按 ?region= → 插件配置优先级选取;
会话 10 分钟有效;同会话上游轮询做 1.2 秒节流;上游 5xx/网络抖动保持 pending 而不是判死。

顺带记录一个宿主机制:商店安装会把 store.version/release-tag 写进 config 并钉死插件文件选择,
手动往 plugins/ 放新版本 .so 不生效且宿主静默跳过 —— 升级必须走商店 install。

11 个新单测覆盖 URL/PKCE、区域、wait→success、产物同构回读、降级与错误路径、节流、wire 契约。

Full Changelog: v0.1.1...v0.1.2

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 25 Sep 06:43

通过 CPA 插件商店安装(推荐)

在 CPA 的 config.yaml 里把本仓库的 registry.json 加为三方源:

plugins:
  enabled: true
  store-sources:
    - "https://raw.githubusercontent.com/Hkxtor/CLIProxyAPI-qoder2api-plugin/main/registry.json"

重启 CPA 后,在管理面板的插件商店里搜 Qoder 2API 一键安装,
或调用 POST /v0/management/plugin-store/qoder2api/install;
宿主会校验 checksums.txt 并把库装到 plugins/{goos}/{goarch}/。

手动安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

支持 CPA 插件商店(registry 三方源)安装

宿主 internal/pluginstore 的契约(读源码确认):

  • 归档名必须是 {id}{version}{goos}_{goarch}.zip,version 为 tag 去掉 v
  • 校验和资产名必须恰好是 checksums.txt( <文件名>)
  • zip 根目录下只能有一个动态库 {id}{ext} 或 {id}-v{version}{ext}

本次改动:

  • scripts/packstore:Go 实现 zip 打包与 checksums 汇总(Windows runner 无 zip/sha256sum),
    含 8 条契约单测
  • CI:build 阶段按 tag 打 zip;release 阶段统一汇总 checksums.txt(避免矩阵内同名互相覆盖)
  • registry.json:三方源清单(github-release 类型,只给 repository,版本由宿主推导)
  • README:新增「通过 CPA 插件商店安装」章节(含 direct 类型自建源示例)
  • docs/verification.md 第 9 节:契约要点与实测证据

用宿主真实安装代码离线验证:InstallArchive 落盘 plugins/linux/amd64/qoder2api-v0.1.1.so
(6,635,440 字节),ID 解析回 qoder2api,商店扫描可见。

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 05:30

安装

下载对应平台的文件,重命名成宿主认识的插件名后放进 CPA 的 plugins/ 目录:

平台 下载文件 放进去时改名为
Linux x86_64 qoder2api-linux-amd64.so qoder2api.so
Linux arm64 qoder2api-linux-arm64.so qoder2api.so
macOS Apple Silicon qoder2api-darwin-arm64.dylib qoder2api.dylib
macOS Intel qoder2api-darwin-amd64.dylib qoder2api.dylib
Windows x64 qoder2api-windows-amd64.dll qoder2api.dll

SHA256SUMS.txt 可用于校验完整性;插件配置与账号导入见仓库 README。

本版要点

v0.1.0:首个公开版本

  • 五类能力:auth / model / executor / quota / management
  • 三种协议(chat-completions、Claude、Codex)非流式与流式,分帧按宿主契约
  • 支持 qoder2api 桌面端单账号与多账号导出 bundle(OAuth 与 PAT)
  • 上游排队自适应(免费模型),额度、签到、管理页
  • GPL-3.0(移植自 qoder2api / QCCG)