Skip to content

奇想盒:使用统一自动恢复取代安装失败弹窗 - #1905

Merged
youngslin merged 52 commits into
AUTO-MAS-Project:devfrom
youngslin:fix/whimbox-pending-install-recovery
Nov 10, 2026
Merged

youngslin merged 52 commits into
AUTO-MAS-Project:devfrom
youngslin:fix/whimbox-pending-install-recovery

Conversation

@youngslin

@youngslin youngslin commented Nov 10, 2026 •

Copy link
Copy Markdown

方向调整:改为 #1916 公共自动恢复

此 PR 原来基于 #1900 的弹窗方案。现已移除奇想盒专有 WebSocket 弹窗、前端常驻订阅和用户选择,改由 #1916 的统一后端入口执行健康性检查、备份、自动重试及可验证回滚。原生 GUI 配置/修复入口仍可打开,但不会因此绕过自动任务的安装保护。

具体实现

  • 正常更新:只读下载/准备完成后,通过 run_managed_script_install 创建旧版快照并运行官方 pip wheel 安装;安装结果由公共层汇总。
  • 已有跨任务备份:优先恢复公共事务;下次先检查真实 pip/包入口和版本,确认上次已成功则清理备份,否则重试,只有进程全部停写且原快照通过完整性校验才允许回滚。
  • 老版本留下的 .mas-update-pending:无可信更新前快照,只能走公共 auto_recover_script_install 的健康核验或强制重装,不能虚构可回滚旧版。
  • 任务末尾错误汇总交给 脚本更新:新增统一自动恢复与持久备份回滚机制 #1916;不再使用脚本自带的弹窗服务。
  • 保留 skip_pending_installation 的依赖完整性检查作为公共 acknowledge 所用的专项安全操作。
  • 原前端 modal / websocket / 语言包以及旧弹窗测试已删除,补了公共恢复路径与残留标记回归测试。

必须注意的合并顺序

本分支已通过双父提交显式叠加 #1916 的实现,因此合并顺序必须为 #1916 先进入 dev,本 PR 后合并。在公共 PR 合并前,这个 PR 的差异会暂时显示公共文件;不能单独将本 PR 作为独立功能合并,也不能因为公共回归测试存在就认定真实 pip 安装端到端通过。

最新 CI 以 PR 最新提交为准。

@github-actions github-actions Bot added 专项: 奇想盒 按更新日志碎片自动设置 类型: 修复 按更新日志碎片自动设置 labels Nov 10, 2026

Copy link
Copy Markdown
Contributor

总体结论:修改后合并

AUTO-MAS-Project/AUTO-MAS #1905

宝宝,奇想盒这次按 wheel/pip 的安装方式处理恢复,没有把 BetterGI 的安装逻辑硬套过来。重试、跳过、取消和目标标识都接上了,但把同一门槛放到原生配置入口前,会挡住原本用来修环境的官方 GUI。这处产品边界需要先处理喵。

规范

[规范与行为 · P2] 未完成后端安装不应堵住原生 GUI 修复出口

位置:manager.py:186–198,影响后面的 ScriptConfig 分支:216–224。

项目的奇想盒专项约定明确保留了一个区别:配置会话只要求 whimbox_app.exe,后端未初始化也应能打开官方 app 修环境。现有 check() 和 ScriptConfigTask 也确实这样实现,配置会话只是启动官方壳,不是启动一条龙。

现在只要有 .mas-update-pending,配置会话也必须先完成恢复。安装中断后依赖损坏、自动重试又因下载失败等原因无法完成时,“跳过”会被健康检查拒绝,“取消”直接结束任务,官方 GUI 始终打不开。用户只能离开 MAS 另找程序启动,原有修复出口被收窄了。

PR 正文确实写了“打开界面之前统一检测”,所以这不是实现漏按正文做,而是新行为与已有专项规范冲突。请为配置会话保留明确的“打开官方 app 修复”路径,继续持有必要的进程和安装互斥,不清除失败标记,也不启动自动任务;或者先由维护者明确调整这项产品约定。恢复流程不能要求用户先修好,才让他打开修复工具呀。

