1.4 KiB
1.4 KiB
description, name, applyTo
| description | name | applyTo | |||
|---|---|---|---|---|---|
| Use when implementing or refactoring features in this Tauri + SvelteKit app, especially when editing src/**/*.svelte, src/**/*.ts, or src-tauri/src/**/*.rs. Covers frontend-backend command contracts, validation, and project checks. | Tauri Svelte Workflow |
|
Tauri Svelte Workflow
- Project default preference: keep UI concerns in route components and move reusable logic into src/lib.
- Preserve SPA mode by default unless the task explicitly requires SSR: keep src/routes/+layout.ts with ssr set to false.
- When adding a Tauri command, prefer defining it in src-tauri/src/lib.rs and registering it in tauri::generate_handler.
- For fallible Rust commands, prefer Result<T, String> with actionable error messages.
- Keep the Rust command name and frontend invoke name aligned and stable.
- Validate user input before invoke on the frontend, and validate again in Rust before processing.
- For data passed between frontend and Rust, prefer explicit types over loosely shaped payloads.
- Prefer small focused changes and avoid editing generated outputs in build/, target/, and node_modules/.
- Before considering work complete, run both checks when changes affect frontend or Rust build paths:
- npm run check
- cargo check --manifest-path src-tauri/Cargo.toml
If a task gives explicit conflicting requirements, follow the task and document the exception in your response.