Skip to content

Releases: Thinker-Joe/cline-pin-proxy

Release list

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 15:51

新增

  • 规则支持排除式路由:mode: "exclude" + exclude: ["…"] 把排除列表写入 direct 管道的
    provider.ignore,其余交给网关自动路由。2026-10-17 实测确认这个字段确实到达 OpenRouter
    (only 与 ignore 同时排除同一家时返回 All providers have been ignored),而 planner 管道
    没有对应字段,因此显式设 pipeline: "planner" 会被校验拒绝,auto 只作用于 direct。
    该模式不写 only/order,调用方已有的过滤条件保持有效;sort 仍可搭配使用。
    响应头新增 X-Cline-Pin-Exclude。

变更

  • 注入时按目标管道翻译同一渠道的不同拼写:planner 写 zai / togetherai,direct 写 z-ai / together。
    2026-10-17 实测确认,把 slug 写到错误的管道不是被忽略,而是直接 400/404;翻译表只收录实测过的两对,
    其余上游标识原样写入。日志与 X-Cline-Pin-Upstreams 仍显示配置的原值。
  • probe 把"没解析出候选清单"拆成明确的结局分类:routing-error、filter-ignored、
    empty-content、auth、model-unavailable、rate-limited,无法归类时退回 unknown。
    过滤被丢弃时会明确提示"已真实推理、可能计费",
    并从响应元数据读出本次实际服务的上游(served)与管道,不再把已计费的执行误报成
    "网关措辞变了、再补个身份头试试"。POST /admin/probe 的响应新增 outcome、served 字段(只增不改)。

文档

  • docs/VERIFICATION.md 新增第 12 节(2026-10-17):三个上游参考项目的近期改动核对——官方推荐模型
    接口与订阅清单、上游清单快照(含新 slug 线索)、错误措辞互证;第 12.5 节是本项目当日实测的拼写矩阵、
    provider.ignore 行为与候选清单变化;第 12.6 节是 ClinePass 订阅清单(14 条)的可用性、管道归属与
    过滤支持矩阵,包含"带前缀会改路由"(cline-pass/glm-5.3 已转私有池且忽略过滤)与已下架的旧 ID;
    第 12.7 节记录了 deepseek-v4.1-flash 的钉住路径与实际落点分布(主 ID 与排除法均无效,当日 23 次
    请求全部由阿里云节点服务;改用快照别名 deepseek/deepseek-v4.1-flash-1017 配 strict deepseek 可钉住)。
  • 两版 README 的「探测与校验」补充结局表,说明每种结局的含义与下一步;「规则字段」补充按管道翻译拼写
    与 exclude 模式的说明;「上游路由」「默认规则」补充 2026-10-17 的前缀路由变化、默认 GLM 规则适用范围,
    以及 deepseek-v4.1-flash 可用的强制方案;AGENTS.md 补充 exclude 的模式约束。
  • 清理已下架旧 ID 的现行指引:README 不再把 cline-pass/deepseek-v4-flash 当作可用/忽略过滤的例子,
    测试夹具改用仍存在的模型 ID;历史实测小节保留原日期与语境,并在第 1 节标注 2026-10-17 的可用性复查。
  • docs/VERIFICATION.md 新增第 11 节(2026-09-20 复查):上游过滤字段的时效性(deepseek/deepseek-v4.1-flash
    的整个 providerOptions.gateway 失效)、cline-pass/ 的前缀语义及其对默认上游的影响、逐 ID 的管道归属、
    多点反证的判断方法,并在第 1 节标注旧结论的适用边界。
  • 两版 README 的「上游路由」「默认规则」「排查问题」补充时效性警告:过滤是否被采纳由 Cline 决定、逐模型不同
    且可能随时变化,必须读响应元数据确认;默认 deepseek 规则对 deepseek/deepseek-v4.1-flash 当前无法强制。
  • AGENTS.md 补充 cline-pass/ 前缀语义、过滤结论的复测要求,以及"指定 A 得到 A 不能作为依据"的判断标准。

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 17:41

首个稳定版本。

亮点

  • 双管道上游钉死:同时注入 providerOptions.gateway.only 与顶层 provider.only,让 planner(Vercel AI Gateway)与 direct(OpenRouter)两条管道各取所需;支持 strict / preferred 模式与 cost / ttft / tps 排序。默认规则为 deepseek、relace、friendli。
  • 响应格式兼容:把 Cline 非流式的 {data:{choices},success:true} 包封还原成标准 OpenAI 形状,只读顶层 choices 的客户端不再拿到"成功但没内容"的响应;SSE 逐块转发,不缓冲、不解析。
  • 配置热重载与可选管理 API:配置文件按 mtime 轮询,非法内容保留上一份有效配置;设置 admin_token 后可用 /admin/* 读写规则、强制重载与探测上游。
  • 零第三方依赖:仅使用 Go 标准库,构建为单个可执行文件;镜像同时发布 linux/amd64 与 linux/arm64。

安装

# 容器(多架构)
docker pull ghcr.io/thinker-joe/cline-pin-proxy:1.0.0

# 或从下方 Assets 下载对应平台的二进制
./cline-pin-proxy serve            # 默认值 + 环境变量

最小 Compose 与客户端接入见 README。

已知限制

  • 部分 cline-pass/ 模型会忽略 Cline 的上游过滤字段:注入成功不等于上游被采纳,需检查响应中的 finalProvider / provider。依据见 docs/VERIFICATION.md。
  • arm64 只验证了镜像 manifest 与交叉构建,没有 arm64 运行时实测。
  • 超大 JSON 响应(> 8 MiB)跳过包封还原并标记 X-Cline-Pin-Unwrapped: skipped-too-large,该回退路径存在已知实现限制。

Full Changelog: https://github.com/Thinker-Joe/cline-pin-proxy/commits/v1.0.0