其他规范未确认新增阻断项:App.vue 为 256→259 行,新弹窗 133 行;沿用 Ant Design Vue、共享标题栏避让和三语言词条。遥测复用现有任务终态,名称与目录没有加入埋点。

规格

按本 PR 正文核对,未确认其他新增 P1/P2:

  • 有标记时 updater 不依赖残留包版本,走完整校验与强制重装;关闭接管仍可单次重试,恢复后不会再自动更新一遍。
  • skip 在检查前后核对进程和同一份标记;清标记后的复核失败或取消会尝试恢复记录。没有主界面、超时或取消不会默认放行。
  • 弹窗明确显示托管与目录,选择按请求 ID 关联,断线清除旧选择。

有一个表述边界请顺手说准确:find_spec 只证明模块入口可定位,pip check 检查已安装发行包的依赖关系,不等于真正导入主模块或验证所有文件。界面已提示这项完整性风险,dot酱没有将它重复记作缺陷。

验证

当前提交的 Windows pytest、Ubuntu pytest、前端格式/typecheck/测试和 Windows 验证包构建均通过,已读取相关日志。新增用例覆盖 skip、失败保留标记、关闭接管重试及提示目标,但没有覆盖上述 ScriptConfig 修复出口。

本轮仅静态审查与读取既有 CI,未运行项目、测试、真实安装器或 Electron 界面。CI 不能代替真实 Windows 安装恢复、弹窗排队和断线交互验证。规范轴 1 项 P2,规格轴未确认其他阻断项。

—— dot酱给修复入口留条路敬上 🐾

Copy link
Copy Markdown
Contributor

总体结论:可以合并

AUTO-MAS-Project/AUTO-MAS #1905 · 修复复审

宝宝,官方 app 的修复入口这次留住啦,而且没有顺手清掉安装保护。审查中补到的主动重连清理也已纳入最新代码,dot酱核对后没有确认的必须修改项喵。这个结论是代码审查建议,最新提交的 CI 尚未跑完,合并前仍需确认门禁结果。

规范

前次 P2 已修复。manager.py L191–233 只在 ScriptConfig 提供“打开官方 app 修复”,选择后保留标记、沿用安装锁并进入真实 ScriptConfigTask,随后直接返回,不落入自动任务。后端接收动作时和 manager 都会核对模式,原生 GUI 修环境的出口与安装保护可以同时保留啦。

恢复服务 L54–59 现在也在 onConnected 清空旧询问与 pending,退出时成对注销。已沿真实 connection.onopen 核对:清理回调同步执行,之后才处理新连接的消息,覆盖了主动换连接不触发 disconnected、关闭帧又丢失的情况。

App.vue 为 256→259 行,恢复弹窗从 133 增至 140 行,未超限;新按钮有中英日词条,继续沿用官方启动入口,没有另做一套修复器。

规格

未确认剩余阻断项。重试、跳过仍受安装状态检查约束;repair_gui 只允许配置会话打开官方 app,不会把“打开界面”记成安装已修复。后续自动任务仍须处理保留的标记,这处界限没有放松喵。

验证情况

仅静态审查并读取已有 CI,没有运行项目、官方 app 或真实 UI。前一版已有日志显示 Windows pytest 1815 通过、Ubuntu 1776 通过,前端 56 个文件共 299 项测试通过,格式、类型与验证包构建通过。之后新增了重连回归测试并调整格式,不能把前一版结果当作最新版通过,还需等本次 CI 完成;真实 Windows GUI/UAC 修复流程仍未取得 E2E 证据。

新增测试调用真实恢复服务、仅替换传输边界,覆盖旧请求被清理及新请求仍能操作;GUI 分支测试替换了 spawn,只证明派发和标记保留,不证明真实程序已启动。

