Repository navigation
feat(maaend): 支持官方 ZIP 区间重建与自建站增量备用 - #1985
Merged
youngslin merged 1 commit intoNov 14, 2026
Merged
Conversation
Contributor
总体结论:可以合并宝宝,这版没有为了少下载就放松安装校验,方向靠谱喵。CRC 和大小只用于挑选可复用的 ZIP 数据,重建结果仍须通过独立的官方整包大小和 SHA256 校验,再交给原有事务安装器;停止操作也不会误转成备用下载。审查范围内没有必须修改项。 正式基准单独保留、beta 不覆盖它,这处把后续备用包需要的来源想清楚了。站点 v2 未就绪时仍会回退全量,不把客户端合并绑在站点发布上,这样更稳妥。dot酱未执行项目代码或实包验证;arm64 实包仍待验证。 —— 少搬字节、不少校验的 dot酱敬上 🐾 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
摘要
路径与限制
3.0.0 / 2.9.0 / 2.8.0 → 3.1.0;更早版本不使用本站增量3.1.0正式版或3.1.0b1…b7 → b8,实际重建使用缓存的3.1.0原始 ZIPGitHub 只接受范围正确且完整的 206;返回 200 不读取整包响应体。实际读取预算包含头、中央目录和对齐开销,超过整包 40% 即退出;变化条目超过 3000 也退出。单次网络超时 30 秒。CDK 提供完整包备用源时,复用 MFW 网速保护,以 40% 读取上界保守估算 120 秒预算、180 秒实际网络耗时上限;没有较快备用源时不以这两项阈值打断持续传输的直连。
ZIP 是完整目标快照,不在当前安装上逐版叠补丁。重复数据复用,删除、改名和内容回退以目标快照为准;用户配置仍由现有安装器保护。CRC/大小只挑选复用候选,不能替代最终整包 SHA256;压缩字节不同导致 SHA256 不一致时丢弃重建结果。缓存最多两份原始 ZIP,约占两个整包大小;无缓存时允许先全量一次,不额外下载正式基准来伪装节省流量。
验证
57651c30569e247731b9aa762c7480dfe7e6ee24,基于上游70376570f。v3.1.0-beta.4 → beta.5:官方完整 ZIP 316,003,772 字节,Range 实际读取 38,917,565 字节(约节省 87.7%),复用 3035 个条目、取回 11 个变化条目。重建 SHA256 与官方完全一致:05b516305872c8b8a41fa0235d5ecfedef0157d1822dbe7147cc3112c00477a4。原型耗时 73.9 秒;生产读取路径再次复现同一结果。apply_update入口安装到独立临时目录,目标版本、安装回执和用户配置保留通过;不启动游戏、不更改用户实际安装。ruff format --check .、相关文件 Ruff、uv lock --check、diff 和更新日志检查通过。完整后端回归uv run --no-sync python -m pytest tests -q -p no:cacheprovider --tb=short:2097 passed、1 skipped、1 failed,17 subtests passed。唯一失败仍是此前已在未修改上游复现的tests/utils/test_fluxdown_detect_managed_priority.py::test_incomplete_managed_fluxdown_falls_back,由本机已有完整res/fluxdown-cli优先于测试夹具外部目录触发;本 PR 未修改该实现或测试,没有新增失败。发布边界
没有合并或触发站点生产发布;arm64 实包未验证。Action 仍需四个独立文件 ID 和授权密钥,旧 v1 发布包在新客户端上全量回退,旧客户端不识别 v2 也全量回退。
本次属于 #1949 同一 beta 未发布功能的补充,按仓库规则使用
skip-changelog,不重复增加碎片,不修改版本号或 CHANGELOG。