初始提交: Qihu-AIFlow v2.0.1 完整项目

- 前端 React+TypeScript (源码+构建产物)
- 后端 Python FastAPI
- 数据库迁移 001-015
- Docker部署配置
- 微信ClawBot API频道绑定
- 项目文档 README.md
This commit is contained in:
qyyfw committed 2026-07-02 14:40:46 +08:00
commit 78ff261b5a
199 files changed
+69126

No files matched your search

+713
View File
@@ -0,0 +1,713 @@
{
"title": "AI自进化 v2 接口自动化测试报告",
"timestamp": "2026-05-30T08:47:27.487713",
"total": 117,
"passed": 117,
"failed": 0,
"pass_rate": "100.0%",
"results": [
{
"name": "Admin login",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "Demo user login",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills - code - field 'code' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills - data - field 'data' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills - returns list (6 skills)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill has skill_name - field 'skill_name' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill has state - field 'state' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill has version - field 'version' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill has use_count - field 'use_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills/{name} - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill detail has code - field 'code' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill detail has data",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill detail - skill_name - field 'skill_name' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill detail - description - field 'description' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: PUT /skills/{name} - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills/{name}/history - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill history returns list (15 events)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills/{name}/trajectories - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Trajectories has code - field 'code' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: POST /skills/{name}/freeze - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: POST /skills/{name}/unfreeze - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /skills/nonexistent - 404 - HTTP 404",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: DELETE /skills/nonexistent - 404 - HTTP 404",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /dashboard/skill-tree - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree has data - field 'data' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree - categories - field 'categories' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree - total_count - field 'total_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree - main_count - field 'main_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree - baby_count - field 'baby_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree - staging_count - field 'staging_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Skill tree - frozen_count - field 'frozen_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /dashboard/timeline - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Timeline returns list (23 events)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /dashboard/timeline?event_type=edited - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Timeline filtered (7 events)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /dashboard/statistics - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Statistics - ranking - field 'ranking' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Statistics - total_use_count - field 'total_use_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Statistics - category_distribution - field 'category_distribution' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Statistics - daily_trend - field 'daily_trend' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Statistics - low_use_skills - field 'low_use_skills' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /dashboard/profile - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Profile - level - field 'level' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Profile - level_title - field 'level_title' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Profile - dimensions - field 'dimensions' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Profile - tags - field 'tags' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Profile - growth_suggestions - field 'growth_suggestions' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /events - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Events list (23 events)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Event has event_type - field 'event_type' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Event has skill_name - field 'skill_name' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Event has description - field 'description' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Event has created_at - field 'created_at' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: GET /events filtered - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: POST /trajectory/submit - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Trajectory submit - has status - field 'status' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v1: Trajectory submit - has id - field 'id' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST rollback to non-existent version - 404 - HTTP 404",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST rollback nonexistent skill - 404 - HTTP 404",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: GET /skills/{name}/versions - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Versions list (0 versions)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST /skills/newborn_skill/publish - already published",
"passed": true,
"detail": "Skill already published: 该技能已发布到市场,不能重复发布",
"priority": "P0"
},
{
"name": "v2: POST /skills/{name}/publish - non-main rejected",
"passed": true,
"detail": "State=staging",
"priority": "P0"
},
{
"name": "v2: POST publish nonexistent skill - rejected with error in data",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST share-to-team - invalid team rejected",
"passed": true,
"detail": "团队不存在",
"priority": "P0"
},
{
"name": "v2: POST share nonexistent skill - rejected",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: GET /pipeline/status - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - scheduler_running - field 'scheduler_running' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - watcher_status - field 'watcher_status' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - pipeline_status - field 'pipeline_status' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - discovered_count - field 'discovered_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - done_count - field 'done_count' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - total_skills - field 'total_skills' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Pipeline - total_trajectories - field 'total_trajectories' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST /pipeline/trigger",
"passed": true,
"detail": "流水线已触发",
"priority": "P0"
},
{
"name": "v2: GET /watcher/status - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Watcher status - watcher_status",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Watcher status - pipeline_status",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Watcher status - scheduler_running",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Watcher status - skill_count",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Watcher status - trajectory_count",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST /watcher/restart",
"passed": true,
"detail": "进化引擎已重启",
"priority": "P0"
},
{
"name": "v2: GET /admin/watchers (admin) - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Admin watchers - 1 users",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: GET /reports - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Reports list (0 reports)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: GET /reports?report_type=weekly - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: POST /reports/generate (weekly)",
"passed": true,
"detail": "weekly报告生成完成",
"priority": "P0"
},
{
"name": "v2: POST /reports/generate (monthly)",
"passed": true,
"detail": "weekly报告生成完成",
"priority": "P0"
},
{
"name": "v2: GET /reports/{id} - HTTP 200",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Report detail - report_type - field 'report_type' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Report detail - period_start - field 'period_start' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Report detail - period_end - field 'period_end' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: Report detail - report_data - field 'report_data' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2: GET /reports/nonexistent - 404 - HTTP 404",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "ISO: Skill isolation - no cross-user overlap",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "ISO: Report isolation (demo has 0 reports)",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "ISO: Pipeline status isolation - demo can query own",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "ISO: Watcher status isolation - demo can query own",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "ISO: Demo cannot access admin/watchers - 403",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "ISO: Unauthenticated access rejected",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2 verify: reports/generate response code field - field 'code' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2 verify: reports/generate response message - field 'message' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2 verify: reports/{id} nonexistent 404 - HTTP 404",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2 verify: versions nonexistent returns empty",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2 verify: watcher/restart response code - field 'code' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "v2 verify: watcher/restart response message - field 'message' exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Table skill_versions exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Table evolution_reports exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Table skill_publish_records exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Table team_shared_skills exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Field evolution_trajectories.error_msg exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Field evolution_trajectories.retry_count exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Field evolution_trajectories.tasks_extracted exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Field messages.used_skills exists",
"passed": true,
"detail": "",
"priority": "P0"
},
{
"name": "DB: Field user_evolution_config.watcher_error exists",
"passed": true,
"detail": "",
"priority": "P0"
}
],
"endpoints_tested": 26
}