规范轴 0 项确认问题,规格轴 0 项确认问题。这轮把修复出口和旧弹窗都处理清楚了,拍拍爪喵。

—— dot酱核过修复出口敬上 🐾

@github-actions github-actions Bot added the 模块: 更新 按更新日志碎片自动设置 label Nov 10, 2026
@github-actions github-actions Bot removed the 模块: 更新 按更新日志碎片自动设置 label Nov 10, 2026
@youngslin youngslin changed the title fix(whimbox): allow verified recovery of unfinished backend installs fix(whimbox): use #1916 managed recovery instead of installation prompts Nov 10, 2026

Copy link
Copy Markdown
Contributor

总体结论:修改后合并

AUTO-MAS-Project/AUTO-MAS #1905 · 自动恢复改版复审

宝宝,这版已把人工弹窗换成公共自动恢复,官方 app 的修复入口也保留了。可是实际入口多拿了一次同一把锁,任务还没走到恢复逻辑就会退出。dot酱先把这处拦下来喵,另外还有准备失败和下载缓存清理的两处回归要一起补上。

Whimbox manager 负责安排更新与账号任务,适配器提供 pip 安装、进程和版本检查,公共层负责快照、重试、回滚与队列末尾汇总。当前 PR 包含叠加的公共实现,已核对它与 #1916 已审代码一致;以下问题来自 Whimbox 接入部分。

规格与功能

1. [逻辑 · P1] 实际入口重复取得非重入安装锁,自动任务和配置会话都无法启动

位置:manager.py:187–189、update.py:125–129。

main_task 先进入 Whimbox 的 installation_access(root),它内部已经取得公共 script_install.installation_access(root);同一行又单独进入一次公共锁。公共实现每次打开新句柄,以非阻塞方式取得同一目录的排他锁,没有重入机制,因此第二次会立即抛出 InstallUnsafeError。任何通过 check/prepare 的 AutoProxy、ScriptConfig 都到不了 _run_prepared,连打开官方 app 修环境也受影响。

这里不需要增加锁管理啦,去掉 manager 多出来的那次公共取锁,保留原包装器及其完整生命周期即可。请用真实 main_task 入口守护这一点;现有新增测试直接调用 _run_prepared,绕开了出错位置。

2. [兼容 · P2] 更新准备失败会中断健康旧版任务,原有安全回退被删掉

位置:manager.py:241–249。

修好上面的锁后,无旧事务、无 pending 标记且开启运行前更新时,release 查询、下载或只读依赖准备一旦因网络失败,prepare_update 的异常直接传出。此时还没进入后面的公共安装事务,run_script_update 也只负责调用,不会替它恢复旧版,整批账号因此停止。

目标分支原本会先排除取消和未确认停写等不安全情况,再调用 confirm_usable_installation;确认旧安装健康后告警继续。本次同时删掉了这段逻辑和 test_preparation_failure_warns_and_continues。自动恢复想减少人工操作,别让一次下载故障反而挡住还能用的旧版呀。

请在“尚未开始安装写盘”的准备边界恢复这项能力。可复用已经引入的公共安全回退入口,明确区分可回退的下载失败,验证旧安装并加入任务末尾汇总。取消、后台停写未确认、有残留标记或健康检查失败仍须阻断,不能把安装阶段异常也一概吞掉。

3. [逻辑 · P2] 建立备份失败或取消时,已下载的 wheel 与依赖缓存无人清理

位置:manager.py:244–271。

manager 先把 _update_candidate 清空,再调用公共安装入口,但 discard_update(candidate) 写在 await 成功返回之后。公共层会先检查安装并建立完整备份,随后才调用适配器安装。例如备份磁盘空间不足,或用户在备份期间取消,异常会直接跳过第 271 行;安装回调尚未执行,apply_update 的 finally 也帮不上忙。后续会话清理只能看到 None,已经下载到 download-* 的 wheel 和依赖包就留在磁盘上,反复重试会继续累积。

