Skip to content

Releases: Practice019/multi2api

v1.7.0 — 上游 4 个 → 10 个 + 登录/签到/额度/续期四条链路补齐

Choose a tag to compare

@Practice019 Practice019 released this 30 Sep 10:47

v1.7.0 — 上游扩到 10 个 + 登录/签到/额度/续期四条链路系统性补齐

📦 打包形式(同 v1.6.1 / v1.6.2)

每个平台 zip 内含:可执行文件 + config.example.json(10 个上游全部配好)+ 使用说明.txt(Windows 另外带 start.bat),解压即用。

⚠ 本版只增不删:没有删除任何 v1.6.2 里已发布过的上游。
mimo / buddy 两个上游确实被删了,但它们从未进过任何 Release
(是 v1.6.2 之后加的),所以升级的用户本来就没见过它们。
配置里若残留 mimo 段会被静默忽略,建议删掉。

旧 config.json 可直接用 —— 没有任何配置字段被改名或删除。

🆕 上游:4 个 → 10 个

v1.6.2 只有 4 个(workbuddy / codearts / loomy / trae)。本版新增 6 个:

上游 登录方式 能力
WorkBuddy 海外版 页内 OAuth(www.workbuddy.ai) 对话 / 额度(海外版无玩法)
Cline WorkOS 设备码轮询(不起本地端口,服务器部署天然可用) 对话 / 余额 / 自动续期
Raccoon(商汤小浣熊) 微信扫码(页面直接出二维码) 对话 / 积分余额 / 登录奖励
LobsterAI(有道龙虾) 页内登录 评论 / 三步式签到领积分
Qoder(阿里系) PKCE 设备码 对话(WASM 加密推理)/ 积分 / 每日签到
Qoder 中国版 同上 同上(与 qoder 共用凭证目录,靠 product_id 区分)

✨ 新增能力

两层「全部签到」

账户池顶部一个「全部签到」→ 触发所有上游的全量签到(后台任务 + 进度回执)。
各上游卡片头上另有一个「全部签到」→ 只签本上游。

额度三层作用域 + 原始值

  • 账号行内「额度」:只刷该账号
  • 卡片头「刷新本上游额度」:只刷该上游
  • 顶部「刷新全部额度」:刷所有账号

额度列显示上游自己的记账单位(不做单位换算假设)。

批量导入统一到所有上游

卡片头「批量导入」:把你已有的凭证 JSON 直接粘进来(单个对象或 [ ] 数组),导入后自动重载账号池。
10 个上游都支持 —— 此前只有 2 个。

Token 列 / 自动续期

  • 各上游按自己的凭证寿命比例提前续期(不再是固定 10 分钟),判据取自 token 自己的 iat/exp。
  • 「Token 到期」列现在如实显示剩余时间。

登录

  • 「添加账号」默认用无痕窗口打开授权页(网关自己启动浏览器 + 独立 profile,避免 OAuth 拿浏览器里已登录的账号完成授权)。
  • 扫码类上游(raccoon)现在直接渲染二维码 —— 此前给的是一个扫不了的链接。

🔧 修掉的问题(都是用户实测报的)

「添加账号有问题」

  • qoder:此前完全没有 PKCE —— 授权页能打开、点了授权却永远拿不到 token(一直转圈到 5 分钟超时)。按参照实现补齐 PKCE 五件套,轮询改用 GET。
  • raccoon:给出扫不了的链接 —— 它的链接是给手机扫的内容,而界面只给「打开链接」。
  • 弹窗同时说两句矛盾的话 —— 顶部引导语写死"去浏览器登录",扫码流程还会再显示"用手机微信扫码"。现按登录形态分叉。

「签到失败」

  • lobsterai:上游返回的 actions 是字符串数组,我们按对象数组解析 → 每次签到必失败。
  • qoder:缺少机器身份头(服务端就不下发可领活动)。根因是那个头的来源文件在本机根本不存在(纯登录流程不产生它),而旧实现只读文件、读不到就静默降级 → 实际是永久不发头。现在实时调用官方 runtime-info.exe 生成。
  • 瞬时 503 被当成永久失败:实测上游约 25% 的请求回 DEPENDENCY_UNAVAILABLE(与请求头无关,/usage 同时刻恒 200)。旧实现不重试,而签到每 30 分钟扫一次、撞上就记一次失败。现加退避重试。

「额度是 0」

真相是**"我们还没问过上游"** —— 额度探测只在手动点按钮时才被调用,没有定时任务扫它。现在由续期任务每轮顺带写回。

