Repository navigation
Reader Pro v6.1.0 — Java/Kotlin 恢复主线
本版本恢复长期维护 Java/Kotlin 混合工程,不继续全量 Go/Rust 重写。默认分支为 legacy;业务和原版存储兼容优先,旧工程及原始 JAR 保留作对照。
正式发布状态(2026-10-15)
正式 Release已于 03:21:47 UTC 由GitHub 托管续发流程创建。应用标签提交 cc4593a 和原制品不变;续发只修复发布基础设施,没有重建或重跑阅读测试。
GHCR ghcr.io/warpdotsys/reader-dev 与 Docker Hub warpdotsys/reader-pro-restored 的双架构清单均为 sha256:b7b1316cc5f1c97fe058405707ac8998c4600b594fcffdc1e202ecba8fbbafe5。40 个小发布文件摘要已独立重算,32 份报告与验收制品逐字节相同;JAR 的 GitHub 计算摘要与下述已校验同字节 JAR 一致。
生产部署未成功。 部署在 SSH 22 端口连接阶段超时,没有成功激活回执;因该步骤包含数次连接且无逐条检查点,远端目录 / 快照 / 容器状态仍须核实,不能盲目重跑。真实生产账号登录及本次回滚演练尚未验收。整条 run 因部署失败为 failure,不能只展示发布绿灯宣告上线。交付与阻断。
主要变更
- 完整 Reader 镜像内置固定版本 Camoufox、Python、JRE 与依赖;运行不需要宿主 Chrome 或独立 WebView 容器。历史远程引擎保留为显式回退。
- 镜像默认 Vue 3,沿用 Rust 分支的设计语言,保留 Java/Kotlin 登录、用户空间、书架、书源与阅读接口。原 Vue 2 和普通 JAR 的兼容入口保留。
- 修复 EPUB 完整页面退出时的任务清理,分离下载、解压与结果传递诊断;资源按有确认的批次传递,使用有界共享缓冲视图减少传递对象。不丢弃资源、不截断正文。
- 修复合法 DEFLATE 在输出块边界被误判为截断的问题;截断、尾随垃圾、长度谎报及膨胀攻击仍拒绝。
- 保持下载 60 秒、创建 Worker 起共 15 秒及测试观察 30 秒;没有放宽原资源预算或更改正式 JVM 参数来取得通过。
- 统一版本 6.1.0,JAR MANIFEST 写入确定性版本;保留 Gradle Wrapper、可读源码、锁定依赖和双 clean 字节一致门禁。
- 正式制品由 GitHub 托管 runner 构建、原生双架构测试和新 runner 重载验证;发布器导入同一已验证归档,不重新构建替代。
验证与制品身份
候选源码 8a4a2c2,测试快照 7555ca9;已经 PR #56 合入 legacy,合并提交 1890d28 与候选源码树完全一致。
| 已独立接受的候选范围 | 结果 |
|---|---|
| Java / Kotlin | 222 项,35 项既有环境跳过,零失败;两次 clean JAR 完整字节相同。跳过不算覆盖 |
| 前端 / 浏览器 / Python | 完整 405 项前端、25 项实际 Chromium、14 种登录布局;807 项 Python,零跳过 |
| 双架构准确整镜像 | AMD64 / ARM64 原生及新 runner 重载,各三轮八场景,共 96 个生成大书场景 |
| 唯一获准真实书 | 默认镜像严格 8/8;读取 B26 真实生成账号 / 存储,实际界面登录、会话与导入,完整正文 / 标题比较;副本与生成数据已清理 |
| 固定公开 Gutenberg 三方 | 详情 / 28 项目录 / 前两节的完整非时钟 ReturnData;另行真实 DOM 脚本 / 生成 Cookie / 两用户 / 清除及 TLS / 出网负控 |
| 同候选双架构离线长测 | 分别连续 1803.534 / 1805.925 秒,104 / 111 轮,424 / 452 次成功搜索;三类故障注入后恢复及独立清理 |
候选 JAR:285,684,839 B,SHA-256 b4954ac70229f4514146b8e077909874bfc5aeee779f71fde903622638ed1ee0;包内 Worker SHA-256 836bd2aeac73558efc8bbc521675e9ad88249e34c7fc9fd4b5933930b5be6d1e。
完整范围及 Actions 链接、候选机器证据、候选长测证据。最终标签构建已独立执行发布前置门禁,正式镜像自己的 96 个生成场景及制品身份见正式发布证据。候选真实书和长测仍限于各自镜像;发布成功不等于生产实际登录验收成功。
已知问题
- 起点真实登录态的搜索和免费首章未验证。用户已停止个人 Chrome 路径,不再连接、提取其会话或要求配合;不复用已清理 Cookie,不购买章节或自动验证码。匿名公开页及生成账号测试不算真实站点认证。
- 大书兼容仍是有限样本。当前候选的生成 96 场景及授权书 8/8 已通过,但不证明全部 EPUB、所有原版 storage 或冷态 / 长期生产稳定。此前 80 候选真实书 6/8 的 15 秒传递超时及更早失败保留于对应证据,不被改记成功;也不直接当作当前候选已复现相同故障。
- 半小时长测静止内存增长分别为 63,176,704 / 45,727,744 B。未触及硬内存 / OOM / PID 限额,且故障后自有浏览器子进程清零;仍不能宣称长期无泄漏或证明生产容量。这是后端 / 包内浏览器生成请求长测,不是前端 EPUB 连续阅读。
- 当前许可证服务源码的试用邮件接口明确返回“未配置”错误;未完成线上发送或许可证激活验收,不宣称 SMTP 可用。公钥匹配、健康接口和首页 HTTP 200 仅属前置检查。本机访问生产域名曾超时,服务器侧严格 TLS 访问正常,原因尚未证明。
- 保留有意兼容差异:原 JAR 的 Book 请求共用 default 空间,恢复版隔离用户;历史 Cookie 不重放,当前重放后可清除;历史 UTF-8 POST 损坏、忽略 TLS 错误的行为不继续复制。时钟字段在各自真实请求窗口内验证,不要求字面相等,不宣传完全兼容。
- 所有第三方书源、边缘业务和前端页面尚未穷尽;备用 cli.gradle 不是正式构建。缓存导出实测超过 60 秒,不宣称严格总上限或因果加速。测试的 2 CPU / 硬 2 GiB 不自动等于生产 Compose 已配置同样限额。
- 当前 Java/Kotlin 后端没有 OPDS 路由或独立 OPDS 账号的持久化 / 隔离模型。Vue 3 对该设置明确报不支持,不写替代密码、不显示伪造的保存成功;这项功能尚未交付。此条为标签后的文档澄清,正式标签及制品不移动,公开 Release 说明同步补充。
- 当前生产 SSH 连接不可达:GitHub runner 超时、本机及现有代理在认证前断开,独立 DNS 均指向 50.114.172.103;原因尚未证明。内置浏览器访问生产版本元数据也未成功。软件发布不等于线上故障修复;需恢复 SSH 后核实状态、只重跑部署并完成真实登录与回滚验证,不重装或删除 storage。
构建与发布
本机保留输入的构建入口(PowerShell 7,恢复工程目录):
pwsh -NoProfile -File .\scripts\build.ps1普通 JAR 不自带完整浏览器运行时。正式标签必须来自 legacy、为严格稳定 SemVer、高于当时最新正式版并与所有版本清单一致。GitHub Actions 验证完整 Vue 3、准确双架构整镜像及发布器,再发布 GitHub Release、GHCR 与 Docker Hub;不以手工构建代替。
部署与回滚
阅读域名:read.medwarp.cn;许可证中心:license.medwarp.cn。生产根目录 /opt/reader-pro-restored。
部署按已发布不可变 digest 拉取并核验,停旧实例前确认空间、旧镜像及一致数据快照。失败时保留失败存储救援,再恢复旧镜像和原快照;不直接覆盖原数据。需要分别确认健康、公开版本 / 构建提交、实际界面登录及关键业务,不能只凭 HTTP 200 宣告上线正常。最终部署与回滚结果以本次 Actions 回执和独立观察为准,不能移借历史演练。
保留原始 B26 JAR、只读备份、旧 Go/Rust 工程和用户所有未提交文件;私有正文不进入 Git、公开证据或发布制品。Vue 2 可用 READER_APP_WEBUI=vue2 回退,但不把它当作全部业务问题的解决方案。部署与回滚说明。