[workspace] members = [ "crates/*", "src-tauri", ] resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } serde_json = "1" tokio = { version = "1", features = ["full"] } async-trait = "0.1" thiserror = "2" anyhow = "1" chrono = { version = "0.4", features = ["serde"] } uuid = { version = "1", features = ["v4"] } rusqlite = { version = "0.31", features = ["bundled"] } tracing = "0.1" regex = "1" # keyring v3 默认不带任何 platform 后端,必须显式启 feature—— # 否则 Entry 走 noop store:set_password 静默成功不持久化,get_password 永远空。 # Win+mac 启用原生后端;linux 用 async-persistent 变体避同步阻塞 Secret Service。 # 由 df-storage(密钥解析下沉层) + src-tauri(build_provider_for 转发壳)共同引用。 keyring = { version = "3", features = ["windows-native", "apple-native", "linux-native-async-persistent"] } # dashmap: ConvStateStore 无锁并发 HashMap(session 锁重构方案 B-Phase0)。 # ConvState 提到 ConvStateStore(DashMap),guard.reset/ai_is_generating 不依赖 session lock, # 治卡死连环(AiCompleted 延迟/工具后中断/第二条进队列同源根因)。详见 workflow session-lock-redesign。 dashmap = "6" # release 增量编译:小改动重打包显著提速(2026-10-04 打包提速项); # ⚠️ 2026-10-09 回退:release + incremental 触发链接期匿名符号丢失 # (anon.*.llvm.* undefined symbol,rust-lld 与 MSVC link.exe 均复现), # 根因是增量编译 CGU 划分与跨 crate 内联冲突。cargo check 不链接故不暴露, # cargo build/tauri build 链接期必挂。release 禁用 incremental 为 Rust 官方推荐。 # [profile.release] # incremental = true