「Token 不会自动刷新」

  • cline:它的续期能力实现了,但没有注册后台任务 —— 核心的两条续期路径(出站请求 / 后台定时)一条都不占,没人用它时 token 就静静过期。
  • qoder 续期响应字段名全错:上游返回 device_token + expires_at(ISO 字符串),我们读的是 access_token + expires_in(两个都不存在)→ 续期永远失败、过期时刻从未落盘。
  • qoder 两个实例注册了同名后台任务 → 日志 任务名 qoder-refresh 重复…已跳过后者 → 中国版永不续期。

其它

  • 「刷新本上游额度」点下去报 refreshAccounts is not defined(调用了一个从未定义的函数)。
  • 额度回执显示 [object Object]。
  • workbuddy 批量导入会丢 deviceToken —— 它是每账号一个的风控头,丢了表现为"导入后这个号开始被风控",且看不出与导入有关。

🎨 界面

  • 卡片头按钮顺序统一为:
    全部签到 → 添加账号 → 批量导入 → 刷新本上游额度 → 重载 auths
    「添加账号」去掉了 + 前缀。

🧪 工程

  • 新增真浏览器 e2e(点按钮 → 抓真实请求),验的是行为而不是"有没有某个元素"。
    变异验证:把事件委托的"只绑一次"守卫去掉 → 刷新 5 次后点一次发 7 个请求,而所有只看 DOM 的静态断言全绿。
  • 新增二维码编码器(零依赖自实现),正确性由交叉验证守住:真的调用 Python qrcode 库逐位比矩阵 —— 结构断言全绿不等于码能扫。

🚀 快速开始

  1. 解压对应平台的 zip
  2. copy config.example.json config.json,编辑 api_key
  3. 放凭证到 auths/<上游>/,或直接用管理台的「添加账号」/「批量导入」
  4. Windows 双击 start.bat;Linux/macOS 执行 ./wb2api-server -config config.json
  5. 打开 http://127.0.0.1:7863/ui

📥 下载

推荐(带版本号、含 使用说明.txt + 完整 config.example.json):

  • wb2api-server-v1.7.0-windows-amd64.zip — Windows x64
  • wb2api-server-v1.7.0-linux-amd64.zip / -linux-arm64 — Linux
  • wb2api-server-v1.7.0-darwin-amd64.zip / -darwin-arm64 — macOS

CI 自动构建(由 GitHub Actions 从 tag 构建,不含 使用说明.txt):

  • wb2api-server-windows-amd64.zip
  • wb2api-server-linux-amd64.tar.gz

SHA256SUMS.txt — 上面全部 7 个压缩包的校验和。

校验方法:sha256sum -c SHA256SUMS.txt(Windows 可用 certutil -hashfile <文件> SHA256 逐个核对)。

⚠ 本仓库此前几个版本的 SHA256SUMS.txt 只覆盖了 CI 那两个,占多数的
带版本号 zip 没有校验和 —— 本版已修正为覆盖全部资产。

完整变更见仓库 CHANGELOG.md 与 git log(v1.6.2..v1.7.0)。

v1.6.2

Choose a tag to compare

@Practice019 Practice019 released this 16 Sep 06:05

v1.6.2 — 30 分钟主动全量续期 + 手机号昵称 + 稳定性

📦 打包形式(同 v1.6.1)

每个平台 zip 内含:可执行文件 + config.example.json(默认启用四上游)+ start.bat + 使用说明.txt,解压即用。

✨ 相比 v1.6.1 的更新

token 续期:统一「30 分钟主动全量续」

  • 之前"被动只刷临近过期":codearts 60s 扫描只刷剩 <3min 的,用户看到 token 倒计时却不续(观感差)
  • 现在:所有上游(workbuddy/trae/codearts)每 30 分钟无条件全量刷新全部账号 token——token 永远是"30 分钟内续过"的,不会走到"请求时发现过期"
  • codearts 续期间隔默认 60s → 30min(可配置)
  • 死 token 号保留退避(不刷屏)+ 账号池可见「需重新登录」
  • ⚠ 注意:codearts refreshToken 消费型,同一凭证目录只应被一个实例使用

账号昵称统一手机号

  • loomy:昵称优先级改为手机号优先(批量导入也显示手机号,之前显示 NKxxx)
  • workbuddy:本就手机号
  • codearts/trae:凭证体系无手机号,显示官方账号标识(也是登录凭据)

