fix(run): keep temporary run configurations following the toolchain settings (#1167)

Temporary run configurations were kept with what settings derived when they were made (absolute mvn, -s / -Dmaven.repo.local, JAVA_HOME), and never went through the backend again, so after a Maven home / settings file / JDK change they and gutter test runs narrowed from them still ran the old ones. They are now kept without derived values (run_without_derived) and get the current settings applied when the run list loads (run_apply_settings). Maven's settings file and local repository apply to every Maven configuration unless it sets them itself. Earlier stored entries are dropped once.

Refs #822
Цей коміт міститься в:
l0ng-ai authored and GitHub committed 2026-11-04 11:56:03 +08:00
1 джерело 59567f1af0
коміт d3b9a39831
10 files changed
+269 -33

No files matched your search

+2
Переглянути файл
@@ -316,6 +316,8 @@ pub fn builder() -> tauri_specta::Builder<tauri::Wry> {
run::run_configs,
run::run_dotnet_resolve,
run::run_save_configs,
run::run_without_derived,
run::run_apply_settings,
run::run_templates,
run::run_save_templates,
run::run_import_sources,
+28
Переглянути файл
@@ -64,6 +64,34 @@ pub fn run_save_configs(
ide_host::ops::run::save_configs(&state.host, window.label(), &configs, &removed_detected_ids.unwrap_or_default())
}
/// Temporary configurations as they are kept between sessions: without what settings derived.
#[tauri::command]
#[specta::specta]
pub async fn run_without_derived(
window: Window,
state: State<'_, AppState>,
configs: Vec<RunConfig>,
) -> IdeResult<Vec<RunConfig>> {
let (host, label) = (state.host.clone(), window.label().to_owned());
tauri::async_runtime::spawn_blocking(move || ide_host::ops::run::without_derived(&host, &label, configs))
.await
.map_err(|e| ide_core::IdeError::internal(e.to_string()))?
}
/// Kept temporary configurations with the current settings applied.
#[tauri::command]
#[specta::specta]
pub async fn run_apply_settings(
window: Window,
state: State<'_, AppState>,
configs: Vec<RunConfig>,
) -> IdeResult<Vec<RunConfig>> {
let (host, label) = (state.host.clone(), window.label().to_owned());
tauri::async_runtime::spawn_blocking(move || ide_host::ops::run::apply_settings(&host, &label, configs))
.await
.map_err(|e| ide_core::IdeError::internal(e.to_string()))?
}
#[tauri::command]
#[specta::specta]
pub async fn run_start(