用途
该技能面向使用 CrabNebula DevTools 调试 Tauri 应用的场景,专门处理浏览器 DevTools 看不到的部分:Rust 侧日志、IPC span、解析后的运行时配置、能力(capability)状态、插件接线以及打包资源解析。
当出现以下情况时触发:Tauri 的 invoke() 调用失败、挂起、异常缓慢或返回错误数据;存在 Rust panic/错误但无法确定失败模块或 span;插件、能力或窗口作用域权限疑似损坏;资源在开发模式可加载但构建后不可用,或本地存在但未进入打包;桌面与移动端、debug 与 build 模式行为不一致;准备添加 println!()、猜测 serde/配置问题,或用浏览器 Network 面板检查 Tauri IPC;CrabNebula DevTools 需要安装、配置或无法连接。
不适用场景:DOM、CSS、布局、纯浏览器 JavaScript 或框架组件调试;浏览器网络栈中的 HTTP/fetch/WebSocket 调试;无实时运行时症状的静态代码审查;问题已确证只需实现修复的情况。Webview 问题用浏览器 DevTools,未知问题位于 webview 之后时用 CrabNebula DevTools。
主要能力
- 首次安装配置:检查 src-tauri/Cargo.toml 中是否存在 tauri-plugin-devtools,确认应用入口(src-tauri/src/lib.rs、main.rs 或等价文件)是否通过 tauri_plugin_devtools::init() / Builder::default().init() 注册插件;按 references/setup/installation-and-config.md 安装;用 cargo tauri dev 重启并等待监听地址或仪表盘 URL 出现;验证连接。
- Rust 侧可见性映射:按症状选择首个查看面板——Rust panic/日志缺失/启动失败看 Console;invoke() 错误/响应错误/序列化不匹配/挂起/慢命令看 Calls;权限错误/插件未初始化/窗口作用域/配置不匹配看 Config 再 Console;资源缺失/路径错误/开发构建差异看 Sources 再 Config;桌面正常移动端异常看设备上的 Console + Calls。
- 分阶段工作流:Phase 1 建立失败路径并做 DevTools 检测;Phase 2 先观察后推理,采集精确证据;Phase 3 形成 1–3 个可证伪假设;Phase 4 按假设路径检查;Phase 5 将诊断与修复分离;Phase 6 在同一界面验证。
- 终端模式证据采集:无可视化 DevTools UI 时,以 cargo tauri dev 终端输出、定向 tracing::info!() 或 #[tracing::instrument] 补充、用户提供的截图或面板导出作为证据来源。
- 决策规则:子 span 主导总时长则先优化该子 span;父 span 慢但子 span 缺失或过小则先插桩内部 Rust 代码;Calls 已显示权限错误则先检查解析后的能力与窗口作用域;无 IPC 调用出现则检查前端是否真正调用、命令名是否正确、能力是否拦截、DevTools 是否初始化过晚;release 构建无数据视为 #[cfg(debug_assertions)] 预期行为;错误含 "not allowed" 或 "capability" 为 Tauri ACL 错误,含 "os error 13" 或 "Permission denied" 为操作系统级错误,二者修复方式完全不同。
使用方式
- 首次设置:检查 Cargo.toml 与入口注册;按 references/setup/installation-and-config.md 安装;重启 cargo tauri dev;验证 Console 初始化日志、Config → Plugins 列表、Calls 中命令条目,或终端模式下的启动横幅与 tracing 输出。
- 若无实时复现:仅安装或连通性任务可用冒烟测试路径,添加临时 #[tauri::command] 并从前端调用一次;真实缺陷诊断但无可运行项目或失败操作时,应停止并索要应用或最小复现,不得虚构项目。
- 按工作流执行:Phase 1 命名复现动作、记录预期与实际、记录环境、执行 DevTools 检测;Phase 2 从匹配症状的单一面板开始采集证据,优先使用内置过滤与排序;Phase 3 每个假设须映射到 Phase 4 路由条目;Phase 4 使用最窄检查路径,插桩前确认 Cargo.toml 中有 tracing = "0.1",异步 .instrument() 还需 use tracing::Instrument;,panic 启用 RUST_BACKTRACE=1;Phase 5 仅在假设被证据确认后编辑代码/配置,做窄修复而非推测性重构;Phase 6 重启 cargo tauri dev、重连 DevTools、复现同一操作,确认证据变化,移除仅调试用的临时插桩,保留结构性插桩。
适用场景
- Rust panic、日志来源缺失、tracing 噪声或启动失败。
- invoke() 错误、响应错误、序列化不匹配、挂起或慢命令。
- 权限错误、插件未初始化、窗口作用域错误或配置不匹配。
- 资源缺失、运行时路径错误或开发/构建差异。
- 桌面正常但移动端异常。
- 性能瓶颈或需要性能分析。
- 需要工具内部机制或流水线限制信息。
限制
- 不用于 DOM、CSS、布局、纯浏览器 JavaScript 或框架组件调试。
- 不用于浏览器网络栈中的 HTTP/fetch/WebSocket 调试。
- 不用于无实时运行时症状的静态代码审查。
- 不用于问题已确证、只需实现修复的情况。
- 所有决策规则均要求 DevTools 已安装并运行;未安装时须先安装。
- 无可视化 UI 时不得声称“打开了 Calls 面板”,须使用终端输出或用户截图,并说明所用证据路径。
- 代码变更后必须重启 cargo tauri dev,否则可能针对陈旧运行时状态验证。
- 须从项目根目录(含 package.json)运行 cargo tauri dev,否则 beforeDevCommand 可能失败。
- 若 beforeDevCommand 指向缺失脚本,应用可能在 DevTools 启动前退出。
- 使用完整 Tauri v2 ACL 标识符(如 fs:allow-read-text-file),而非 fs:read。
- 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。