From 8561f6190d4d0e1134e3c8086fc4662003f51955 Mon Sep 17 00:00:00 2001 From: zyc <1439655764@qq.com> Date: Wed, 29 Apr 2026 13:35:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E6=89=8B=E5=8A=A8=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E5=90=8C=E6=AD=A5=E5=90=8C=E6=97=B6=E8=B7=91=20AI=20O?= =?UTF-8?q?KR=20=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前 /admin/sync/trigger 只调用 syncGitea,导致 UI 上点"触发同步" 按钮无论多少次,OKR 都不会被更新。改为同步完成后立即跑 AI 分析, 逻辑与 scheduler.ts 的定时任务保持一致。 Co-Authored-By: Claude Opus 4.7 (1M context) --- backend/src/routes/admin.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/src/routes/admin.ts b/backend/src/routes/admin.ts index c2e2037..48d7c65 100644 --- a/backend/src/routes/admin.ts +++ b/backend/src/routes/admin.ts @@ -336,11 +336,22 @@ adminRoutes.put('/admin/users/:id/projects', zValidator('json', setUserProjectsS adminRoutes.post('/admin/sync/trigger', async (c) => { const { syncGitea } = await import('../sync/sync-gitea'); + const { analyzeCommitsForOKR } = await import('../services/okr-ai-sync'); + const { config } = await import('../config'); // 异步执行,不阻塞响应 - syncGitea().catch(err => console.error('[SYNC] Manual trigger failed:', err)); + (async () => { + try { + await syncGitea(); + if (config.AI_ENABLED && config.AI_API_KEY) { + await analyzeCommitsForOKR(); + } + } catch (err) { + console.error('[SYNC] Manual trigger failed:', err); + } + })(); return c.json({ code: 0, - data: { message: '同步已触发,请稍后刷新查看结果' }, + data: { message: '同步 + AI 分析已触发,请稍后刷新查看结果' }, message: 'success', }); });