修复

  • 导入/重载账号后数据自动更新(重载路径补额度刷新 + 无感轮询检测新账号行)
  • 重复导入/重载不再清掉已有凭证(投影同步保留 token)
  • 移除「每 5s 刷新」开关(数值实时性由 30s 无感轮询覆盖)
  • 管理密钥一键轮换(写 config 立即生效无需重启)
  • 趋势图 hover tooltip + 布局修复;网关卡 2→7 张

🚀 快速开始

  1. 解压 zip
  2. copy config.example.json config.json,编辑 api_key 与凭证目录
  3. 放凭证到 auths/(或用管理台「+添加账号」页内登录)
  4. 双击 start.bat(或 ./wb2api-server -config config.json)
  5. 打开 http://127.0.0.1:7863/ui

📥 下载

  • wb2api-server-v1.6.2-windows-amd64.zip — Windows x64
  • wb2api-server-v1.6.2-linux-amd64.zip / linux-arm64 — Linux
  • wb2api-server-v1.6.2-darwin-amd64.zip / darwin-arm64 — macOS
  • SHA256SUMS.txt — 校验和

完整变更见仓库 git log(v1.6.1..v1.6.2)。

v1.6.1

Choose a tag to compare

@Practice019 Practice019 released this 15 Sep 11:41

v1.6.1 — API 管理 + 仪表盘增强 + 稳定性修复

📦 本次打包形式:压缩包(解压即用)

每个平台的 zip 内含:可执行文件 + config.example.json(配置模板,默认启用全部四个上游)+ start.bat(Windows 启动脚本)+ 使用说明.txt。不再需要分别下载配置文件。

✨ 相比 v1.6.0 的新功能

API 管理(对标 new-api 令牌管理)

  • 多把 API Key(存 data/apikeys.json,持久化,重启不丢)
  • 每把 Key:额度上限(token,0=不限)、每分钟请求上限(0=不限)、启用/禁用、独立用量统计(请求数/消耗 token/失败数)
  • 管理密钥一键轮换:生成新钥匙 → 写入 config.json → 立即生效无需重启(旧钥匙作废)
  • 鉴权语义:config 的 api_key 是管理钥匙(不限额);普通 Key 额度用尽 → 402、超速 → 429、禁用/未知 → 401
  • 兼容性:未配置多 Key 时行为与旧版完全一致

仪表盘增强

  • 24h 趋势图:请求量 + 成功率双折线(内联 SVG,零图表库),hover 显示各小时请求/成功/失败/token
  • 网关状态卡 2 → 7 张:账号总数/健康/冷却中/已禁用/在途请求/累计请求/成功率
  • 移除「每 5s 刷新」开关:数值实时性统一由 30s 无感轮询覆盖(只更新数值不整页重绘)
  • API 管理面板移到仪表盘下方,管理钥匙与普通 Key 同屏显示

稳定性

  • 后台续期失败统一接入账号池可见禁用(连续 3 次 → 「已禁用:凭证失效,需重新登录」)
  • codearts 死 token 不再每 60s 重试打上游(指数退避 + 抖动,借鉴 LiteLLM)
  • 全部上游签到/保活/福利领取统一 30 分钟被动扫描(幂等)

🚀 快速开始

  1. 解压对应平台的 zip
  2. copy config.example.json config.json,编辑 api_key 与凭证目录
  3. 放入凭证到 auths/(或用管理台「+添加账号」页内登录)
  4. Windows 双击 start.bat;Linux/macOS 执行 ./wb2api-server -config config.json
  5. 打开 http://127.0.0.1:7863/ui

📥 下载

  • wb2api-server-v1.6.1-windows-amd64.zip — Windows x64
  • wb2api-server-v1.6.1-linux-amd64.zip / linux-arm64 — Linux
  • wb2api-server-v1.6.1-darwin-amd64.zip / darwin-arm64 — macOS
  • SHA256SUMS.txt — 全部压缩包校验和

完整变更见仓库 git log(v1.6.0..v1.6.1)。

v1.6.0

Choose a tag to compare

@Practice019 Practice019 released this 15 Sep 07:54

v1.6.0 — 解压即用的预编译 Release

