feat(launch): M157 实例级启动参数(五项回落 + graphicsBackend 三态)

core: 新增 game/launch_overrides(LaunchOverrides 五项 All-Option + 三级回落 + 文本补丁校验)与 launch/overrides(拼装落位:全局 java.extra_args 进 user.jvm、实例 jvmArgs 进 override_jvm、gameArgs 进 user.game、memory 进 -Xmx、backend 进 --graphicsBackend 并复用既有版本门槛告警);实例 schema 登记 launch.* 五键。

presenter: dto/LaunchArgsView+LaunchArgsPatch,主机侧读/写与门槛判定(backend_allowed),AppCommand::SetInstanceLaunchArgs。

cli: 新命令 instances launch-args(读/写/--clear),launch 装配链消费回落值。

app-iced: 实例详情页「启动参数」区(JVM/游戏参数、内存、Java、三态后端 chips + 灰化提示 + 保存/恢复),表单状态归 App、i18n 中英文案同步。
This commit is contained in:
AskaEth committed 2026-11-07 10:36:35 +08:00
1 parent d68523b02a
commit e2021645d7
56 files changed
+3776 -607

No files matched your search

+18
View File
@@ -25,6 +25,7 @@ use crate::dto::{
InstanceRuntime,
InstanceSummary,
JavaPageView,
LaunchArgsPatch,
LoaderKind,
LogLine,
LogOutcome,
@@ -177,6 +178,15 @@ pub enum AppCommand {
/// `isolated` / `shared`
mode: String,
},
/// 写实例启动参数(M157 的「启动参数」区:JVM/游戏参数、内存、Java、图形后端)
///
/// 补丁语义:`None` = 这一项不改;`Some("")` = 清空回「跟随全局」。
SetInstanceLaunchArgs {
/// 实例 id
id: InstanceId,
/// 五项补丁
patch: LaunchArgsPatch,
},
/// 刷新日志会话列表
RefreshLogSessions,
/// 打开某个会话(拉取日志行 + 触发诊断)
@@ -237,6 +247,14 @@ impl AppCommand {
mode: mode.to_string(),
}
}
/// 构造「写实例启动参数」指令(详情页「启动参数」区)。
pub fn set_launch_args(id: &str, patch: LaunchArgsPatch) -> Self {
Self::SetInstanceLaunchArgs {
id: id.to_string(),
patch,
}
}
}
/// 后端通道:core/agent host 实现它;[`crate::mock::MockBackend`] 验证通道语义。