Compare commits

..

1 Commits

Author SHA1 Message Date
NimBold 052a7fb66f test(startup): isolate renderer crash path (#37)
- Issue #37: replace the main renderer with a minimal startup control for packaged smoke runs.\n- Keep native startup, Aria2, and the extension endpoint unchanged for comparison.\n\nRefs #37.
2026-08-27 20:02:39 +03:30
2 changed files with 10 additions and 7 deletions
+5 -1
View File
@@ -3996,6 +3996,9 @@ fn mark_main_window_startup_complete(app_handle: &tauri::AppHandle) {
#[cfg(target_os = "windows")]
fn reveal_main_window(app_handle: &tauri::AppHandle) {
if let Some(window) = app_handle.get_webview_window("main") {
if let Err(error) = window.set_focusable(true) {
log::warn!("Could not make the main window focusable: {error}");
}
if let Err(error) = window.show() {
eprintln!("Failed to reveal the main window: {error}");
}
@@ -18555,7 +18558,8 @@ pub fn run() {
// re-enter that handler during native construction.
main_window_builder = main_window_builder
.visible(false)
.focused(false);
.focused(false)
.focusable(false);
}
main_window_builder
.build()
+5 -6
View File
@@ -78,12 +78,11 @@ const PropertiesStartupFailure = () => (
const renderMainApp = async () => {
if (!rootElement) return;
// Keep the child entrypoint isolated from the main application module. App
// imports the persistent Zustand stores, whose module initialization issues
// main-window-only IPC commands. Loading it in a Properties child creates a
// second persistence owner and can race the bridge handshake.
const RootComponent = (await import('./App')).default;
renderRoot(RootComponent);
// Diagnostic control for Issue #37: keep the native shell and extension
// server alive without loading the application renderer or its startup
// effects. This branch is used only to separate renderer startup from the
// native delayed-crash path.
renderRoot(() => <div data-firelink-startup-control="renderer" />);
};
const renderPropertiesApp = async () => {