修复: workspace_root 编译期常量消除+data_dir 运行期+首次授权引导

- 删除 production 中全部 env!("CARGO_MANIFEST_DIR")引用
- workspace_root() 替换为运行期 data_dir(Tauri app_data_dir)
- 相对路径锚定改为 AllowedDirs.first_persistent_dir(),无授权时引导绑定项目
- .trash 迁到 data_dir/.trash,含自动迁移
- authz_debug → temp_dir,workspace_drive → current_dir
- run_command 默认 working_dir 改为空串
- G1 目标刷新改为每次消息覆盖(含 ai_chat_edit 路径)
- #6 评分关键词拆到独立文件 scoring_keywords.rs
- #7 promote 补偿删除 purge_with_descendants → soft_delete
- #8 关联双向同步: 后端事务 sync_related_ids + IPC + 前端全链路
- 设置面板新增数据目录显示
This commit is contained in:
2026-06-27 21:32:12 +08:00
parent a6d692270f
commit 9c3f27f4ca
26 changed files with 743 additions and 104 deletions

View File

@@ -40,6 +40,11 @@ export const ideaApi = {
return invoke('promote_idea', { id })
},
/** 双向同步关联关系:原子地设置主体灵感的目标关联列表,自动添加/移除反向关联。 */
relateIdeas(subjectId: string, targetIds: string[]): Promise<void> {
return invoke('relate_ideas', { subjectId, targetIds })
},
/** 列出灵感评估历史(version DESC)。Tauri 默认把 ideaId 映射到 idea_id。 */
listEvaluations(ideaId: string): Promise<IdeaEvaluationRecord[]> {
return invoke('list_idea_evaluations', { ideaId })

View File

@@ -16,6 +16,11 @@ export const settingsApi = {
return invoke<boolean>('settings_set', { key, value })
},
/** 获取 DevFlow 数据目录路径(运行期确定,跨平台) */
getDataDir(): Promise<string> {
return invoke<string>('get_data_dir')
},
/** 取全部 key/value(启动时一次性拉回恢复偏好) */
getAll(): Promise<Record<string, string>> {
return invoke<Record<string, string>>('settings_get_all')