Repository navigation
Releases: Thinker-Joe/cline-pin-proxy
Releases · Thinker-Joe/cline-pin-proxy
Release list
v1.1.0
新增
- 规则支持排除式路由:
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配 strictdeepseek可钉住)。- 两版 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
首个稳定版本。
亮点
- 双管道上游钉死:同时注入
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