Skip to content

Releases: ardeyouxipianyi/workbuddy2api-hub

v1.2.0 - 多账号任务支持、运行日志看板、Codex freeform 工具与大日志性能优化

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 17 Sep 07:09

WorkBuddy2API-Hub v1.2.0

本版本为重大功能与稳定性迭代版本,整合了多项核心业务升级与多位社区开发者的深度优化:国内版成长任务多账号全量批量执行Web 面板原生「运行日志」实时看板Codex apply_patch 自由格式工具双向兼容大日志倒序检索与接口缓存加速非流式工具调用挂起与过滤修复,以及并发原子写入加固


1. 🇨🇳 国内版成长任务多账号全量批量执行 (Fixes #11)

  • 多账号全量遍历与防风控
    • 修复此前「一键做任务领积分」仅为首个账号执行的问题;
    • POST /tasks/run 默认自动遍历账号池中所有已启用的国内账号,账号间增加 1.5 秒安全等待间隔,兼顾批量效率与防风控;支持通过 uid 单独为指定账号打卡;
    • POST /tasks/travel 支持全量国内账号猫猫日常旅行派发与奖励汇总结算。
  • Web 看板国内账号下拉选择器
    • 任务卡片右上角新增账号下拉筛选框,支持「全部国内账号 (批量)」与各独立账号间无缝切换,实时查看各账号独立的打卡天数、成长能量与任务明细。

2. 📋 新增 Web 控制台「运行日志」专属看板

  • 顶栏新设「运行日志」页面
    • 与【网关与运维】、【数据指标看板】、【设置】并列,无刷新平滑切换;
    • 切入时自动开启轻量增量轮询(默认每 2 秒同步最新事件),离开时自动休眠,内存环形缓冲保留最近 2000 行。
  • 多维度筛选与即时搜索
    • 日志级别:一键筛选 全部 / INFO / WARN / ERROR
    • 业务模块:支持按 💬 对话 / 🐱 任务福利 / ⏰ 调度器 / 👤 账号 / ⚙️ 系统 分类过滤;
    • 即时匹配:支持输入账号 UID、模型名、状态码或错误代号(如 11128401)实时高亮过滤。
  • 专业控制台交互
    • 智能自动滚屏:默认随最新日志自动向下滚动,向上翻阅历史日志时自动挂起,滑回底部自动恢复跟随;
    • 快捷操作:支持立即刷新、一键复制当前视图日志、导出下载 .log 文件与清空内存日志;
    • 核心事件全量覆盖:自动捕获请求入站参数、流式/非流式响应耗时、Token 用量、调度器排程、猫猫旅行与错误拦截告警。

3. 🛠️ 社区 PR 合并:Codex apply_patch 自由格式工具支持 (合并 PR #12)

  • 问题根因:Codex CLI (0.15x) 将改文件工具声明为 Responses API 的 custom (freeform) 语法工具,上游 Chat 接口不识别会导致模型将补丁作为普通正文吐出,工具调用静默失效。
  • 出站降级 + 入站还原
    • 出站将 custom 工具转译为上游兼容的 {input: string} function 工具,并将 grammar 规范内嵌到 description;
    • 入站将模型的输出还原为 Responses 规范的 custom_tool_call item 与 response.custom_tool_call_input.* 流式事件;
    • 附带 32 项确定性单元测试(_test_custom_tools.py 全部通过),MCP 与标准函数工具零影响。

4. 🚀 社区 PR 合并:用量日志高性能倒序检索与高频缓存 (合并 PR #14)

  • 告别 60 秒超时:彻底解决 usage.jsonl 超过 20MB(4.5 万行+)时前端轮询争抢 Python GIL 导致的接口超时卡死;
  • 倒序分块读取 (_tail_lines):从文件末尾向前分块 Seek(每次 256KB),仅回溯读取所需最近 N 行,耗时从 0.43 秒降至 1.2 毫秒;
  • 高频接口 TTL 缓存:为 /usage/usage/perf/usage/by-account 加入 10 秒内存缓存,命中耗时仅 1.6~2.5 毫秒;
  • 前端轮询防堆叠:增加 REFRESH_BUSY 状态守卫,上一轮未返回自动跳过,杜绝客户端积压。

5. 🛡️ 非流式工具调用挂起与过滤条件收敛 (Fixes #15)

  • finish_reason 自动降级:修复非流式请求中空占位被过滤后 finish_reason 仍挂在 "tool_calls" 导致客户端死等卡死的问题,空占位过滤后自动降级为 "stop"
  • 过滤条件严格收敛:判断条件严格收敛为只认非空函数名 name,不再漏放 name: "" 的残缺调用,防止多轮历史回填触发上游 400 (11133 model_param_invalid) 报错。

6. ⚡ 社区 PR 合并:用量持久化原子写入防并发竞争 (合并 PR #13)

  • 解决高并发时多线程并发重写 usage-summary.json.tmp 出现的 ENOENT 报错;
  • 临时文件名增加 PID 与线程 ID 后缀,异常路径自动清理残留 .tmp,实测 1000 次并发写入 0 失败、0 残留。

7. 🔒 其他安全与稳定性加固

  • UID 路径穿越拦截:对账号导入与存储增加了严格的 UID 字符白名单与路径规范化校验,杜绝目录越界风险;
  • 会话粘性路由与 Prompt Cache:基于请求历史稳定前缀派生哈希,最大化命中模型上下文缓存(实测命中率达 80%~95%);
  • 11128 WAF 脱敏管线:对齐最新客户端指纹与敏感参数清洗逻辑,全面保障调用稳定性。

下载与使用

  • 便携绿色包:下载下方 wb-proxy-v1.2.0.zip,内置精简 Python 运行时,解压后双击 start-wb-proxy.bat(单机)或 start-wb-proxy-lan.bat(局域网)即可启动。
  • Docker 部署:直接执行 docker-compose up -d 拉取最新代码构建镜像。

v1.1.9 - 账号池 JSON 导入导出与跨机迁移支持

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 17 Sep 02:22

WorkBuddy2API-Hub v1.1.9

本版本合并了社区 PR #5,支持账号池全量及单账号的 JSON 导出与导入,极大简化多实例备份、跨机器迁移与账号管理。

1. 账号池 JSON 导出与导入(合并 PR #5

  • 导出能力 (GET /accounts/export)
    • 支持全量导出或单账号导出(?uid=...,导出的单文件可无缝导入其他实例);
    • 支持按区域过滤(?realm=intl|cn);
    • 支持脱敏导出(?secrets=0,去除敏感 Token 仅保留账号元数据,便于分享报表);
    • 支持浏览器附件直接下载(?download=1,文件名带安全时间戳与账号前缀)。
  • 导入能力 (POST /accounts/import)
    • 广泛兼容 4 种输入形状:本网关导出文件、手写裸数组、单账号对象、桌面客户端 *.info 凭据;
    • 内置 Dry-Run 预检机制:上传后弹窗详细预览新增、覆盖、跳过、无效的具体账号名单,确认无误后再执行导入;
    • 冲突保护:默认跳过同 UID 账号,可选勾选覆盖模式;
    • 安全隔离:导入时自动丢弃来源实例的残留冷却与错误标记,避免带入失效状态。
  • Web 看板操作
    • 工具栏新增「导出账号」「导入账号」按钮;
    • 账号列表每行新增独立「导出」按钮。

2. 验证与回归

  • 已通过全量单元测试与回归测试(含导入导出、Dry-Run 状态一致性、11128 脱敏、前缀会话粘性等);
  • 便携安装包内置独立 Python 运行时,验证启动正常。

v1.1.8 - 前缀会话粘性、空工具调用修复与 11128 脱敏加固

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 16 Sep 16:02

WorkBuddy2API-Hub v1.1.8

本版本合并了社区 PR #4,并系统化对齐了上游 11128 防火墙脱敏管线,显著提升对各类客户端(sub2api / DSH / Claude Code / Codex 等)的兼容性与缓存效益。

1. 合并 PR #4:修复空工具调用卡死与前缀会话粘性

  • 修复空 function_call 占位导致客户端卡死:上游在流末尾偶发空占位对象,原网关会错误生成空参数 tool_calls 导致 sub2api / DSH 等严格客户端无限等待报 no terminal response event。现已在 clean_chunk、Responses 帧和流聚合器中做双重严格清洗过滤;
  • 对话前缀派生会话粘性(Prompt Cache 命中率提升):sub2api / DSH 等客户端不发送 X-Conversation-Id 会话标识,导致网关每轮对话轮换不同账号、Prompt Cache 命中率直接归零。现自动基于对话前两条稳定消息派生稳定亲和键(pfx-...),使多轮对话固定落在同一账号,实测缓存命中率从 0% 提升至 80% ~ 95%,不同对话依然保持负载均衡(支持环境变量 WB_AFFINITY_BY_PREFIX=0 关闭)。

2. 指纹脱敏加固(对齐 workbuddy2api,消除 11128 拦截)

  • 上游反探测数字 11128 自动改写:自动将消息中出现的裸数字 11128 改写为 11-128,避免因引用/复述历史报错触发上游反探测规则;
  • 裸键名与大小写兜底:增强正则覆盖反引号引用或混合大小写的 X-Anthropic-Billing-Header,统一缩写为 x-anthropic-billing-hdr 破坏上游字面拦截;
  • 身份句与反馈句放宽:放宽 Claude Code 身份句末尾标点限制,兼容桌面端与 Agent SDK 变体;改写官方反馈句链接避免整句拦截;
  • 工具调用参数全面脱敏:深度递归净化 tool_calls[].function.argumentsreasoning_content,避免因上一轮工具参数携带敏感特征导致后续全量报错;
  • 客户端新协议兼容:自动翻译新版 OpenAI SDK 发送的 max_completion_tokens 别名为 max_tokens,并自动注入流式用量选项 stream_options: {"include_usage": true}

v1.1.7 - 安全加固与审查修复

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 16 Sep 15:05

WorkBuddy2API-Hub v1.1.7

本版是一次安全加固与代码审查修复版本,来自对 v1.1.6 的完整代码审查。

1. 安全修复

  • 移除可猜测的 LAN 默认密钥(重要):LAN 模式此前使用写死的 qwer.1234,而网关消耗的是你自己账号的上游额度,任何同网设备用这个公开密钥都能直接调用。现在改为首次启动自动生成高强度随机密钥并持久化accounts/settings.json,重启复用同一密钥,终端会打印出来;
  • CORS 收窄Access-Control-Allow-Origin 仅对 OpenAI 兼容 API 路径下发。管理接口(/accounts/settings/usage/v1/usage/tasks/scheduler/panel)不再带该头,避免局域网页面跨域读取账号与消费数据;
  • 移除 ?panel= 查询参数登录通道:面板会话令牌现在只接受 X-Panel-Token 请求头,避免令牌通过浏览器历史、Referer 与反代日志泄露。

2. 健壮性

  • 请求体统一校验:所有请求体走同一入口,超大请求体固定返回 413,JSON 格式错误固定返回 400
  • 调度器防重入:新增运行锁,手动连续触发不会再与整点任务并发执行,避免重复签到触发上游频控;
  • 任务失败可见:国内成长任务各接口的静默失败改为写入面板日志,接口变更不再与"今天没任务"混淆;
  • 登录限速表清理:面板登录失败计数会定期清理,长期运行不再累积内存。

3. 代码清理

  • 删除单账号时代的 163 行死代码(Session 类、_jwt_issuer / is_intl_credential / find_auth_file 及配套常量)与无用 import;
  • 统一缓存命中率口径为 cached / prompt,逐条流水与聚合统计不再打架;
  • 看板账号行的内联事件处理器对 uid / 昵称做安全转义。

验证说明

已实机验证:单机与 LAN 模式启动、LAN 随机密钥生成与持久化、CORS 路由、认证门禁、请求体边界、调度器防重入、便携包启动。

已实测可用:Docker 部署与实际模型调用。

v1.1.6 - 官方出站指纹深度加固与核心稳定性修复

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 15 Sep 15:56

WorkBuddy2API-Hub v1.1.6

1. 防风控与官方桌面端指纹深度加固

  • 官方风控门禁头:所有出站请求(对话、凭证刷新、积分账本)全量注入 X-CodeBuddy-Request: 1,消除上游 WAF code 11140 request illegal(内容未通过安全审核) 误杀;
  • 分域语言偏好:国际版自动注入 Accept-Language: en-US,国内版自动注入 Accept-Language: zh-CN
  • 官方 IDE 特征组:补齐 X-Agent-Purpose: conversationX-IDE-Name/Type/Product: WorkBuddy 与版本标,使网络层指纹与官方客户端 100% 对齐。

2. 稳定性与逻辑漏洞修复

  • 调度器崩溃修复:实现 Account.can_checkin(),解决国内账号每日巡检时调度器异常抛错崩溃;
  • 模型缓存降级防崩溃:修复 fetch_endpoint_models 回退访问不存在的顶层键导致的 KeyError
  • 区域判定收敛:修正 hy4-preview-f 的独占标记,支持在双区域出口间正常共存并跟随网关平滑回退;
  • 非流式 Tool Calls 聚合:重构 aggregate_stream,支持在非流式 Chat Completions / Responses 场景下完整聚合组装 tool_calls
  • Responses DSML 流式缓冲:增加流式增量文本缓冲,杜绝 DeepSeek <|DSML calls> 原始标记提前泄露给下游客户端。

3. 安全防护与配置调优

  • 面板暴力破解防护/panel/login 增加单 IP 限速机制(1 分钟内超 5 次错误触发 429 封禁)与 500ms 安全退避;
  • 请求体大小限制:增加 50MB Content-Length 保护,超限直接阻断并返回 HTTP 413
  • Summary 原子写入:用临时文件结合原子重命名落盘 usage-summary.json,杜绝并发覆写导致 JSON 截断损坏;
  • 安全基线提升:移除 Dockerfile 与 compose 中写死的默认 API Key,改为纯净安全配置。

资源重发说明 (2026-09-16)

本 Release 的 wb-proxy-v1.1.6.zip 已重新打包上传,修复了 Dockerfile 漏拷贝 wb_settings.py 导致容器启动即报 ModuleNotFoundError: No module named 'wb_settings' 的问题。源码逻辑与版本号(1.1.6)保持不变。

  • 使用便携包或直接跑源码的,不受影响;
  • 使用 Docker 构建的,请重新下载本 Release 的最新 zip,或拉取 main 分支后执行 docker compose up -d --build。

v1.1.5 - 多 Key 出口绑定

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 15 Sep 08:48

WorkBuddy2API-Hub v1.1.5

多个 API Key,各自绑定出口

  • 可同时配置多个 Key,每个 Key 指定固定国际版出口固定国内版出口跟随面板切换
  • 两个出口并行对外服务,用不同 Key 的客户端各走各的,不再需要切换全局网关;
  • Key 可单独启用 / 停用 / 重命名 / 删除,删除后立即失效。

行为与安全

  • 面板里保存过 Key 之后,启动参数中的 --api-key 不再生效,避免旧密钥漏网;
  • 模型与出口不匹配时(例如用国际版出口的 Key 调 deepseek-v4-pro)返回明确提示,而不是上游那句难以理解的 request illegal
  • 修复浏览器访问 ?key= 带非 ASCII 字符时看板无法加载的问题。

v1.1.4 - 面板访问密码与网页内设置(API Key / 密码均可在线修改)

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 15 Sep 08:14

WorkBuddy2API-Hub v1.1.4

面板访问密码

  • 打开 Web 看板需先输入面板访问密码,默认 admin,首次登录会在页面提示尽快修改;
  • 密码以 PBKDF2-SHA256 摘要保存在 accounts/settings.json,不写入明文;
  • 登录令牌仅存于内存与浏览器会话,重启网关或修改密码后需重新登录;改密会同时注销其他浏览器会话。

网页内设置(不再只能改 .bat)

  • 新增「设置」标签页,可直接修改面板密码与 API Key;
  • 网页保存的 API Key 写入 accounts/settings.json,重启后依然生效;
  • 启动时显式传入的非默认 --api-key 仍对该次运行优先,便于临时覆盖。

权限边界

  • /accounts/usage/tasks/scheduler/settings 等管理接口需要面板登录令牌;
  • /v1/models 与对话接口仍只校验 API Key,既有 OpenAI 客户端无需改动配置。

致谢与引用

v1.1.3 - 全新浅色极简看板、DeepSeek推理档位宣告与数据看板透视

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 15 Sep 06:18

WorkBuddy 国际版、国内版多账号反代网关 v1.1.3

🎨 全新浅色极简设计与 UI 深度重构

  • 现代浅色质感(Light Theme):基于 ui-ux-pro-max 规范重构,采用微米级 Slate 阶梯色板与轻盈微投影,告别视觉疲劳;
  • 全站图标克制降噪:全面移除 Emoji 装饰图标(如国旗、闪电、猫猫等),全界面收敛为纯粹高级的文字与徽章呈现;
  • 运维状态栏 4 联舒适大卡:重构运维首页状态栏为 4 张宽裕卡片(可用账号池、积分额度余额、网关调用量、请求成功率),彻底解决文字挤压与截断。

📊 独立「数据指标看板」与模型全景大表

  • 顶级双枢纽导航:解耦「网关与运维」和「数据指标看板」;
  • 模型指标大表内嵌账号列:在全景大表第二列直接内嵌调用该模型的具体账号,配合 P50 首字延迟、生成速度 (tok/s)、思考用量与用量进度条,一表透视全链路;
  • 5 联高阶监控指标:今日消耗 Token、累计消耗 Token、网关平均生成速度、上下文缓存命中率、调用请求数与成功率。

🧠 DeepSeek V4.1 推理档位与能力宣告完善

  • 对齐官方接口规范,向客户端正式宣告 DeepSeek 4.1 支持 low / high / max 三种推理深度(默认 high);
  • 客户端(如 Cherry Studio、NextChat、DSH 等)可自由选择思考强度,底层网关如实无损透传。

🐳 Docker 容器化支持

  • 新增 Dockerfiledocker-compose.yml,支持通过一行 docker compose up -d 在 Linux / NAS / 服务器开箱即用。

致谢与引用

v1.1.2 - 修复 SSE Heartbeat 导致 DSH 解析错误并增加数据指标看板

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 15 Sep 02:56

WorkBuddy 国际版、国内版多账号反代网关 v1.1.2

🐛 缺陷修复

  • 修复 SSE 心跳保活导致 DSH / 第三方客户端解析崩溃的问题 (Fixes #1):
    • 彻底剥离与过滤上游返回的 SSE 注释行(: heartbeat / : keepalive),避免心跳包被包装成非法的 data: : heartbeat 导致 DSH 等客户端触发 Unexpected token ':', ": heartbeat" is not valid JSON 报错;
    • 在流式转发循环中增加双重防御性过滤,彻底阻断非规范 SSE comment 泄露给下游客户端。

📊 全新「数据指标看板」与视觉重构

  • 顶级双枢纽导航:解耦「🖥️ 网关与运维」与「📊 数据指标看板」;
  • 全景数据透视大表:在模型性能表中直接插入「账号」列(固定在第 2 列),一目了然是谁调用了哪个模型、消耗多少 Token 与响应速度;
  • 顶层 5 联核心 KPI 弹性看板:收敛今日消耗、累计消耗、网关平均生成速度 (tok/s)、上下文缓存命中率、调用请求数与成功率;
  • 网关运维页升级:重构为 4 张舒适大气的大卡片(可用账号池、额度余额、调用量、成功率),彻底解决文字挤压与截断。

🐳 Docker 容器化支持

  • 新增 Dockerfiledocker-compose.yml.dockerignore,支持通过一行 docker compose up -d 极速部署在 Linux / NAS / 服务器。

致谢与引用

v1.1.1 - WorkBuddy 国际版多账号反代网关(增加国内版)

Choose a tag to compare

@ardeyouxipianyi ardeyouxipianyi released this 14 Sep 12:31

WorkBuddy 国际版多账号反代网关(增加国内版) v1.1.1

修复与优化

  • 修复扫描桌面客户端弹窗中点击「导入」无响应的问题:彻底解决路径引号在内联 HTML 属性中被提前截断的隐患,重构为规范的 data-attribute 与事件委托绑定。
  • 新增直观的导入反馈提示:导入成功后在右下角弹出醒目 Toast 通知,并提示账号所属区域。
  • 账号池状态联动:全区域账号池动态识别,导入后按钮立即变为灰色「已导入」,不可重复导入。

核心特性回顾

  • 双区域独立路由:同时支持 🌐 国际版 (www.workbuddy.ai) 与 🇨🇳 国内版 (copilot.tencent.com),看板一键切换并自动落盘记忆。
  • 模型列表严格按照桌面应用 1:1 对齐:剔除内部代码补全接口与测试专线变体(国际版 16 个 / 国内版 14 个)。
  • 统一稳定设备指纹派生 (derive_id):双版本通用,基于账号 UID 稳定哈希派生专属机器码与会话标识,天然阻断多账号关联风控。
  • 国内成长任务全自动完成:一键接取任务、构造行为事件上报点亮并自动领奖,支持猫猫日常旅行与打卡。
  • 后台常驻定时调度器 (Scheduler):每日整点排程(09:00/21:00 签到旅行 · 22:00 保活 · 01:00 夜猫),国际版自适应为专属 Token 集中保活。

致谢与引用