557771a80331df681ac651742889632a0b77a3de
_apply_action_plan: constrain the target KPIDefinition lookup to sug.entity_id so a suggestion whose target_id/suggestion_data.kpi_id points at a foreign-entity KPI now returns 404 instead of creating an ActionPlan row with a cross-entity kpi_id. preview_suggestion: same constraint; a foreign-entity KPI now degrades to the existing placeholder (KPI#<id>, current_target=None) instead of echoing the foreign KPI name and current_target. Degradation (not 404) keeps the read-side preview usable when the stored kpi_id is inconsistent. Regression: backend/tests/test_ai_suggestion_kpi_attribution_residual_20260918.py (RED 2 failed before, GREEN 5 passed after; full suite 1228+2F -> 1230 passed / 1 xfailed).
管理会计OS
P0/P1/P2全功能已提交,CI/CD自动构建中 CI/CD: Woodpecker自动构建部署 CI验证: Sun Jul 12 05:13:08 PM CST 2026 webhook测试: 17:13:27 CI验证完成 17:15:10 CI最终验证: 17:16:24 CI全链路验证通过 ✅ woodpecker重启验证 gitea重启后验证 CI最终验证 17:19 最终测试 17:20:06 hash验证 Git Hooks自动部署验证 17:32
Languages
Python
73.7%
Vue
23.7%
TypeScript
1.2%
Shell
0.8%
HTML
0.3%
Other
0.2%