feat(presenter): adopt 的指令/事件/任务接线 + install 那句假话变真话(M223)

- AppCommand::Adopt(Box<AdoptCommand>)、CoreEvent::Adopt(Box<AdoptEvent>)、
  HostTask::Adopt { event, epoch }:三条穷尽枚举各加一条变体(代次独立于安装与 pack);
- dispatch.rs 一条分支、handle.rs 一条分支、state.rs 的 adopt 字段与一条 apply 分支;
- host/install.rs 的「还没有接入安装管线…请先在实例页导入已有版本」改成指向真入口:
  那里以前是一句假话(实例页根本没有导入动作),现在向导落地了,它才成立。
This commit is contained in:
AskaEth committed 2026-11-10 19:37:41 +08:00
1 parent 26e4fbb91d
commit 5a59cb33b2
6 files changed
+30 -1

No files matched your search

+9
View File
@@ -12,6 +12,8 @@ use crate::dto::{
// 主线(M109 的 Content* / M113 的 Pack*)与 M114 的 Authlib*/AccountNotice 的并集。
AccountNotice,
AccountView,
AdoptCommand,
AdoptEvent,
AgentEvent,
AuthlibLoginView,
AuthlibRequest,
@@ -149,6 +151,11 @@ pub enum CoreEvent {
// M113: import/export
/// 导入/导出(M113):进度、结果、探测诊断、导出预检(子枚举见 [`PackEvent`])
Pack(Box<PackEvent>),
/// 导入已有版本(M223):扫描 / 预检 / 完成 / 失败(子枚举见 [`AdoptEvent`])
///
/// 与 [`Self::Pack`] 分开是**语义**上必须的:整合包导入会把内容真搬进实例目录,
/// 而这里只登记盘上已有的版本、写两份配置(`versions/` 一个字节都不动)。
Adopt(Box<AdoptEvent>),
/// 自更新(M159):整份状态快照(检查结论 + 就位状态 + 用户是否已拒绝)。
///
/// 与 `SettingsChanged` 同一条形态:快照整体替换,UI 不做增量合并。
@@ -263,6 +270,8 @@ pub enum AppCommand {
// M113: import/export
/// 整合包导入/导出(M113):导入 / 预检 / 确认写盘 / 关面板(子枚举见 [`PackCommand`])
Pack(Box<PackCommand>),
/// 导入已有版本(M223):扫描 / 预检 / 确认登记 / 关面板(子枚举见 [`AdoptCommand`])
Adopt(Box<AdoptCommand>),
// M159: 自更新
/// 查一次更新(设置页「立即检查」;会清掉「忽略这个版本」的标记并重新请求网络)
CheckUpdate,