Repository navigation
Conversation
总体结论:修改后合并AUTO-MAS-Project/AUTO-MAS #1911 宝宝,先自动恢复、保留备份时禁止跳过、归档前后再校验,这些保护都留住了喵。不过新入口把事务文件限制为 64 KiB,而现有安装器会往里面写整份目录清单,正常使用也能超过这个限制,结果还没看到选择就被拦下了。 BAAH 管理器持有目录锁并安排恢复,专项模块处理本次确认和标记归档,原有通用安装器仍负责事务恢复;无需另造一套安装机制,把恢复入口与现有事务格式对齐即可。 规格:必须处理[逻辑 · P2] 64 KiB 限额会拒绝安装器正常生成的事务,重试和跳过都无法选择 位置:install_recovery.py:31–55;事务来源:script_install.py:280–294、602–608。
可达的静态时序是:安装已写好回执、删掉 previous,恰在 删除 journal 之前退出;用户之后手动运行或修改原生配置。下次自动恢复因全树内容变化在 521–522 行拒绝,但主程序、版本与发行文件回执仍正常,previous/ready 也都不存在。这正是本 PR 想让用户核对后跳过的残留事务。 现在 请统一调整快照获取和复核,按实际事务格式处理大记录。这里无需把完整 JSON 放进前端,可以用文件长度和流式摘要绑定用户所确认的内容,或者采用与现有写入范围相容的限制;仍保留标记变化、备份存在、停写和回执检查。补一条由真实事务写入路径生成超过 64 KiB journal 的用例,确认能询问且记录变化仍会拒绝。 规范:非阻断问题[规范 · P3] 版本未知时,英文和日文弹窗显示中文。 install_recovery.py:62–65发送非空“未知”,界面的 验证情况dot酱静态检查了自动恢复、选择匹配、标记复核、原子归档、失败恢复和两类锁的收尾,没有运行项目代码或测试。读取到的现有 CI 全部通过:Windows 1810 passed、2 skipped,Ubuntu 1771 passed、40 skipped;前端 57 个文件、307 项测试通过,格式检查和 Windows 验证包构建通过。 新增测试使用很小的事务内容,覆盖了损坏标记、备份存在、回执失败、标记替换和无前端,尚未覆盖正常体量的事务清单。真实 Windows BAAH 恢复仍未做端到端验证。把这个容量门槛修到与真实记录一致,已有的安全检查就能派上用场啦。 —— dot酱核对事务清单敬上 🐾 |
总体结论:可以合并AUTO-MAS-Project/AUTO-MAS #1911 · 容量修复复审 宝宝,两处读取/复核门槛这次一起调整啦,之前正常事务清单超过 64 KiB 就连询问都进不去的问题已解除。dot酱核对后,没有剩余的必须修改项喵。 install_recovery.py:19–57 现在共用 128 MiB 上限,覆盖前次指出的合法目录清单场景。标记字节一致、备份与暂存目录、进程停写、程序版本和安装回执检查都保留了,没有为了放行大记录而放松安装保护。 规格轴的 P2 已修复;规范轴原有“未知”未本地化的 P3 仍在,属于非阻断问题,无需把旧意见再铺一遍啦。本次没有补超过 64 KiB 的回归用例,建议保留一条正常大清单仍可进入询问、随后改动记录会被拒绝的测试,防止限制以后被改回去。 已读取当前 CI 日志:Windows 1810 passed、2 skipped,Ubuntu 1771 passed、40 skipped,前端 57 个文件共 307 项测试通过,其余门禁和 Windows 验证包构建成功。本轮为静态复核与读取已有 CI,没有执行项目或真实 BAAH 安装恢复;现有测试通过不等于已做 Windows 端到端验证。 —— dot酱放行这份事务清单敬上 🐾 |
## 方向:#1916 公共自动恢复,去掉人工弹窗 把 #1911 合法大事务校验与旧版本回执复核收进本 PR;关闭旧弹窗、前端订阅和专用 WS。BAAH 以原生完整包作为修复手段,由 `auto_recover_script_install`、`run_managed_script_install` 和公共下载安全回退决定重试、备份、健康核验、回滚与队列末尾报告。 进程未停写、目录尚存 previous/ready、损坏原生事务、身份回执不可信时禁止错误放行;只允许完成经过 PE、版本与原始文件回执确认的旧事务归档。首次新安装由公共快照保留旧版。没有可靠身份时不猜测架构、不强制下载安装。 本 PR 替代 #1911 与旧 #1900 弹窗,所有最终结论以最新 CI 和审查为准;真实 Windows 官方安装器待 E2E。
问题
BAAH 使用 MAS 的通用事务安装器:正常退出的安装由事务自动恢复,但异常退出或用户用官方方式手动修复后,残留
.mas-update-*/transaction.json可能让 MAS 永久阻止运行;关掉托管更新也不改变事务保护。方案(独立 BAAH PR)
recover_install的优先级:先自动恢复,正常完成不弹窗、不重复安装。transaction.json字节未变、没有相关 BAAH 更新进程、主程序架构与版本可读,并验证已有 MAS 安装回执。满足条件后原子重命名归档标记,最后执行原版启动前安装确认;失败尽力恢复原标记。只允许用户主动确认。安全界限
这是 BAAH 的事务异常恢复,不改变其他脚本的事务恢复器;只在原自动恢复无法完成时提供人工核对。对手工修复的附属资源仍显示风险说明。真实 Windows BAAH E2E 尚需检验,CI 检查成功前不合并。