Files
DevFlow/src/api/settings.ts
绝尘 cf017f81e2 新增: Phase2 阶段收尾(Sprint 1-20)
重构:删 5 零引用 crate(df-evolve/plugin/stages/task/traceability)+ 清死模块、ai.rs 拆 11 子 module、ai.ts 拆 6 composable、i18n 拆目录
功能:知识库全栈(df-project/scan + CRUD + 时间线 + 前端)、Settings 拆分、appSettings KV 迁移、模型池、LLM 并发 Semaphore
修复:审批持久化根治、ConditionEngine 默认拒绝、NodeRegistry unimplemented 清除、promote 补偿删除、工具结果截断 50KB、路径校验防 symlink 逃逸
文档:B-03 人工审批设计、决策记录三分档、规格契约自检、经验记录、todo 看板、PROGRESS 更新

详见 PROGRESS.md。src-tauri/儿童每日打卡应用/ 与本项目无关,已排除。
2026-06-14 14:08:20 +08:00

29 lines
1.0 KiB
TypeScript

//! 应用设置 KV API — IPC invoke 封装(localStorage → SQLite 迁移目标)
//!
//! 后端 4 个 command 读写 `app_settings` 表,value 在 SQLite 里永远是 JSON 字符串。
//! 本层只做透传(不解析 JSON),JSON.parse / JSON.stringify 由 store 层负责。
import { invoke } from '@tauri-apps/api/core'
export const settingsApi = {
/** 取单个 key 的原始值(JSON 字符串),不存在返回 null */
get(key: string): Promise<string | null> {
return invoke<string | null>('settings_get', { key })
},
/** 写 key/value(`INSERT OR REPLACE`),成功返回 true */
set(key: string, value: string): Promise<boolean> {
return invoke<boolean>('settings_set', { key, value })
},
/** 取全部 key/value(启动时一次性拉回恢复偏好) */
getAll(): Promise<Record<string, string>> {
return invoke<Record<string, string>>('settings_get_all')
},
/** 删除单个 key,成功返回 true */
delete(key: string): Promise<boolean> {
return invoke<boolean>('settings_delete', { key })
},
}