📦 下载后怎么用(3 步)

  1. 按系统下载对应压缩包,解压得到:wb2api-server(主程序)+ config.example.json(配置模板,四个上游默认全开)+ start.bat(Windows 双击启动)
  2. 把 config.example.json 改名 config.json,填入你的 API Key(api_key 字段)与凭证:
    • 方式 A:把已有的凭证目录 auths/(workbuddy/codearts/loomy/trae 的 json)放进解压目录
    • 方式 B:启动后在管理台「+ 添加账号」页内登录(workbuddy/codearts/trae/loomy 都支持)
  3. 启动:
    • Windows:双击 start.bat(自动用同目录 config.json)
    • Linux/macOS:./wb2api-server -config config.json
    • 管理台:http://127.0.0.1:7863/ui

没有 config.json 时程序会提示复制 config.example.json,并以默认值启动(不会硬退)。
端口改 config.json 的 listen 字段(默认 7863;避开被占用的端口,如 Clash 的 7899)。

新增上游

  • TRAE SOLO:第四个上游 —— 多账号对话、页内添加账号(浏览器 OAuth 零手动)、自动签到、自动续期、权益额度
  • loomy 邀请码体系:绑定/导入/额度全链路,错误翻译成人话

稳定性(移植 AIClient2API 机制)

  • 主动健康检查:定时探测冷却/熔断中的账号并提前恢复
  • 熔断失败窗口衰减、刷新失败连续 3 次自动禁用
  • 全部上游统一 30 分钟被动扫描(签到/保活/福利领取同一粒度、幂等)

控制台 UI 大改

  • 设置页重设计:6 组按主题切分 + 生效时机徽章;删减不必要的设置、必要项只读
  • 账号池额度/状态/统计卡无感轮询:只更新数值不整页重绘
  • 成长计划精简:12 列/8 卡 → 6 列/6 卡;「一键完成」支持全部账号
  • 修复:boot 崩溃、邀请码绑定路由、codearts 福利"已领取"显示、缺配置硬退

校验

下载后可用 SHA256SUMS.txt 校验(sha256sum -c SHA256SUMS.txt)

multi2api v1.5.1

Choose a tag to compare

@Practice019 Practice019 released this 14 Sep 20:37

服务标识从 workbuddy2api 统一为 multi2api(顶栏标题 / /healthz service / X-Service 头 / 启动日志)。

multi2api v1.5.0

Choose a tag to compare

@Practice019 Practice019 released this 14 Sep 19:39

multi2api —— 多上游聚合反代网关(WorkBuddy / CodeArts / Loomy → OpenAI 兼容 API)。本版为自 v1.2.0 以来的累积发布。

✨ 新增

  • Loomy 手机号验证码登录:对接讯飞账号网关(HMAC-SHA1 签名),「+ 添加账号」可输手机号+验证码直接登录。
  • Loomy 新手任务:新标签页「新手任务 · Loomy」—— 8 个 onboarding 任务(10000 分),一键完成单账号 / 全部账号。
  • Loomy 邀请码:新标签页「邀请码 · Loomy」—— 激活状态 / 我生成的码(active/exhausted)/ 绑定别人的码;首登初始化自动补。
  • 批量粘贴导入:账号池「批量导入」按钮,粘贴 JSON(单条/数组)逐条落盘 + 自动重载账号池。
  • 额度改走积分网关:按 session 逐账号查可用总额度(availableBalance = 总余额 + 当日剩余),不再依赖本机缓存。

🎨 控制台重构

  • 仪表盘精简:网关状态只留「账号总数/健康」;调用统计 8 张核心卡,累计消耗改 token 口径(跨上游统一单位)。
  • 删除「任务历史」标签页;账号池删「熔断/在途」列、昵称自动打码、去掉顶部「全部签到」。
  • codearts 按钮文案「领取福利」→「签到」;workbuddy「签到」与「额度」互换位置(额度排最前)。
  • 仓库更名 multi2api(多上游聚合反代),README 全面重写并附界面截图。

🛠 修复

  • /admin/login/poll 不再下发 ExpiresAt 零值(之前让添加账号弹窗显示「已过期」)。
  • 页面轮询不再拆建面板 / 重复拉取已加载面板;输入框重绘后保留已输内容。
  • 邀请码绑定前置校验"不能用自己的码",失败提示翻译成人话。

📦 产物

  • wb2api-server-windows-amd64.zip(exe + config.example.json + start.bat)
  • wb2api-server-linux-amd64.tar.gz
  • SHA256SUMS.txt

配置参考 config.example.json;Loomy 短信登录签名 key 随官方安装包分发(混淆而非加密),可用 loomy.sms_* 覆盖。

WorkBuddy2API v1.2.0 — 伪造客户端行为遥测层 + 内容误报治理

Choose a tag to compare

