- Execute GET requests in a dedicated thread with its own Tokio runtime, add timeout handling and clearer error messages. - Tighten `is_safe_path` checks and simplify HTTP/S3 logic. - Change `llm_keyword` to accept `Arc<AppState>`, add prompt builder, run LLM generation in an isolated thread with timeout. - Update keyword registration call in `basic/mod.rs`. - Convert template script to use `let` declarations and return a boolean. - Introduce connection‑status indicator in the web UI with styles, automatic reconnection attempts, and proper WS/WSS handling for voice.
372 B
372 B
- When generating new Rhai keyword handlers in Rust, always design them to be thread-safe and fully compatible with async execution. Use Arc for shared state, perform heavy or async operations with tokio::task::block_in_place and Handle::current().block_on, and return results as rhai::Dynamic to maintain safe cross-thread communication between Rust and the Rhai engine.