优化: 所有剩余UI/UX待办一批完成(持久化+AuditLog+解耦+total+原12大改+P2)
持久化(P1-c):新建 usePersistedRef composable,Tasks/AuditLog/ProjectDetail 等接入 localStorage
AuditLog(P1-d):后端 list_tool_executions 加 WHERE 筛选+返 {items,total,has_more},前端对接+长列折叠+筛选持久化
数据源解耦(P1-g):ProjectDetail projectTasks 按 project_id 独立加载 + ChatInput @项目联想独立加载(不读 store.tasks 当前页)
GitChanges(12a):后端 get_module_commits 加 git rev-list --count 返 total,前端显真实总数
原12大改:Dashboard 统计卡压底行(1)/Projects 列表卡片视图(2)/project_event 埋点排序(3)/TaskDetail 重设计(4)/IdeaDetail 重设计(5)/KnowledgeDetail 重设计(6)/界面持久化+侧栏Ctrl+B+审批数字键(7)/ProjectDetail 三栏改两栏(10)
P2打磨:文件浏览器(FileTree去重/FilePreview行号.md Diff/selectedFilePath归位)/settings反馈(假保存/端口校验)/AI会话(try-catch/scrollIntoView)/后端计数(move_queue事件/timeline total/workflow分页/import_batch分块)/杂项(TopBar/ConfirmDialog键盘/CIStatus i18n/ToolResultBody/ModuleNode/ApprovalDialog全选)
This commit is contained in:
@@ -423,12 +423,23 @@ pub async fn run_workflow_inner(
|
||||
Ok(execution_id.to_string())
|
||||
}
|
||||
|
||||
/// 列出全部工作流执行记录
|
||||
/// 列出工作流执行记录(最近 N 条,对标设计 §10.5 单用户桌面应用分页)。
|
||||
///
|
||||
/// M19:原实现调 `list_all()` 无 limit/分页,工作流执行记录随使用累积(workflow_executions 表
|
||||
/// 只插不删,每次 run_workflow 落一条),长期使用后全量返回会撑爆前端列表 + IPC 传输 + 内存。
|
||||
/// 加可选 `limit` 参数(默认 100,钳制 ≤ 500),list_all 已按 created_at DESC 排序,截断取最近 N 条。
|
||||
/// 前端旧调用方不传 limit 走默认 100,零破坏(工作流历史本就按时间倒序展示,截断尾部老记录无感)。
|
||||
#[tauri::command]
|
||||
pub async fn list_workflow_executions(
|
||||
state: State<'_, AppState>,
|
||||
limit: Option<u32>,
|
||||
) -> Result<Vec<WorkflowRecord>, String> {
|
||||
state.workflows.list_all().await.map_err(err_str)
|
||||
let safe_limit = limit.unwrap_or(100).min(500) as usize;
|
||||
let mut records = state.workflows.list_all().await.map_err(err_str)?;
|
||||
if records.len() > safe_limit {
|
||||
records.truncate(safe_limit);
|
||||
}
|
||||
Ok(records)
|
||||
}
|
||||
|
||||
/// 按 ID 查询工作流执行记录
|
||||
|
||||
Reference in New Issue
Block a user