agent: rust — add preferences webview injection for zero-flash hydration

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jake
2026-03-21 10:41:44 +00:00
parent c3a01d217d
commit fa7e812166
3 changed files with 118 additions and 24 deletions

View File

@@ -1,5 +1,7 @@
use tauri::{Emitter, Manager, WebviewUrl, WebviewWindowBuilder};
use crate::PreferencesScript;
/// Open a floating always-on-top task window.
#[tauri::command]
pub async fn open_task_window(
@@ -13,7 +15,7 @@ pub async fn open_task_window(
return Ok(());
}
WebviewWindowBuilder::new(
let mut builder = WebviewWindowBuilder::new(
&app,
"tasks-float",
WebviewUrl::App("/float".into()),
@@ -23,9 +25,16 @@ pub async fn open_task_window(
.min_inner_size(400.0, 400.0)
.always_on_top(true)
.decorations(false)
.resizable(true)
.build()
.map_err(|e| e.to_string())?;
.resizable(true);
// Inject preferences before Svelte mounts
if let Some(script) = app.try_state::<PreferencesScript>() {
if !script.0.is_empty() {
builder = builder.initialization_script(&script.0);
}
}
builder.build().map_err(|e| e.to_string())?;
Ok(())
}
@@ -41,7 +50,7 @@ pub async fn open_viewer_window(
return Ok(());
}
WebviewWindowBuilder::new(
let mut builder = WebviewWindowBuilder::new(
&app,
"transcript-viewer",
WebviewUrl::App("/viewer".into()),
@@ -50,9 +59,16 @@ pub async fn open_viewer_window(
.inner_size(600.0, 700.0)
.min_inner_size(450.0, 500.0)
.decorations(false)
.resizable(true)
.build()
.map_err(|e| e.to_string())?;
.resizable(true);
// Inject preferences before Svelte mounts
if let Some(script) = app.try_state::<PreferencesScript>() {
if !script.0.is_empty() {
builder = builder.initialization_script(&script.0);
}
}
builder.build().map_err(|e| e.to_string())?;
Ok(())
}