feat(presenter): 导入已有版本的 DTO 与三条后台线程(M223)
core 的能力(M221)接进 presenter 的 IPC 面: - dto/adopt.rs:AdoptCommand / AdoptEvent / 六种视图 / AdoptState + AdoptStage。 全部 Serialize+Deserialize,**不 import 任何 core 类型**(契约 §5.4); - host/adopt.rs:spawn_scan(adopt::scan)/ spawn_adopt(plan 或 adopt),结果经 HostTask::Adopt 回流;core 的候选/计划/结果/失败逐字段搬进 DTO,problems[] 一条不少; - CoreHost 加 adopt_epoch(每条命令 +1、关面板也 +1),连点与迟到的回程不会点亮面板; - 登记成功后补一次 refresh_instances(新实例这一拍就出现在列表里)。 运行目录只从 plan()/adopt() 的返回值取(缺省档可能带 -2 后缀,只有 core 知道用了哪个); target_notes() 的原文随 AdoptPlanView::notes 上屏,界面不另写一份后果话术。
This commit is contained in:
1 parent
9ab909d01c
commit
26e4fbb91d
6 files changed
+1012
No files matched your search
@@ -14,6 +14,8 @@
|
||||
|
||||
mod accounts;
|
||||
mod addon;
|
||||
// M223:导入已有版本(扫描 / 预检 / 确认三条后台线程)
|
||||
mod adopt;
|
||||
mod dispatch;
|
||||
mod engine;
|
||||
pub mod env;
|
||||
@@ -106,6 +108,10 @@ pub struct CoreHost {
|
||||
/// 一眼能看出「这是旧任务的」,于是既不会被取消掉的安装重新点亮面板,也不会串到下一轮安装
|
||||
/// (两轮安装同时存在时,旧任务的事件曾经把新任务的进度条顶掉)。
|
||||
install_epoch: u64,
|
||||
/// 「导入已有版本」的代次(M223):每条 scan/preview/confirm 命令 +1,关面板也 +1。
|
||||
///
|
||||
/// 只认最新代次的回程事件——用户连点或点了关闭之后,旧线程带回来的结果不许再把面板点亮。
|
||||
adopt_epoch: u64,
|
||||
/// 自更新(M159):检查结论 / 应用状态 / 更新域偏好。
|
||||
update: update_state::Runtime,
|
||||
}
|
||||
@@ -160,6 +166,7 @@ impl CoreHost {
|
||||
chat: MockBackend::default(),
|
||||
install_cancel: None,
|
||||
install_epoch: 0,
|
||||
adopt_epoch: 0,
|
||||
update,
|
||||
};
|
||||
if refresh {
|
||||
|
||||
Reference in new issue
Block a user