What problem does it solve?
This Skill prevents Tauri renderer ↔ Rust integration mistakes by guiding how to correctly add, type, and wire new API bindings so features work reliably across file I/O, dialogs, media, multi-window orchestration, and SQLite access.
Core Features & Use Cases
- Renderer-side vs Rust-backed decisioning: decide when a task can be done purely in TypeScript bindings versus when a native Rust command is required.
- Specta command lifecycle: cover annotating Rust Tauri commands with
#[tauri::command] and #[specta::specta], deriving specta::Type for all involved types, and registering commands so bindings.ts is regenerated.
- Renderer polyfills and invoke/error conventions: implement renderer
api.* polyfills that call typed commands.*, handle Specta Result<T, String> envelopes safely, and follow the success/error object convention.
Quick Start
Update src/renderer/tauri-window-api.ts when the change can be expressed as pure TypeScript over the renderer DB shim, otherwise add a Rust #[tauri::command] with #[specta::specta] in src-tauri/ and regenerate src/renderer/bindings.ts before wiring a matching renderer polyfill.