v1.5.55 #15
fnthinklevi
started this conversation in
General
v1.5.55
#15
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
v1.5.55 - 2026-08-14
Server酱 / PushPlus 渠道 + 桌面小部件一键启停推送
🔗 Server酱 / PushPlus 渠道:新增两个国内推送平台。Server酱走 POST form 提交(
application/x-www-form-urlencoded,title/desp 放请求体,避免含验证码/短信正文的内容进入 URL 被代理或日志留存),PushPlus 从 URL query 提取 token 注入 body 后 POST JSON;host 精确匹配自动识别(sctapi.ftqq.com / www.pushplus.plus、pushplus.plus),与 Telegram/Bark 相同使用平台自身鉴权(SendKey/Token),无需签名密钥;响应按平台返回码判定成功(Server酱 code==0、PushPlus code==200)。🪟 桌面小部件「推送开关」:桌面一键开启/暂停推送服务,复用 PushToggleManager 启停机制,点击整卡切换状态并同步刷新前台通知按钮;更多页新增引导入口,按国内外各品牌(小米/华为/OPPO/vivo/三星/原生等)提供手动添加路径说明。
服务端模块化拆分 + HTTP 契约测试 + Webhook 保存链路测试
🏗️ 服务端模块化拆分:
server.js由 1249 行单文件按职责拆分为lib/分层(store.js存储持久化 /otp.jsTOTP 封装 /middleware.js中间件 /routes/auth.js+routes/version.js路由 /app.js组装),入口文件仅保留启动与优雅关闭;app独立导出,测试可直接 require 发起真实 HTTP 请求。🧪 服务端 HTTP 契约测试:
auth.test.js由纯逻辑验证重写为真实 HTTP 请求测试(supertest 直连 app,25 个用例),覆盖安全头(CSP/nosniff/无 X-Powered-By)、会话(注销吊销/过期)、版本配置保存链路(POST 落盘 → GET 读回)、TOTP 全流程(setup/enable/OTP 与恢复码登录/恢复码一次性消费)、IP 封锁(第 5 次失败 403 + 公开接口豁免)。🔗 Webhook 保存链路测试:Flutter 端新增
WebhookChannelStore抽象层 +WebhookService构造注入(默认仍走 SQLCipher 加密库),测试覆盖「UI 通道 → DB 行 → 原生同步」完整链路:setWebhookChannels全量下发(含 url/secret/类型/启用状态)、setWebhookUrls仅下发启用通道 URL、DB 行标准化与历史"null"脏数据过滤。⚙️ Jest ESM 兼容:otplib 依赖链
@scure/base/@noble/hashes为纯 ESM 包(Node ≥22 可运行、Jest 默认无法解析),新增babel.config.js+transformIgnorePatterns白名单,服务端测试可正常运行。Full Changelog: 1.5.53...1.5.55
This discussion was created from the release v1.5.55.
All reactions