用途:把不断膨胀的 Tauri 后端整理成更小、更稳定、更易开发的形态。目标不是让 Rust 支持热更新,而是减少 Rust 改动频率、让重启代价更低,并保持 Tauri 命令边界小巧、有类型、可审计。
适用场景:使用 pnpm tauri dev / npm run tauri dev 时,Rust 文件改动会关闭并重开应用;src-tauri/src/lib.rs 成为巨型文件;应用暴露 100+ 或 200+ 个命令;前端到处散落 invoke("command_name") 字符串;长时 invoke / Channel 调用在重载或 HMR 后出现过期回调警告;需要进行后端模块化、命令合并、改进开发脚本或重启状态恢复。
主要能力与用法:先遵守本地规范(查看 AGENTS.md、CLAUDE.md 等),用 wc -l、rg 统计 lib.rs 行数、最大 Rust 文件、命令数量,并对问题分类:开发循环、巨型模块、命令泛滥、invoke 泛滥、长 IPC、重启痛、编译痛。开发脚本可新增 dev:web: "vite"、dev:app: "tauri dev"、dev:app:no-watch: "tauri dev --no-watch",保留原有 tauri dev。后端把 lib.rs 变薄,拆成真实 mod 模块,generate_handler! 移出 run.rs;命令按领域合并为有类型的路由器(如 settings_command、template_command、pty_command),不要退化为 do_anything(action, payload),高风险命令保留显式命名。前端建立统一适配层集中 invoke,长 IPC 使用 streamId 与取消机制,并在 HMR dispose、pagehide 时取消。重启可通过持久化 hash、会话 id、刷新待保存数据来降低影响。
限制:Tauri 的 Rust 侧“热更新”本质是监听、重新编译并重启原生进程,不应承诺 Rust 后端 HMR。验证只能执行本地允许的命令,如 cargo fmt、CARGO_TARGET_DIR=target/codex-check cargo check、pnpm exec tsc --noEmit --pretty false;若 tauri dev 占用 Cargo 锁,应使用独立 CARGO_TARGET_DIR。