这里把候选包的使用围在 try/finally 里就好,finally 仍调用既有 discard_update。这个函数已有“写入进程未确认停止时保留缓存”的保护,不必另造一套清理机制。请补“包准备完成、备份失败”和“备份期间取消”的清理断言,别让下载缓存悄悄占满磁盘喵。

规范与验证

专项仍通过官方 app/pip 入口工作,未新增游戏行为推断;恢复决策交给公共层,没有确认需要另做抽象的架构问题。原先 GUI 修复出口的健康门槛已移除,旧 marker 成功测试也已正确模拟清标记,这些不再重复列问题。规范轴未确认新增阻断项,规格轴有以上 1 项 P1、2 项 P2。

本轮仅静态审查并读取既有 CI,没有运行项目、测试或安装器。当前提交的格式、类型检查、前端 57 个文件共 307 项测试及 Windows 验证包构建已通过,Windows/Ubuntu pytest 尚在运行。绿色测试也不能证明绕过 main_task 的用例覆盖了入口锁,建议先补这三条真实失败路径,再确认最终 CI。实际 Windows pip 恢复与官方 GUI 的端到端行为仍无独立执行证据。

—— dot酱看住入口与收尾敬上 🐾

Copy link
Copy Markdown
Contributor

总体结论:可以合并

AUTO-MAS-Project/AUTO-MAS #1905 · 修复复审

宝宝,入口和收尾这次都补到了实际调用路径,前次 1 项 P1、2 项 P2 已修复。dot酱核对后,没有剩余的运行时阻断项喵。最新提交的 CI 仍在执行,这个结论是代码审查建议,合并前还需确认本轮门禁完成。

manager.py现在只进入一次既有安装锁;准备失败交给公共安全回退,确认没有旧备份事务且原安装健康后才继续;已下载包的清理放进 finally,备份失败和取消也能执行。取消、未确认停写和不安全安装异常仍会上抛,没有为了继续任务而抹掉这些保护。公共自动恢复实现已进入 dev,也已核对本分支叠加的公共代码与它一致。

新增测试这回真正经过 main_task 的文件锁,并检查退出后能再次取锁;准备失败用例经过公共 fallback;备份失败和取消用例检查真实下载缓存已删除。后两类仍替换了健康探针或公共安装回调,只证明相应编排和收尾,不能当作真实 pip 安装验证,边界要说清楚呀。

有一项非阻断类型建议:准备函数返回 PreparedUpdate | str,而公共 run_script_update_with_safe_fallback 的注解仍限定只返回 str。运行时可以透传安装包对象,但签名没有表达这个实际用法。可沿用公共模块已有的 T,让 operation 返回 T、helper 返回 T | str,不必另加封装,也不要用强制类型转换藏掉差异。

规范轴未确认新增阻断项,规格轴的三项旧缺陷均已解除。较早提交的 Ruff 失败已对应调整,不能继续算在当前提交上;最新格式检查已通过,pytest 和验证包任务仍在运行。dot酱仅做静态审查并读取 CI 状态,没有运行项目、测试或真实 Windows GUI/pip 流程,待本轮结果齐了再确认最终绿灯喵。

—— dot酱核过入口与清理敬上 🐾

