diff --git a/AUTO_CODE_REVIEW_REPORT.md b/AUTO_CODE_REVIEW_REPORT.md index 087fe40..706a581 100644 --- a/AUTO_CODE_REVIEW_REPORT.md +++ b/AUTO_CODE_REVIEW_REPORT.md @@ -1,6 +1,6 @@ # InsightFlow 代码审查报告 -扫描时间: Sun Mar 1 12:08:06 AM CST 2026 +扫描时间: Sun Mar 1 06:03:17 AM CST 2026 扫描文件数: 40 ## 扫描的文件列表 @@ -50,1102 +50,45 @@ - 🔴 Critical: 3 - 🟠 Error: 0 -- 🟡 Warning: 8 -- 🔵 Info: 3348 -- **总计: 3359** +- 🟡 Warning: 6 +- 🔵 Info: 2249 +- **总计: 2258** ## ✅ 已自动修复的问题 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task5.py:35` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task5.py:737` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task5.py:742` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:32` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:40` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:48` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:60` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:68` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:80` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:87` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:95` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:104` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:127` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:144` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:167` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:180` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:191` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:205` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:220` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:240` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:257` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:277` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:290` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:307` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:322` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:341` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:357` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:371` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:386` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:402` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:421` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:3073` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:3076` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/document_processor.py:10` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/document_processor.py:158` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/document_processor.py:174` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:31` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:46` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:55` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:62` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:73` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:86` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:97` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:105` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:123` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:142` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:154` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:166` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:190` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:207` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:227` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:248` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:269` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:285` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:304` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:324` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:341` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:2129` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/growth_manager.py:2132` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:17` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:25` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:45` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:65` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:85` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:98` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:108` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:1390` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:1393` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:20` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:28` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:48` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:68` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:88` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:101` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:111` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:1397` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/db_manager.py:1400` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/tingwu_client.py:11` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:415` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:470` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:556` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:563` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:569` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:581` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:585` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:589` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:594` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:602` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:607` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:618` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:622` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:628` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:636` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:642` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:650` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:654` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:660` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:666` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:669` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:673` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:676` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:680` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:684` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:686` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:699` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:709` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:729` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:733` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:745` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:755` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:769` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:777` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:786` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:800` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:804` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:817` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:821` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:824` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:831` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:839` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:846` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:852` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:855` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:861` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:864` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:871` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:873` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:896` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:910` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:939` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:941` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:974` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:984` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1002` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1004` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1018` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1040` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1042` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1050` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1102` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1132` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1146` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1200` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1221` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1223` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1234` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1244` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1355` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1357` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1476` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1478` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1570` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1572` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1589` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1599` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1609` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1611` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1648` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1667` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1693` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1714` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1734` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1736` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1755` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1757` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1813` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1905` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1941` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1943` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1971` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:1985` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2017` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2019` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2031` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2033` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2054` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2069` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2090` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2092` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2097` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2150` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2195` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2198` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2238` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2240` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2249` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2258` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2266` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2270` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2305` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2328` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2351` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2369` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2380` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2484` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2525` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2549` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2562` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2587` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2612` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2648` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2650` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2703` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2756` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2796` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2836` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2874` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:2956` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3028` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3087` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3089` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3092` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3097` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3101` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3119` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3183` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3196` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3218` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3239` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3254` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3272` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3299` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3318` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3331` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3333` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3370` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3406` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3431` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3475` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3493` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3516` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3556` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3582` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3584` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3589` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3618` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3623` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3633` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3697` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3738` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3771` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3808` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3822` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3853` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3892` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3907` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3909` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3955` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:3985` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4012` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4043` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4057` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4087` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4089` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4100` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4110` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4120` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4124` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4130` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4138` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4320` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4468` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4552` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4660` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4724` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4760` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4797` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4826` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4860` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4943` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4945` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4957` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4965` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4974` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4978` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4980` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4989` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:4994` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5006` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5010` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5016` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5025` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5032` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5039` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5051` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5056` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5061` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5070` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5083` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5088` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5100` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5115` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5119` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5127` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5130` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5137` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5139` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5181` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5214` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5239` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5266` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5280` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5282` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5321` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5353` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5372` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5407` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5409` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5442` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5475` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5515` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5566` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5594` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5596` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5635` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5674` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5716` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5745` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5773` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5775` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5818` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5854` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5879` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5906` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5925` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5938` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5946` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5952` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5961` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5973` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5984` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:5999` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6007` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6015` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6024` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6030` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6034` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6058` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6086` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6108` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6119` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6130` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6132` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6203` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6205` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6240` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6269` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6271` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6307` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6335` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6385` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6387` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6435` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6463` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6483` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6504` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6506` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6533` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6535` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6548` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6554` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6557` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6565` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6573` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6586` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6590` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6595` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6605` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6620` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6625` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6636` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6638` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6684` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6699` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6701` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6728` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6744` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6757` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6782` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6784` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6827` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6859` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6909` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6923` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6952` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6954` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:6998` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7034` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7047` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7049` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7080` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7113` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7143` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7149` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7157` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7161` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7168` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7171` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7174` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7180` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7183` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7185` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7215` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7243` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7266` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7303` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7317` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7319` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7351` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7379` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7406` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7420` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7434` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7448` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7450` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7486` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7497` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7523` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7537` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7539` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7567` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7593` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7609` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7623` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7643` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7645` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7653` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7661` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7701` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7729` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7769` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7780` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7809` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7823` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7825` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7844` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7858` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7894` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7905` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7932` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7962` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:7978` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8000` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8004` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8009` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8015` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8019` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8028` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8032` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8035` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8062` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8074` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8099` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8126` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8140` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8168` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8192` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8206` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8220` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8251` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8280` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8291` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8319` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8345` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8361` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8375` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8387` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8404` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8431` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8476` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8478` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8488` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8497` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8512` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8515` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8526` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8546` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8551` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8565` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8570` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8579` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8587` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8614` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8636` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8650` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8664` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8683` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8697` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8721` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8735` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8749` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8765` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8779` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8794` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8813` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8827` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8859` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8873` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8893` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8921` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8944` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8957` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8978` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:8996` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9012` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9023` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9043` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9057` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9061` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9070` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9074` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9077` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9083` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9088` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9092` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9098` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9104` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9135` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9161` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9199` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9235` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9265` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9294` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9320` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9340` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9374` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9403` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9440` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9470` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9504` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9539` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9580` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9618` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9642` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9664` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9686` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9703` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9719` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9735` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9739` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9760` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9779` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9787` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9795` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9804` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9819` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9832` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9834` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9882` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9909` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9942` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9966` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:9981` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10007` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10009` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10042` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10067` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10091` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10107` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10137` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10139` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10180` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10213` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10244` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10273` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10275` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10315` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10345` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10379` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10399` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10416` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10440` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10476` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10480` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10487` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10491` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10500` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10509` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10513` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10518` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10522` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10526` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10531` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10551` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10575` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10605` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10624` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10655` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10683` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10712` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10742` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10766` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10812` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10833` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10866` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10880` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10911` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10938` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:10968` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11001` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11030` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11058` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11073` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11093` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11115` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11131` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11146` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11150` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11157` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11162` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11165` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11169` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11175` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11182` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11186` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11192` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11199` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11203` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11208` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11241` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11272` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11300` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11320` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11342` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11361` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11375` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11408` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11436` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11463` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11488` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11522` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11553` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11569` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11606` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11635` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11663` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11683` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11707` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11735` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11750` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11752` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11766` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11771` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11784` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11788` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11794` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11805` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11811` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11818` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11829` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11833` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11843` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11846` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11852` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11854` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11891` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11902` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11919` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11944` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11946` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:11972` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12000` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12019` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12021` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12058` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12085` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12111` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12130` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12148` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12163` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12182` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12201` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12203` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12237` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12263` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12287` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12302` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12330` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12345` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12371` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12373` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12405` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12426` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12441` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12453` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12485` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12507` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12530` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12546` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12555` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12563` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12580` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12585` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12605` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12610` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12618` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12625` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12636` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12652` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12655` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12661` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12663` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12703` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12737` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12770` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12791` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12805` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12816` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12839` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12865` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12867` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12911` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12960` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:12996` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13010` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13028` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13042` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13053` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13082` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13108` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13110` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13158` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13204` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13243` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13272` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13286` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13297` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13326` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13352` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13354` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13387` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13398` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13400` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13429` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13460` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13481` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13489` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13515` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13526` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13528` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13563` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13596` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13628` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13639` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13641` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13661` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13684` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13686` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13719` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13748` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13772` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13777` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13783` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13798` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13816` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13827` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13839` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13855` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13865` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13876` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13890` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13901` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13953` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:13986` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14021` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14056` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14070` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14109` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14134` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14148` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14188` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14204` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14218` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14258` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14282` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14321` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14345` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14386` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14409` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14435` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14474` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14498` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14516` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14550` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14572` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14592` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14617` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14640` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14664` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14692` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14719` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:14747` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/knowledge_reasoner.py:18` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/knowledge_reasoner.py:27` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/knowledge_reasoner.py:38` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/knowledge_reasoner.py:47` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/knowledge_reasoner.py:501` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/knowledge_reasoner.py:504` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:36` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:45` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:54` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:69` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:78` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:551` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/image_processor.py:554` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:24` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:34` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:43` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:53` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:62` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:72` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:82` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:91` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:116` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:132` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:163` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:178` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:216` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:231` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:254` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:271` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:293` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:306` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:329` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:2036` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/developer_ecosystem_manager.py:2039` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:26` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:45` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:54` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:61` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:69` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:77` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:95` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:112` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:129` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:145` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:159` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:1602` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:1604` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:1636` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/tenant_manager.py:1639` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:15` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:23` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:32` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:63` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:158` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:161` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:168` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:211` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:30` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:38` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:47` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:55` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:63` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:82` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:93` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:109` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:125` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:140` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:159` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:174` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:191` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:1490` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/ai_manager.py:1493` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:28` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:50` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:58` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:69` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:90` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:107` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:126` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:147` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:164` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:1234` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:1237` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:170` - 多余的空行 +- `/root/.openclaw/workspace/projects/insightflow/backend/rate_limiter.py:212` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/llm_client.py:18` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/llm_client.py:23` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/llm_client.py:30` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/llm_client.py:37` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/llm_client.py:257` - 多余的空行 - `/root/.openclaw/workspace/projects/insightflow/backend/llm_client.py:260` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/api_key_manager.py:18` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/api_key_manager.py:23` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/api_key_manager.py:40` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/api_key_manager.py:525` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/api_key_manager.py:528` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:36` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:44` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:53` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:61` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:70` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:93` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:117` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:146` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:166` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:321` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:1491` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:1494` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:38` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:54` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:65` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:78` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:94` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:105` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:119` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:136` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:150` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:161` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:178` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:199` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:209` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:220` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:239` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:1686` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/localization_manager.py:1688` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:31` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:42` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:50` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:65` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:77` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:94` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:112` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:133` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:149` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:388` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:591` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:918` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:1140` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:1400` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:1403` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task2.py:14` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task2.py:226` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:16` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:90` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:116` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:157` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:191` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:220` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:290` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:337` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task4.py:375` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:24` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:34` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:42` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:52` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:62` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:71` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:89` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:109` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:123` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:144` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:167` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:189` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:204` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:2190` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/subscription_manager.py:2193` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/export_manager.py:39` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/export_manager.py:49` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/export_manager.py:58` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/export_manager.py:67` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/export_manager.py:614` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/export_manager.py:617` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task8.py:33` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task8.py:724` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task8.py:729` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:17` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:35` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:49` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:59` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:69` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:510` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_entity_linker.py:513` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:23` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:65` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:100` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:118` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:136` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:183` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:223` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:269` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:289` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:313` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase7_task6_8.py:399` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_processor.py:38` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_processor.py:55` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_processor.py:78` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_processor.py:90` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_processor.py:448` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/multimodal_processor.py:451` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task6.py:32` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task6.py:690` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task6.py:695` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:22` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:29` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:40` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:63` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:88` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:117` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:144` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:157` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:169` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:171` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:779` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:781` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:1141` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:1143` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:1612` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:1614` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2016` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2018` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2190` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2193` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2200` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2208` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2215` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/search_manager.py:2220` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:24` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:35` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:43` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:51` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:59` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:66` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:75` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:107` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:131` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:150` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:174` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:201` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:218` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:232` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:248` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:2188` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/enterprise_manager.py:2191` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:20` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:67` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:112` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:151` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:205` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:246` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:269` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task1.py:306` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:45` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:61` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:73` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:94` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:125` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:137` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:139` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:595` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:597` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:896` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:898` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1279` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1281` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1597` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1599` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1643` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1670` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1672` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1733` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/performance_manager.py:1736` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/oss_uploader.py:12` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/oss_uploader.py:43` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/oss_uploader.py:46` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/entity_aligner.py:18` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/entity_aligner.py:25` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/entity_aligner.py:319` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/entity_aligner.py:350` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:14` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:22` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:30` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:39` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:57` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:77` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:98` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:113` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:127` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:985` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/collaboration_manager.py:988` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:29` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:47` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:62` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:71` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:80` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:89` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:965` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:968` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:975` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:982` - 多余的空行 -- `/root/.openclaw/workspace/projects/insightflow/backend/neo4j_manager.py:1036` - 多余的空行 ## ⚠️ 需要人工确认的问题 - `/root/.openclaw/workspace/projects/insightflow/auto_code_fixer.py:314` [warning] CORS 配置允许所有来源 (*),生产环境应限制具体域名 - `/root/.openclaw/workspace/projects/insightflow/code_reviewer.py:289` [warning] CORS 配置允许所有来源 (*),生产环境应限制具体域名 -- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:388` [warning] CORS 配置允许所有来源 (*),生产环境应限制具体域名 -- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:58` [critical] 硬编码密钥,应使用环境变量 +- `/root/.openclaw/workspace/projects/insightflow/backend/main.py:396` [warning] CORS 配置允许所有来源 (*),生产环境应限制具体域名 +- `/root/.openclaw/workspace/projects/insightflow/backend/security_manager.py:56` [critical] 硬编码密钥,应使用环境变量 - `/root/.openclaw/workspace/projects/insightflow/backend/test_multimodal.py:140` [critical] 潜在的 SQL 注入风险,使用参数化查询 -- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task6.py:528` [critical] 硬编码 API Key,应使用环境变量 +- `/root/.openclaw/workspace/projects/insightflow/backend/test_phase8_task6.py:527` [critical] 硬编码 API Key,应使用环境变量 ## 📋 其他发现的问题 @@ -1179,23 +122,18 @@ - `/root/.openclaw/workspace/projects/insightflow/auto_code_fixer.py:506` - 魔法数字 10,建议提取为常量 - `/root/.openclaw/workspace/projects/insightflow/auto_code_fixer.py:510` - 魔法数字 10,建议提取为常量 - `/root/.openclaw/workspace/projects/insightflow/auto_code_fixer.py:511` - 魔法数字 10,建议提取为常量 -- ... 还有 2178 个类似问题 +- ... 还有 2136 个类似问题 ### missing_type_annotation -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2826` - 函数 '_row_to_alert_rule' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2848` - 函数 '_row_to_alert_channel' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2864` - 函数 '_row_to_alert' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2886` - 函数 '_row_to_suppression_rule' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2898` - 函数 '_row_to_resource_metric' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2911` - 函数 '_row_to_capacity_plan' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2925` - 函数 '_row_to_auto_scaling_policy' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2944` - 函数 '_row_to_scaling_event' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2960` - 函数 '_row_to_health_check' 的参数 'row' 缺少类型注解 -- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2979` - 函数 '_row_to_health_check_result' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2798` - 函数 '_row_to_alert_rule' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2820` - 函数 '_row_to_alert_channel' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2836` - 函数 '_row_to_alert' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2858` - 函数 '_row_to_suppression_rule' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2870` - 函数 '_row_to_resource_metric' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2883` - 函数 '_row_to_capacity_plan' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2897` - 函数 '_row_to_auto_scaling_policy' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2916` - 函数 '_row_to_scaling_event' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2932` - 函数 '_row_to_health_check' 的参数 'row' 缺少类型注解 +- `/root/.openclaw/workspace/projects/insightflow/backend/ops_manager.py:2951` - 函数 '_row_to_health_check_result' 的参数 'row' 缺少类型注解 - ... 还有 60 个类似问题 - -### unused_import - -- `/root/.openclaw/workspace/projects/insightflow/backend/workflow_manager.py:18` - 未使用的导入: urllib.parse -- `/root/.openclaw/workspace/projects/insightflow/backend/plugin_manager.py:14` - 未使用的导入: urllib.parse diff --git a/CODE_REVIEW_REPORT_20260301.md b/CODE_REVIEW_REPORT_20260301.md new file mode 100644 index 0000000..a0055c2 --- /dev/null +++ b/CODE_REVIEW_REPORT_20260301.md @@ -0,0 +1,113 @@ +# InsightFlow 代码审查与自动修复报告 + +**执行时间**: 2026-03-01 03:00 AM (Asia/Shanghai) +**任务ID**: cron:7d08c3b6-3fcc-4180-b4c3-2540771e2dcc +**代码提交**: `1f33d20` + +--- + +## ✅ 已自动修复的问题 + +### 1. 重复导入清理 +- **backend/main.py**: 移除重复的 `ExportEntity, ExportRelation, ExportTranscript` 导入 + +### 2. 裸异常捕获修复 (13处) +将裸 `except Exception` 改为具体的异常类型: +- `except (RuntimeError, ValueError, TypeError)` - 通用业务异常 +- `except (RuntimeError, ValueError, TypeError, ConnectionError)` - 包含连接异常 +- `except (ValueError, TypeError, RuntimeError, IOError)` - 包含IO异常 + +**涉及文件**: +- backend/main.py (6处) +- backend/neo4j_manager.py (1处) +- backend/llm_client.py (1处) +- backend/tingwu_client.py (1处) +- backend/tenant_manager.py (1处) +- backend/growth_manager.py (1处) + +### 3. 未使用导入清理 (3处) +- **backend/llm_client.py**: 移除 `from typing import Optional` +- **backend/workflow_manager.py**: 移除 `import urllib.parse` +- **backend/plugin_manager.py**: 移除 `import urllib.parse` + +### 4. 魔法数字提取为常量 +新增常量定义: +```python +# backend/main.py +DEFAULT_RATE_LIMIT = 60 # 默认每分钟请求限制 +MASTER_KEY_RATE_LIMIT = 1000 # Master key 限流 +IP_RATE_LIMIT = 10 # IP 限流 +MAX_TEXT_LENGTH = 3000 # 最大文本长度 +UUID_LENGTH = 8 # UUID 截断长度 +DEFAULT_TIMEOUT = 60.0 # 默认超时时间 +``` + +**涉及文件** (全部添加 UUID_LENGTH 常量): +- backend/main.py +- backend/db_manager.py +- backend/workflow_manager.py +- backend/image_processor.py +- backend/multimodal_entity_linker.py +- backend/multimodal_processor.py +- backend/plugin_manager.py + +### 5. PEP8 格式优化 +- 使用 autopep8 优化代码格式 +- 修复行长度、空格、空行等问题 + +--- + +## ⚠️ 需要人工确认的问题 + +### 1. SQL 注入风险 +**位置**: backend/db_manager.py, backend/tenant_manager.py 等 +**问题**: 部分 SQL 查询使用字符串拼接 +**建议**: 审查所有动态 SQL 构建,确保使用参数化查询 + +### 2. CORS 配置 +**位置**: backend/main.py:388-394 +**当前配置**: +```python +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # 允许所有来源 + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) +``` +**建议**: 生产环境应限制为具体的域名列表 + +### 3. 敏感信息加密 +**位置**: backend/security_manager.py +**问题**: 加密密钥管理需要确认 +**建议**: +- 确认 `MASTER_KEY` 环境变量的安全存储 +- 考虑使用密钥管理服务 (KMS) + +### 4. 架构级重构建议 +- 考虑引入 SQLAlchemy ORM 替代原始 SQL +- 考虑使用 Pydantic 进行更严格的输入验证 + +--- + +## 📊 统计信息 + +| 类别 | 数量 | +|------|------| +| 修复文件数 | 13 | +| 代码行变更 | +141 / -85 | +| 裸异常修复 | 13处 | +| 未使用导入清理 | 3处 | +| 魔法数字提取 | 6个常量 | + +--- + +## 🔗 相关链接 + +- 代码提交: `git show 1f33d20` +- 项目路径: `/root/.openclaw/workspace/projects/insightflow` + +--- + +*此报告由 InsightFlow 代码审查与自动修复任务自动生成* diff --git a/backend/__pycache__/ai_manager.cpython-312.pyc b/backend/__pycache__/ai_manager.cpython-312.pyc index 4a44e90..f03e97e 100644 Binary files a/backend/__pycache__/ai_manager.cpython-312.pyc and b/backend/__pycache__/ai_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/api_key_manager.cpython-312.pyc b/backend/__pycache__/api_key_manager.cpython-312.pyc index ed7aa7e..dd6e6ee 100644 Binary files a/backend/__pycache__/api_key_manager.cpython-312.pyc and b/backend/__pycache__/api_key_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/collaboration_manager.cpython-312.pyc b/backend/__pycache__/collaboration_manager.cpython-312.pyc index 246669b..9af6fed 100644 Binary files a/backend/__pycache__/collaboration_manager.cpython-312.pyc and b/backend/__pycache__/collaboration_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/db_manager.cpython-312.pyc b/backend/__pycache__/db_manager.cpython-312.pyc index 6a9b96e..2cda0a8 100644 Binary files a/backend/__pycache__/db_manager.cpython-312.pyc and b/backend/__pycache__/db_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/developer_ecosystem_manager.cpython-312.pyc b/backend/__pycache__/developer_ecosystem_manager.cpython-312.pyc index cc628b3..d503879 100644 Binary files a/backend/__pycache__/developer_ecosystem_manager.cpython-312.pyc and b/backend/__pycache__/developer_ecosystem_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/document_processor.cpython-312.pyc b/backend/__pycache__/document_processor.cpython-312.pyc index 18fe8bb..ad3c90a 100644 Binary files a/backend/__pycache__/document_processor.cpython-312.pyc and b/backend/__pycache__/document_processor.cpython-312.pyc differ diff --git a/backend/__pycache__/enterprise_manager.cpython-312.pyc b/backend/__pycache__/enterprise_manager.cpython-312.pyc index 3fcd671..0f0b7b2 100644 Binary files a/backend/__pycache__/enterprise_manager.cpython-312.pyc and b/backend/__pycache__/enterprise_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/entity_aligner.cpython-312.pyc b/backend/__pycache__/entity_aligner.cpython-312.pyc index 885a533..5f9b812 100644 Binary files a/backend/__pycache__/entity_aligner.cpython-312.pyc and b/backend/__pycache__/entity_aligner.cpython-312.pyc differ diff --git a/backend/__pycache__/export_manager.cpython-312.pyc b/backend/__pycache__/export_manager.cpython-312.pyc index fa9cefa..dfd7539 100644 Binary files a/backend/__pycache__/export_manager.cpython-312.pyc and b/backend/__pycache__/export_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/growth_manager.cpython-312.pyc b/backend/__pycache__/growth_manager.cpython-312.pyc index ef83304..7819946 100644 Binary files a/backend/__pycache__/growth_manager.cpython-312.pyc and b/backend/__pycache__/growth_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/image_processor.cpython-312.pyc b/backend/__pycache__/image_processor.cpython-312.pyc index 3a74a09..8a2c5dc 100644 Binary files a/backend/__pycache__/image_processor.cpython-312.pyc and b/backend/__pycache__/image_processor.cpython-312.pyc differ diff --git a/backend/__pycache__/init_db.cpython-312.pyc b/backend/__pycache__/init_db.cpython-312.pyc index f26e20a..9204354 100644 Binary files a/backend/__pycache__/init_db.cpython-312.pyc and b/backend/__pycache__/init_db.cpython-312.pyc differ diff --git a/backend/__pycache__/knowledge_reasoner.cpython-312.pyc b/backend/__pycache__/knowledge_reasoner.cpython-312.pyc index 8132239..6eafbe7 100644 Binary files a/backend/__pycache__/knowledge_reasoner.cpython-312.pyc and b/backend/__pycache__/knowledge_reasoner.cpython-312.pyc differ diff --git a/backend/__pycache__/llm_client.cpython-312.pyc b/backend/__pycache__/llm_client.cpython-312.pyc index fb69925..16c7d18 100644 Binary files a/backend/__pycache__/llm_client.cpython-312.pyc and b/backend/__pycache__/llm_client.cpython-312.pyc differ diff --git a/backend/__pycache__/localization_manager.cpython-312.pyc b/backend/__pycache__/localization_manager.cpython-312.pyc index 63d56f8..3992e66 100644 Binary files a/backend/__pycache__/localization_manager.cpython-312.pyc and b/backend/__pycache__/localization_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/main.cpython-312.pyc b/backend/__pycache__/main.cpython-312.pyc index d3d6e98..294601c 100644 Binary files a/backend/__pycache__/main.cpython-312.pyc and b/backend/__pycache__/main.cpython-312.pyc differ diff --git a/backend/__pycache__/multimodal_entity_linker.cpython-312.pyc b/backend/__pycache__/multimodal_entity_linker.cpython-312.pyc index ad6e874..f00c7a1 100644 Binary files a/backend/__pycache__/multimodal_entity_linker.cpython-312.pyc and b/backend/__pycache__/multimodal_entity_linker.cpython-312.pyc differ diff --git a/backend/__pycache__/multimodal_processor.cpython-312.pyc b/backend/__pycache__/multimodal_processor.cpython-312.pyc index 9a833d4..20df8d3 100644 Binary files a/backend/__pycache__/multimodal_processor.cpython-312.pyc and b/backend/__pycache__/multimodal_processor.cpython-312.pyc differ diff --git a/backend/__pycache__/neo4j_manager.cpython-312.pyc b/backend/__pycache__/neo4j_manager.cpython-312.pyc index 8fd674c..3870db4 100644 Binary files a/backend/__pycache__/neo4j_manager.cpython-312.pyc and b/backend/__pycache__/neo4j_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/ops_manager.cpython-312.pyc b/backend/__pycache__/ops_manager.cpython-312.pyc index 02cf3dc..f37bc7e 100644 Binary files a/backend/__pycache__/ops_manager.cpython-312.pyc and b/backend/__pycache__/ops_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/oss_uploader.cpython-312.pyc b/backend/__pycache__/oss_uploader.cpython-312.pyc index d7e3168..fec6d77 100644 Binary files a/backend/__pycache__/oss_uploader.cpython-312.pyc and b/backend/__pycache__/oss_uploader.cpython-312.pyc differ diff --git a/backend/__pycache__/performance_manager.cpython-312.pyc b/backend/__pycache__/performance_manager.cpython-312.pyc index 75cfdd4..d4f8ee4 100644 Binary files a/backend/__pycache__/performance_manager.cpython-312.pyc and b/backend/__pycache__/performance_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/plugin_manager.cpython-312.pyc b/backend/__pycache__/plugin_manager.cpython-312.pyc index 42a0f54..9c58a3f 100644 Binary files a/backend/__pycache__/plugin_manager.cpython-312.pyc and b/backend/__pycache__/plugin_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/rate_limiter.cpython-312.pyc b/backend/__pycache__/rate_limiter.cpython-312.pyc index 45c65a4..3f6b1d3 100644 Binary files a/backend/__pycache__/rate_limiter.cpython-312.pyc and b/backend/__pycache__/rate_limiter.cpython-312.pyc differ diff --git a/backend/__pycache__/search_manager.cpython-312.pyc b/backend/__pycache__/search_manager.cpython-312.pyc index 6d239bd..46845f4 100644 Binary files a/backend/__pycache__/search_manager.cpython-312.pyc and b/backend/__pycache__/search_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/security_manager.cpython-312.pyc b/backend/__pycache__/security_manager.cpython-312.pyc index 987634e..c8062be 100644 Binary files a/backend/__pycache__/security_manager.cpython-312.pyc and b/backend/__pycache__/security_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/subscription_manager.cpython-312.pyc b/backend/__pycache__/subscription_manager.cpython-312.pyc index 5615b79..00d34d9 100644 Binary files a/backend/__pycache__/subscription_manager.cpython-312.pyc and b/backend/__pycache__/subscription_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/tenant_manager.cpython-312.pyc b/backend/__pycache__/tenant_manager.cpython-312.pyc index 0dd1918..7f22827 100644 Binary files a/backend/__pycache__/tenant_manager.cpython-312.pyc and b/backend/__pycache__/tenant_manager.cpython-312.pyc differ diff --git a/backend/__pycache__/test_multimodal.cpython-312.pyc b/backend/__pycache__/test_multimodal.cpython-312.pyc index 4613a09..6f8b987 100644 Binary files a/backend/__pycache__/test_multimodal.cpython-312.pyc and b/backend/__pycache__/test_multimodal.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase7_task6_8.cpython-312.pyc b/backend/__pycache__/test_phase7_task6_8.cpython-312.pyc index bdad6b2..ea2e134 100644 Binary files a/backend/__pycache__/test_phase7_task6_8.cpython-312.pyc and b/backend/__pycache__/test_phase7_task6_8.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase8_task1.cpython-312.pyc b/backend/__pycache__/test_phase8_task1.cpython-312.pyc index 376dd9d..29735c0 100644 Binary files a/backend/__pycache__/test_phase8_task1.cpython-312.pyc and b/backend/__pycache__/test_phase8_task1.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase8_task2.cpython-312.pyc b/backend/__pycache__/test_phase8_task2.cpython-312.pyc index b8d9e8e..aff0d66 100644 Binary files a/backend/__pycache__/test_phase8_task2.cpython-312.pyc and b/backend/__pycache__/test_phase8_task2.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase8_task4.cpython-312.pyc b/backend/__pycache__/test_phase8_task4.cpython-312.pyc index ef6ff5c..baf70ab 100644 Binary files a/backend/__pycache__/test_phase8_task4.cpython-312.pyc and b/backend/__pycache__/test_phase8_task4.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase8_task5.cpython-312.pyc b/backend/__pycache__/test_phase8_task5.cpython-312.pyc index b5de333..183d876 100644 Binary files a/backend/__pycache__/test_phase8_task5.cpython-312.pyc and b/backend/__pycache__/test_phase8_task5.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase8_task6.cpython-312.pyc b/backend/__pycache__/test_phase8_task6.cpython-312.pyc index fa9281d..b2b4fa8 100644 Binary files a/backend/__pycache__/test_phase8_task6.cpython-312.pyc and b/backend/__pycache__/test_phase8_task6.cpython-312.pyc differ diff --git a/backend/__pycache__/test_phase8_task8.cpython-312.pyc b/backend/__pycache__/test_phase8_task8.cpython-312.pyc index 8b6792a..454ac17 100644 Binary files a/backend/__pycache__/test_phase8_task8.cpython-312.pyc and b/backend/__pycache__/test_phase8_task8.cpython-312.pyc differ diff --git a/backend/__pycache__/tingwu_client.cpython-312.pyc b/backend/__pycache__/tingwu_client.cpython-312.pyc index 31992e3..00fe349 100644 Binary files a/backend/__pycache__/tingwu_client.cpython-312.pyc and b/backend/__pycache__/tingwu_client.cpython-312.pyc differ diff --git a/backend/__pycache__/workflow_manager.cpython-312.pyc b/backend/__pycache__/workflow_manager.cpython-312.pyc index d5cb2c8..59696ff 100644 Binary files a/backend/__pycache__/workflow_manager.cpython-312.pyc and b/backend/__pycache__/workflow_manager.cpython-312.pyc differ diff --git a/backend/db_manager.py b/backend/db_manager.py index da91460..d01eb9c 100644 --- a/backend/db_manager.py +++ b/backend/db_manager.py @@ -17,7 +17,6 @@ DB_PATH = os.getenv("DB_PATH", "/app/data/insightflow.db") # Constants UUID_LENGTH = 8 # UUID 截断长度 - @dataclass class Project: id: str @@ -26,7 +25,6 @@ class Project: created_at: str = "" updated_at: str = "" - @dataclass class Entity: id: str @@ -47,7 +45,6 @@ class Entity: if self.attributes is None: self.attributes = {} - @dataclass class AttributeTemplate: """属性模板定义""" @@ -68,7 +65,6 @@ class AttributeTemplate: if self.options is None: self.options = [] - @dataclass class EntityAttribute: """实体属性值""" @@ -89,7 +85,6 @@ class EntityAttribute: if self.options is None: self.options = [] - @dataclass class AttributeHistory: """属性变更历史""" @@ -103,7 +98,6 @@ class AttributeHistory: changed_at: str = "" change_reason: str = "" - @dataclass class EntityMention: id: str @@ -114,7 +108,6 @@ class EntityMention: text_snippet: str confidence: float = 1.0 - class DatabaseManager: def __init__(self, db_path: str = DB_PATH): self.db_path = db_path @@ -1401,11 +1394,9 @@ class DatabaseManager: conn.close() return stats - # Singleton instance _db_manager = None - def get_db_manager() -> DatabaseManager: global _db_manager if _db_manager is None: diff --git a/backend/llm_client.py b/backend/llm_client.py index 82a2991..2560eb7 100644 --- a/backend/llm_client.py +++ b/backend/llm_client.py @@ -15,13 +15,11 @@ import httpx KIMI_API_KEY = os.getenv("KIMI_API_KEY", "") KIMI_BASE_URL = os.getenv("KIMI_BASE_URL", "https://api.kimi.com/coding") - @dataclass class ChatMessage: role: str content: str - @dataclass class EntityExtractionResult: name: str @@ -29,7 +27,6 @@ class EntityExtractionResult: definition: str confidence: float - @dataclass class RelationExtractionResult: source: str @@ -37,7 +34,6 @@ class RelationExtractionResult: type: str confidence: float - class LLMClient: """Kimi API 客户端""" @@ -258,11 +254,9 @@ class LLMClient: messages = [ChatMessage(role="user", content=prompt)] return await self.chat(messages, temperature=0.3) - # Singleton instance _llm_client = None - def get_llm_client() -> LLMClient: global _llm_client if _llm_client is None: diff --git a/backend/rate_limiter.py b/backend/rate_limiter.py index 29e44f5..ad00209 100644 --- a/backend/rate_limiter.py +++ b/backend/rate_limiter.py @@ -12,7 +12,6 @@ from collections.abc import Callable from dataclasses import dataclass from functools import wraps - @dataclass class RateLimitConfig: """限流配置""" @@ -21,7 +20,6 @@ class RateLimitConfig: burst_size: int = 10 # 突发请求数 window_size: int = 60 # 窗口大小(秒) - @dataclass class RateLimitInfo: """限流信息""" @@ -31,7 +29,6 @@ class RateLimitInfo: reset_time: int # 重置时间戳 retry_after: int # 需要等待的秒数 - class SlidingWindowCounter: """滑动窗口计数器""" @@ -63,7 +60,6 @@ class SlidingWindowCounter: for k in old_keys: self.requests.pop(k, None) - class RateLimiter: """API 限流器""" @@ -159,11 +155,9 @@ class RateLimiter: self.counters.clear() self.configs.clear() - # 全局限流器实例 _rate_limiter: RateLimiter | None = None - def get_rate_limiter() -> RateLimiter: """获取限流器实例""" global _rate_limiter @@ -173,7 +167,6 @@ def get_rate_limiter() -> RateLimiter: # 限流装饰器(用于函数级别限流) - def rate_limit(requests_per_minute: int = 60, key_func: Callable | None = None) -> None: """ 限流装饰器 @@ -216,6 +209,5 @@ def rate_limit(requests_per_minute: int = 60, key_func: Callable | None = None) return decorator - class RateLimitExceeded(Exception): """限流异常""" diff --git a/backend/tingwu_client.py b/backend/tingwu_client.py index c70e9e6..500c63d 100644 --- a/backend/tingwu_client.py +++ b/backend/tingwu_client.py @@ -8,7 +8,6 @@ import time from datetime import datetime from typing import Any - class TingwuClient: def __init__(self): self.access_key = os.getenv("ALI_ACCESS_KEY", "")