@Practice019 Practice019 released this 14 Sep 13:03

WorkBuddy2API v1.2.0

本版主题:移植并接通「客户端行为遥测伪造层」 —— 让网关能把一批上游成长任务直接做完;
同时补上内容误报治理(提示词体系 + 降级重试)与出站身份的一致性。

亮点

1. 任务中心「一键完成」

控制台的任务明细现在长出了三个入口:

入口 位置 端点 形态
一键完成 每行「操作」列 POST /admin/growth/auto 同步,实测 ~10s
一键完成待办 任务明细工具条(作用于选中的账号) POST /admin/growth/auto-all 202 + 后台,实测 ~186s
开学季一键完成 同上 POST /admin/school/run 202 + 后台

按钮按后端能力表(GET /admin/growth/auto/actions,17 条)动态出现,不在前端写死;
不在表里的任务(如需微信真实认证的 Expert_Philanthropy)仍显示「去客户端做」。

在此之前,这 7 条遥测端点一条都没被前端引用 —— 能力只存在于 curl 里。
而且任务行对 accepted / in_progress 一律显示「去客户端做」,注释还写着
"这两类任务本网页无法代做":能力接进来之后那句话变成了假话。

2. 两类任务的代价不同(重要)

类别 任务 做的事
纯伪造 chat_5、Buddy_App、automation_1、Library_read、template_5、playbook_prompt、create_canvas、Hp_Appearance 等 只发构造好的事件链,没有任何真实动作,不消耗账号配额
需真实对话 expert_5、Expert_team_use_3、Expert_lighthouse、skill_1、Model_chat_GLM5.2、RichMeow_Chat 必须真发一次 chat 才能拿到上游签发的 requestId —— 实测上游会校验专家 id 与 requestId,自造的不计数

black_cat(夜猫子)只在 23:00–08:00 本地时间计分;窗口外不会假装成功,
而是如实回报「不在窗口、行为不计分」,并交由每日 23 点的排程补足。

3. 内容误报治理:提示词体系

上游内容审核不是语义审核,而是对客户端注入的固定模板句做逐字精确匹配,
命中就整单拦截(HTTP 400 + 审核文案)—— 一批完全合法的流量因此被误杀。

三层防护,互不替代:

  • 提示词体系:出站前用网关自有提示词整体替换客户端 system/developer 消息
    (prompt.mode=custom,内置 2086 字节,可用 prompt.file 覆盖);
  • 指纹脱敏兜底:user/assistant/tool 消息里的已知指纹串逐串擦;
  • 内容拦截成为一等错误类(ErrKindContentBlocked):与账号故障分开,
    不再被误报成「所有账号不可用」。

被拦截时不罚账号、不换号(内容策略与账号无关),同请求内换极简中性提示词
重试一次并记忆到次日 00:00 CST。

4. 其余新增

  • 软限流按模型冷却:解析上游 code 6004 的重置时刻 + 指数退避,上限 cooldown.soft_rate_max。
  • 会话死亡计数:连续 3 次才禁用,替代"一票否决"。
  • 出站身份一致性:三段式 UA + 设备令牌(5 分钟缓存)+ 客户端 IP 透传 + attribution/billing UA。
  • 请求体硬上限 server.max_body_mb(默认 8 MiB)。
  • DeepSeek thinking 注入 + reasoning_content 回填。
  • 对话活跃上报(schedule.activity_hours,空 = 关闭)。
  • 管理台 7 条新端点(仅本机 loopback)。

修复(均为"不报错但用户会以为坏了"那类)

  • 请求体 > 8 MiB 被静默截断后仍转发成功(HTTP 200) → 改为 413。
  • thinking 未列入 supportedFields → 注入被整体剥离,配置形同无效。
  • 设备令牌缓存重置时误用 mutex → fatal error: sync: unlock of unlocked mutex。
  • 6004 正则会把 "code":60040 误判成软限流。
  • upstreamToGateway 漏映射内容拦截 → 单上游部署返回 503 掩盖真实原因。
  • 单账号部署的内容拦截降级重试无法重新选号。
  • 任务中心 4 个缺陷:已领取的任务也长按钮;/admin/task 完成摘要恒报「成功 0」
    (实测开学季真跑完 3 次抽奖 +78c,摘要却是 ok=0);一键完成后缓存快照不刷新
    (跑完 186 秒、14 项领奖成功,界面仍显示原样待办);toast 把奖励播报两遍。
  • 顺带修复领养前置:派猫前先补 ensureAdoptPrereq,此前恒失败。
  • 冷却到"绝对时刻"时会改写调用方给的时刻(纳秒级偏差):上游给出的配额
    重置时刻没有原样生效。根因是两次读钟之差被加进了目标时刻,
    而且它只在 Linux 上暴露(Windows 时钟粒度约 15ms,两次读钟通常同值 → 偏差恒为 0,
    本机一直全绿)。现已让"绝对时刻"不经过时长往返。