@youngslin
youngslin merged commit 3ccab5f into AUTO-MAS-Project:dev Nov 10, 2026
8 checks passed
@youngslin youngslin changed the title fix(whimbox): use #1916 managed recovery instead of installation prompts 奇想盒:使用统一自动恢复取代安装失败弹窗 Nov 10, 2026
youngslin added a commit that referenced this pull request Nov 10, 2026
…ion coverage (#1923)

## 摘要

- 修复 #1916 在 release 旧调度器中的会话接线:旧基类直接执行 `_run_main_task`,原来放在
`main_task` 的绑定不会生效。改在真实执行入口绑定并覆盖子任务收尾,正常完成和手动停止均只通过既有 TASK_NOTICE 汇总一次。
- 保留 BetterGI 正式版公告、灰度和资源就绪门槛;对有效 MAS
残留目标记录,允许主程序缺失、损坏或版本资源不可读后重新执行经校验的官方完整安装器。拒绝目标降级、记录损坏或变化,以及下载期间原生升级后的覆盖;安装后复核版本和
PE 架构再清除标记。下载准备失败仍沿用既有健康检查后继续任务的 release 行为。
- 修复 HSR 恢复状态未初始化,以及本轮原生回滚或公共恢复成功后再次更新同一引擎的问题;保留旧调度、路径锁和原生回滚,不引入新调度器。
- 逐项补回 #1905、#1906、#1908、#1909、#1913、#1915 缺失的恢复回归,适配 release
的日志与锁接口;专用验证工作流增加本目标分支的 PR 触发及三平台接口类型检查。整个 PR 只有一个更新日志碎片,不修改前端或版本号。

## 验证


提交:`fc68ce88035fc206deeabe59851286d1459dba7b`;基线:`606c7ebd9231888519b0decad085c249b17c554a`。Windows、Python
3.12.13、uv.lock 锁定依赖。

- `uv run --no-sync python -m pytest tests -q --tb=short`:**1614
passed、2 skipped、15 subtests passed**,174.47 秒;保留现有 Pydantic 弃用提示。基线全量为
1554 passed、2 skipped。
- 同一故障场景修复前后对照:BetterGI 损坏/缺失程序、非法或变化的安装记录、目标降级与下载期间原生升级;HSR 公共恢复后的
AttributeError 和重复更新;真实旧任务正常结束/停止时的恢复汇总。修复前均复现,修复后对应检查通过。
- 变更 Python 文件 Ruff 检查、全仓 Ruff 格式、compileall、Windows/Linux/macOS 平台接口
mypy、`uv lock --check`、更新日志规则和 `git diff --check` 均通过。外部 CI
action/container 引用均固定到提交或摘要。
- 本 PR 的远端 Windows/Ubuntu 全量、格式、依赖与构建检查以 Checks 最新结果为准。

| 已合并 PR | 本轮保留或补回的关键恢复覆盖 |
| --- | --- |
| #1905 奇想盒 | 遗留标记走公共入口,健康复核,备份失败/取消清理候选 |
| #1906 SRC | Git 目标不能替代原生依赖安装完成证据,完成记录跨适配器重建 |
| #1908 BAAH | 损坏/缺失程序可信修复、回执变化拒绝、旧事务验证、取消保留目录锁 |
| #1909 MAA | 本体失败不伪造重试,资源半更新恢复,原始包与失败现场保留 |
| #1913 MaaEnd | 原生事务、ready 阶段故障注入、可信身份修复、精确版本恢复与配置保护 |
| #1915 HSR | 损坏程序、未知进程路径、真实 journal 恢复要求、恢复后不重复更新 |

## 排除与验证边界

- 不迁移 #1845 新四级调度/运行树,也不迁移 #1862 依赖新调度和前端的进度展示;保留 release 原有预下载架构。
- 不新增 dev 的 `current.recovery_summary` 历史字段或前端消费,恢复结果仍使用 release
现有任务提示和后端日志。
- BetterGI 未接入通用快照自动回滚;有效残留事务通过官方完整安装器重试,缺少可信记录、资源未就绪或仍有写入者时继续阻断,不仅凭 EXE
版本清除失败记录。
- MAA 官方本体更新失败的无人值守重试继续排除:现有上游启动流程会清空待安装包登记,仍需官方界面完成原生修复;MAS
自有资源半更新可自动重试。
- 未运行真实游戏、账号、模拟器或上游官方安装器 E2E。自动化使用真实文件/事务与 MAS
入口,并在网络、原生进程和安装器边界隔离;不能据此声称实机安装已验收。
- 后续实机验收可在已配置脚本和账号的作者环境运行 `cd frontend; yarn e2e:real:all --only
BetterGIConfig,HSRConfig,MaaConfig,MaaEndConfig,BAAHConfig,SrcConfig,WhimboxConfig`,产出各场景报告和
`real-e2e-summary.json`。

目标仅为 `release-v5.8.0-backport-verify`;不直接修改或合并该分支及 `release/v5.8.0`。
@github-actions github-actions Bot mentioned this pull request Nov 13, 2026
3 tasks
ClozyA added a commit that referenced this pull request Nov 13, 2026
## Release v5.9.0-beta.1

由「准备发版」工作流生成。这是唯一允许修改 `CHANGELOG.md` 与版本号的 PR,合并后请手动运行「构建并发布应用程序」。

合并前请在本 PR 里完成:

- [ ] 「本次亮点」够不够:合并前给碎片加 `highlight: true` 就会自动进这一类,现在也可以直接在
`CHANGELOG.md` 新版本段里把条目挪过去
- [ ] 有 3
个提交改了用户可见代码但没带碎片(清单见[运行摘要](https://github.com/AUTO-MAS-Project/AUTO-MAS/actions/runs/43347223103)),若用户可见就在新版本段里补一条
- [ ] 改完运行 `python scripts/changelog.py sync` 并提交

### 体积

- 首行 JSON 2371 / 18000 字符,带 1 个版本段
- 本版 40 条,最长的几条:
- 78 字(变更)【设置】自启与静默启动可独立设置,静默时直接进入托盘,关闭可选退出或托盘,最小化保留任务栏。 (#1928) by
@he0119 by @1w1w11w1
- 76 字(修复)【MAA】MAA 更新失败时统一检查安装健康;资源半更新自动重装,官方本体失败保留标记并提示使用官方修复入口 (#1909)
by @youngslin
- 75 字(变更)【模拟器】ModAVD 全部改由 modavd 命令行控制,移除自带的直控和更新器,不再支持无命令行的旧根目录
(#1918) by @qiyinxi
- 64 字(修复)【主页】调整任务台版本主线的 UI,并让版本更新倒计时更清楚 (#1926) by
@TyrannosaurusGodofWar
- 64 字(破坏性变更)【调度】重构任务调度与范围选择,完善日志恢复、独立触发、队列附加动作及电源收尾。 (#1845) by
@DLmaster361

自 `v5.8.0` 以来的改动:

### ⚠️ 破坏性变更

- 【调度】重构任务调度与范围选择,完善日志恢复、独立触发、队列附加动作及电源收尾。 (#1845) by @DLmaster361

### ✨ 新增

- 【M9A】新增 MAS 登录 B 服:处理隐私协议并选择已保存账号后交给 M9A 运行 (#1882) by @Douya36
- 【ok-ww】支持脚本逐账号或批量切号、显示失败原因并补跑未完成账号 (#1890) by @AthenaHibou
- 【ok-nte】支持按日配置日常计划,并可在详细配置中调整当天任务。 (#1921) by @AthenaHibou
- 【调度】在日志末尾显示预下载方式和进度,支持独立配色与连续渐变(仅公测) by @youngslin
- 【设置】支持调整自定义光标的显示大小。 (#1904) by @Douya36

### 🔧 变更

- 【调度】统一各脚本账号编辑页的页头和基本信息布局 by @Craun718
- 【模拟器】魔改 AVD 改名为 ModAVD,界面、提示和日志统一用新名称 (#1898) by @qiyinxi
- 【模拟器】ModAVD 全部改由 modavd 命令行控制,移除自带的直控和更新器,不再支持无命令行的旧根目录 (#1918) by
@qiyinxi
- 【设置】统一主要页面的标题、间距、卡片层次和日志按钮外观 (#1893) by @1w1w11w1
- 【设置】浅色主题改为中浅灰画布配纯白卡片,补回分隔线与卡片边缘层次 (#1855) by @beichen24a1
- 【设置】自启与静默启动可独立设置,静默时直接进入托盘,关闭可选退出或托盘,最小化保留任务栏。 (#1928) by @he0119 by
@1w1w11w1
- 【Runtime】加快运行环境健康时的启动准备 (#1907) by @jinghero

### 🐛 修复

- 【MAA】MAA 更新失败时统一检查安装健康;资源半更新自动重装,官方本体失败保留标记并提示使用官方修复入口 (#1909) by
@youngslin
- 【MAA】修复保存配置时修改被误判未保存并丢弃的问题 (#1930) by @jinghero
- 【end】MaaEnd 安装异常时统一恢复事务,并安全修复可信身份的损坏本体 (#1913) by @youngslin
- 【HSR】为 M7A 与 SRA 更新中断后的未完成回滚添加用户确认恢复入口 (#1915) by @youngslin
- 【HSR】修复 SRA 使用自建下载站时无法下载安装更新的问题。 (#1945) by @youngslin
- 【bgi】修复正式版安装资源尚未就绪时自动更新失败的问题 (#1901) by @youngslin
- 【ok-ww】修复直接启动游戏时无法覆盖默认资源档位的问题 (#1925) by @AthenaHibou
- 【ok-ww】修复新版脚本启动后不执行每日任务的问题 (#1940) by @AthenaHibou
- 【ok-ww】修复新版启动器不触发游戏更新及停服维护时反复重试的问题 (#1934) by @1w1w11w1
- 【ok-ww】修复鸣潮和异环更新重启后自动切号失败的问题。 (#1933) by @AthenaHibou
- 【ok-nte】修复仅开启任务后关闭时无法关闭游戏及启动器的问题。 (#1920) by @AthenaHibou
- 【BAAH】损坏的托管安装须由用户明确选择官方完整包修复,禁止绕过校验运行 (#1908) by @youngslin
- 【奇想盒】修复后端安装中断后无法自主确认恢复的问题 (#1905) by @youngslin
- 【SRC】修复原生安装中断后无法自主选择安全恢复的问题 (#1906) by @youngslin
- 【主页】调整任务台版本主线的 UI,并让版本更新倒计时更清楚(仅公测) (#1926) by @TyrannosaurusGodofWar
- 【调度】修复停止任务后脚本及更新子进程残留、项目持续占用和结果未保存的问题 (#1892) by @youngslin
- 【调度】统一配置表单、卡片间距与状态颜色,优化队列列宽和配置说明 (#1927) by @AthenaHibou
- 【模拟器】修复启动模拟器时 adb 命令执行不了却只提示超时、看不到原因的问题 (#1894) by @miaojiuqing
- 【模拟器】手动停止任务时不再把 ModAVD 模拟器连同任务一起强制结束 (#1919) by @qiyinxi
- 【工具】修复 MCP 查询全部托管失败及可空参数被错误拒绝的问题 (#1895) by @HarcoChen
- 【设置】修复模拟器管理和调度中心卡片外侧阴影显示不一致 (#1897) by @1w1w11w1
- 【设置】FluxDown 自动识别强制优先选择 MAS 内的文件夹。 (#1948) by @youngslin
- 【更新】统一脚本安装恢复入口及队列结束时的下载异常汇总 (#1916) by @youngslin
- 【Runtime】修复回退旧版后再次升级时无法启动的问题 (#1889) by @jinghero
- 【Runtime】修复后端启动异常退出却被误判为正常结束的问题 (#1929) by @jinghero
- 【Runtime】修复临时启动失败后反复停留在失败页的问题 (#1938) by @jinghero
- 【Runtime】修复初始化时依赖安装已成功却被误报为失败的问题。 by @ClozyA

Co-authored-by: ClozyA <133191303+ClozyA@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

专项: 奇想盒 按更新日志碎片自动设置 类型: 修复 按更新日志碎片自动设置

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants