Skip to content

v3.5.0 - Durable delivery and security hardening

Latest

Choose a tag to compare

@xxvcc xxvcc released this 22 Oct 17:24
· 2 commits to main since this release

维护状态更新(2026-10-29):v1 已停止维护 / No longer maintained。

3.5.0 是 v1 最终版本,后续不再提供新功能、Bug 修复、依赖升级或安全更新。本仓库暂不归档,历史代码与下载继续保留。

后续开发请访问 Tweet-Watcher-v2。v2 当前为预发布版本;已有实例请先阅读迁移与回退指南及验证范围。


以下为原 v3.5.0 发行说明。

本版本修复管理面板的会话、代理及来源隔离问题,并加入持久待发送队列。抓取到的消息先落盘,重试、重启或后续抓取窗口变化后仍可继续发送;时间线解析遇到坏页或未覆盖的历史区间时保留错误或缺口状态。

主要变化

  • 会话吊销后立即关闭 SSE,并在每次发送事件前复核认证;严格验证受信代理与 Cloudflare 访客地址。
  • 支持独立管理域名、PUBLIC_ORIGIN、来源绑定会话及 Secure __Host- Cookie。
  • 新增原子持久发送队列、逐条发送确认、目标 Bot/Chat 绑定、容量限制和状态损坏保护;启动首轮前完成旧 ID 迁移。
  • 使用随仓库发布的固定采集入口与 @steipete/bird@0.8.0,校验完整原始时间线页,支持置顶、模块及有界追页;不再允许自定义宿主机可执行程序。
  • 更新 Express、proxy-addr、body-parser 和 qs 等依赖。
  • 附带 twscrape 的固定版本源码研究、离线探针和证据;它尚未接入运行时。

升级与恢复

  • Node.js 最低版本为 22;按锁文件执行 npm ci --ignore-scripts。
  • 升级前备份完整数据目录。delivery_state.json 与 delivery_state.initialized.json 必须一起备份/恢复;不要删除它们来重置状态告警。旧 sent_ids.json 仅用于首次迁移。
  • 如启用独立域名,按部署模板同步设置 Nginx/systemd 和 PUBLIC_ORIGIN,新来源需要重新登录。旧版本缺少受信代理令牌的部署还需更新代理配置。
  • 消息采用至少一次交付;Telegram 成功后、本地确认落盘前发生崩溃仍可能重复发送。本版本不会自动恢复升级前已丢失的消息。

验证

  • 发布前重新运行应用测试:145/145 通过,0 失败、0 跳过。
  • 服务端、采集入口及前端 JavaScript 语法检查通过;npm audit --omit=dev 返回 0 告警。
  • 研究材料链接和 SHA256 清单核验通过。twscrape 的离线研究不代表已经完成真实账号适配或上线验证。

完整更新日志 · 升级、部署及回滚记录 · twscrape 研究报告