实测证据(本版关键路径都做过真机验证)

  • 单任务伪造遥测:Library_read 上游计分并被接受 —— progress_before 0/1 → 1/1、claimed=true、+100 分 +5 能。
  • 全量一轮:账号待办 15 → 1(仅剩窗口外的 black_cat);12 项执行成功并领奖。
  • 提示词层行为级 A/B:同一句指令放 role=user 时模型服从(BANANA-7),
    放 role=system 时不服从 —— 证明 system 消息确实在出站前被替换(而非"配了没生效")。
  • 缓存刷新:写入后 GET /admin/growth(不带 refresh=1)从 5 条待办变为 4 条。
  • 全部 6 个提交都过了 CI 的完整门禁(先在本机用 CI 同版本 go1.22.5 在
    git archive 导出的 LF 树上预演,再以 CI 的 Linux 结果为准):
    gofmt -l 无输出、go mod tidy 无差异、build / vet / test 全绿。
  • 顺带说明:本版先修好了 master 上长期变红的 Check formatting,
    才让 CI 第一次真正执行到 go test —— 上面那条纳秒偏差正是这样被暴露出来的。

升级说明

  • 本版零新增第三方依赖(go.mod 仍只有 go-redis 一个直接依赖,单文件静态二进制)。
  • config.json 新增可选段(均可省略,省略即用默认值):
    server.max_body_mb、cooldown.soft_rate_max、schedule.activity_hours /
    activity_enabled、prompt.mode / prompt.file、upstream.user_agent /
    client_version / cli_version / client_name / device_token /
    device_token_file / passthrough_ip。详见 config.example.json 与 README。
  • ⚠ schedule.activity_hours 是唯一「留空 = 关闭」的排程项
    (签到 / 保活留空是回落到默认时点)—— 刻意如此,避免存量部署升级后凭空产生上游请求。
  • 附带修复了 master 上 CI «Check formatting» 长期变红的 9 个存量文件(纯注释格式,零行为变化)。

产物

  • wb2api-server-windows-amd64.zip —— 含 wb2api-server.exe + config.example.json + start.bat
  • wb2api-server-linux-amd64.tar.gz —— 含可执行文件 + config.example.json
  • SHA256SUMS.txt
  • wb2api-server.exe —— 另附一份未压缩的 Windows 可执行文件,方便不想解压的用法

由 CI 在干净环境用 go1.22.5 交叉编译(-trimpath -ldflags="-s -w",CGO_ENABLED=0),
以去掉本机路径并保证产物同构。

关于那份裸 exe

  • 它逐字节取自 wb2api-server-windows-amd64.zip(同一份 CI 产物,不是另编一份),
    工具链与构建参数因此完全一致。
  • SHA256:82941918d8948996a2061575ee86b270e1ec6004fa17ac74d5959cd5d67843cb
  • ⚠ 该哈希不在 SHA256SUMS.txt 里 —— 那份文件由 CI 生成,只覆盖两个归档。
    要校验裸 exe 请以上面这个哈希为准(或直接校验 zip 后解压)。
  • 已用这份发布产物做过一次实机冒烟:独立端口 + 关闭全部排程启动 →
    /healthz 返回 {"healthy":3,"service":"workbuddy2api","total":3},
    且 /ui 下发的 HTML 含本版的三个「一键完成」按钮与相关判据 ——
    即"发布的这个 exe 确实带着这些改动",而不是只看源码推断。

本项目仅供学习和研究使用。使用者需遵守上游服务条款,自行承担使用风险。

WorkBuddy2API v1.1.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 11:05

自动构建产物(Windows / Linux amd64)。详见仓库 README。

WorkBuddy2API v1.0.3

Choose a tag to compare

@github-actions github-actions released this 11 Sep 07:20

自动构建产物(Windows / Linux amd64)。详见仓库 README。

WorkBuddy2API v1.0.2

Choose a tag to compare

@github-actions github-actions released this 11 Sep 06:47

自动构建产物(Windows / Linux amd64)。详见仓库 README。